При разработке интерфейсов в системе 1С:Предприятие, особенно при работе с обычными формами, мы часто сталкиваемся с ситуациями, когда очевидные настройки кажутся недоступными. Одна из таких классических проблем — попытка включить отображение заголовков строк и колонок (координатной сетки) в поле табличного документа, размещенном на форме. В этой статье мы подробно разберем, почему возникает эта сложность, как добраться до нужных свойств через интерфейс Конфигуратора, и как решить задачу, применяя программное изменение форм для гарантированного результата.
Давайте представим ситуацию: вы создаете отчет или обработку. На форме размещено поле табличного документа. Ваша задача — сделать так, чтобы пользователь видел заголовки строк (1, 2, 3...) и колонок (A, B, C...). Это необходимо для того, чтобы пользователь мог интерактивно менять ширину колонок или выделять целые строки нажатием на заголовок.
Однако, открыв палитру свойств (обычно нажатием Alt+Enter), вы с удивлением обнаруживаете, что нужной галочки ОтображатьЗаголовки там просто нет. Вместо этого вы видите свойства оформления: Шрифт, ЦветФона, Граница, Защита и так далее. Почему так происходит? В подобных случаях мог бы выручить редактор форм в режиме предприятия, но в Конфигураторе нужно разобраться в причинах поведения интерфейса.
Причина кроется в особенностях эргономики Конфигуратора 1С, особенно при работе с вкладками и панелями:
ПолеТабличногоДокумента), а "проваливается" внутрь него — в активную ячейку (обычно R1C1).Давайте разберем способы, как "поймать" нужный элемент и добраться до его глобальных настроек.
Это самый быстрый метод, если вы уже находитесь в окне свойств, но видите "не те" настройки. Обратите внимание на самую верхнюю часть палитры свойств.
Там находится выпадающий список, в котором отображается тип текущего выделенного объекта. Если вы кликнули в таблицу, там, скорее всего, написано Область ячеек табличного документа. Нам нужно изменить этот выбор:
ПолеТабличногоДокумента1).Если на форме много элементов или они перекрывают друг друга, самым надежным способом навигации является дерево элементов управления. Подобная структура позволяет реализовать даже добавление реквизитов и элементов формы без написания лишнего кода. Давайте посмотрим, как это сделать:
В меню Конфигуратора выберите пункт Форма -> Список элементов управления (или нажмите комбинацию клавиш, если она настроена). Откроется окно со структурой всех элементов текущей формы.
Существует простой клавиатурный прием, позволяющий поднять фокус с уровня содержимого на уровень контейнера. Попробуйте выполнить следующие действия:
Esc на клавиатуре.Во многих случаях (хотя и не всегда, зависит от настроек формы) фокус ввода переключится с редактирования ячейки на выделение самого элемента управления. Маркеры выделения изменятся (появятся по краям элемента), и в окне свойств отобразятся настройки самого поля.
Несмотря на то, что настройка через свойства удобна, опытные разработчики часто используют несколько приемов построения эффективных интерфейсов и предпочитают задавать ключевые параметры программно. Это гарантирует, что настройки применятся корректно, независимо от того, что случайно накликали в Конфигураторе, и облегчает копирование логики между отчетами.
Для обычных форм код инициализации интерфейса следует размещать в обработчике события формы ПриОткрытии.
Рассмотрим пример кода, который включает отображение заголовков и сетки:
Процедура ПриОткрытии()
// Включаем отображение заголовков строк и колонок
ЭлементыФормы.ПолеТабличногоДокумента1.ОтображатьЗаголовки = Истина;
// Дополнительно можно включить отображение сетки ячеек
ЭлементыФормы.ПолеТабличногоДокумента1.ОтображатьСетку = Истина;
КонецПроцедуры
Здесь ЭлементыФормы — это коллекция всех элементов управления на обычной форме, а ПолеТабличногоДокумента1 — имя вашего элемента (не путать с именем реквизита, хотя они часто совпадают).
Включение свойства ОтображатьЗаголовки влияет на интерактивность работы пользователя с отчетом или формой:
Мы должны помнить, что свойство ОтображатьЗаголовки элемента управления влияет только на экранное отображение формы. Оно не влияет на то, как документ будет выглядеть при печати.
Если вы хотите, чтобы при печати на бумаге также выводилась сетка и заголовки, необходимо настраивать параметры печати самого табличного документа перед выводом:
// Пример настройки параметров для печати
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1; // Получаем сам объект
ТабДок.ОтображатьЗаголовки = Истина; // Это свойство самого объекта ТабличныйДокумент
ТабДок.ОтображатьСетку = Истина;
ТабДок.Напечатать();
Таким образом, мы выяснили, что "пропавшие" настройки — это не ошибка платформы, а особенность фокусировки в среде разработки. Используя дерево элементов или программный код, вы всегда сможете настроить внешний вид табличного документа.