Почему внешняя печатная форма не отображается в настройке макетов печатных форм в 1С:УТ 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При разработке и подключении внешней печатной формы (ВПФ) в конфигурациях на базе Библиотеки стандартных подсистем (включая 1С:Управление торговлей 11, 1С:ERP, 1С:Комплексная автоматизация) разработчики и администраторы часто сталкиваются с вопросом: почему добавленная обработка не появляется в списке формы «Макеты печатных форм» (или «Настройка печати объектов»)?

Разберем архитектурные причины такого поведения платформы и детально рассмотрим, как устроена регистрация внешних печатных форм и где искать добавленные команды печати.

Архитектурное разделение подсистем печати в БСП

Проанализируем структуру подсистемы печати. Список «Макеты печатных форм» в пользовательском интерфейсе предназначен исключительно для встроенных в метаданные макетов конфигурации. Он позволяет пользователю переопределить типовой табличный документ без снятия конфигурации с поддержки.

Внешняя печатная форма функционирует иначе:

  1. Она хранится в виде бинарных данных внутри справочника ДополнительныеОтчетыИОбработки.
  2. Ее макеты запакованы внутри внешнего файла .epf.
  3. По этой причине ВПФ принципиально не попадает в список типовых макетов конфигурации — редактирование ее внешнего вида выполняется непосредственно в конфигураторе внутри самого файла обработки.

Следовательно, отсутствие внешней печатной формы в данном списке является штатным поведением системы, а не ошибкой.

Проверка функции регистрации ВПФ в модуле объекта

Чтобы внешняя печатная форма появилась в подменю «Печать» целевого документа, выясним правильность заполнения экспортной функции СведенияОВнешнейОбработке() в модуле объекта внешней обработки.

Рассмотрим пример правильного описания структуры регистрации:


Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    
    // Указываем точное полное имя метаданных
    ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказКлиента");
    
    // Добавляем команду печати
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = "Внешняя печатная форма (счет)";
    НоваяКоманда.Идентификатор = "ВнешняяПечатнаяФормаСчет";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    НоваяКоманда.Модификатор = "ПечатьMXL";
    
    Возврат ПараметрыРегистрации;

КонецФункции

Разберем ключевые параметры, на которые необходимо обратить внимание:

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

Настройка публикации и видимости в пользовательском режиме

Если программный код функции регистрации корректен, проверим настройки самой карточки в справочнике «Дополнительные отчеты и обработки» (раздел НСИ и администрирование — Печатные формы, отчеты и обработки):

  1. Статус публикации: убедимся, что в поле «Публикация» установлено значение «Используется». В статусе «Режим отладки» кнопка будет видна только пользователям с полными правами, а в статусе «Отключена» команда скрыта для всех.
  2. Настройка видимости и быстрого доступа: в табличной части команд обработки проверим колонку «Быстрый доступ». Добавим туда пользователей или группы, которым должна выводиться команда, иначе она может скрываться в подменю дополнительных команд.
  3. Права доступа: проверим, назначена ли пользователю роль ДобавлениеИзменениеДополнительныхОтчетовИОбработок или ИспользованиеДополнительныхОтчетовИОбработок.

Обновление обработки и сброс кэша интерфейса

Если после внесения изменений в файл .epf команда не появилась в документах, выполним следующие действия:

  1. В карточке обработки нажмем кнопку «Обновить из файла» и выберем актуальный файл. Без этого база данных продолжит исполнять старую версию двоичных данных.
  2. Перезапустим сеанс пользователя 1С:Предприятия, так как состав командных панелей и подменю «Печать» кэшируется при инициализации интерфейса клиентского приложения.
← На главную