Капитально об программе 1С 8.0-8.3-8.4, 7.7

Как в управляемой форме развернуть группу справочника при активизации строки

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

Цель:

В такой простой задаче может возникнуть стопор из-за особенностей динамического списка:

Решение проблемы:

Первое что необходимо сделать: проверить или установить свойство «Отображение» у таблице в значение «Дерево»

Оказывается в метод Развернуть() в данном случае можно передавать эту ссылку, т.к. источник справочник, в котором нет дублей, следовательно система однозначно идентифицирует данную строку и сможет ее развернуть или свернуть. Аналогично работает и метод Развернут().

Код события при «АктивизацииСтроки»

Процедура ДеревоПриАктивизацииСтроки(Элемент)

    тд = Элементы.Дерево.ТекущиеДанные;
    Если Не тд = Неопределено Тогда
        Если Элементы.Дерево.Развернут(Элементы.Дерево.ТекущаяСтрока)= Ложь Тогда
            Элементы.Дерево.Развернуть(Элементы.Дерево.ТекущаяСтрока,Ложь);
        КонецЕсли;
    КонецЕсли;    

КонецПроцедуры

 

Для удобства пользователя добавим, авто раскрытие/сокрытие при выборе(двойном клике, по уже активной строке):

Код события «Выбор»

Процедура ДеревоВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ТС = Элементы.Дерево.ТекущаяСтрока;
    Если Элементы.Дерево.Развернут(ТС) = Истина Тогда
        Элементы.Дерево.Свернуть(ТС);
    Иначе
        Элементы.Дерево.Развернуть(ТС,Ложь);
    КонецЕсли;

КонецПроцедуры

 

Данная статья также применима к плану счетов, планам видов характеристик и расчетов (которые имеют иерархическую структуру).