Имя: Пароль:
1C
1С v8
Обычные форма. Начало выбора. Как сфокусироваться на группе, но чтоб она открыта была.
0 Толичек
 
24.08.22
17:38
Этот код фокусирует на папке "Спецодежда 10.10", а мне нужно, чтобы эта папка была открыта, а не показана в списке с другими её братьями и сёстрами.

Процедура ТоварыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    НоменклатураСпецодежда = Справочники.Номенклатура.НайтиПоНаименованию("Спецодежда 10.10");
        
    ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(, Элемент);
    ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВИерархии;
    ФормаВыбора.Отбор.Ссылка.Значение = НоменклатураСпецодежда;
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    ФормаВыбора.ПараметрТекущаяСтрока = ?(ЗначениеЗаполнено(Элемент.Значение),Элемент.Значение,НоменклатураСпецодежда);
    ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
    
    ФормаВыбора.Открыть();
    
КонецПроцедуры
1 Ёпрст
 
24.08.22
17:42
(0)
примитив - спозиционироваться на первый элемент унутри этой группы
2 Толичек
 
24.08.22
17:53
А если группа пуста?
3 Толичек
 
24.08.22
17:53
И как узнать, какой элемент у неё первый
4 Галахад
 
гуру
24.08.22
17:57
Отсортировать же.
5 Ёпрст
 
24.08.22
17:58
(3) зависит от сортировки - по коду/наименованию/реквизиту..
6 Толичек
 
24.08.22
18:09
Всё, нашёл решение:

Процедура ТоварыНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    НоменклатураСпецодежда = Справочники.Номенклатура.НайтиПоНаименованию("Спецодежда 10.10");
        
    ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(, Элемент);
    ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВИерархии;
    ФормаВыбора.Отбор.Ссылка.Значение = НоменклатураСпецодежда;
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    
    Если ЗначениеЗаполнено(Элемент.Значение) Тогда
        ФормаВыбора.ПараметрТекущаяСтрока = Элемент.Значение;
    Иначе
        ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущийРодитель = НоменклатураСпецодежда;
    КонецЕсли;
    
    ФормаВыбора.Открыть();
    
КонецПроцедуры
7 Толичек
 
24.08.22
18:14
Правда, если папка пустая, то не работает - идёт в корень.
8 СеменовСемен
 
24.08.22
18:25
отбор не нужен. достаточно запретить менять группу
9 Толичек
 
24.08.22
18:35
(8) Каким образом?
10 Толичек
 
24.08.22
18:36
(8) А если мне подпапки нужны?
11 СеменовСемен
 
24.08.22
18:40
(9) ИзменятьТекущегоРодителя
12 Толичек
 
24.08.22
18:44
(11) мне все подпапки нужны. И если без отбора, то у меня будет возможность выбрать элемент не из папки спецодежда, а мне этого нельзя делать.
13 СеменовСемен
 
24.08.22
18:44
(12) а ты пробовал?