Разработка и Конфигурация · 11 мин
Где находятся печатные формы в конфигураторе 1С
Разбираем, где в конфигураторе 1С хранятся печатные формы документов и справочников: макеты, табличные документы, внешние печатные формы и способы их найти.
Печатная форма в 1С — это не отдельный файл, а связка из макета (шаблона) и программного кода, который заполняет его данными. Поэтому искать её нужно в нескольких местах конфигуратора: в ветке «Макеты» конкретного объекта, в общих макетах, в модуле менеджера объекта и в подсистеме печати, если конфигурация построена на Библиотеке стандартных подсистем (БСП).
Конкретное расположение зависит от того, о какой конфигурации идёт речь. В типовых решениях («Управление торговлей», «Бухгалтерия предприятия», «Зарплата и управление персоналом») печать устроена по-разному: где-то макеты лежат прямо в объекте, где-то — вынесены в общие макеты, а логика формирования собрана в общих модулях подсистемы «Печать».
Ниже разобраны все основные места хранения печатных форм, способы быстро найти нужную форму по её названию и варианты для случаев, когда печать реализована через внешние обработки.
Макеты внутри объекта: документы и справочники
Самый частый вариант — макет печатной формы хранится прямо в структуре объекта, для которого она предназначена. Откройте конфигуратор, в дереве конфигурации разверните ветку «Документы» (или «Справочники»), найдите нужный объект и раскройте его. Внутри будет подветка «Макеты» — именно там лежат табличные документы, из которых формируется печать.
Например, у документа «Реализация товаров и услуг» в типовой «Управление торговлей» в макетах можно найти «МакетТОРГ12», «МакетСчетФактура» и другие. Двойной клик по макету открывает редактор табличного документа: там видны области (шапка, строка, подвал), ячейки с параметрами в фигурных скобках и оформление.
Обратите внимание: один объект может содержать несколько макетов, а один и тот же макет иногда используется разными командами печати. Изменение макета затронет все сценарии, которые его вызывают, поэтому перед правкой стоит проверить, откуда он запрашивается.
- 1Откройте конфигуратор и разверните дерево конфигурации
- 2Найдите нужный объект в ветке «Документы» или «Справочники»
- 3Раскройте объект и перейдите в подветку «Макеты»
- 4Откройте нужный макет двойным кликом и проверьте его области и параметры
Общие макеты конфигурации
Если форма используется несколькими объектами или разработчики вынесли шаблоны в общее хранилище, макет лежит в ветке «Общие → Макеты» дерева конфигурации. Там обычно собираются бланки, общие для разных документов: универсальные передаточные документы, доверенности, типовые договоры.
Признак того, что печатная форма берётся из общих макетов, — в коде встречается конструкция вида ПолучитьОбщийМакет("ИмяМакета") или УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ИмяМакета"). Если же макет объектный, обращение выглядит как Документы.ИмяДокумента.ПолучитьМакет(...) или ссылка на макет вида «Документ.Имя.ИмяМакета».
Чтобы понять, какой из двух вариантов используется в вашей конфигурации, достаточно посмотреть на строку получения макета в коде формирования печатной формы — об этом подробнее в разделе про поиск по коду.
Модуль менеджера и процедуры печати
Макет — это только шаблон. Логика, которая заполняет его данными, находится в коде. В классической схеме процедура печати размещается в модуле менеджера объекта: откройте палитру свойств объекта и нажмите «Модуль менеджера», либо выберите соответствующий пункт в контекстном меню объекта.
Ищите процедуры с говорящими именами: «Печать», «ПечатьДокумента», «ДобавитьКомандыПечати», «СформироватьПечатныеФормы». В конфигурациях на БСП обязательна процедура ДобавитьКомандыПечати — она регистрирует команды печати объекта, а формирование выполняет процедура Печать с параметром, определяющим, какая именно форма запрошена.
Подсистема печати БСП в типовых конфигурациях
В современных типовых решениях печать централизована через подсистему «Печать» Библиотеки стандартных подсистем. Команды печати объявляются в модуле менеджера объекта, а общая механика — формирование табличного документа, вывод на предпросмотр, отправка на принтер и по почте — реализована в общих модулях «УправлениеПечатью», «УправлениеПечатьюКлиент» и смежных.
Чтобы найти, где лежит конкретная форма, откройте модуль менеджера нужного объекта и найдите процедуру ДобавитьКомандыПечати. В ней видны идентификаторы команд — например, «ТОРГ12» или «СчетНаОплату». Затем в процедуре Печать по этому идентификатору находится ветка кода, которая получает макет и заполняет его. Именно из этой ветки видно полный путь к макету: объектный он или общий.
Дополнительно часть форм может формироваться не из макетов конфигурации, а из макетов, хранящихся в данных: например, печатные формы договоров и офисные документы из подсистемы «Шаблоны печатных форм» хранятся в информационной базе, а не в конфигураторе. Их редактируют в режиме «Предприятие» через администрирование печатных форм.
Подходит для форм, привязанных к одному документу
Формы, общие для нескольких объектов
Логика формирования и регистрация команд
Договоры и офисные шаблоны хранятся в базе, не в конфигураторе
Как быстро найти форму глобальным поиском
Когда структура конфигурации незнакома, быстрее всего работает глобальный поиск по конфигурации — комбинация Ctrl+Shift+F в конфигураторе. Искать можно по нескольким зацепкам.
Первая зацепка — представление команды печати, которое пользователь видит в кнопке «Печать» режима «Предприятие». Например, если в меню есть пункт «Счёт на оплату», ищите эту строку в модулях: она встретится в процедуре регистрации команд печати. Вторая зацепка — идентификатор макета: поиск по слову «Макет» в модуле менеджера объекта покажет все обращения к шаблонам. Третья — имя процедуры формирования, если оно известно из стека вызовов при отладке.
Поиск лучше выполнять с ограничением по областям: сначала по модулям конкретного объекта, затем по общим модулям. Полный поиск по всей конфигурации в крупных решениях занимает заметное время и выдаёт много лишних совпадений.
- 1В режиме «Предприятие» откройте документ и посмотрите точное название нужной кнопки печати
- 2В конфигураторе нажмите Ctrl+Shift+F и введите это название в кавычках
- 3Среди результатов найдите процедуру ДобавитьКомандыПечати в модуле менеджера объекта
- 4По идентификатору команды перейдите к ветке формирования и найдите строку получения макета
- 5Откройте найденный макет и убедитесь, что его содержимое совпадает с печатаемой формой
Внешние печатные формы и расширения
Не всякая печатная форма живёт в конфигураторе. В типовых конфигурациях поддерживаются внешние печатные формы — файлы обработок (.epf), которые подключаются в режиме «Предприятие» через справочник дополнительных отчетов и обработок. Такие формы в дереве конфигурации отсутствуют: их макет и код находятся внутри файла обработки, который открывается через «Файл → Открыть» в конфигураторе.
Признак внешней формы: в меню печати она появляется после стандартных команд, часто с пометкой из подсистемы дополнительных отчетов, а глобальный поиск по её названию в конфигурации ничего не находит. Чтобы понять, откуда взялась такая кнопка, откройте в режиме «Предприятие» список дополнительных отчетов и обработок и найдите там зарегистрированную печатную форму.
Третий вариант — расширения конфигурации. Если печать доработана расширением, макет и код находятся в дереве расширения, которое открывается через «Конфигурация → Расширения конфигурации». Поиск по основной конфигурации такие доработки не покажет.
Где искать форму в вашем случае
Как проверить результат и типичные ошибки
После того как макет найден и открыт, убедитесь, что это именно та форма. Самый надёжный способ — сравнить области макета с распечатанным документом: названия областей (шапка, строка, подвал), набор полей и их порядок должны совпадать. Если в форме есть уникальная надпись, поищите её текст в макете через Ctrl+F.
Если вы вносили правки, проверку делайте на копии базы: сформируйте печатную форму документа с заполненными табличными частями, проверьте перенос строк, итоги и нумерацию страниц. Особое внимание — на документы с большим числом строк: ошибки в областях повторяющихся строк проявляются только на многострочных документах.
Ещё одна частая ситуация: пользователь просит «поправить форму», а нужная форма оказывается внешней обработкой, подключённой через дополнительные отчеты. Правка макета в конфигураторе в этом случае ничего не даст — изменять нужно файл обработки и перезагружать его в справочник.
Что важно запомнить
Печатная форма в 1С состоит из макета и кода заполнения. Макеты ищите в ветке «Макеты» объекта и в «Общие → Макеты», код — в модуле менеджера объекта и общих модулях подсистемы печати. Быстрый путь — глобальный поиск по названию команды печати. Если форма не находится в конфигурации, проверьте внешние обработки, расширения и шаблоны, хранящиеся в данных базы. Правки выполняйте на копии и проверяйте на многострочных документах.
Частые вопросы
Почему в ветке «Макеты» документа пусто, хотя печать работает?
Значит, макет вынесен в общие макеты, берётся из подсистемы печати БСП, подключён как внешняя печатная форма или добавлен расширением. Откройте модуль менеджера объекта и посмотрите, какой макет запрашивает код формирования печатной формы.
Как понять, какой именно макет использует кнопка печати?
Найдите в модуле менеджера объекта процедуру регистрации команд печати, определите идентификатор нужной команды, затем в процедуре формирования найдите ветку с этим идентификатором — там будет строка получения макета с его полным именем.
Можно ли изменить печатную форму без снятия конфигурации с поддержки?
Да. Основные способы — внешняя печатная форма (файл обработки, подключаемый в режиме «Предприятие») или расширение конфигурации, в которое добавляют изменённый макет и переопределяют процедуры печати. Оба варианта сохраняют типовую конфигурацию нетронутой.
Где хранятся печатные формы договоров, которые редактируют сами пользователи?
Они хранятся не в конфигураторе, а в данных информационной базы — в подсистеме шаблонов печатных форм. Редактируются в режиме «Предприятие» через раздел администрирования печатных форм, обычно в формате офисного документа.
Изменил макет, но на печать выводится старый вариант. В чём причина?
Чаще всего документ печатается через внешнюю печатную форму или расширение, которые перекрывают типовую команду. Также проверьте, что вы обновили конфигурацию базы данных после сохранения макета и что пользователь работает в той же базе.
Как найти все печатные формы конкретного документа?
Откройте процедуру регистрации команд печати в модуле менеджера документа — там перечислены все команды с их представлениями. Дополнительно проверьте подключённые внешние печатные формы для этого типа объекта в справочнике дополнительных отчетов и обработок.