К статье
Практический материал

Разработка и Конфигурация · 12 мин

Что такое конструктор печати в 1С и как с ним работать

Конструктор печати в 1С — встроенный мастер создания печатных форм. Разбираем, где он находится, как создать макет и процедуру печати, типичные ошибки и ограничения.

Конструктор печати в 1С — это встроенный в конфигуратор мастер, который автоматически создаёт заготовку печатной формы для объекта конфигурации: справочника, документа или регистра. Вместо того чтобы вручную рисовать макет и писать код вывода, разработчик запускает конструктор, отмечает нужные реквизиты — и получает готовый каркас: макет табличного документа и процедуру печати в модуле.

Инструмент экономит время при типовых задачах: напечатать карточку контрагента, акт выполненных работ, внутреннюю накладную. Конструктор не заменяет ручную разработку сложных форм, но даёт рабочую основу, которую потом дорабатывают под требования организации — добавляют логотип, условия, итоговые строки.

Мастер доступен в любой конфигурации на платформе 1С:Предприятие 8: и в типовых решениях («Управление торговлей», «Бухгалтерия предприятия», «Зарплата и управление персоналом»), и в самописных. Для работы нужны права на изменение конфигурации, а в типовых решениях — понимание, что прямая правка объектов влияет на обновление.

Где находится конструктор печати и когда его использовать

Запустить конструктор можно двумя способами. Первый — через палитру свойств объекта: откройте нужный документ или справочник в дереве конфигурации, вызовите палитру свойств (правый клик → «Свойства») и внизу найдите ссылку «Конструктор печати» в разделе конструкторов. Второй способ — через меню «Конструкторы» главного меню конфигуратора, когда объект выделен в дереве.

Конструктор уместен, когда нужна простая форма «шапка плюс табличная часть»: договор, счёт на оплату, служебная записка с реквизитами документа. Он менее полезен для форм со сложной логикой — например, когда данные собираются из нескольких связанных объектов, группируются по условиям или форма должна точно соответствовать утверждённому бланку. В таких случаях конструктор используют только как стартовую точку или отказываются от него вовсе.

Важно понимать: конструктор — инструмент разработчика, а не пользователя. Работа ведётся в конфигураторе, результат применяется после обновления конфигурации базы данных. Пользователь в режиме «Предприятие» видит только итоговую кнопку печати.

Как работает мастер: пошаговый процесс

Работа конструктора построена как последовательность диалоговых окон. На первом шаге вы задаёте имя процедуры печати — оно станет именем команды и процедуры в модуле. Далее выбираете реквизиты шапки: переносите из левого списка (все реквизиты объекта) в правый те, что должны попасть в форму. Порядок в правом списке определяет порядок строк в макете.

Если у объекта есть табличные части, следующий шаг предложит выбрать табличную часть и отметить её реквизиты — они лягут в строки таблицы макета. Затем аналогично выбираются реквизиты подвала: итоги, ответственные лица, подписи. На финальном шаге конструктор спрашивает, что создать: макет, процедуру в модуле менеджера или формы, команду печати.

После нажатия «ОК» конструктор генерирует макет с областями и параметрами, а также код процедуры, который последовательно получает области макета, заполняет параметры данными и выводит их в табличный документ. Этот код уже работоспособен — форму можно сформировать и посмотреть сразу после обновления конфигурации.

Порядок создания печатной формы конструктором
  1. 1
    Откройте конфигуратор и найдите нужный объект (документ или справочник) в дереве конфигурации
  2. 2
    Вызовите палитру свойств объекта и запустите «Конструктор печати»
  3. 3
    Задайте имя процедуры печати, например ПечатьАкта
  4. 4
    Перенесите нужные реквизиты шапки в правый список, выстроив порядок
  5. 5
    Выберите табличную часть и отметьте её реквизиты, если таблица нужна
  6. 6
    Отметьте реквизиты подвала: итоги, подписи, должности
  7. 7
    Подтвердите создание макета и процедуры, обновите конфигурацию базы данных (F7)
  8. 8
    Откройте режим «Предприятие», сформируйте печатную форму и проверьте результат

