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