Почему пропала команда печати в документе 1С и как вернуть её при использовании БСП 2.4?

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

При обновлении конфигурации на свежие релизы с БСП версии 2.4 и выше программисты часто сталкиваются с ситуацией, когда у самописного документа исчезает кнопка Печать. В предыдущих версиях библиотек было достаточно добавить экспортную процедуру ДобавитьКомандыПечати в модуль менеджера документа. Однако в БСП 2.4+ подход к формированию командной панели изменился.

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

Выясняем причину: изменения в подсистеме печати БСП 2.4+

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

Для этого в конфигурации используется общий модуль УправлениеПечатьюПереопределяемый и его процедура ПриОпределенииОбъектовСКомандамиПечати. Если объект метаданных не добавлен в состав этого списка, платформа не будет запрашивать команды печати из модуля менеджера документа, и кнопка на форме просто не появится.

Шаг 1. Проверка модуля менеджера документа

Для начала убедимся, что в самом документе прописаны необходимые стандартные процедуры. Разместим в модуле менеджера документа следующую структуру экспортных методов:


#Область Печать

// Заполняет список команд печати.
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "ПечатьPDF417";
    КомандаПечати.Представление = НСтр("ru = 'PDF417'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
    
КонецПроцедуры

// Сформировать печатные формы объектов.
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    // Логика формирования табличного документа
    
КонецПроцедуры

#КонецОбласти

Если код в модуле менеджера присутствует, но команда все равно не выводится на форму, перейдем к регистрации документа в подсистеме печати.

Шаг 2. Регистрация документа через расширение конфигурации

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

  1. Создадим новое расширение конфигурации или откроем существующее.
  2. Добавим в расширение общий модуль УправлениеПечатьюПереопределяемый.
  3. В модуле расширения пропишем аннотацию &Перед для процедуры ПриОпределенииОбъектовСКомандамиПечати.

Рассмотрим пример кода в модуле расширения:


&Перед("ПриОпределенииОбъектовСКомандамиПечати")
Процедура Расш1_ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов)
    
    СписокОбъектов.Добавить(Документы._ЗапросНаПолучениеШтрихкодаЕГАИС);
    
КонецПроцедуры

Важный момент: проверьте режим совместимости расширения конфигурации. Если режим совместимости расширения установлен неправильно или отличается от конфигурации-источника, изменения могут не примениться в сеансе 1С:Предприятия.

Шаг 3. Проверка определяемых типов и формы документа

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

Подводим итоги

Мы проанализировали механизм работы команд печати в БСП 2.4+. Чтобы вернуть пропавшую кнопку печати для самописного документа, достаточно выполнить три основных шага: проверить наличие стандартизированных процедур в модуле менеджера, зарегистрировать объект в УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати с помощью расширения и убедиться в правильности настроек формы и режима совместимости.

← На главную