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

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

Как открыть модуль макета в 1С

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

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

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

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

Где находится модуль макета и зачем он нужен

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

Типичные места, где встречается модуль макета: макеты печатных форм у документов и справочников, макеты СКД у отчётов, макеты в составе внешних обработок и отчётов, макеты в подсистеме дополнительных отчётов и обработок (БСП). Если при нажатии «Печать» система выдаёт ошибку в строке модуля макета — значит, нужно открыть именно его и посмотреть код.

Как открыть модуль макета в конфигураторе

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

Найдите объект, которому принадлежит макет: документ, справочник, отчёт или обработку. Раскройте его ветку — внутри будет узел «Макеты». Дважды щёлкните по нужному макету: откроется редактор. Если у макета есть модуль, в редакторе появится вкладка «Модуль» либо команда перехода к коду.

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

Порядок действий в конфигураторе
  1. 1
    Откройте конфигуратор и базу с нужной конфигурацией
  2. 2
    В дереве конфигурации найдите объект и раскройте узел «Макеты»
  3. 3
    Дважды щёлкните по макету — откроется редактор
  4. 4
    Перейдите на вкладку «Модуль» или выберите «Открыть модуль» в контекстном меню
  5. 5
    Проверьте, что код относится к нужному макету, по имени в заголовке окна

Как открыть модуль макета во внешней обработке или отчёте

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

Раскройте узел «Макеты» в структуре внешней обработки, выберите нужный макет и откройте его. Если макет содержит модуль, он будет доступен через вкладку «Модуль» в редакторе либо через контекстное меню. Для макетов СКД код чаще всего находится не в макете, а в модуле объекта отчёта — проверьте оба места.

Если обработка подключена через механизм «Дополнительные отчеты и обработки» (БСП), сначала выгрузите её в файл: в режиме 1С:Предприятие откройте справочник дополнительных отчётов, найдите нужную обработку и сохраните её на диск. Затем откройте файл в конфигураторе и работайте с макетом как обычно.

Открытие модуля макета из режима 1С:Предприятие

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

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

Как понять, какой именно макет нужно открывать

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

Быстрый способ проверки — поиск по конфигурации: в конфигураторе нажмите Ctrl+Shift+F и найдите имя макета или фрагмент текста из ошибки. Если ошибка указывает на строку модуля, посмотрите имя метаданного в сообщении — оно подскажет, где искать макет.

Маршрут решения

Как выбрать действие

Макет принадлежит типовой конфигурации и не изменялсяОткрывайте модуль макета в конфигураторе через дерево конфигурации
Используется внешняя печатная форма или обработкаВыгрузите файл и откройте его в конфигураторе, затем перейдите к макету
Макет переопределён пользовательским в режиме предприятияПроверьте список пользовательских макетов печатных форм в администрировании
Ошибка ссылается на модуль, но макет найти не удаётсяВыполните глобальный поиск по имени макета и тексту ошибки в конфигураторе

Частые ошибки при открытии модуля макета

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

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

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

Типичные ошибки
01
Искать код в табличном макете — у него нет модуля, логика в модуле менеджера или обработки
02
Править макет в конфигураторе, когда база использует пользовательский макет из режима предприятия
03
Снимать конфигурацию с поддержки ради мелкой правки макета — это усложнит обновления
04
Редактировать внешнюю обработку в старой копии файла — изменения не попадут в базу

Как проверить результат после правки модуля макета

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

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

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

Как проверить результат

Заголовок окна редактора
Норма

Указано имя нужного макета и объекта

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

Открыт модуль другого объекта или общий модуль

Формирование печатной формы
Норма

Документ печатается без ошибок, данные корректны

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

Ошибка выполнения с указанием строки модуля

Поведение после обновления конфигурации
Норма

Изменения видны всем пользователям

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

Пользователи видят старый результат — не обновлена база или используется пользовательский макет

Ограничения и меры предосторожности

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

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

FAQ

Почему у моего макета нет вкладки «Модуль»?

Не все типы макетов имеют собственный модуль. У макетов типа «Табличный документ», «HTML-документ» и ряда других кода нет — логика их заполнения находится в модуле объекта, модуле менеджера или в модуле внешней обработки. Проверьте тип макета в палитре свойств.

Как открыть модуль макета, если конфигурация закрыта для изменения?

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

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

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

Как найти макет, если известен только текст ошибки?

Используйте глобальный поиск в конфигураторе (Ctrl+Shift+F) по фрагменту текста ошибки или имени макета из сообщения платформы. Также полезен поиск ссылки на макет через «Поиск ссылок в объектах» в контекстном меню макета.

Изменил модуль макета, но печатная форма не изменилась. В чём причина?

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

Чем отличается модуль макета от модуля объекта?

Модуль объекта относится ко всему объекту (документу, обработке) и содержит его общую логику. Модуль макета привязан к конкретному макету и обычно содержит только код, связанный с его формированием и обработкой.