Клиент попросил сделать возможность на основании документа Маркировка товаров ИС МП создавать документ Приобретение товаров и услуг, чтобы избежать двойного сканирования продукции. Документ Приобретение товаров и услуг используется для оприходования готовой продукции из цеха на склад. Продукция первый раз сканируется для ввода в оборот в документ Маркировка товаров ИС МП и второй раз в документ Приобретение товаров и услуг для оприходования на склад.
В документе Маркировка товаров ИС МП есть штатная возможность оформить на его основании документ Сборка товаров. Было решено изучить как это работает и сделать по аналогии. И чтобы не забыть, опубликовать решение здесь.
Процедура заполнения команд оформления документов на основании КомандыМаркировкиТоваровИСМП() находится в общем модуле ИнтеграцияИСМПУТКлиентСервер.
Добавим ее в расширение и добавим команду для документа Приобретение товаров и услуг.
&После("КомандыМаркировкиТоваровИСМП")
Процедура Марк1_КомандыМаркировкиТоваровИСМП(Команды)
ПодключаемыеКомандыИСКлиентСервер.ДобавитьКомандуОформить(Команды,"ПриобретениеТоваровУслуг", НСтр("ru = 'Приобретение товаров и услуг'"));
КонецПроцедуры
В документе Приобретение товаров и услуг процедуру ОбработкаЗаполнения из модуля объекта дополним в расширении обработкой документа Маркировка товаров ИС МП
&После("ОбработкаЗаполнения")
Процедура Марк1_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.МаркировкаТоваровИСМП") Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
ЭтотОбъект.Комментарий = СокрЛП(ЭтотОбъект.Комментарий)+" "+Строка(ДанныеЗаполнения.Ссылка);
Для Каждого СтрокаОснование Из ДанныеЗаполнения.Товары Цикл
НовСтр = Товары.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, СтрокаОснование);
КонецЦикла;
КонецЕсли;
КонецПроцедуры