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