Вход | Регистрация
 

Как выбрать все элементы входящие в группу справочника?

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

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

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

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

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

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

    //НовыйТовар.Записать()


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

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