При доработке типовых конфигураций (например, «Зарплата и управление персоналом», редакция 3.1) разработчики часто сталкиваются с необходимостью изменить макет печатной формы. Однако добавление макета из типовой обработки (например, ПечатьКадровыхПриказовРасширенная) в расширение конфигурации может приводить к критическому сбою: при попытке формирования печатной формы система аварийно завершает работу с сообщением «Прекращена работа программы 1С».
Рассмотрим подробнее причины возникновения этой проблемы и разберем проверенные способы её решения.
Проанализируем ситуации, при которых 1С:Предприятие вылетает с ошибкой:
rphost или тонкий клиент завершается со сбоем.Основная причина падения программы — зафиксированный баг платформы. Начиная с версии 8.3.10.2639 (и в более свежих релизах, таких как 8.3.10.2667 и выше), поведение платформы при работе с расширяемыми макетами обработок было полностью исправлено и стабилизировано.
Если у вас установлена устаревшая версия платформы, разберем по шагам порядок действий:
Если быстро обновить платформу нет возможности, проанализируем рабочий вариант решения без падения системы. Вместо прямого заимствования типового макета создается новый макет в расширении, а вызов перенаправляется с помощью директивы &Вместо.
Разберем алгоритм реализации по шагам:
ПечатьКадровыхПриказовРасширенная) в расширение конфигурации.ПФ_MXL_Т11) и дайте ему уникальное имя, например ПФ_MXL_Т11_МойВариант.&Вместо.ПФ_MXL_Т11_МойВариант вместо стандартного.Пример перехвата процедуры формирования печатной формы в модуле менеджера обработки:
&Вместо("Печать")
Процедура Расш1_Печать(МассивОбъектов, ПараметрыПечати, КомплектПечати, ОбъектыПечати, КоллекцияПечатныхФорм)
// Вызываем нужный макет из расширения по новому имени
Макет = ПолучитьМакет("ПФ_MXL_Т11_МойВариант");
// Далее следует алгоритм заполнения макета
КонецПроцедуры
В случаях, когда платформа падает из-за конфликта механизмов слияния макетов, можно явно отключить автоматическое объединение табличных документов:
Если задачи по изменению печатной формы незначительны, рассмотрим варианты доработки без использования расширений конфигурации:
Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм. Найдите нужную форму, нажмите кнопку «Изменить» и внесите необходимые правки текста или оформления..epf) и подключите её через механизм дополнительных отчетов и обработок. Этот подход полностью исключает риск падения платформы из-за расширений и не создает проблем при последующих обновлениях конфигурации.