Меняем макеты печатных форм, отчётов и писем в 1С 8.3 без поломки обновлений

· 10 мин

Содержание

Чтобы отредактировать шаблон печатной формы в типовой 1С 8.3 (Бухгалтерия 3.0, ЗУП 3.1, УТ 11), откройте Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм, найдите нужный макет, нажмите «Изменить» и сохраните правки. Конфигуратор для этого не нужен, а при обновлении изменённый макет не затрётся.

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

Какие шаблоны есть в 1С и какие из них можно менять

В 1С словом «шаблон» называют несколько разных вещей. От типа зависит, где и чем его править.

Что называют шаблономГде хранитсяКто обычно правитЧем
🧾 Макет печатной формы (счёт, акт, накладная)В конфигурации, копия правок — в базеБухгалтер, администраторРедактор табличного документа
📊 Схема отчёта (СКД)В конфигурации, варианты — в базеПользователь, программистНастройки отчёта, конструктор схемы
✉️ Шаблон письма или SMSВ справочнике базыПользовательФорма шаблона сообщения
📝 Текстовый, HTML-макет, двоичные данныеТолько в конфигурацииПрограммистКонфигуратор
📄 Офисный документ (DOCX-макет)В конфигурации, копия правок — в базеБухгалтер, юристWord или аналог

Макеты в Конфигураторе бывают нескольких типов: табличный документ, текстовый документ, HTML-документ, двоичные данные, схема компоновки данных, графическая и географическая схема. Пользователю на практике чаще всего нужен первый — табличный документ, файл с расширением .mxl.

Если в шаблоне нужно поменять текст, шрифт, ширину колонки или добавить подпись — хватает режима Предприятия. Если нужно новое поле, которого нет в данных (например, номер договора в акте, где его не выводили), без программиста не обойтись.

Способы редактирования шаблона: от правки в программе до Конфигуратора

Есть четыре способа. Выбирайте самый безопасный, который решает задачу.

СпособКогда подходитЧто будет при обновленииРиски
Правка в окне печатиРазовая правка одного документаНичего, правка не сохраняется в шаблонНет
«Макеты печатных форм» в ПредприятииТекст, оформление, порядок блоковИзменённый макет сохраняетсяНовые поля типового макета в вашу копию не попадут
Внешняя печатная формаСвоя форма с иными даннымиНе затрагиваетсяНужно сверять после крупных обновлений
Конфигуратор или расширениеНовые поля, логика, условияСнятие с поддержки усложняет обновление; расширение — нетОшибки в коде ломают печать

Способ 1. Правка в режиме Предприятия

  1. Откройте Администрирование → Печатные формы, отчеты и обработки.
  2. Перейдите по ссылке «Макеты печатных форм».
  3. Найдите макет: в списке работает поиск по названию документа, например «Счет на оплату».
  4. Выделите строку и нажмите «Изменить». Откроется редактор табличного документа.
  5. Внесите правки, закройте окно и согласитесь сохранить изменения.
  6. Распечатайте любой документ этого вида и проверьте результат.

Изменённые макеты помечаются в списке, а вернуть типовой вид можно командой «Использовать стандартный макет». Этой кнопки хватает, чтобы откатить неудачную правку за секунду.

К тому же редактору можно попасть и из окна печати: в типовых конфигурациях на БСП в меню «Ещё» формы печати есть команда перехода к изменению макета.

Способ 2. Конфигуратор

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

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

Перед правкой в Конфигураторе сделайте выгрузку информационной базы: в Конфигураторе Администрирование → Выгрузить информационную базу — это файл .dt, из которого всё восстанавливается.

Как устроен макет: области, параметры и заполнение ячеек

Без этого раздела правки в макете превращаются в угадывание. Макет печатной формы — это заготовка, которую код собирает по кускам.

Именованные области

Макет разбит на горизонтальные области с именами: Заголовок, Шапка, Строка, Подвал, Подписи. Код выводит шапку один раз, область Строка — столько раз, сколько строк в табличной части, потом подвал.

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

Три вида заполнения ячейки

