В конфигурациях 1С на платформе «1С:Предприятие 8.3» (включая специализированные решения, такие как «Медицина. Больничная аптека», «Управление торговлей», «ERP» и другие) механизмы печати построены на базе Библиотеки Стандартных Подсистем (БСП). Часто разработчики и администраторы сталкиваются с ситуацией, когда добавленные печатные формы или макеты не выходят в выпадающем меню кнопки «Печать», не отображаются в административном списке макетов или пропадают у пользователей с неполными правами. Разберем по шагам, где именно формируется список команд печати и как исправить возникающие неполадки.
Рассмотрим, как подсистема печати БСП собирает доступные варианты печатных форм для конкретного документа или справочника. Выпадающий список команд кнопки «Печать» в командной панели управляемой формы формируется программно при открытии формы объекта.
Проанализируем структуру кода. Вся регистрация встроенных команд печати выполняется в модуле менеджера соответствующего объекта метаданных (например, документа или справочника). В нем должна быть экспортируемая процедура ДобавитьКомандыПечати.
Посмотрим на пример заполнения такой процедуры в модуле менеджера:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Добавление пользовательской печатной формы
КомандаПечать = КомандыПечати.Добавить();
КомандаПечать.Идентификатор = "МояПечатнаяФорма";
КомандаПечать.Представление = НСтр("ru = 'Моя печатная форма (нетиповая)'");
КомандаПечать.ПроверкаПраваДоступа = Ложь;
КонецПроцедуры
Если вам необходимо добавить новую печатную форму во встроенный механизм объекта, именно в этой процедуре необходимо прописать параметры добавления новой команды в коллекцию КомандыПечати.
Выясним причину, почему при добавлении макета прямо в конфигуратор он может не отображаться в режиме предприятия по адресу Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм.
Разберем основные факторы, влияющие на индексацию макетов подсистемой БСП:
ПФ_MXL_ (например, ПФ_MXL_МояФорма). Для текстовых документов Word или OpenOffice применяются префиксы ПФ_DOCX_ и ПФ_ODT_. Если макет назван произвольно, механизм БСП не включит его в список редактируемых макетов предприятия.ИдентификаторыОбъектовМетаданных. Если в конфигурацию внесены новые объекты или макеты, но данный справочник не был обновлен в режиме предприятия, подсистема не сможет связать макет с метаданными.Рассмотрим распространенную ситуацию: администратор базы видит все команды печати, но на сервере (в клиент-серверном режиме или RDP) у рядового пользователя с ограниченными правами нетиповые печатные формы исчезают из выпадающего меню. При этом копирование базы в файловый вариант локально может временно скрывать проблему.
Проанализируем, почему это происходит:
ИдентификаторыОбъектовМетаданных. Для администраторов проверка прав БСП отключается, поэтому они видят полный список. Если на рабочем сервере обновление этого справочника не было завершено, пользователям с ограниченными правами команды блокируются.ДобавитьКомандыПечати при заполнении команды может быть включен флаг проверки прав. Если печатная форма обращается к дополнительным справочникам или регистрам, на которые у пользователя нет прав просмотра (включая ограничения RLS), подсистема печати скрывает команду из меню.Пошагово разберем действия для исправления работы подсистемы печати:
ПФ_MXL_ИмяМакета./C ОбновитьВерсиюИБ или через обработку обновления данных конфигурации.
ОбновитьПовторноИспользуемыеЗначения();
Также рекомендуется перезапустить службу сервера 1С или завершить активные сеансы пользователей в терминале.ДобавитьКомандыПечати установим свойство КомандаПечать.ПроверкаПраваДоступа = Ложь;, если команда должна быть доступна всем пользователям, имеющим право на проведение или просмотр документа. Если форма все равно не появляется, проверим Журнал регистрации с отбором по событию «Отказ в доступе» под сеансом проблемного пользователя.