Для начала сгенерируем нужные нам события
Выбираем обработать типовой результат. Можно и переопределить полностью, но тогда придется описывать все документы, с которыми мы работаем.
Получаем шаблон с событиями, которые нам нужно обработать
1. ПолучитьТаблицуИспользуемыхПакетов()
Функция ПолучитьТаблицуИспользуемыхПакетов(Параметры)
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
//ТЗ = ТаблицаЗначенийСКолонками("ID, Наименование, СоставПакета, КатегорияПакета, НаименованиеКатегории, Шаблон");
ТЗ = Параметры.Результат_ИМ;
ОсновнойМодуль.ЭДО_Служебные_ДобавитьСтрокуВТаблицуЗначений(ТЗ, "ID_Приложение", "Приложение" , "ID_Приложение", "ЗаказКлиента", "ЗаказКлиента");
Возврат ТЗ;
КонецЕсли;
КонецФункции
2. ПолучитьТаблицуИспользуемыхВидовДокументов()
Функция ПолучитьТаблицуИспользуемыхВидовДокументов(Параметры)
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
ТЗ = Параметры.Результат_ИМ;
ОсновнойМодуль.ЭДО_Служебные_ДобавитьСтрокуВТаблицуЗначений(ТЗ, "ID_Приложение", "Приложение", "Nonformalized", "");
Возврат ТЗ;
КонецЕсли;
КонецФункции
3.ПолучитьТекстЗапросаДляСпискаПакетовНаОтправкуПоМассивуВидовПакетов()
Функция ПолучитьТекстЗапросаДляСпискаПакетовНаОтправкуПоМассивуВидовПакетов(Параметры)
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
Если Параметры.МассивВидовПакетов.Найти("ID_Приложение") <> Неопределено Тогда
ОписаниеВидаПакета = ОсновнойМодуль.ЭДО_СправочникМенеджер_ПолучитьЭлемент("ВидыПакетов", "ID_Приложение");
Параметры.ПараметрыЗапроса.Вставить("ВидПакетаID_ID_Приложение","ID_Приложение");
Если Параметры.МассивВидовПакетов.Количество() = 1 Тогда
Результат = ТекстЗапроса_Приложение(ОписаниеВидаПакета);
Результат = "ВЫБРАТЬ РАЗРЕШЕННЫЕ" + Сред(Результат, СтрДлина("ВЫБРАТЬ") + 1);
Результат = ТекстЗапроса_ВременныеТаблицыДляСпискаПакетовНаОтправку_1С() + "
|;
|
|//////////////////////////
|" + Результат + "
|УПОРЯДОЧИТЬ ПО
| ДатаДокумента, НомерДокумента";
Параметры.Результат_ИМ = Результат;
Иначе
Результат = ДобавитьОбъединениеВТекстЗапроса() + ТекстЗапроса_Приложение(ОписаниеВидаПакета);
ТекстДляЗамены = "
|" + Результат + "
|
|УПОРЯДОЧИТЬ ПО
|";
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "УПОРЯДОЧИТЬ ПО" , ТекстДляЗамены);
КонецЕсли;
Возврат Параметры.Результат_ИМ;
КонецЕсли;
КонецЕсли;
КонецФункции
В функции ПолучитьТекстЗапросаДляСпискаПакетовНаОтправкуПоМассивуВидовПакетов нужно определить, запрос идет ко всем документам, с которыми мы работаем, или только к новому документу. Если ко всем, то запрос просто дописываем в конец основного запроса, а если только к новому документу, то нужно написать весь запрос (со всеми временными таблицами).
Если у вас модуль Диадока встроен в конфигурацию, то у вас будут другие временные таблицы. Их можно будет взять из запроса, когда мы добавляем наш запрос к основному запросу.
4. ПодготовитьПакет()
Функция ПодготовитьПакет(Параметры)
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
Если Параметры.ВидПакетаРазвернутый.ID = "ID_Приложение" Тогда
ОсновнойМодуль.ЭДО_ДокументМенеджер_ПодготовитьИДобавитьДокументВПакет(Параметры.Пакет, Параметры.СтрокаСписка.Документ, "ID_Приложение");
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецФункции
Далее подключаем модуль и жмем сохранить
Заходим в настройки организации.
Ставим галочку на новый документ
Там же выбираем нужную печатную форму (желательно, чтобы в печатной форме была одна команда), которую будем отправлять и подписывать
готово
Тестировал:
- 1С:Комплексная автоматизация 2 (2.4.13.209)
- Платформа 1С:Предприятие 8.3 (8.3.19.1467)
Диадок:
- Версия модуля: 4.21.2.2018
- Версия плагина: 1.4.5.286
- Расположение модуля: ВСправочнике
- Модуль интеграции: ПМ_УТ_11