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