При разработке и подключении внешней печатной формы (ВПФ) в конфигурациях на базе Библиотеки стандартных подсистем (включая 1С:Управление торговлей 11, 1С:ERP, 1С:Комплексная автоматизация) разработчики и администраторы часто сталкиваются с вопросом: почему добавленная обработка не появляется в списке формы «Макеты печатных форм» (или «Настройка печати объектов»)?
Разберем архитектурные причины такого поведения платформы и детально рассмотрим, как устроена регистрация внешних печатных форм и где искать добавленные команды печати.
Проанализируем структуру подсистемы печати. Список «Макеты печатных форм» в пользовательском интерфейсе предназначен исключительно для встроенных в метаданные макетов конфигурации. Он позволяет пользователю переопределить типовой табличный документ без снятия конфигурации с поддержки.
Внешняя печатная форма функционирует иначе:
ДополнительныеОтчетыИОбработки..epf.Следовательно, отсутствие внешней печатной формы в данном списке является штатным поведением системы, а не ошибкой.
Чтобы внешняя печатная форма появилась в подменю «Печать» целевого документа, выясним правильность заполнения экспортной функции СведенияОВнешнейОбработке() в модуле объекта внешней обработки.
Рассмотрим пример правильного описания структуры регистрации:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
// Указываем точное полное имя метаданных
ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказКлиента");
// Добавляем команду печати
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Внешняя печатная форма (счет)";
НоваяКоманда.Идентификатор = "ВнешняяПечатнаяФормаСчет";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
Разберем ключевые параметры, на которые необходимо обратить внимание:
ВидОбработкиПечатнаяФорма() или строке "ПечатнаяФорма"."Документ.ЗаказКлиента", а не просто "ЗаказКлиента").Использование должно быть указано ТипКомандыВызовСерверногоМетода() (либо клиентский метод при соответствующей логике).
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// Логика формирования табличного документа
КонецПроцедуры
Если программный код функции регистрации корректен, проверим настройки самой карточки в справочнике «Дополнительные отчеты и обработки» (раздел НСИ и администрирование — Печатные формы, отчеты и обработки):
ДобавлениеИзменениеДополнительныхОтчетовИОбработок или ИспользованиеДополнительныхОтчетовИОбработок.Если после внесения изменений в файл .epf команда не появилась в документах, выполним следующие действия: