Admin ›
Перемещение товаров целиком с одного склада на другой УТ 11.5 ›
#10
28.05.24 17:06
Я делал по другому:
в обработку печать этикеток добавил через расширение команду "скопировать строки" (можно код взять в форме любого документа).
В печати этикеток есть возможность заполнить по остаткам на конкретном складе.
Немного модифицировал модуль "РаботаСТабличнымиЧастями"
Код |
---|
&Вместо("СкопироватьСтрокиВБуферОбмена")
Процедура ОРВ_СкопироватьСтрокиВБуферОбмена(ТабличнаяЧасть, Строки) Экспорт
ТаблицаЗначений = ТабличнаяЧасть.Выгрузить(Новый Массив);
//++ начало добавления
ЕстьОстатокНаСкладе = ТаблицаЗначений.Колонки.Найти("ОстатокНаСкладе") <> Неопределено;
Если ЕстьОстатокНаСкладе Тогда
ТаблицаЗначений.Колонки.Добавить("Количество");
ТаблицаЗначений.Колонки.Добавить("КоличествоУпаковок");
КонецЕсли;
//++ конец добавления
УдаляемыеКолонки = Новый Массив;
УдаляемыеКолонки.Добавить("ИсходныйНомерСтроки");
УдаляемыеКолонки.Добавить("КодСтроки");
УдаляемыеКолонки.Добавить("ИдентификаторСтроки");
УдаляемыеКолонки.Добавить("КлючСвязи");
Для Каждого ИмяКолонки Из УдаляемыеКолонки Цикл
Колонка = ТаблицаЗначений.Колонки.Найти(ИмяКолонки);
Если Колонка <> Неопределено Тогда
ТаблицаЗначений.Колонки.Удалить(Колонка);
КонецЕсли;
КонецЦикла;
Индекс = 0;
ИсходныеСтроки = Новый Массив(Строки.Количество());
Для Каждого ИдентификаторСтроки Из Строки Цикл
ИсходныеСтроки[Индекс] = ТабличнаяЧасть.НайтиПоИдентификатору(ИдентификаторСтроки);
НоваяСтрока = ТаблицаЗначений.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ИсходныеСтроки[Индекс]);
НоваяСтрока.НомерСтроки = Индекс;
//++ начало добавления
Если ЕстьОстатокНаСкладе Тогда
Попытка
НоваяСтрока.КоличествоУпаковок = ИсходныеСтроки[Индекс].ОстатокНаСкладе;
НоваяСтрока.Количество = ИсходныеСтроки[Индекс].ОстатокНаСкладе;
Исключение
КонецПопытки;
КонецЕсли;
//++ конец добавления
Индекс = Индекс + 1;
КонецЦикла;
НаборыВызовСервера.ДополнитьДоПолногоНабора(ТабличнаяЧасть, ИсходныеСтроки);
Пока Индекс < ИсходныеСтроки.Количество() Цикл
НоваяСтрока = ТаблицаЗначений.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ИсходныеСтроки[Индекс]);
НоваяСтрока.НомерСтроки = Индекс;
Индекс = Индекс + 1;
КонецЦикла;
ОбщегоНазначения.СкопироватьВБуферОбмена(ТаблицаЗначений, "КопированиеВставкаСтрок");
КонецПроцедуры
|
Затем в перемещении вставить строки.
Быстрее чем писать обработки.