Оформление табличного документа и отчёта в 1С 8.3: от ячейки до печатного листа
Содержание
Таблицу в 1С форматируют через палитру свойств ячейки: выделите ячейки табличного документа, нажмите Alt+Enter или выберите Свойства в контекстном меню — там задаются шрифт, цвет, выравнивание, границы и формат чисел. Для отчётов на системе компоновки данных (СКД) оформление по значению настраивается в условном оформлении, а для печатных форм — в макете в Конфигураторе.
Всё ниже относится к платформе 1С:Предприятие 8.3 и не зависит от конфигурации: табличный документ одинаково устроен в Бухгалтерии, ЗУП, УТ и любых самописных решениях.
С какой таблицей вы работаете: три места оформления
Слово «таблица» в 1С означает разные объекты, и форматируют их по-разному. Сначала определите свой случай.
| Что перед вами | Где оформлять | Что сохранится |
|---|---|---|
| Макет печатной формы или отчёта | Конфигуратор, редактор макета | Оформление навсегда, для всех пользователей |
Готовый табличный документ (файл .mxl, сформированный отчёт) | Режим 1С:Предприятие, палитра свойств | Только в этом документе или файле |
| Отчёт на СКД | Настройки отчёта, вкладка оформления | В варианте отчёта |
📌 Правило простое. Нужно, чтобы форма всегда выглядела иначе, — правьте макет. Нужно один раз поправить отчёт перед отправкой — правьте готовый документ. Нужно подсветить строки по условию — настраивайте СКД.
Готовый отчёт часто открывается только для просмотра. Чтобы править ячейки, сохраните результат в файл .mxl через меню ≡ → Файл → Сохранить как и откройте этот файл в 1С. Правки в самом окне отчёта пропадут при следующем нажатии Сформировать.
Печатные формы типовых конфигураций не меняйте в основной конфигурации: это снимет её с поддержки и усложнит обновление. Правьте макет в расширении конфигурации или через встроенный в типовые решения механизм пользовательских макетов печати.
Шрифт, цвет и выравнивание ячеек таблицы
Базовое форматирование ячеек одинаково в Конфигураторе и в режиме предприятия.
- Выделите ячейку или диапазон мышью. Целую строку или колонку — щелчком по её заголовку слева или сверху.
- Откройте палитру свойств:
Alt+Enterили контекстное меню →Свойства. - В группе свойств шрифта выберите гарнитуру, размер, жирность, наклон.
- Задайте
Цвет текстаиЦвет фона. - В свойствах положения выберите горизонтальное (лево, центр, право, по ширине) и вертикальное выравнивание.
- Отступ слева пригодится для иерархии: вложенные строки сдвигают на 1–2 единицы.
Для длинного текста важно свойство Размещение:
- 🔹 Авто — текст вылезает в соседнюю ячейку, если та пустая;
- 🔹 Обрезать — лишнее просто не видно;
- 🔹 Забивать — текст не выходит за границу ячейки;
- 🔹 Переносить — перенос по словам внутри ячейки, строка растёт по высоте.
💡 Шапку таблицы почти всегда делают так: жирный шрифт, выравнивание по центру по обеим осям, размещение «Переносить». Тогда «Сумма с НДС, руб.» не растянет колонку на полэкрана.
Ширину колонки удобно задать числом в свойстве ширины колонки, а не тянуть мышью: так все колонки сумм получатся одинаковыми. Если высота строки задана вручную, перенесённый текст может не поместиться — проверьте строку на экране и в предварительном просмотре.
Границы, объединение и сетка табличного документа
Серая сетка, которую видно на экране, — это не границы. На печать сетка не выводится, поэтому таблица без явно заданных рамок выйдет на бумаге «голым» текстом.
Как обвести таблицу рамкой:
- Выделите весь диапазон таблицы.
- В палитре свойств найдите группу границ: левая, верхняя, правая, нижняя.
- Для каждой стороны выберите тип линии: сплошная, пунктир, двойная и т.д. Толщина задаётся там же.
- Цвет линий задаётся отдельным свойством цвета рамки.
- В Конфигураторе то же быстрее сделать кнопками границ на панели инструментов редактора макета.
Внутренние линии появляются, если задать границы каждой ячейке диапазона. Типичный приём для отчёта: тонкая сплошная линия внутри, жирная — по внешнему контуру шапки.
Объединение ячеек. Выделите диапазон и выберите Объединить в контекстном меню. Объединение нужно для шапки над несколькими колонками («Остаток на начало» над «Дебет» и «Кредит»).
В объединённой ячейке хранится только содержимое левой верхней ячейки. Если объединить диапазон с данными, остальные значения потеряются.
Как скрыть сетку и заголовки строк и колонок на экране: в Конфигураторе — меню Таблица → Вид, в коде — свойствами ОтображатьСетку и ОтображатьЗаголовки табличного документа. Готовая форма без сетки выглядит как документ, а не как черновик.
Формат чисел и дат в ячейках таблицы
Формат управляет тем, как показано значение: разряды, знаки после запятой, вид даты. Он работает только когда в ячейке лежит число или дата, а не строка.
Где задаётся формат:
- в макете — свойство
Форматячейки, у него есть конструктор форматной строки (кнопка с многоточием); - в отчёте на СКД — оформление поля, параметр «Формат»;
- в коде — свойство
Форматобласти ячеек или функцияФормат().
Частые форматные строки:
| Задача | Форматная строка | Результат для 1234567,5 / даты |
|---|---|---|
| Два знака после запятой | ЧДЦ=2 | 1 234 567,50 |
| Без разделителя тысяч | ЧДЦ=2; ЧГ=0 | 1234567,50 |
| Ноль показать прочерком | ЧДЦ=2; ЧН='—' | для 0 → — |
| Целые без копеек | ЧДЦ=0 | 1 234 568 |
| Дата | ДФ=dd.MM.yyyy | 22.10.2026 |
| Дата прописью | ДЛФ=DD | 22 октября 2026 г. |
| Да/Нет для булева | БЛ=Нет; БИ=Да | Да |
В макете ячейка, куда подставляется сумма, должна иметь Заполнение = Параметр и имя параметра. Тогда формат применится к самому числу. Если ячейка заполнена как Текст или Шаблон, а в параметр передана уже строка, формат ничего не изменит.
💡 Формат меняет только отображение. Итоги, выгрузка в Excel и расшифровка работают с исходным числом, поэтому «отрезанные» форматом копейки в сумме никуда не исчезают.
Условное оформление: подсветка значений по правилу
Сам табличный документ условного оформления не умеет: каждый цвет в нём задан явно. Подсветка «отрицательные остатки красным» делается двумя способами.
Способ 1. Условное оформление в отчёте на СКД — без программирования.
- Откройте отчёт, нажмите
Настройки. - Переключите вид настроек в расширенный режим (если форма настроек его предлагает).
- Перейдите на вкладку оформления и добавьте новое условное оформление.
- В условии выберите поле и сравнение, например
Конечный остатокМеньше0. - В оформлении задайте цвет текста или фона, жирность, при необходимости — формат.
- В списке оформляемых полей укажите, к каким колонкам применить правило. Пустой список — оформится вся строка.
- Сформируйте отчёт и сохраните вариант, чтобы правило не пропало.
Разработчик то же самое настраивает в Конфигураторе: конструктор схемы компоновки → вкладка Настройки → нижняя часть, закладка Условное оформление.
Способ 2. Код при выводе строк. После вывода очередной строки найдите её ячейку и поменяйте цвет (пример — в разделе с кодом ниже).
| Способ | Когда выбирать | Ограничения |
|---|---|---|
| Условное оформление СКД | Отчёты на СКД, правило меняет пользователь | Только отчёты на СКД |
| Код при выводе | Печатные формы и отчёты на макетах | Правило меняет только программист |
| Ручная заливка | Разовая правка перед отправкой | Пропадёт при переформировании |
Параметры страницы и подготовка таблицы к печати
Широкий отчёт чаще всего ломается при печати: последние колонки уезжают на второй лист. Перед печатью откройте ≡ → Файл → Предварительный просмотр, а настройки задайте в ≡ → Файл → Параметры страницы.
Что настроить в окне параметров страницы:
- 📄 Ориентация — альбомная для таблиц шире 7–8 колонок;
- 🔍 Масштаб — режим «По ширине страницы» сам ужмёт таблицу в ширину листа;
- 📏 Поля — для подшивки слева оставляют 20 мм, остальные можно уменьшить до 5–10 мм;
- 🧾 Колонтитулы — номер страницы и дата печати для многостраничных реестров.
Повтор шапки на каждом листе задаётся в макете. В Конфигураторе выделите строки шапки таблицы и выберите в меню Таблица → Печать команду повтора при печати. В коде за это отвечает свойство ПовторятьПриПечатиСтроки.
Ещё два приёма, которые знают разработчики печатных форм:
- Проверка вывода. Метод
ПроверитьВывод()отвечает, поместятся ли области на текущую страницу. Если нет — вставьте разрыв страницы и повторите шапку таблицы вручную. Так строка итогов не останется одна на новом листе. - Имя параметров печати. Свойство
ИмяПараметровПечатизаставляет 1С запомнить настройки страницы, которые пользователь выбрал для этой формы. Без него бухгалтер каждый раз заново ставит альбомную ориентацию.
Если в предварительном просмотре таблица мелкая и нечитаемая, не уменьшайте масштаб дальше. Лучше сузьте колонки с короткими значениями и включите перенос текста в шапке.
Форматирование таблицы программно: код на встроенном языке
В печатных формах основную красоту закладывают в макет: шрифты, рамки, форматы. Код только выводит области и докрашивает то, что зависит от данных. Пример ниже собирает таблицу, обводит её, красит отрицательные суммы и настраивает печать.
ТабДок = Новый ТабличныйДокумент;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеестрОстатков";
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ПолеСлева = 20;
ТабДок.ПолеСправа = 10;
ТабДок.ОтображатьСетку = Ложь;
Макет = ПолучитьМакет("РеестрОстатков");
ОбластьШапка = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ТабДок.Вывести(ОбластьШапка);
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("R1:R1");
ТабДок.ФиксацияСверху = 1;
Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
ШрифтИтога = Новый Шрифт("Arial", 10, Истина);
Для Каждого СтрокаДанных Из ТаблицаДанных Цикл
ОбластьСтрока.Параметры.Номенклатура = СтрокаДанных.Номенклатура;
ОбластьСтрока.Параметры.Остаток = СтрокаДанных.Остаток;
ВыводимыеОбласти = Новый Массив;
ВыводимыеОбласти.Добавить(ОбластьСтрока);
Если Не ТабДок.ПроверитьВывод(ВыводимыеОбласти) Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьСтрока);
Если СтрокаДанных.Остаток < 0 Тогда
// Остаток — во второй колонке только что выведенной строки
Ячейка = ТабДок.Область(ТабДок.ВысотаТаблицы, 2);
Ячейка.ЦветТекста = WebЦвета.Красный;
Ячейка.Шрифт = ШрифтИтога;
КонецЕсли;
КонецЦикла;
// Обвести всю таблицу: колонки 1–2, от шапки до последней строки
Таблица = ТабДок.Область(1, 1, ТабДок.ВысотаТаблицы, 2);
Таблица.Обвести(Линия, Линия, Линия, Линия);
// Формат и выравнивание колонки сумм
КолонкаСумм = ТабДок.Область(2, 2, ТабДок.ВысотаТаблицы, 2);
КолонкаСумм.Формат = "ЧДЦ=2; ЧН='—'";
КолонкаСумм.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
Что здесь стоит запомнить:
ТабДок.Область(Верх, Лево, Низ, Право)возвращает прямоугольник ячеек по номерам; строковая запись"R1C1:R10C5"делает то же самое;Обвести()задаёт рамку по контуру области, а внутренние линии рисуются через свойства границ ячеек;- ширину колонок меняют свойством
ШиринаКолонкиу области колонки, высоту строк —ВысотаСтроки; - цвет можно задать как
WebЦвета.Красный, так иНовый Цвет(255, 242, 204)для точного оттенка из фирменного стиля.
Для отчёта на СКД условное оформление добавляется в настройки компоновщика до вывода результата:
ЭлементУО = Настройки.УсловноеОформление.Элементы.Добавить();
Отбор = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Остаток");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
Отбор.ПравоеЗначение = 0;
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
ПолеОформления = ЭлементУО.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Остаток");
Почему оформление не применяется: ошибки и их причины
Большинство проблем с форматированием таблиц сводится к нескольким повторяющимся ситуациям.
Отдельно про объединённые ячейки в коде: если после вывода объединить область, где уже есть данные, сохранится только значение первой ячейки. Объединяйте в макете заранее или до заполнения.