Как получить доступ к свойствам и событиям колонок табличного поля, если они не видны на форме

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

В процессе разработки или модификации типовых конфигураций на обычных формах программисты часто сталкиваются с неприятной особенностью редактора форм. Если разработчик установил большую высоту шапки табличного поля (например, 5 строк) и включил видимость подвала, область самих строк (полей ввода) может физически исчезнуть из визуального редактора. В такой ситуации стандартный клик мышкой по полю ввода становится невозможным, что блокирует доступ к палитре свойств и вкладке событий конкретной колонки.

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

Метод 1: Использование специализированного окна управления колонками

Это самый надежный и «чистый» способ, который не зависит от того, насколько сильно сжата область данных в табличном поле. Вместо того чтобы пытаться попасть мышкой в узкую полоску между шапкой и подвалом, мы воспользуемся встроенным редактором коллекции.

Разберем этот процесс по шагам:

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

После этого откроется стандартное окно свойств (Палитра свойств), привязанное именно к выбранной колонке. Теперь мы можем спокойно перейти на вкладку «События» и создать необходимые обработчики, такие как ПриИзменении или НачалоВыбора.

Метод 2: Навигация через коллекцию в окне свойств

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

Рассмотрим последовательность действий:

  1. Откроем общее окно свойств (используя горячие клавиши Ctrl + Alt + P).
  2. В самом верху окна свойств находится выпадающий список всех элементов формы. Развернем его и выберем наше ТабличноеПоле.
  3. В списке свойств найдем строку «Колонки» (она находится в категории «Основные»).
  4. Нажмем на кнопку с многоточием ... в этой строке.
  5. Откроется уже знакомое нам окно со списком колонок. Выбираем нужную и переходим в ее свойства.

Важное замечание: В отличие от управляемых форм, в обычных формах колонки не являются отдельными элементами в «Списке элементов управления формы». Они всегда подчинены родительскому объекту, поэтому искать их в общем дереве объектов через главное меню бесполезно.

Метод 3: Временное изменение числовых параметров (Безопасный хак)

Если нам критически важно видеть поле ввода в редакторе (например, для визуального выравнивания или проверки ширины), мы можем временно изменить геометрию элемента. Многие опасаются делать это, чтобы не испортить верстку, но если менять значения через окно свойств, риск минимален.

Выясним, как это сделать правильно:

  1. Выделим ТабличноеПоле и в окне свойств найдем параметр ВысотаШапки.
  2. Запомним текущее значение (например, 5) и установим временно 1.
  3. Если места все еще мало, снимем галочку с параметра Подвал.
  4. Теперь область данных расширится, и поля ввода станут доступны для обычного клика мышью.
  5. Настроим все необходимые события и свойства.
  6. Вернем исходные значения параметров ВысотаШапки и Подвал.

Этот метод хорош тем, что он заставляет платформу перерисовать элемент в конфигураторе, открывая доступ к его внутренним составляющим.

Метод 4: Использование клавиатурных комбинаций

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

Попробуем следующую схему:

  1. Кликнем мышкой по заголовку (шапке) нужной колонки.
  2. Нажмем клавишу Down (Стрелка вниз). Фокус должен переместиться с заголовка на поле ввода этой колонки.
  3. Проконтролируем результат в окне свойств: заголовок окна свойств должен измениться с «Колонка: ИмяКолонки» на «Поле ввода: ИмяКолонки» (или другой тип элемента управления).
  4. Если фокус «перескакивает» на другой элемент, попробуем комбинацию Ctrl + Down.

Как отмечают опытные разработчики, иногда после нажатия «вниз» требуется нажать «вправо», а затем снова «влево», чтобы окно свойств корректно обновило контекст и показало события именно для элемента управления (поля ввода), а не для абстрактной колонки.

Почему это происходит и как избежать проблем в будущем

Проанализируем причину такого поведения конфигуратора. В обычных формах ТабличноеПоле — это сложный агрегатный объект. Его визуальное представление в дизайнере является лишь упрощенной моделью. Когда высота служебных областей (шапки и подвала) суммарно превышает общую высоту элемента, область отрисовки строк схлопывается в ноль.

Чтобы упростить себе работу в будущем, придерживайтесь следующих правил:

Использование описанных выше методов позволит вам эффективно работать даже с самыми «перегруженными» типовыми формами, сохраняя доступ ко всей мощи объектной модели 1С без лишних манипуляций с визуальным интерфейсом.

← На главную