Откройте свойства ячейки (Alt+Enter или контекстное меню). Поле «Заполнение» принимает три значения:

  • 🔤 Текст — статичный текст, выводится как есть. Сюда пишут «Итого», «Поставщик», условия оплаты.
  • 🔢 Параметр — в ячейке стоит имя параметра, код подставляет значение. Например, СуммаПрописью.
  • 🧩 Шаблон — текст с параметрами в квадратных скобках: Счет на оплату № [Номер] от [Дата]. Удобно, когда значение встроено во фразу.

Добавить фразу «Оплата в течение 5 банковских дней» в счёт можно в любом режиме: это ячейка с заполнением «Текст». Добавить «Договор № [НомерДоговора]» в Предприятии можно, только если код уже передаёт такой параметр. Иначе ячейка выведется пустой.

Как код заполняет макет

Типичный фрагмент модуля печати выглядит так:

Макет = ПолучитьМакет("ПФ_MXL_Счет");
ТабДок = Новый ТабличныйДокумент;

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.Номер = Документ.Номер;
ОбластьШапка.Параметры.Дата = Формат(Документ.Дата, "ДЛФ=D");
ТабДок.Вывести(ОбластьШапка);

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для Каждого СтрокаТЧ Из Документ.Товары Цикл
    ОбластьСтрока.Параметры.Заполнить(СтрокаТЧ);
    ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;

Параметры.Заполнить() подставляет в область все параметры, имена которых совпадают с полями строки. Поэтому имя параметра в ячейке должно совпадать с именем реквизита до буквы.

Динамика в шаблоне: условия, скрытие блоков и выделение

Шаблон может меняться в зависимости от данных. Механизм зависит от типа шаблона.

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

В печатных формах — только кодом. Типовые приёмы:

  • выводить область по условию: если у контрагента нет КПП, область КПП не выводится;
  • держать в макете два варианта области (ПодписиДиректор, ПодписиПоДоверенности) и выбирать нужный;
  • менять оформление ячейки в коде через свойства области (ЦветТекста, Шрифт).
Если ЗначениеЗаполнено(Документ.Доверенность) Тогда
    ОбластьПодписи = Макет.ПолучитьОбласть("ПодписиПоДоверенности");
Иначе
    ОбластьПодписи = Макет.ПолучитьОбласть("ПодписиДиректор");
КонецЕсли;
ТабДок.Вывести(ОбластьПодписи);

Если такой логики в типовом коде нет, её добавляют в расширении или во внешней печатной форме.

Шаблоны отчётов на СКД: варианты, группировки, оформление

Почти все типовые отчёты в 8.3 построены на системе компоновки данных. Менять схему пользователю не нужно: большинство задач закрывает вариант отчёта.

Что можно сделать без Конфигуратора

  1. Сформируйте отчёт и нажмите «Настройки».
  2. Переключите вид настроек на расширенный — появятся вкладки с отбором, полями, сортировкой и оформлением.
  3. Добавьте группировки, уберите лишние колонки, задайте отбор.
  4. Сохраните как новый вариант через меню «Ещё» — тогда типовой вариант останется нетронутым.

Вариант хранится в базе, обновление его не трогает. Вариант можно сделать доступным другим пользователям при сохранении.

Когда нужна схема

Новое поле из другой таблицы, свой расчёт, соединение с регистром, которого нет в отчёте, — это правка схемы компоновки в Конфигураторе или собственный внешний отчёт. Внешний отчёт (.erf) подключают через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, предварительно включив одноимённый флажок.

Внешний отчёт можно собрать, скопировав схему типового отчёта: в Конфигураторе откройте макет ОсновнаяСхемаКомпоновкиДанных, скопируйте его в новую внешнюю обработку и доработайте там. Типовой отчёт останется на поддержке.

Шаблоны электронных писем и SMS

В типовых конфигурациях на БСП письма клиентам строятся из справочника «Шаблоны сообщений». Сначала функцию включают в администрировании, в группе настроек «Органайзер», затем шаблоны становятся доступны в списке.

Если ссылку найти не удаётся, откройте справочник через «Все функции». Команда включается в Сервис и настройки → Параметры → Отображать команду «Все функции», дальше Справочники → Шаблоны сообщений.

