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