Редактирование макетов в 1С: от печатной формы до кода
Содержание
Самое частое заблуждение: чтобы поправить печатную форму, нужно обязательно лезть в Конфигуратор и снимать типовую конфигурацию
с поддержки. Это не так. В типовых решениях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11) макет печатной формы можно изменить прямо в режиме 1С:Предприятие, не трогая конфигурацию.
Макеты редактируют на трёх уровнях: в самом 1С:Предприятии (печатные формы), в расширении конфигурации и в Конфигураторе. Выбор зависит от того, что именно нужно поправить и останется ли база на автоматическом обновлении.
Ниже разберём, где лежат макеты, какими они бывают и как изменить каждый тип, не сломав обновляемость базы.
Где хранятся макеты и какими они бывают
Макет — это шаблон, по которому формируется печатная форма, текстовый файл или другой вывод. Он принадлежит либо конкретному объекту (документу, справочнику, отчёту, обработке), либо лежит в ветке общих макетов.
В Конфигураторе макеты видны в дереве метаданных: разверните объект, например документ РеализацияТоваровУслуг, и найдите подветку Макеты. Общие макеты — в корне дерева, в ветке Общие → Общие макеты.
Типы макетов, которые встречаются чаще всего:
- 📄 Табличный документ — основной тип для печатных форм: накладные, счета, акты.
- 📝 Текстовый документ — для выгрузок в текстовый файл, сообщений, простых шаблонов.
- 📊 Схема компоновки данных (СКД) — макет отчёта на системе компоновки.
- 🔧 Двоичные данные — вложенные файлы: картинки, внешние шаблоны, подписи.
- 🖼 HTML-документ, географическая и графическая схемы — реже, под конкретные задачи.
Если задача — поправить готовую печатную форму (сдвинуть логотип, добавить строку, поменять текст), в 90% случаев это табличный макет и делается без программирования.
Прежде чем что-то менять, определите уровень доступа: есть ли у вас Конфигуратор, стоит ли база на поддержке и нужно ли сохранить автообновление. От этого зависит способ — быстрее всего сориентироваться по схеме ниже.
1С:Предприятии и правьте макет через «Ещё → Изменить макет». Конфигуратор не нужен, обновляемость сохраняется.Логика простая: чем меньше вмешательство в типовую конфигурацию, тем спокойнее будут проходить обновления. Поэтому правку в Предприятии и расширения предпочитают прямой доработке конфигурации.
Отдельно про расширения конфигурации : механизм появился в платформе 8.3.6 и стал основным способом дорабатывать типовые решения. Вы создаёте отдельный файл-расширение, добавляете в него заимствованный макет и правите его там. Типовая конфигурация при этом остаётся нетронутой и на поддержке, а при обновлении расширение в большинстве случаев продолжает работать без правок. Для макетов печатных форм это предпочтительный вариант, когда правка в Предприятии уже не вытягивает, а ломать обновляемость не хочется.
Правка печатной формы в режиме Предприятия
Это самый безопасный способ для бухгалтера или пользователя без Конфигуратора. Работает в конфигурациях на БСП.
- Откройте документ и нажмите кнопку печати нужной формы — откроется предпросмотр табличного документа.
- В командной панели предпросмотра нажмите
Ещёи выберите пункт изменения макета (в разных релизах он называется «Изменить макет» или находится в подменю настройки печати). - Откроется редактор табличного документа. Меняйте текст в ячейках, двигайте границы, добавляйте строки.
- Сохраните изменённый макет. Система пометит его как пользовательский и будет использовать вместо типового.
Перед серьёзной правкой сохраните исходный макет: в редакторе обычно есть возможность вернуться к типовому варианту, но лучше иметь копию.
Пользовательский макет хранится в базе отдельно. При обновлении конфигурации типовой макет изменится, а ваш останется прежним — иногда это удобно, иногда приводит к тому, что ваша форма «отстаёт» от новой типовой. Периодически сверяйте.
Правка в Предприятии подходит для внешнего вида и статичного текста. Если нужно вывести новое поле из данных, которого в макете нет вообще, одной правкой макета не обойтись — понадобится расширение или доработка кода.
Открытие и правка макета в Конфигураторе
Когда нужен полный контроль, макет правят в Конфигураторе.
Откройте базу в режиме Конфигуратора, найдите объект в дереве, разверните ветку Макеты и откройте нужный макет двойным щелчком. Для табличного макета откроется редактор табличного документа, для текстового — текстовый редактор.
Если конфигурация на поддержке (а типовая всегда на поддержке), редактирование заблокировано — объекты показаны серым, замок закрыт. Чтобы править, включите возможность изменения:
- Меню
Конфигурация → Поддержка → Настройка поддержки. - Нажмите
Включить возможность измененияи подтвердите. - Для точечной правки разумно оставить правило «объект поставщика редактируется с сохранением поддержки» — тогда при обновлении система попробует объединить ваши и типовые изменения.
Полное снятие с поддержки (режим «не поддерживается») лишает конфигурацию автоматического обновления через типовые поставки. Делайте это только для нетиповых или собственных конфигураций.
После правки сохраните конфигурацию и выполните Обновить конфигурацию базы данных (F7) — до этого изменения в рабочую базу не попадут.
Макеты внешних обработок и отчётов (файлы .epf и .erf) правятся проще: поддержка к ним не применяется. Откройте файл в Конфигураторе через Файл → Открыть, найдите в структуре обработки ветку макетов и редактируйте табличный или текстовый макет так же, как встроенный. Обновлять конфигурацию базы при этом не нужно — изменения живут внутри самого файла обработки. Это удобно, когда печатную форму нужно переносить между базами или отдавать клиенту отдельным файлом.
Как редактируют текстовые макеты
Текстовый макет — это документ с обычным текстом и параметрами в квадратных скобках, например [НомерДокумента] или [Дата]. При формировании программа подставляет в них значения.
Что обычно делают с текстовым макетом:
- меняют постоянный текст — просто правят строки в редакторе;
- добавляют новый параметр — вписывают
[ИмяПараметра]в нужное место, а затем заполняют его из кода; - делят макет на области, чтобы выводить фрагменты по отдельности (шапка, строка, подвал).
Имена параметров в макете и в коде должны совпадать буквально, иначе значение не подставится, а на печать попадёт сам текст в скобках. Регистр и пробелы внутри скобок имеют значение.
Текстовые макеты удобны для выгрузок в файл, формирования писем и простых печатных форм, где не нужна таблица с границами. Их также часто используют для построчной выгрузки данных во внешние системы, где важен не внешний вид, а точный формат строки.
Как и у табличного, у текстового макета можно задавать именованные области и выводить их по отдельности. Это помогает собрать итоговый текст из повторяющихся блоков — например, вывести шапку один раз, а строки товаров прогнать циклом. Если области не нужны, макет берут целиком и подставляют значения в параметры.
Табличные макеты: области, параметры и ячейки
Табличный макет — это таблица, разбитая на именованные области. При печати код собирает форму из этих областей в нужном порядке.
Ключевые элементы, которыми вы управляете:
| Элемент | Что это | Где настраивается |
|---|---|---|
| Область | Именованный блок строк или колонок | Выделить строки → меню Таблица, назначить имя |
| Параметр ячейки | Место, куда подставляется значение из кода | Свойства ячейки → Заполнение = Параметр |
| Шаблон | Текст с параметрами внутри строки | Свойства ячейки → Заполнение = Шаблон |
| Оформление | Шрифт, границы, фон, объединение ячеек | Панель форматирования и свойства ячейки |
Чтобы ячейка выводила значение из данных, в её свойствах задайте Заполнение = Параметр, а в текст впишите имя параметра. Если Заполнение = Шаблон, в тексте можно смешивать постоянные слова и параметры в квадратных скобках.
Типовой порядок правки табличного макета:
- Выделите ячейку или диапазон, откройте свойства (
Alt+Enterили правая кнопка → свойства). - Для статичного текста оставьте
Заполнение = Тексти впишите нужные слова. - Для динамического значения поставьте
Заполнение = Параметри задайте имя. - Настройте границы, объединение, выравнивание через панель форматирования.
- При добавлении новых строк проверьте, что они входят в нужную именованную область.
Новый параметр в макете сам по себе ничего не выведет. Его нужно заполнить в коде печати: Область.Параметры.ИмяПараметра = Значение. Если параметр не заполнить, ячейка останется пустой.
Отдельно стоит сказать про высоту строк и объединённые ячейки. Если текст в ячейке длиннее её ширины, включите в свойствах ячейки свойство размещения текста по словам (перенос), иначе длинное значение обрежется при печати. Объединённые ячейки удобны для шапки, но мешают, когда нужно аккуратно двигать границы колонок: сначала снимите объединение, настройте ширину, затем объедините заново.
Если в одной печатной форме несколько вариантов вывода (например, с НДС и без), не плодите отдельные макеты — сделайте в одном макете несколько областей и выводите нужную по условию. Так форму проще поддерживать.
Программное изменение макета из кода
Когда ручной правки недостаточно — нужно собрать форму по условию, подставить расчётные значения или вывести переменное число строк, — макет наполняют из кода.
Минимальный пример вывода табличного макета:
Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("ПечатьСчета");
ТабДок = Новый ТабличныйДокумент;
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = Объект.Номер;
ОбластьШапка.Параметры.ДатаДокумента = Объект.Дата;
ТабДок.Вывести(ОбластьШапка);
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для Каждого ТекСтрока Из Объект.Товары Цикл
ОбластьСтрока.Параметры.Номенклатура = ТекСтрока.Номенклатура;
ОбластьСтрока.Параметры.Количество = ТекСтрока.Количество;
ОбластьСтрока.Параметры.Сумма = ТекСтрока.Сумма;
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
ТабДок.Показать();
Разберём шаги:
ПолучитьМакетберёт макет у менеджера объекта по его имени.ПолучитьОбластьвозвращает именованную область, с которой можно работать.- через
Область.Параметры.Имязаполняются параметры ячеек; Вывестидобавляет область в итоговый табличный документ;- строки с повторяющимися данными выводятся в цикле по табличной части.
Имя макета в ПолучитьМакет должно точно совпадать с именем в дереве метаданных, а имена параметров — с теми, что заданы в ячейках. Расхождение в одном символе приведёт к ошибке или пустому значению.
Для отчётов на компоновке данных макет обычно трогают через настройки СКД, а не выводят вручную — это отдельная большая тема.
Правка макетов в облаке и 1С:Fresh
В сервисе 1С:Fresh и других облачных решениях по модели SaaS прямого доступа к Конфигуратору нет — базой управляет провайдер сервиса. Снять конфигурацию с поддержки или открыть дерево метаданных вы не сможете.
Доступные способы в облаке:
- Правка печатной формы в Предприятии — как описано выше, через «Ещё → Изменить макет». Работает и в облаке.
- Внешние печатные формы — подключаются через раздел
Администрирование → Печатные формы, отчёты и обработки(название раздела в разных конфигурациях близко). Готовую внешнюю обработку загружают в справочник дополнительных обработок и привязывают к документу. - Расширения — в ряде облачных тарифов можно подключать расширения конфигурации, но набор прав ограничен политикой сервиса.
Внешнюю обработку для облака должен готовить специалист в своей локальной базе той же конфигурации. В облаке её только подключают, а не разрабатывают.
Если нужна глубокая доработка, которую нельзя сделать печатной формой или внешней обработкой, в облаке остаётся вариант перейти на локальную установку или арендовать выделенную базу с доступом к Конфигуратору.
Частые ошибки при редактировании макетов
Ошибки, на которые уходит больше всего времени:
- 🔴 Параметр добавили в макет, но не заполнили в коде. Ячейка выводится пустой. Проверьте, что имя параметра есть и в ячейке, и в строке
Область.Параметры.... - 🔴 Изменили макет, но не обновили конфигурацию базы. В Конфигураторе правка видна, а в Предприятии — нет. Нажмите F7 (
Обновить конфигурацию базы данных). - 🔴 Строку добавили вне именованной области. Она не попадает в печать, потому что код выводит только области. Проверьте границы области.
- 🔴 Сняли всю конфигурацию с поддержки ради одной правки. База теряет автообновление. Для точечной задачи хватало расширения или правки в Предприятии.
- 🔴 Несовпадение имени макета в коде и в метаданных.
ПолучитьМакетпадает с ошибкой. Имя чувствительно к регистру и пробелам.
При правке табличного макета частая причина «съехавшей» формы — объединённые ячейки. Перед тем как двигать границы колонок, проверьте, какие ячейки объединены в соседних строках.
Частые вопросы
Можно ли редактировать макет без Конфигуратора?
1С:Предприятии через «Ещё → Изменить макет». Для этого Конфигуратор и права разработчика не нужны.