Что именно создаёт конструктор

Результат работы мастера — два связанных элемента. Первый — макет типа «Табличный документ». В нём конструктор создаёт области: «Шапка» с параметрами реквизитов, «Строка» (или «ШапкаТаблицы» и «Строка») для табличной части и «Подвал». Статичный текст подписей и имена параметров формируются автоматически на основе синонимов реквизитов.

Второй элемент — программный код. В зависимости от выбора на последнем шаге процедура размещается в модуле менеджера объекта (типовой подход для управляемых форм) или в модуле объекта/формы. Код следует стандартному шаблону: создание табличного документа, получение макета, цикл по выборке данных, заполнение параметров областей и вывод областей в результирующий документ.

Дополнительно конструктор может создать команду печати, которая появится в интерфейсе объекта. В типовых конфигурациях на БСП (Библиотека стандартных подсистем) печатные формы обычно подключаются через механизм дополнительных печатных форм или процедуру «ДобавитьКомандыПечати» — там сгенерированный код придётся встроить в существующую структуру, а не просто положить в модуль.

Доработка сгенерированной формы

Сгенерированная форма — каркас, а не конечный продукт. Типовые доработки: изменить шрифты и границы ячеек в макете, добавить логотип (картинку вставляют в макет или подгружают программно), переименовать подписи, добавить вычисляемые поля вроде суммы прописью. Всё это делается прямо в редакторе макета и в коде процедуры.

Частая задача — условный вывод. Например, показывать блок «Скидка» только если она есть. Для этого в макете создают отдельную область и в коде выводят её по условию «Если». Другой пример — нумерация строк табличной части: в цикле обхода строк заводят счётчик и присваивают его параметру области перед выводом.

При доработке кода сохраняйте структуру сгенерированного шаблона: получение области, заполнение параметров, вывод. Нарушение порядка — например, попытка обратиться к параметру, которого нет в области макета, — приводит к ошибке выполнения. Если переименовали параметр в макете, обязательно переименуйте его и в коде.

Типичные ошибки при работе с конструктором печати
01
Переименовали параметр в макете, но забыли изменить код — при формировании возникает ошибка обращения к параметру
02
Изменили конфигурацию, но не обновили конфигурацию базы данных — кнопка печати не появляется или работает старый вариант
03
Правят типовой объект напрямую вместо расширения или внешней печатной формы — при обновлении конфигурации доработки теряются или требуют ручного сопоставления
04
Выводят табличную часть без проверки на пустоту — получают форму с пустой таблицей и висящими итогами
05
Добавляют реквизиты в макет после генерации, но не добавляют их заполнение в коде — на печати пустые места

Ограничения конструктора и альтернативные способы

Конструктор не умеет строить сложные запросы: он работает только с реквизитами самого объекта и его табличных частей. Если данные нужно брать из связанных регистров, других документов или вычислять агрегаты, код придётся писать вручную — конструктор лишь даст оболочку процедуры.

Альтернативы конструктору: полностью ручное создание макета и кода (гибче, но медленнее), копирование существующей печатной формы как образца, использование внешних печатных форм формата .epf — их подключают без изменения конфигурации через «Дополнительные отчеты и обработки». Последний вариант — стандарт де-факто для доработки типовых решений.

Для печати по строгим утверждённым бланкам (форма ТОРГ-12, счёт-фактура) конструктор почти не применяют: такие макеты выверяют вручную до миллиметра. Здесь его роль сводится к генерации шаблона кода обхода данных.

Способы добавить печатную форму

Конструктор печати в конфигураторе

Быстро даёт рабочий каркас для собственных конфигураций и простых форм; требует прав на изменение и обновления базы

Ручная разработка макета и кода

Полный контроль над формой и логикой; подходит для сложных бланков, но занимает больше времени

Внешняя печатная форма (.epf)

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

Расширение конфигурации

Доработка типовых объектов без снятия с поддержки; требует аккуратности при обновлении расширяемых объектов

