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

Эта статья поможет разобраться, как правильно применять HTML в 1С — от базовых принципов до продвинутых техник. Мы рассмотрим:

  • 🔹 Где в можно использовать HTML (макеты, отчёты, почтовые шаблоны).
  • 🔹 Как динамически формировать разметку с помощью встроенного языка.
  • 🔹 Типичные ошибки, из-за которых теги не работают или отображаются как текст.
  • 🔹 Оптимизацию для печати и экспорта в PDF/Excel.

Особое внимание уделим особенностям обработки HTML в разных версиях платформы 1С (8.3.20+), где появилась поддержка современных тегов и стилей, а также нюансам работы с CSS внутри макетов.

📊 Для чего вы чаще всего используете HTML в 1С?
Для печатных форм документов
Для email-рассылок
Для интеграции с сайтами
Для генерации отчётов в веб-формате
Другое

1. Где в 1С применяется HTML: основные сценарии

HTML в 1С:Предприятие используется в четырёх ключевых областях:

  1. Макеты печатных форм — оформление документов (счётов, актов, накладных) с помощью тегов для выделения заголовков, таблиц и стилей.
  2. Отчёты — генерация сложных отчётов с разметкой для дальнейшего экспорта в PDF или Excel.
  3. Email-шаблоны — создание писем с форматированным текстом, логотипами и таблицами данных.
  4. HTTP-сервисы — формирование ответов для внешних систем (например, для REST API или веб-порталов).

Наиболее востребованный сценарий — печатные формы. Например, чтобы в счёте выделить Итого к оплате жирным шрифтом или добавить цветную таблицу с позициями товара, используется HTML-макет. При этом разметка может быть как статической (заданной вручную), так и динамической (сгенерированной кодом на ).

Второй по популярности случай — отчёты с экспортом в веб-форматы. Здесь HTML позволяет:

  • 📊 Структурировать данные в виде таблиц с объединёнными ячейками.
  • 🎨 Применять условное форматирование (например, красный цвет для отрицательных значений).
  • 📄 Добавлять заголовки, колонтитулы и нумерацию страниц.
⚠️ Внимание: В версиях 1С:Предприятие ниже 8.3.15 поддержка CSS в макетах ограничена. Для сложных стилей рекомендуется использовать внешние таблицы стилей или инлайн-атрибуты (например, style="font-weight: bold;").

2. Базовый синтаксис HTML в макетах 1С

Макет в — это файл с разметкой, который можно прикрепить к печатной форме или отчёту. Чтобы создать HTML-макет:

  1. Откройте конфигуратор и перейдите в раздел Объекты → Макеты.
  2. Создайте новый макет типа HTML-документ.
  3. В редакторе введите разметку (например, простую таблицу).

Пример минимального HTML-макета для счёта:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Счёт на оплату</title>

</head>

<body>

<h1>Счёт № &НомерДокумента</h1>

<p>Дата: &ДатаДокумента</p>

<table border="1">

<tr><th>№</th><th>Товар</th><th>Количество</th><th>Цена</th></tr>

<tr><td>1</td><td>Товар 1</td><td>2</td><td>1000</td></tr>

</table>

</body>

</html>

Обратите внимание на символ & перед переменными (например, &НомерДокумента). Это специальный синтаксис , который заменяется на реальные значения при формировании документа. Переменные должны быть заранее объявлены в коде модуля, который вызывает макет.

Для динамического формирования таблиц (например, списка товаров из документа) используйте цикл в коде :

ТекстHTML = "";

Для Каждого Товар Из Документ.Товары Цикл

ТекстHTML = ТекстHTML +

"<tr>" +

"<td>" + Товар.НомерСтроки + "</td>" +

"<td>" + Товар.Номенклатура + "</td>" +

"<td>" + Товар.Количество + "</td>" +

"<td>" + Товар.Цена + "</td>" +

"</tr>";

КонецЦикла;

Использованы переменные с префиксом & (например, &НомерДокумента)

Закрыты все теги (

, ,
и т.д.)

Указан charset=utf-8 для корректного отображения кириллицы

Стили прописаны инлайн или через