Встраивание HTML-разметки в 1С:Предприятие открывает широкие возможности для оформления документов, отчётов и пользовательских интерфейсов. Несмотря на то, что платформа 1С изначально не предназначена для веб-разработки, умение работать с HTML внутри конфигуратора позволяет создавать адаптивные печатные формы, экспортировать данные в веб-форматы и даже интегрироваться с внешними системами через HTTP-сервисы. Однако многие разработчики сталкиваются с трудностями: от некорректного отображения тегов до проблем с кодировкой при генерации файлов.
Эта статья поможет разобраться, как правильно применять HTML в 1С — от базовых принципов до продвинутых техник. Мы рассмотрим:
- 🔹 Где в 1С можно использовать HTML (макеты, отчёты, почтовые шаблоны).
- 🔹 Как динамически формировать разметку с помощью встроенного языка.
- 🔹 Типичные ошибки, из-за которых теги не работают или отображаются как текст.
- 🔹 Оптимизацию для печати и экспорта в
PDF/Excel.
Особое внимание уделим особенностям обработки HTML в разных версиях платформы 1С (8.3.20+), где появилась поддержка современных тегов и стилей, а также нюансам работы с CSS внутри макетов.
1. Где в 1С применяется HTML: основные сценарии
HTML в 1С:Предприятие используется в четырёх ключевых областях:
- Макеты печатных форм — оформление документов (счётов, актов, накладных) с помощью тегов для выделения заголовков, таблиц и стилей.
- Отчёты — генерация сложных отчётов с разметкой для дальнейшего экспорта в
PDFилиExcel. - Email-шаблоны — создание писем с форматированным текстом, логотипами и таблицами данных.
- HTTP-сервисы — формирование ответов для внешних систем (например, для REST API или веб-порталов).
Наиболее востребованный сценарий — печатные формы. Например, чтобы в счёте выделить Итого к оплате жирным шрифтом или добавить цветную таблицу с позициями товара, используется HTML-макет. При этом разметка может быть как статической (заданной вручную), так и динамической (сгенерированной кодом на 1С).
Второй по популярности случай — отчёты с экспортом в веб-форматы. Здесь HTML позволяет:
- 📊 Структурировать данные в виде таблиц с объединёнными ячейками.
- 🎨 Применять условное форматирование (например, красный цвет для отрицательных значений).
- 📄 Добавлять заголовки, колонтитулы и нумерацию страниц.
⚠️ Внимание: В версиях 1С:Предприятие ниже8.3.15поддержкаCSSв макетах ограничена. Для сложных стилей рекомендуется использовать внешние таблицы стилей или инлайн-атрибуты (например,style="font-weight: bold;").
2. Базовый синтаксис HTML в макетах 1С
Макет в 1С — это файл с разметкой, который можно прикрепить к печатной форме или отчёту. Чтобы создать HTML-макет:
- Откройте конфигуратор и перейдите в раздел
Объекты → Макеты. - Создайте новый макет типа
HTML-документ. - В редакторе введите разметку (например, простую таблицу).
Пример минимального 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>
Обратите внимание на символ & перед переменными (например, &НомерДокумента). Это специальный синтаксис 1С, который заменяется на реальные значения при формировании документа. Переменные должны быть заранее объявлены в коде модуля, который вызывает макет.
Для динамического формирования таблиц (например, списка товаров из документа) используйте цикл в коде 1С:
ТекстHTML = "";
Для Каждого Товар Из Документ.Товары Цикл
ТекстHTML = ТекстHTML +
"<tr>" +
"<td>" + Товар.НомерСтроки + "</td>" +
"<td>" + Товар.Номенклатура + "</td>" +
"<td>" + Товар.Количество + "</td>" +
"<td>" + Товар.Цена + "</td>" +
"</tr>";
КонецЦикла;
Использованы переменные с префиксом & (например, &НомерДокумента)
Закрыты все теги (
| и т.д.)
Указан charset=utf-8 для корректного отображения кириллицы Стили прописаны инлайн или через |