Как вставить таблицу в шаблон договора в 1С:Бухгалтерия

Пользователь 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

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

Анализ проблемы: почему не получается просто вставить таблицу

Для начала проанализируем техническую составляющую. В типовых решениях 1С (в частности, в 1С:Бухгалтерии 3.0) для редактирования текста договора используется объект ФорматированныйДокумент. Этот объект представляет собой упрощенный HTML-редактор, который вендор разработал для обеспечения кроссплатформенности.

Как показывает практика и обсуждения экспертов, при попытке вставить HTML-код таблицы (теги <table>, <tr>, <td>) в макет, система в режиме «1С:Предприятие» часто игнорирует структуру таблицы, превращая её в последовательный набор текста из ячеек. Это происходит из-за того, что ФорматированныйДокумент поддерживает лишь ограниченный набор тегов (стандарт HTML 1.0 с сокращениями). Поэтому классический путь «скопировать из Excel и вставить в 1С» в данном случае не работает напрямую.

Решение №1: Использование шаблонов в формате Microsoft Word (.docx)

Рассмотрим наиболее современный и профессиональный метод, который предоставляет Библиотека стандартных подсистем (БСП). В актуальных версиях 1С:Бухгалтерии реализована возможность работы с внешними файлами шаблонов.

Разберем алгоритм действий по шагам:

  1. Создадим файл в формате .docx (MS Word) или .odt (OpenOffice).
  2. Нарисуем в нем таблицу любой сложности, настроим границы, заливку и шрифты средствами текстового процессора.
  3. В ячейки таблицы вставим параметры-заполнители в фигурных скобках. Например, {Цена}, {Количество}, {Сумма}.
  4. Для вывода динамического списка товаров (циклической таблицы) используем специальные теги группировки БСП. Начало строки данных помечается как {СписокТоваров}, а конец — {/СписокТоваров}. Система автоматически размножит строку таблицы столько раз, сколько позиций указано в документе 1С.
  5. Загрузим этот файл в 1С через меню «Администрирование» — «Печатные формы, отчеты и обработки» — «Макеты печатных форм».

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

Решение №2: Внешние печатные формы (ВПФ) на базе табличных документов

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

В этом случае вместо ФорматированногоДокумента используется объект ТабличныйДокумент. Это собственный формат 1С, который по своим возможностям сопоставим с Excel. Мы можем программно управлять каждой ячейкой, объединять их, рисовать рамки любой толщины и даже вставлять штрихкоды или QR-коды.

Пример логики программного формирования таблицы в ВПФ:


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

Такой подход позволяет пользователю перед печатью нажать кнопку «Редактировать» в окне предпросмотра и внести изменения прямо в таблицу, если это необходимо.

Решение №3: Обходной путь через вставку изображений

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

Процесс выглядит так: создаем таблицу в Excel, делаем её скриншот или сохраняем как рисунок, а затем вставляем этот рисунок в редактор шаблона 1С. ФорматированныйДокумент корректно работает с объектами типа «Картинка». Однако помните, что данные в такой таблице нельзя будет автоматически заполнить из базы 1С, и текст внутри картинки не будет индексироваться для поиска.

Решение №4: Использование поля HTML-документа (для разработчиков)

Если стоит задача сделать редактируемую таблицу прямо внутри интерфейса 1С, рассмотрим альтернативу ФорматированномуДокументу — использование объекта ПолеHTMLДокумента. В отличие от стандартного редактора шаблонов, это поле использует полноценный движок браузера.

Рассмотрим преимущества этого метода:

Для реализации этого метода потребуется создание небольшой обработки, которая будет собирать HTML-текст договора, вставлять в него данные из информационной базы и выводить в поле на форме для финальной правки пользователем.

Решение №5: Приложение к договору из Счета на оплату

Иногда проблему можно решить организационными методами. В 1С:Бухгалтерии предусмотрена возможность распечатать приложение к договору, используя данные из документа «Счет на оплату покупателю». В счете уже есть табличная часть с товарами и услугами. Многие компании предпочитают в основном тексте договора делать ссылку: «Перечень и стоимость услуг определяются в Приложении №1 (Спецификации)», которое печатается как отдельный лист с таблицей. Это избавляет от необходимости мучиться с версткой таблиц внутри сложного текстового блока договора. Для быстрого вывода такого приложения можно использовать готовую печатную форму спецификации для 1С:Бухгалтерии.

Сравнительный итог методов

Проанализировав все варианты, подведем итог:

1. Стандартный редактор шаблонов: Быстро, но таблицы не поддерживает (только через имитацию табуляцией, что крайне неудобно).

2. Шаблоны Word/OpenOffice: Оптимальный выбор для большинства задач. Позволяет создавать красивые таблицы, поддерживает параметры 1С и не требует программирования конфигурации.

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

Мы рекомендуем начинать именно с освоения шаблонов в формате .docx, так как это штатный механизм БСП, который поддерживается фирмой «1С» и постоянно развивается, обеспечивая корректную работу таблиц без снятия базы с поддержки.

← На главную