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

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

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

Особенности модели элементов формы: расширение обычной группы

Когда мы добавляем элемент с типом ГруппаФормы через коллекцию ЭтаФорма.Элементы.Вставить() или ЭтаФорма.Элементы.Добавить(), изначально создается базовый объект группы. В синтакс-помощнике у объекта ГруппаФормы действительно нет свойства Поведение.

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

Пошаговое создание свертываемой группы программно

Рассмотрим подробнее правильный алгоритм создания свертываемой группы на форме:

  1. Добавляем элемент управления типа ГруппаФормы в коллекцию элементов формы.
  2. Явно задаем вид группы как ВидГруппыФормы.ОбычнаяГруппа, чтобы активировать расширение обычной группы.
  3. Устанавливаем свойство Поведение в значение ПоведениеОбычнойГруппы.Свертываемая.
  4. Задаем заголовок группы и при необходимости дополнительные параметры отображения.

Посмотрим на пример программного создания группы:


// Добавляем новую группу в форму
ГруппаПроводок = ЭтаФорма.Элементы.Вставить("ГруппаПроводок", Тип("ГруппаФормы"), ЭтаФорма, Элементы.Реквизит1);

// Подключаем расширение обычной группы
ГруппаПроводок.Вид = ВидГруппыФормы.ОбычнаяГруппа;

// Задаем поведение группы как свертываемой
ГруппаПроводок.Поведение = ПоведениеОбычнойГруппы.Свертываемая;

// Задаем текст заголовка
ГруппаПроводок.Заголовок = "Проводки (нажмите сюда, чтобы свернуть или развернуть)";

Дополнительные свойства оформления свертываемой группы

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

  1. ЗаголовокСвернутогоОтображения — строковое свойство, позволяющее выводить альтернативный текст заголовка, пока группа находится в свернутом виде.
  2. ОтображениеУправления — управляет тем, как пользователь интерактивно взаимодействует с группой. Принимает значения системного перечисления ОтображениеУправленияОбычнойГруппы (например, Картинка или ГиперссылкаЗаголовка).
  3. Объединенная — булево свойство, определяющее совместное размещение заголовка и управляющих элементов для более компактного вида на форме.
  4. Событие Нажатие — свертываемой группе можно программно назначить обработчик события клика по ее заголовку с помощью метода УстановитьДействие(), что удобно для динамической загрузки тяжелых данных только в момент открытия группы.

Разберем пример расширенной настройки оформления:


ГруппаПроводок.ЗаголовокСвернутогоОтображения = "Проводки (скрыто, нажмите для показа)";
ГруппаПроводок.ОтображениеУправления = ОтображениеУправленияОбычнойГруппы.ГиперссылкаЗаголовка;
ГруппаПроводок.Объединенная = Истина;

Программное сворачивание и разворачивание группы

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

Для программного управления состоянием обычной свертываемой группы платформа версии 8.3.12 и выше предоставляет специализированные методы:

  1. Скрыть() — программно сворачивает группу элементов.
  2. Показать() — разворачивает скрытую ранее группу.
  3. Скрыта() — возвращает булево значение (Истина, если группа свернута, и Ложь, если развернута).

Посмотрим, как проверить состояние группы и программно ее свернуть:


// Проверяем, развернута ли группа, и сворачиваем ее при необходимости
Если Не Элементы.ГруппаПроводок.Скрыта() Тогда
    Элементы.ГруппаПроводок.Скрыть();
КонецЕсли;

Использование связки свойства Вид, системного перечисления ПоведениеОбычнойГруппы и методов Скрыть() / Показать() позволяет полностью контролировать динамическое поведение панелей интерфейса на управляемых формах 1С.

← На главную