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