Как устроен шаблон письма:

  • 📌 Назначение — к какому объекту привязан: счёт, реализация, контрагент. От назначения зависит список доступных параметров.
  • ✍️ Тема и текст — обычный текст или HTML с параметрами в квадратных скобках, например [Контрагент.Наименование].
  • 📎 Вложения — печатные формы документа, которые прикрепятся автоматически (счёт в PDF и т.п.).

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

Если письмо уходит в HTML, проверьте его в двух-трёх почтовых клиентах. Сложная вёрстка с таблицами из Word часто ломается в мобильной почте.

Настройка шаблона под печать и выгрузку в PDF и Excel

Половина жалоб на шаблоны — «не помещается на лист» и «таблица разъехалась в Excel». Это решается настройками табличного документа.

В редакторе макета

  • 📐 Ориентация, поля и масштаб задаются в параметрах страницы табличного документа. Для широких форм (ТОРГ-12, УПД) — альбомная ориентация.
  • 🔁 Повтор шапки таблицы на каждом листе — строки шапки задают как повторяемые при печати; в коде это свойство ПовторятьПриПечатиСтрок.
  • 🔒 Объединённые ячейки ставьте аккуратно: при выгрузке в Excel лишние объединения мешают сортировке и копированию.

В коде

ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ПовторятьПриПечатиСтрок = Макет.Область("ШапкаТаблицы");

Для длинных таблиц удобен метод ПроверитьВывод(). Он получает массив областей и возвращает Ложь, если они не влезут на текущую страницу. Тогда перед выводом вставляют разрыв: ТабДок.ВывестиГоризонтальныйРазделительСтраниц() и повторяют шапку.

Выгрузка

Сохранение в PDF, XLSX, DOCX или MXL доступно из окна печати кнопкой сохранения. Если в PDF «плывут» шрифты, проверьте, что в макете используется шрифт, установленный на компьютере или сервере, где формируется файл.

Массовые правки и перенос шаблонов между базами

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

Что помогает:

  1. Сохранение макета в файл. В редакторе табличного документа шаблон сохраняется как .mxl. В другой базе его открывают, копируют содержимое и вставляют в соответствующий макет. Для одного-двух макетов это самый быстрый перенос.
  2. Перенос всех изменённых макетов. В конфигурациях на БСП пользовательские макеты хранятся в регистре сведений базы. Его можно перенести обработкой выгрузки и загрузки данных XML между базами с одинаковой конфигурацией.
  3. Сравнение после обновления. Изменённая копия не получает исправлений, которые фирма-разработчик внесла в типовой макет. После обновления откройте список «Макеты печатных форм», отберите изменённые и сравните каждый с новым стандартным: сохраните оба в .mxl и откройте рядом.
  4. Внешняя печатная форма вместо правки. Если одну и ту же форму нужно в нескольких базах, соберите её как внешнюю обработку один раз и подключите везде через «Дополнительные отчеты и обработки».
После обновления конфигурации
Выполнено: 0 / 5

Ошибки при редактировании шаблонов и как их избежать

Эти ошибки не повторяют шаги выше — с ними приходят уже после правки.

Диагностика: выберите симптом

Частые вопросы

Можно ли редактировать шаблон в 1С без прав администратора?
Обычно нет. Список «Макеты печатных форм» доступен ролям с правом администрирования или изменения макетов. Попросите администратора базы выдать такое право или внести правку.
Где хранится изменённый макет?
В базе данных, а не в конфигурации. Поэтому он переживает обновление и переносится вместе с выгрузкой .dt, но не попадает в файл .cf.
Можно ли вставить в шаблон логотип и печать организации?
Да. Для типовых счетов и актов логотип и факсимиле загружаются в карточке организации, отдельно править макет не нужно. Для своих форм картинку вставляют в макет как рисунок.
Как вернуть шаблон к типовому виду?
В списке «Макеты печатных форм» выделите изменённый макет и выполните «Использовать стандартный макет». Ваша копия перестанет применяться.
Подойдёт ли этот способ для 1С 7.7 или 8.2?
Нет. Список «Макеты печатных форм» есть в конфигурациях на БСП для платформы 8.3. В старых версиях макеты правят только в Конфигураторе.