Имя: Пароль:
1C
 
Как выбрать все элементы входящие в группу справочника?
0 Jurest_
 
14.07.21
23:29
Всем привет. Уже была такая тема, но все таки я решил повторить. У меня стоит задача, выбрать все группы(элементы) справочника, входящие в определенную группу. Пример: Есть справочник Номенклатура, в нем есть папка Торговая деятельность, в этой папке есть еще папки с категориями товаров(Часы, ТВ и тд.). В каждой этой папке есть список товаров. Вопрос. Как мне достать только список папок, которые есть в папке Торговая деятельность? Пытаюсь через метод Выбрать, у него есть параметр <Родитель>, но я не понимаю, что именно надо написать в этот параметр. Подскажите.
1 Злопчинский
 
14.07.21
23:40
написать запрос
в запросе ограничиться выбором тех, которые имеют признак ЭтоГруппа=1 и лежать внутри иерархии группы ВыбТорговаяДеятельность.
.
но я не 8-ик
могу лажать
2 Лефмихалыч
 
14.07.21
23:45
выбрать ссылка ИЗ Справочник.Номенклатура ГДЕ ЭтоГруппа И ссылка в иерархии(&СсылкаНаТвоюВолшебнуюГруппу)
3 Jurest_
 
14.07.21
23:48
А без запроса это сделать никак не получится?
4 Злопчинский
 
14.07.21
23:49
(3) можно, но это некошерно по идеологии использования 8-ки.
5 Злопчинский
 
14.07.21
23:49
(3) и за такое на экзамене ебеницу поставят!
6 youalex
 
14.07.21
23:50
(3) Можно визуально выбирать
7 Злопчинский
 
14.07.21
23:50
(2) точняк, только я другими словами написал ;-)
8 Jurest_
 
14.07.21
23:53
(6) Не, нужно именно программно. Пошел пробовать через запрос.
9 Jurest_
 
15.07.21
00:03
Пожалуйста, только не отправляйте читать про кодирование. Я этим занимаюсь.
Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    |Номенклатура.Ссылка
    |ИЗ
    |Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |ЭтоГруппа И Номенклатура.Ссылка В ИЕРАРХИИ(&Торговая деятельность)";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл
        НоваяСтрока = Объект.ДанныеФайла.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока,Выборка);
    КонецЦикла;  
Как мне правильно объявить название папки?
10 Ненавижу 1С
 
гуру
15.07.21
00:14
(9) почитайте про параметры запросов
11 Jurest_
 
15.07.21
00:19
То, что надо эту строчу добавить я понимаю
Запрос.УстановитьПараметр("Торговая деятельность",ГруппаВыбора)
А вот что именно надо записать в ГруппуВыбора нет.
12 Jurest_
 
15.07.21
00:25
Синтаксис:

Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>)
Параметры:

<Родитель> (необязательный)

Тип: СправочникСсылка.<Имя справочника>.
Отбор по родителю. Имеет смысл только для многоуровневых справочников. Если параметр не задан, то отбор по родителю не производится. Чтобы отобрать элементы верхнего уровня, нужно в качестве данного параметра указать пустую ссылку на элемент справочника.

Если пишу в этот параметр ПустаяСсылка, то действительно выбирается корневая папка Торговая деятельность. Можно в этот параметр как то впихнуть нужную мне папку?
13 hhhh
 
15.07.21
02:35
(12) ГруппаВыбора = Справочники.Номенклатура.НайтиПоНаименованию("Торговая деятельность");
14 серый КТУЛХУ
 
15.07.21
02:39
пробелы недопустимы в идентификаторах параметров запроса
"В ИЕРАРХИИ(&ТорговаяДеятельность)"
Запрос.УстановитьПараметр("ТорговаяДеятельность",ГруппаВыбора)
15 Обработка
 
15.07.21
06:15
(12) Вот зачем спрашивать когда можно попробовать. Тем более уже код готов.
16 Jurest_
 
15.07.21
14:52
(13) Большое спасибо. Сработало. Буду знать.
17 Jurest_
 
15.07.21
19:12
Возможно, кто то прочитает. Теперь пытаюсь добавить элемент в группу в справочнике Номенклатура.

    НовыйТовар = Справочники.Номенклатура.СоздатьЭлемент();
        НовыйТовар.Родитель = Справочники.Номенклатура.НайтиПоНаименованию(Строка(Товар.Группа));
    ЗаполнитьЗначенияСвойств(НовыйТовар, Товар);
    //НовыйТовар.Заполнить(Товар);
    //НовыйТовар.Записать()

Можно ли заполнить все поля через метод ЗаполнитьЗначенияСвойств(НовыйТовар, Товар), но тогда все записывается в корень. Можно ли как то добавить Родителя для этого элемента? Код, который я привожу не определяет Родителя. Но если записывать все поля по отдельности, например, НовыйТовар.Наименование = Товар.Наименование, то все работает.
18 vicof
 
15.07.21
19:17
Сначала заполнитьзанчениясвойств, потом менять родителя.
19 Jurest_
 
15.07.21
19:22
(18) Спасибо, действительно работает. Хотя я так делал. Может просто не сохранил обработку, и поэтому подумал, что не работает. Спасибо!