Все внешние печатные формы БСП имеют в модуле код экспортных функций, хранящий основные настройки этой внешней обработки, наподобие:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Наименование = "УКД (01.10.2024)";
ПараметрыРегистрации.Информация = "УКД (01.10.2024)";
ПараметрыРегистрации.Версия = "2.0";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Назначение.Добавить("Документ.КорректировкаРеализации");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "УКД (01.10.2024)";
НоваяКоманда.Идентификатор = "УКД (01.10.2024)";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Ложь;
НоваяКоманда.Скрыть = Ложь;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УКД (01.10.2024)") Тогда
СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов);
ТабДок = СформироватьПечатнуюФормуУКД(СтруктураТипов, ОбъектыПечати);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"УКД (01.10.2024)","УКД (01.10.2024)",ТабДок);
КонецЕсли;
КонецПроцедуры
При открытии формы отладки она вызывает функцию СведенияОВнешнейОбработке() из модуля и получает сведения о настройках. Из параметров регистрации берутся типы документов и справочников назначений, в нашем случае "Документ.КорректировкаРеализации". При выборе ссылки на форме производится выбор только из указанных типов. Затем перевыбираются все команды из них формируется список выбора печатных форм, по умолчанию заполняется самой первой.
При нажатии кнопки "печать" происходит вызов экспортной функции печать из модуля для выбранной печатной формы. Сформированный табличный документ открывается в стандартной форме печати документов БСП
Идентификатор="";
ПараметрыВывода = Новый Структура;
ОбъектыПечати = Новый СписокЗначений;
ОбъектыПечати.Добавить(СсылкаОбъект, Строка(СсылкаОбъект));
МассивОбъектов = Новый Массив;
ТабДок=ПолучитьНаСервереТабличныйДокумент(Идентификатор);
//Создаём новую коллекцию печатных форм
КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(Идентификатор);
//Добавляем в коллекцию сформированный табличный документ
КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДок;
//Устанавливаем параметры печати (при необходимости)
КоллекцияПечатныхФорм[0].Экземпляров = 1;
КоллекцияПечатныхФорм[0].СинонимМакета = Идентификатор; //Так будет выглядеть имя файла при сохранении в файл из формы "Печать документов"
//Вывод через стандартную процедуру БСП
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, Неопределено, ЭтаФорма);
Другие разработки автора:
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.4.14.181
Вступайте в нашу телеграмм-группу Инфостарт