Как изменить границы области макета отчета в 1С и почему пропадают данные при редактировании?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Способ 1. Переназначение границ существующей области

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

  1. Откроем нужный макет табличного документа в конфигураторе.
  2. Выделим целиком весь новый диапазон строк (или колонок), который должен войти в обновленную область (включая как старые, так и добавленные строки). Для выделения строк кликнем по номерам строк на левой панели макета и протянем выделение.
  3. Перейдем в главное меню: Таблица — Имена — Назначить имя (или воспользуемся контекстным меню / панелью инструментов).
  4. В появившемся окне укажем точное исходное имя области (например, Шапка, СтрокаТаблицы или Подвал) и нажмем ОК.

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

Способ 2. Автоматическое расширение области при вставке строк

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

Чтобы область расширилась автоматически, выполним следующие шаги:

  1. Выделим строку внутри диапазона области (между первой и последней строками области).
  2. Нажмем правой кнопкой мыши по номеру строки и выберем пункт Раздвинуть (или пункт Вставить).
  3. Платформа добавит пустую строку внутрь области, автоматически увеличив высоту именованного диапазона на единицу.
  4. После этого настроим свойства новых ячеек и перенесем содержимое в нужные позиции.

Почему после изменения области пропадают данные на форме?

Выясним основные причины, по которым после редактирования макета значения параметров перестают отображаться или выводятся некорректно:

  1. Сброс свойства ячейки «Заполнение»: если строки были удалены и созданы заново вручную, ячейки по умолчанию получают тип заполнения Текст. Если в программном коде передача данных выполняется через конструкцию вида Область.Параметры.ИмяПараметра = Значение;, платформа не сможет подставить данные. Для исправления откроем палитру свойств ячейки (нажатием F4), перейдем к свойству Заполнение и явно переключим его в значение Параметр (или Шаблон).
  2. Смещение относительных координат в коде: если заполнение ячеек запрограммировано через прямые координаты внутри области (например, Область.Область("R2C3").Текст = ...), добавление новых строк смещает физические номера строк, из-за чего данные записываются не в те ячейки. Рекомендуется всегда использовать именованные параметры вместо жесткой адресации по координатам.
  3. Снятый флаг автовысоты строк: если для новых строк отключено свойство Автовысота строки и задана фиксированная минимальная высота, длинный текст может скрываться за границами ячейки при экранном просмотре. Убедимся, что для выводимых строк включена автовысота и перенос текста.
  4. Пользовательские макеты СКД: если отчет работает на Системе компоновки данных (СКД), а структура областей была переопределена на вкладке «Макеты», изменение состава или имен областей требует обязательной проверки соответствия макетов группировок в самой схеме компоновки.

Вывод надстрочных и подстрочных символов в ячейках

Рассмотрим ситуацию, когда в макете требуется сформировать сложный текст с надстрочными символами (верхними индексами, например: м², м³, сноски). В стандартной ячейке табличного документа 1С не поддерживается частичное форматирование фрагментов текста (Rich Text). Поэтому единственным штатным и универсальным решением является программное формирование текста с использованием символов Unicode через функцию Символ().

Посмотрим на пример формирования строки с верхними индексами:


// Пример формирования строки с надстрочными индексами (коды Unicode)
ИндексКвадрат = Символ(178); // ² (код 178)
ИндексКуб     = Символ(179); // ³ (код 179)
ИндексНоль    = Символ(8304); // ⁰ (код 8304)
ИндексОдин    = Символ(185);  // ¹ (код 185)

ТекстРезультата = "Объем помещения: 150 " + "м" + ИндексКуб + ", площадь: 50 " + "м" + ИндексКвадрат;
ОбластьМакета.Параметры.СведенияОПлощади = ТекстРезультата;

Такой подход обеспечивает корректное отображение специальных символов и верхних индексов как в экранной форме табличного документа, так и при выводе на печать или сохранении в PDF.

← На главную