Меняем макеты печатных форм, отчётов и писем в 1С 8.3 без поломки обновлений
Содержание
Чтобы отредактировать шаблон печатной формы в типовой 1С 8.3 (Бухгалтерия 3.0, ЗУП 3.1, УТ 11), откройте Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм, найдите нужный макет, нажмите «Изменить» и сохраните правки. Конфигуратор для этого не нужен, а при обновлении изменённый макет не затрётся.
Типичная ситуация: директор просит добавить на счёт строку «Оплата в течение 5 банковских дней» и логотип. Бухгалтер открывает печатную форму, правит текст прямо в окне печати — и на следующем счёте всё пропадает. Правка в окне печати меняет только эту копию документа. Шаблон (в 1С его называют макетом) живёт отдельно, и редактировать его нужно там, где он хранится.
Какие шаблоны есть в 1С и какие из них можно менять
В 1С словом «шаблон» называют несколько разных вещей. От типа зависит, где и чем его править.
| Что называют шаблоном | Где хранится | Кто обычно правит | Чем |
|---|---|---|---|
| 🧾 Макет печатной формы (счёт, акт, накладная) | В конфигурации, копия правок — в базе | Бухгалтер, администратор | Редактор табличного документа |
| 📊 Схема отчёта (СКД) | В конфигурации, варианты — в базе | Пользователь, программист | Настройки отчёта, конструктор схемы |
| ✉️ Шаблон письма или SMS | В справочнике базы | Пользователь | Форма шаблона сообщения |
| 📝 Текстовый, HTML-макет, двоичные данные | Только в конфигурации | Программист | Конфигуратор |
| 📄 Офисный документ (DOCX-макет) | В конфигурации, копия правок — в базе | Бухгалтер, юрист | Word или аналог |
Макеты в Конфигураторе бывают нескольких типов: табличный документ, текстовый документ, HTML-документ, двоичные данные, схема компоновки данных, графическая и географическая схема. Пользователю на практике чаще всего нужен первый — табличный документ, файл с расширением .mxl.
Если в шаблоне нужно поменять текст, шрифт, ширину колонки или добавить подпись — хватает режима Предприятия. Если нужно новое поле, которого нет в данных (например, номер договора в акте, где его не выводили), без программиста не обойтись.
Способы редактирования шаблона: от правки в программе до Конфигуратора
Есть четыре способа. Выбирайте самый безопасный, который решает задачу.
| Способ | Когда подходит | Что будет при обновлении | Риски |
|---|---|---|---|
| Правка в окне печати | Разовая правка одного документа | Ничего, правка не сохраняется в шаблон | Нет |
| «Макеты печатных форм» в Предприятии | Текст, оформление, порядок блоков | Изменённый макет сохраняется | Новые поля типового макета в вашу копию не попадут |
| Внешняя печатная форма | Своя форма с иными данными | Не затрагивается | Нужно сверять после крупных обновлений |
| Конфигуратор или расширение | Новые поля, логика, условия | Снятие с поддержки усложняет обновление; расширение — нет | Ошибки в коде ломают печать |
Способ 1. Правка в режиме Предприятия
- Откройте
Администрирование → Печатные формы, отчеты и обработки. - Перейдите по ссылке «Макеты печатных форм».
- Найдите макет: в списке работает поиск по названию документа, например «Счет на оплату».
- Выделите строку и нажмите «Изменить». Откроется редактор табличного документа.
- Внесите правки, закройте окно и согласитесь сохранить изменения.
- Распечатайте любой документ этого вида и проверьте результат.
Изменённые макеты помечаются в списке, а вернуть типовой вид можно командой «Использовать стандартный макет». Этой кнопки хватает, чтобы откатить неудачную правку за секунду.
К тому же редактору можно попасть и из окна печати: в типовых конфигурациях на БСП в меню «Ещё» формы печати есть команда перехода к изменению макета.
Способ 2. Конфигуратор
- Откройте базу в режиме «Конфигуратор».
- В дереве конфигурации раскройте нужный объект, например
Документы → РеализацияТоваровУслуг → Макеты. Общие шаблоны лежат вОбщие → Общие макеты. - Дважды щёлкните макет — откроется тот же редактор табличного документа, но с доступом к именам областей и параметрам.
- После правки выполните
Конфигурация → Обновить конфигурацию базы данных(F7).
Правка типовой конфигурации напрямую требует включить возможность изменения, и после этого каждое обновление превращается в ручное сравнение и объединение. Для типовых баз лучше расширение: в нём можно заимствовать объект и подменить его макет, не трогая основную конфигурацию. Расширения появились в платформе 8.3.6.
Перед правкой в Конфигураторе сделайте выгрузку информационной базы: в Конфигураторе Администрирование → Выгрузить информационную базу — это файл .dt, из которого всё восстанавливается.
Как устроен макет: области, параметры и заполнение ячеек
Без этого раздела правки в макете превращаются в угадывание. Макет печатной формы — это заготовка, которую код собирает по кускам.
Именованные области
Макет разбит на горизонтальные области с именами: Заголовок, Шапка, Строка, Подвал, Подписи. Код выводит шапку один раз, область Строка — столько раз, сколько строк в табличной части, потом подвал.
Имена видны слева и сверху от таблицы. Назначить имя выделенным строкам: Таблица → Имена → Назначить имя. Отсюда первое правило: не переименовывайте и не удаляйте области, к которым обращается код — печать упадёт с ошибкой.
Три вида заполнения ячейки
Откройте свойства ячейки (Alt+Enter или контекстное меню). Поле «Заполнение» принимает три значения:
- 🔤 Текст — статичный текст, выводится как есть. Сюда пишут «Итого», «Поставщик», условия оплаты.
- 🔢 Параметр — в ячейке стоит имя параметра, код подставляет значение. Например,
СуммаПрописью. - 🧩 Шаблон — текст с параметрами в квадратных скобках:
Счет на оплату № [Номер] от [Дата]. Удобно, когда значение встроено во фразу.
Добавить фразу «Оплата в течение 5 банковских дней» в счёт можно в любом режиме: это ячейка с заполнением «Текст». Добавить «Договор № [НомерДоговора]» в Предприятии можно, только если код уже передаёт такой параметр. Иначе ячейка выведется пустой.
Как код заполняет макет
Типичный фрагмент модуля печати выглядит так:
Макет = ПолучитьМакет("ПФ_MXL_Счет");
ТабДок = Новый ТабличныйДокумент;
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.Номер = Документ.Номер;
ОбластьШапка.Параметры.Дата = Формат(Документ.Дата, "ДЛФ=D");
ТабДок.Вывести(ОбластьШапка);
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для Каждого СтрокаТЧ Из Документ.Товары Цикл
ОбластьСтрока.Параметры.Заполнить(СтрокаТЧ);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
Параметры.Заполнить() подставляет в область все параметры, имена которых совпадают с полями строки. Поэтому имя параметра в ячейке должно совпадать с именем реквизита до буквы.
Динамика в шаблоне: условия, скрытие блоков и выделение
Шаблон может меняться в зависимости от данных. Механизм зависит от типа шаблона.
В отчётах на СКД — условное оформление на вкладке «Оформление» расширенных настроек. Пример: просроченная дебиторка красным. Условие — «Количество дней просрочки больше 0», оформление — цвет текста. Делается мышкой, без кода.
В печатных формах — только кодом. Типовые приёмы:
- выводить область по условию: если у контрагента нет КПП, область
КППне выводится; - держать в макете два варианта области (
ПодписиДиректор,ПодписиПоДоверенности) и выбирать нужный; - менять оформление ячейки в коде через свойства области (
ЦветТекста,Шрифт).
Если ЗначениеЗаполнено(Документ.Доверенность) Тогда
ОбластьПодписи = Макет.ПолучитьОбласть("ПодписиПоДоверенности");
Иначе
ОбластьПодписи = Макет.ПолучитьОбласть("ПодписиДиректор");
КонецЕсли;
ТабДок.Вывести(ОбластьПодписи);
Если такой логики в типовом коде нет, её добавляют в расширении или во внешней печатной форме.
Шаблоны отчётов на СКД: варианты, группировки, оформление
Почти все типовые отчёты в 8.3 построены на системе компоновки данных. Менять схему пользователю не нужно: большинство задач закрывает вариант отчёта.
Что можно сделать без Конфигуратора
- Сформируйте отчёт и нажмите «Настройки».
- Переключите вид настроек на расширенный — появятся вкладки с отбором, полями, сортировкой и оформлением.
- Добавьте группировки, уберите лишние колонки, задайте отбор.
- Сохраните как новый вариант через меню «Ещё» — тогда типовой вариант останется нетронутым.
Вариант хранится в базе, обновление его не трогает. Вариант можно сделать доступным другим пользователям при сохранении.
Когда нужна схема
Новое поле из другой таблицы, свой расчёт, соединение с регистром, которого нет в отчёте, — это правка схемы компоновки в Конфигураторе или собственный внешний отчёт. Внешний отчёт (.erf) подключают через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, предварительно включив одноимённый флажок.
Внешний отчёт можно собрать, скопировав схему типового отчёта: в Конфигураторе откройте макет ОсновнаяСхемаКомпоновкиДанных, скопируйте его в новую внешнюю обработку и доработайте там. Типовой отчёт останется на поддержке.
Шаблоны электронных писем и SMS
В типовых конфигурациях на БСП письма клиентам строятся из справочника «Шаблоны сообщений». Сначала функцию включают в администрировании, в группе настроек «Органайзер», затем шаблоны становятся доступны в списке.
Если ссылку найти не удаётся, откройте справочник через «Все функции». Команда включается в Сервис и настройки → Параметры → Отображать команду «Все функции», дальше Справочники → Шаблоны сообщений.
Как устроен шаблон письма:
- 📌 Назначение — к какому объекту привязан: счёт, реализация, контрагент. От назначения зависит список доступных параметров.
- ✍️ Тема и текст — обычный текст или HTML с параметрами в квадратных скобках, например
[Контрагент.Наименование]. - 📎 Вложения — печатные формы документа, которые прикрепятся автоматически (счёт в PDF и т.п.).
Параметры вставляйте из списка в форме шаблона, а не набирайте руками. Опечатка в имени параметра даёт в письме текст в скобках вместо значения.
Если письмо уходит в HTML, проверьте его в двух-трёх почтовых клиентах. Сложная вёрстка с таблицами из Word часто ломается в мобильной почте.
Настройка шаблона под печать и выгрузку в PDF и Excel
Половина жалоб на шаблоны — «не помещается на лист» и «таблица разъехалась в Excel». Это решается настройками табличного документа.
В редакторе макета
- 📐 Ориентация, поля и масштаб задаются в параметрах страницы табличного документа. Для широких форм (ТОРГ-12, УПД) — альбомная ориентация.
- 🔁 Повтор шапки таблицы на каждом листе — строки шапки задают как повторяемые при печати; в коде это свойство
ПовторятьПриПечатиСтрок. - 🔒 Объединённые ячейки ставьте аккуратно: при выгрузке в Excel лишние объединения мешают сортировке и копированию.
В коде
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ПовторятьПриПечатиСтрок = Макет.Область("ШапкаТаблицы");
Для длинных таблиц удобен метод ПроверитьВывод(). Он получает массив областей и возвращает Ложь, если они не влезут на текущую страницу. Тогда перед выводом вставляют разрыв: ТабДок.ВывестиГоризонтальныйРазделительСтраниц() и повторяют шапку.
Выгрузка
Сохранение в PDF, XLSX, DOCX или MXL доступно из окна печати кнопкой сохранения. Если в PDF «плывут» шрифты, проверьте, что в макете используется шрифт, установленный на компьютере или сервере, где формируется файл.
Массовые правки и перенос шаблонов между базами
Правка одного макета — пять минут. Но если баз десять или после обновления нужно сверить двадцать изменённых макетов, ручной режим не годится.
Что помогает:
- Сохранение макета в файл. В редакторе табличного документа шаблон сохраняется как
.mxl. В другой базе его открывают, копируют содержимое и вставляют в соответствующий макет. Для одного-двух макетов это самый быстрый перенос. - Перенос всех изменённых макетов. В конфигурациях на БСП пользовательские макеты хранятся в регистре сведений базы. Его можно перенести обработкой выгрузки и загрузки данных XML между базами с одинаковой конфигурацией.
- Сравнение после обновления. Изменённая копия не получает исправлений, которые фирма-разработчик внесла в типовой макет. После обновления откройте список «Макеты печатных форм», отберите изменённые и сравните каждый с новым стандартным: сохраните оба в
.mxlи откройте рядом. - Внешняя печатная форма вместо правки. Если одну и ту же форму нужно в нескольких базах, соберите её как внешнюю обработку один раз и подключите везде через «Дополнительные отчеты и обработки».
Ошибки при редактировании шаблонов и как их избежать
Эти ошибки не повторяют шаги выше — с ними приходят уже после правки.
Частые вопросы
Можно ли редактировать шаблон в 1С без прав администратора?
Где хранится изменённый макет?
.dt, но не попадает в файл .cf.