Оформление табличного документа и отчёта в 1С 8.3: от ячейки до печатного листа

· 10 мин

Содержание

Таблицу в 1С форматируют через палитру свойств ячейки: выделите ячейки табличного документа, нажмите Alt+Enter или выберите Свойства в контекстном меню — там задаются шрифт, цвет, выравнивание, границы и формат чисел. Для отчётов на системе компоновки данных (СКД) оформление по значению настраивается в условном оформлении, а для печатных форм — в макете в Конфигураторе.

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

С какой таблицей вы работаете: три места оформления

Слово «таблица» в 1С означает разные объекты, и форматируют их по-разному. Сначала определите свой случай.

Что перед вамиГде оформлятьЧто сохранится
Макет печатной формы или отчётаКонфигуратор, редактор макетаОформление навсегда, для всех пользователей
Готовый табличный документ (файл .mxl, сформированный отчёт)Режим 1С:Предприятие, палитра свойствТолько в этом документе или файле
Отчёт на СКДНастройки отчёта, вкладка оформленияВ варианте отчёта

📌 Правило простое. Нужно, чтобы форма всегда выглядела иначе, — правьте макет. Нужно один раз поправить отчёт перед отправкой — правьте готовый документ. Нужно подсветить строки по условию — настраивайте СКД.

Готовый отчёт часто открывается только для просмотра. Чтобы править ячейки, сохраните результат в файл .mxl через меню ≡ → Файл → Сохранить как и откройте этот файл в 1С. Правки в самом окне отчёта пропадут при следующем нажатии Сформировать.

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

Шрифт, цвет и выравнивание ячеек таблицы

Базовое форматирование ячеек одинаково в Конфигураторе и в режиме предприятия.

  1. Выделите ячейку или диапазон мышью. Целую строку или колонку — щелчком по её заголовку слева или сверху.
  2. Откройте палитру свойств: Alt+Enter или контекстное меню → Свойства.
  3. В группе свойств шрифта выберите гарнитуру, размер, жирность, наклон.
  4. Задайте Цвет текста и Цвет фона.
  5. В свойствах положения выберите горизонтальное (лево, центр, право, по ширине) и вертикальное выравнивание.
  6. Отступ слева пригодится для иерархии: вложенные строки сдвигают на 1–2 единицы.

Для длинного текста важно свойство Размещение:

  • 🔹 Авто — текст вылезает в соседнюю ячейку, если та пустая;
  • 🔹 Обрезать — лишнее просто не видно;
  • 🔹 Забивать — текст не выходит за границу ячейки;
  • 🔹 Переносить — перенос по словам внутри ячейки, строка растёт по высоте.

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

Ширину колонки удобно задать числом в свойстве ширины колонки, а не тянуть мышью: так все колонки сумм получатся одинаковыми. Если высота строки задана вручную, перенесённый текст может не поместиться — проверьте строку на экране и в предварительном просмотре.

Границы, объединение и сетка табличного документа

Серая сетка, которую видно на экране, — это не границы. На печать сетка не выводится, поэтому таблица без явно заданных рамок выйдет на бумаге «голым» текстом.

Как обвести таблицу рамкой:

  1. Выделите весь диапазон таблицы.
  2. В палитре свойств найдите группу границ: левая, верхняя, правая, нижняя.
  3. Для каждой стороны выберите тип линии: сплошная, пунктир, двойная и т.д. Толщина задаётся там же.
  4. Цвет линий задаётся отдельным свойством цвета рамки.
  5. В Конфигураторе то же быстрее сделать кнопками границ на панели инструментов редактора макета.

Внутренние линии появляются, если задать границы каждой ячейке диапазона. Типичный приём для отчёта: тонкая сплошная линия внутри, жирная — по внешнему контуру шапки.

Объединение ячеек. Выделите диапазон и выберите Объединить в контекстном меню. Объединение нужно для шапки над несколькими колонками («Остаток на начало» над «Дебет» и «Кредит»).

В объединённой ячейке хранится только содержимое левой верхней ячейки. Если объединить диапазон с данными, остальные значения потеряются.

Как скрыть сетку и заголовки строк и колонок на экране: в Конфигураторе — меню Таблица → Вид, в коде — свойствами ОтображатьСетку и ОтображатьЗаголовки табличного документа. Готовая форма без сетки выглядит как документ, а не как черновик.

Формат чисел и дат в ячейках таблицы

Формат управляет тем, как показано значение: разряды, знаки после запятой, вид даты. Он работает только когда в ячейке лежит число или дата, а не строка.

Где задаётся формат:

  • в макете — свойство Формат ячейки, у него есть конструктор форматной строки (кнопка с многоточием);
  • в отчёте на СКД — оформление поля, параметр «Формат»;
  • в коде — свойство Формат области ячеек или функция Формат().

Частые форматные строки:

