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