Как в конфигураторе 1С посмотреть список всех областей макета и быстро перейти к нужной?

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

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

Штатный диалог навигации по именам макета

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

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

Визуальное отображение именованных областей и назначение горячих клавиш

Помимо диалогового окна со списком, разработчик может включить постоянную подсветку именованных секций на самом макете. Для этого в подменю Таблица — Имена предусмотрены следующие режимы:

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

Если с макетами приходится работать постоянно, вызов окна со списком областей можно ускорить. Для этого перейдем в меню Сервис — Параметры — Клавиатура, найдем команду редактора табличного документа «Имена…» и назначим для нее удобную комбинацию горячих клавиш.

Ограничения стандартного механизма при огромном количестве областей

Проанализируем ситуацию, когда в макете действительно содержатся тысячи именованных секций. Стандартный диалог «Имена…» имеет ряд архитектурных ограничений:

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

Альтернативное решение: создание внешней обработки-навигатора

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

Посмотрим на пример заполнения таблицы областей макета и механизм позиционирования:


// Заполняем таблицу областей для быстрого поиска на форме
Для Каждого ОбластьМакета Из ИсходныйМакет.Области Цикл
    НоваяСтрока = ТаблицаИмен.Добавить();
    НоваяСтрока.ИмяОбласти = ОбластьМакета.Имя;
    НоваяСтрока.Верх       = ОбластьМакета.Верх;
    НоваяСтрока.Низ        = ОбластьМакета.Низ;
    НоваяСтрока.Лево       = ОбластьМакета.Лево;
    НоваяСтрока.Право      = ОбластьМакета.Право;
КонецЦикла;

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


// Переход к выбранной области в поле табличного документа
ОбластьДляПерехода = Элементы.ПолеТабличногоДокумента.Область(ВыбранноеИмя);
Элементы.ПолеТабличногоДокумента.ТекущаяОбласть = ОбластьДляПерехода;

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

Архитектурные рекомендации по оптимизации макетов

Если макет разрастается до тысяч областей, рассмотрим меры по оздоровлению архитектуры решения:

  1. Декомпозиция на несколько макетов: разделим единый перегруженный макет на логические части (например, макет шапки, табличной части, подвалов или отдельных страниц). Это не только ускорит навигацию, но и сократит время сохранения конфигурации, а также снизит вероятность повреждения метаданных макета.
  2. Перенос логики на Систему компоновки данных (СКД): большинство многостраничных отчетов со сложными группировками эффективнее строить средствами СКД, где отпадает необходимость ручной верстки и адресации тысяч отдельных ячеек.
  3. Поиск через выгрузку исходных текстов: если конфигурация выгружена в XML-файлы или разработка ведется в среде 1C:Enterprise Development Tools (1C:EDT), макеты описываются в текстовом формате. Это дает возможность выполнять сквозной поиск любых секций и параметров регулярными выражениями через внешние редакторы кода.
← На главную