ЗадачаФорматная строкаРезультат для 1234567,5 / даты
Два знака после запятойЧДЦ=21 234 567,50
Без разделителя тысячЧДЦ=2; ЧГ=01234567,50
Ноль показать прочеркомЧДЦ=2; ЧН='—'для 0 → —
Целые без копеекЧДЦ=01 234 568
ДатаДФ=dd.MM.yyyy22.10.2026
Дата прописьюДЛФ=DD22 октября 2026 г.
Да/Нет для булеваБЛ=Нет; БИ=ДаДа

В макете ячейка, куда подставляется сумма, должна иметь Заполнение = Параметр и имя параметра. Тогда формат применится к самому числу. Если ячейка заполнена как Текст или Шаблон, а в параметр передана уже строка, формат ничего не изменит.

💡 Формат меняет только отображение. Итоги, выгрузка в Excel и расшифровка работают с исходным числом, поэтому «отрезанные» форматом копейки в сумме никуда не исчезают.

Условное оформление: подсветка значений по правилу

Сам табличный документ условного оформления не умеет: каждый цвет в нём задан явно. Подсветка «отрицательные остатки красным» делается двумя способами.

Способ 1. Условное оформление в отчёте на СКД — без программирования.

  1. Откройте отчёт, нажмите Настройки.
  2. Переключите вид настроек в расширенный режим (если форма настроек его предлагает).
  3. Перейдите на вкладку оформления и добавьте новое условное оформление.
  4. В условии выберите поле и сравнение, например Конечный остаток Меньше 0.
  5. В оформлении задайте цвет текста или фона, жирность, при необходимости — формат.
  6. В списке оформляемых полей укажите, к каким колонкам применить правило. Пустой список — оформится вся строка.
  7. Сформируйте отчёт и сохраните вариант, чтобы правило не пропало.

Разработчик то же самое настраивает в Конфигураторе: конструктор схемы компоновки → вкладка Настройки → нижняя часть, закладка Условное оформление.

Способ 2. Код при выводе строк. После вывода очередной строки найдите её ячейку и поменяйте цвет (пример — в разделе с кодом ниже).

СпособКогда выбиратьОграничения
Условное оформление СКДОтчёты на СКД, правило меняет пользовательТолько отчёты на СКД
Код при выводеПечатные формы и отчёты на макетахПравило меняет только программист
Ручная заливкаРазовая правка перед отправкойПропадёт при переформировании

Параметры страницы и подготовка таблицы к печати

Широкий отчёт чаще всего ломается при печати: последние колонки уезжают на второй лист. Перед печатью откройте ≡ → Файл → Предварительный просмотр, а настройки задайте в ≡ → Файл → Параметры страницы.

Что настроить в окне параметров страницы:

  • 📄 Ориентация — альбомная для таблиц шире 7–8 колонок;
  • 🔍 Масштаб — режим «По ширине страницы» сам ужмёт таблицу в ширину листа;
  • 📏 Поля — для подшивки слева оставляют 20 мм, остальные можно уменьшить до 5–10 мм;
  • 🧾 Колонтитулы — номер страницы и дата печати для многостраничных реестров.

Повтор шапки на каждом листе задаётся в макете. В Конфигураторе выделите строки шапки таблицы и выберите в меню Таблица → Печать команду повтора при печати. В коде за это отвечает свойство ПовторятьПриПечатиСтроки.

Ещё два приёма, которые знают разработчики печатных форм:

  1. Проверка вывода. Метод ПроверитьВывод() отвечает, поместятся ли области на текущую страницу. Если нет — вставьте разрыв страницы и повторите шапку таблицы вручную. Так строка итогов не останется одна на новом листе.
  2. Имя параметров печати. Свойство ИмяПараметровПечати заставляет 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Цвета.Красный);

ПолеОформления = ЭлементУО.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Остаток");

Почему оформление не применяется: ошибки и их причины

Большинство проблем с форматированием таблиц сводится к нескольким повторяющимся ситуациям.

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

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

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

Сохранится ли оформление при выгрузке таблицы в Excel?
Шрифты, заливка, границы, объединения и ширина колонок в целом переносятся. Числа выгружаются числами, если в ячейке было число, а не строка.
Можно ли скопировать оформление одной ячейки на другие?
Проще всего выделить сразу все нужные ячейки и задать свойства в палитре один раз. Палитра применяет значение ко всему выделенному диапазону.
Как закрепить шапку таблицы при прокрутке?
В коде задайте свойство ФиксацияСверху равным числу строк шапки.
Можно ли сделать условное оформление в обычном табличном документе без СКД?
Встроенного механизма нет. Подсветку по условию делают кодом во время вывода строк или переводят отчёт на СКД.
Почему в предварительном просмотре таблица выглядит иначе, чем на экране?
Просмотр учитывает поля, масштаб и ориентацию страницы. Сетка в нём не показывается, а длинный текст при размещении «Авто» может обрезаться по краю листа.