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

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

Не работает.

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

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

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

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

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

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