Проверка результата и безопасная работа

Проверять форму нужно на реальных данных разных типов: документ с длинными наименованиями (не «ломается» ли верстка), документ без табличной части, документ с одной строкой и с несколькими десятками строк. Особое внимание — переносу на вторую страницу: конструктор не настраивает повторение шапки таблицы на новых страницах, это делается вручную через свойства макета.

Перед любыми изменениями конфигурации делайте выгрузку информационной базы (dt) или хотя бы выгрузку конфигурации в файл. Это позволит откатиться, если доработка пойдёт не так. На рабочей базе обновление конфигурации выполняйте вне пиковой нагрузки: монопольный режим потребует завершения сеансов пользователей.

Если форма формируется, но данные пустые — проверьте, что в коде заполняются именно те параметры, что есть в макете, и что запрос или обращение к данным реально возвращает значения. Типичный приём отладки — вывести сформированный табличный документ на экран до настройки команды печати, вызвав процедуру из формы документа временной кнопкой.

Контрольные точки

Как проверить готовую печатную форму

Заполненность данных
Норма

Все параметры подставлены, нет пустых ячеек в местах, где данные есть в документе

Тревожный признак

Пустые поля при заполненном документе — расхождение имён параметров макета и кода

Табличная часть
Норма

Выводятся все строки, итоги сходятся с данными документа

Тревожный признак

Строки пропущены или дублируются — ошибка в цикле обхода

Многостраничная печать
Норма

Шапка таблицы повторяется на новых страницах, подвал на своём месте

Тревожный признак

Таблица продолжается без заголовков колонок

Поведение в типовой конфигурации
Норма

Форма добавлена через расширение или внешний механизм, обновление проходит штатно

Тревожный признак

Форма встроена в типовой объект — обновление требует ручного сопоставления

Частые вопросы о конструкторе печати

Может ли обычный пользователь создать печатную форму без программиста?

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

Чем конструктор печати отличается от конструктора макета?

Конструктор печати создаёт и макет, и код процедуры вывода за один проход. Конструктор макета (доступен, например, из палитры свойств макета) помогает собрать только сам макет по схеме компоновки или запросу, без генерации процедуры печати. Для классической печатной формы документа удобнее конструктор печати.

Можно ли перезапустить конструктор для уже доработанной формы?

Можно, но конструктор создаст новый макет и новый код, затерев ручные доработки при совпадении имён. Правильный подход: после первичной генерации форму развивают только вручную — добавляя области в макет и строки в код. Конструктор используют один раз как стартовую точку.

Почему кнопка печати не появилась после работы конструктора?

Наиболее частые причины: конфигурация базы данных не обновлена (нужно нажать F7 в конфигураторе), команда печати не добавлена в командный интерфейс формы, либо в типовой конфигурации печатные формы регистрируются отдельно — через процедуру добавления команд печати в модуле менеджера объекта. Проверьте эти три точки последовательно.

Как добавить печатную форму, не трогая типовую конфигурацию?

Используйте механизм «Дополнительные отчеты и обработки»: создайте внешнюю обработку с экспортной процедурой печати по правилам БСП и подключите её в разделе администрирования. Альтернатива — расширение конфигурации, где добавляют свой макет и команду. Оба способа сохраняют возможность штатного обновления.

Подходит ли конструктор для печати этикеток и ценников?

Только частично. Этикетки требуют точной привязки к размерам листа, многократного повторения одной области и часто работы с оборудованием. Конструктор может сгенерировать базовый макет и цикл, но настройку размеров, повторов и вывод штрихкодов придётся делать вручную.

Итог

Что важно запомнить

Конструктор печати — мастер конфигуратора, генерирующий макет табличного документа и процедуру печати по выбранным реквизитам объекта. Он идеален как стартовая точка для простых форм, но результат почти всегда требует ручной доработки. В типовых конфигурациях печатные формы безопаснее добавлять через внешние обработки или расширения, а перед изменениями — делать резервную копию базы.