Как изменить порядок и поднять внешнюю печатную форму наверх в подменю Печать в 1С:УТ 11

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

При разработке внешних печатных форм (ВПФ) для конфигураций на базе «Библиотеки стандартных подсистем» (1С:Управление торговлей 11, ERP, КА 2, 1С:Бухгалтерия) разработчики часто сталкиваются с требованием пользователей разместить новую печатную форму в самом начале выпадающего списка кнопки Печать. Однако простая смена наименования или добавление префиксов (например, «ААА_...») не поднимает внешнюю обработку выше встроенных печатных форм документа. Разберем архитектурные причины такого поведения БСП и рассмотрим рабочие способы решения этой задачи.

Почему внешние печатные формы всегда оказываются внизу списка

Проанализируем механизм формирования выпадающего подменю Печать в БСП. Список доступных команд печати формируется в виде таблицы значений с помощью функции УправлениеПечатью.СоздатьКоллекциюКомандПечати(). У каждой зарегистрированной команды присутствуют два ключевых реквизита: числовой Порядок (числовое значение веса от 1 до 100) и строковое Представление.

Сортировка команд в выпадающем меню выполняется платформой в два строгих этапа:

  1. По возрастанию значения числового поля Порядок (чем меньше число, тем выше команда в списке).
  2. По алфавиту строкового поля Представление (алфавитная сортировка применяется исключительно между командами с одинаковым числовым значением поля Порядок).

В модулях менеджеров объектов конфигурации (например, документа РеализацияТоваровУслуг) разработчики типовых решений задают стандартным печатным формам приоритет КомандаПечати.Порядок = 10 (или в диапазоне от 1 до 20). При подключении же внешней обработки через подсистему «Дополнительные отчеты и обработки» БСП принудительно и автоматически назначает командам ВПФ значение Порядок = 50.

Важно: в экспортной функции СведенияОВнешнейОбработке() таблицы команд не предусмотрена колонка Порядок — даже если добавить её вручную, подсистема БСП перезапишет значение на дефолтное (50). По этой причине любая внешняя обработка всегда будет отображаться ниже типовых встроенных команд документа.

Способ 1. Программная корректировка порядка через расширение конфигурации

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

Подключим в расширение общий модуль УправлениеПечатьюПереопределяемый и перехватим процедуру ПередДобавлениемКомандПечати с помощью аннотации &После:


&После("ПередДобавлениемКомандПечати")
Процедура Расш1_ПередДобавлениемКомандПечати(ОбъектыНазначения, КомандыПечати)
    
    Для Каждого СтрокаКоманды Из КомандыПечати Цикл
        // Ищем внешнюю печатную форму по идентификатору команды или части представления
        Если СтрокаКоманды.Идентификатор = "МояВнешняяПечатнаяФорма" Тогда
            // Устанавливаем минимальный вес, чтобы поднять команду на самый верх
            СтрокаКоманды.Порядок = 1;
        КонецЕсли;
    КонецЦикла;

КонецПроцедуры

Благодаря этому перехвату команда внешней печатной формы получит значение Порядок = 1 и выстроится на первом месте в меню печати перед встроенными формами конфигурации.

Способ 2. Перенос логики печатной формы в расширение конфигурации

Если нет жесткой необходимости использовать именно файл внешней обработки .epf через справочник «Дополнительные отчеты и обработки», можно внедрить печатную форму напрямую в расширение:

  1. Добавляем документ (например, РеализацияТоваровУслуг) в расширение конфигурации.
  2. В модуле менеджера расширяемого документа через аннотацию &После("ДобавитьКомандыПечати") описываем добавление новой команды печати.
  3. В свойствах создаваемой команды сразу указываем КомандаПечати.Порядок = 1.

Этот подход делает печатную форму полноправным типовым объектом метаданных и гарантирует ее стабильное положение в интерфейсе.

Способ 3. Вынесение отдельной кнопки на командную панель формы

Если пользователям требуется максимальная скорость работы с конкретной формой, постоянное открытие подменю Печать и поиск пункта даже в начале списка создают лишние клики. Разберем альтернативное решение:

  1. В расширении конфигурации открываем форму документа или форму списка.
  2. Создаем отдельную команду формы с понятным заголовком и пиктограммой.
  3. Помещаем кнопку команды непосредственно на командную панель документа (или в группу «Важное»).
  4. В обработчике команды вызываем сформированную печатную форму в один клик.

Способ 4. Отключение неиспользуемых печатных форм в пользовательском режиме

Если задача заключается не только в подъеме формы, но и в расчистке перегруженного интерфейса от лишних бланков, воспользуемся штатным функционалом БСП:

  1. Перейдем в раздел НСИ и администрирование -> Печатные формы, отчеты и обработки -> Подменю "Печать".
  2. Найдем документ Реализация товаров и услуг.
  3. Снимем флажки видимости с тех типовых бланков, которые не используются сотрудниками в повседневной работе.

Штатная настройка видимости не меняет числовой Порядок напрямую, однако скрытие лишних команд сокращает список и делает нужные внешние формы легко доступными без скроллинга меню.

← На главную