9 августа 2024 в 11:57:07
(12 недель 3 дня 22 часа назад)
302347
19.05.2015 13:59:12
Текст задания
Имеется нетиповая 7.7. Нужно сделать выгрузку из 7.7, чтобы жить спокойно во время работы по переносу.
Пример файла в конце. Это список товаров.
У каждого товара есть набор свойств.
Некоторые свойства множественные, поэтому строка с одним и тем же товаром, загружается в файл по несколько десятков раз, чтобы записать каждой строкой последующее значение множественного свойства.
Например:
товар1;свойство1_1
товар1;свойство1_2
товар1;свойство1_3
итд
Это самое сложное, остальное сделать не проблема
Описание каждого поля сделаю для исполнителя, как только буду уверен что мы сможем с Вами выполнить работу. (полей много, и времени уйдет на это тоже много). Записать обычные свойства в файл проблемы не представляет. Проблема в множественных свойствах.
Некоторые свойства множественные, поэтому строка с одним и тем же товаром, загружается в файл по несколько десятков раз, чтобы записать каждой строкой последующее значение множественного свойства.
Есть определенный справочник. В нем тысячи элементов. Они различаются по принадлежности к клиентам. В выгрузку должны попадать только те элементы, которые принадлежат определенным клиентам. Таких клиентов сейчас два, но нужно сделать так чтобы оператор при установке какой то галочки, мог выгружать товары с определенными клиентами.
Таких клиентов сейчас два, но нужно сделать так чтобы оператор при установке какой то галочки, мог выгружать товары с определенными клиентами.
Принадлежность к клиентам, также является свойством товара. http://alliance2b.ru/gotovye-firmy/ - вот тут слева есть фильтр, в нем практически в самом низу есть свойство - ПРОДАВЕЦ. В нем как раз есть два продавца, это и есть клиенты
Если свойство не видно - нужно нажать кнопочку ПОКАЗАТЬ ВСЕ ФИЛЬТРЫ внизу
Далее, есть свойства с табличными значениями. Они довольно интересным образом организованы,
ОКВЭД - виды экономической деятельности. У каждой фирмы (товара) есть основной ОКВЭД и список дополнительных (табличная часть)
Дполнительные ОКВЭДЫ не задаются каждой фирме вручную постоянно. Все устроено так, что каждый основной ОКВЭД имеет свойства в виде табличной части. Естественно эти свойства давным давно уже забиты, и выбрав у фирмы основной оквэд, в выгрузку попадает и табличная часть основного оквэда.
В самой выгрузке имеем повтор строки с товаром ровно столько раз, сколько свойств в табличной части оквэда (если существуют) + последней строкой записывается основной оквэд.
Дальше начинаются сложности.
Так как есть еще множественные свойства, файл разрастается очень сильно и загружается в систему очень долго, иногда виснет.
Также есть такая проблема, что все множественные свойства должны быть записаны в последних строках, то есть если в ячейке указано свойство, а в следующей строке эта ячейка пустая, то пустая ячейка затирает предыдущую;
Поэтому наиболее простой пример правильного файла такой:
НАЗВАНИЕ ТОВАРА;ОКВЭД;ДОПОЛНИТЕЛЬНЫЙ ОКВЭД
товар1;;доп оквэд_1
товар1;;доп оквэд_2
товар1;;доп оквэд_3
товар1;основной оквэд;доп оквэд_4
в первой строке естественно название полей
В последней строке указан и основной оквэд и дополнительный.
1) Чтобы не плодить доп строку
2) Чтобы не было пустой строки у ДОП ОКВЭДА
Как бы Вы реализовали данный алгоритм, что если доп оквэд последний, то в эту строку записываем основной оквэд?
С данным множественным свойством допустим все понятно пока.
Есть еще множественные свойства, тут есть проблема. Их всех нужно записывать в конец файла. Но иногда получаются таке ситцации когда у фирмы нет множественных свойств до момента записи вышеназванного и в файле только одна строка, тут должен быть некий алгоритм, который будет добавлять копию предыдущей строки и записывать в нее свойства, пока они не закончаться. Бывает что в одну строку приходится записывать несколько значений разных множественных свойств (по разным ячейкам)
Здравствуйте, с радостью возьмусь за эту задачу. Если я правильно понял то этот файл используется для загрузки на сайт или в другую систему, если это так и возможно изменение алгоритма на стороне загрузчика, все было бы еще проще, если нет тогда сделаем под то-что есть.