Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как программно развернуть динамический список, отображаемый в виде дерева?

Как программно развернуть динамический список, отображаемый в виде дерева?
Я
   i_rodionov
 
15.09.20 - 23:27
Список на форме называется ВыкладкиМагазины. После отбора, текущей строкой списка-дерева становится Элементы.ВыкладкиМагазины.ТекущаяСтрока

Элементы.ВыкладкиМагазины.Развернуть(Элементы.ВыкладкиМагазины.ТекущаяСтрока, Истина);

Не работает.

Подскажите
   i_rodionov
 
1 - 15.09.20 - 23:38
UPD Платформа 8.3.16.1224, режим совместимости 8.3.16, БСП 3 редакции
   RomanYS
 
2 - 15.09.20 - 23:39
(0) "в виде дерева" - это ДС с группировками?
Работает
&НаКлиенте
Процедура Команда1(Команда)
    Элементы.Список.Развернуть(Элементы.Список.ТекущаяСтрока, Истина);
КонецПроцедуры

8.3.17.1386 пустая тестовая конфигурация
   i_rodionov
 
3 - 15.09.20 - 23:41
(2) иду читать багборд, может в моей платформе такой баг, завтра будет доступна 8.3.17, посмотрю
   RomanYS
 
4 - 15.09.20 - 23:47
(3) Сомневаюсь, что дело в платформе.
Где это у тебя запускается, другого кода нет?
   RomanYS
 
5 - 15.09.20 - 23:49
Добавь
Сообщить(ТипЗнч(Элементы.ВыкладкиМагазины.ТекущаяСтрока));
что выводит?
   i_rodionov
 
6 - 15.09.20 - 23:50
(4) Это ДС с настроенными группировками. В форме настроено Начальное отображение дерева Раскрывать все уровни. Но первый уровень должен подвергаться отбору по активизации строки другого элемента (табличная часть)
   i_rodionov
 
7 - 15.09.20 - 23:50
(5) Сейчас в отладчике посмотрю и скажу
   i_rodionov
 
8 - 15.09.20 - 23:51
(5) Элементы.ВыкладкиМагазины.ТекущаяСтрока    тип    СтрокаГруппировкиДинамическогоСписка
   RomanYS
 
9 - 15.09.20 - 23:55
(8) норм
(6) весь код давай
   i_rodionov
 
10 - 15.09.20 - 23:57
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    
    ВыкладкиМагазины.Параметры.УстановитьЗначениеПараметра("Ссылка",Объект.Ссылка);
    
КонецПроцедуры

&НаКлиенте
Процедура ПланограммыПриАктивизацииСтроки(Элемент)
    
    Если Элемент.ТекущиеДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Планограмма = Элемент.ТекущиеДанные.Планограмма;
    
    Если ЗначениеЗаполнено(Планограмма) Тогда
        ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(ВыкладкиМагазины,"Планограмма",Планограмма,Истина,ВидСравненияКомпоновкиДанных.Равно);
        
        Если Элементы.ВыкладкиМагазины.ТекущаяСтрока <> Неопределено Тогда
            Элементы.ВыкладкиМагазины.Развернуть(Элементы.ВыкладкиМагазины.ТекущаяСтрока, Истина);
        КонецЕсли;
        
    КонецЕсли;
        
КонецПроцедуры
   i_rodionov
 
11 - 16.09.20 - 00:29
Вообще плохо дело, потому что к свойствам расширения формы динамического списка нет (
   i_rodionov
 
12 - 16.09.20 - 00:29
Не понимаю, почему это не включили в объектную модель
   RomanYS
 
13 - 16.09.20 - 00:32
(10) Почему-то действительно сразу после отбора не срабатывает. С паузой работает

&НаКлиенте
Процедура _Тест()
    Элементы.Список.Развернуть(Элементы.Список.ТекущаяСтрока, Истина);
КонецПроцедуры

&НаКлиенте
Процедура ДСПриАктивизацииСтроки(Элемент)
    Список.Отбор.Элементы[0].ПравоеЗначение = Элементы.ДС.ТекущаяСтрока;

    //Элементы.Список.Развернуть(Элементы.Список.ТекущаяСтрока, Истина);//не работает

    ПодключитьОбработчикОжидания("_Тест", 0.1, Истина)//работает

КонецПроцедуры
   i_rodionov
 
14 - 16.09.20 - 00:33
(13) Огромная благодарность, попробую этот вариант!
   i_rodionov
 
15 - 16.09.20 - 00:35
(13) Это напоминает асинхронное программирование, которое сейчас в БСП 3, но оно хотя бы задокументировано и легально
   i_rodionov
 
16 - 16.09.20 - 01:04
(13) Более правильно
Процедура _Тест()
    Элементы.Список.Развернуть(Элементы.Список.ТекущаяСтрока, Истина);
    ОтключитьОбработчикОжидания("_Тест");
КонецПроцедуры
   i_rodionov
 
17 - 16.09.20 - 01:07
(13) И это действительно работает, спасибо за идею!!!
   AneJIbcuH
 
18 - 16.09.20 - 08:21
(16) В чем тут более правильности?
В (13) третьим параметром стоит Истина, означающий однократный запуск.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.