Метод половинного деления в CommerceML
У клиента перестали выгружаться данные на сайт, т.к. объем выгрузки товаров стал слишком большим. Разработчики сайта подтвердили проблему и стали ее решать. Но решают они ее долго, а выгружать надо сейчас.
Поэтому решил сделать клиенту деление выгрузки на две части.
Создаю две дополнительные кнопки — «Выгрузить 1» и «Выгрузить 2»:
Разделил список товаров на две части следующим кодом:
ТЗТовары = З.Выполнить().Выгрузить(); //Важно - должна идти сначала основная модификация, обязательно все товары вместе идут группами ТЗТовары.Сортировать("_ОсновнаяМодификация УБЫВ, Ссылка"); Всего = ТЗТовары.Количество(); Последний = Цел(Всего/2); //Смотрим, чтобы разбитие не делило одну позицию номенклатуры Пока Последний < Всего Цикл Если ТЗТовары[Последний-1].Ссылка <> ТЗТовары[Последний].Ссылка Тогда Прервать; КонецЕсли; Последний = Последний + 1; КонецЦикла; Если Режим = "1" Тогда Сообщить("Удаляем позиции с: " + (Последний + 1) + " по: " + Всего); //Удаляем первую строку Для Инд = Последний +1 По Всего Цикл ТЗТовары.Удалить(ТЗТовары.Количество() - 1); //Удаляем всегда последнюю строку КонецЦикла; ИначеЕсли Режим = "2" Тогда Сообщить("Удаляем позиции с: 1 по: " + Последний); //Удаляем первую строку Для Инд = 1 По Последний Цикл ТЗТовары.Удалить(0); КонецЦикла; КонецЕсли; Сообщить("Список к выгрузке:"); Для Каждого СтрокаТовара ИЗ ТЗТовары Цикл Сообщить(Символы.ТАБ + СтрокаТовара.Артикул + Символы.ТАБ + СтрокаТовара.Наименование); КонецЦикла; Результат.Вставить("XMLТовары", СформироватьВыгрузкуТоваров(ТЗТовары)); Результат.Вставить("XMLПредложения", СформироватьВыгрузкуПредложений(ТЗТовары));
При этом слежу, чтобы один товар не разбивался посередине — может быть несколько строк модификаций. Поэтому выборку сортирую по номенклатуре и коду для интернет-магазина, порядок важен.
По нажатию кнопки «Выгрузить 1» выводится:
По нажатию кнопки «Выгрузить 2» выводится:
Теперь клиент может спокойно дождаться исправления ошибки на стороне сайта или собственного роста ассортимента в 2 раза.
Среда: Розница 2.2.11.2 для Беларуси Объем: 1 час.
Свежие комментарии