Дерево значений в запрос как параметр

1. user1582372 12.02.25 10:32 Сейчас в теме
Добрый день, подскажите почему запрос возвращается пустым как будто не отрабатывает параметр запроса? в массив приходят все данные.
На управляемой форме есть реквизит формы с типом ДеревоЗначений.

НаСервере
Процедура ...
СтрокаДерева = МоеДерево.ПолучитьЭлементы();
// получил результат ДереваЗначений
//добавил в массив
Массив = новый массив;
Для каждого строка из СтрокаДерева Цикл
Массив.добавить(строка.Номенклатура);
конецЦикла;

//и хочу поместить массив в параметр запроса
тут запрос

ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.колличество
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка в (&массив)

Запрос.УстановитьПараметр("массив", массив)

КонецПроцедуры
По теме из базы знаний
Найденные решения
2. Sashares 33 12.02.25 10:34 Сейчас в теме
(1) Потому что в массиве только первый уровень дерева. Надо рекурсивно обходить.
user1582372; +1 Ответить
13. user1582372 13.02.25 23:52 Сейчас в теме
(4) Все норм)) нужно было чутка запрос подправить и все поехало)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 33 12.02.25 10:34 Сейчас в теме
(1) Потому что в массиве только первый уровень дерева. Надо рекурсивно обходить.
user1582372; +1 Ответить
3. user1582372 12.02.25 10:39 Сейчас в теме
(2) значит дело в массиве, если рекурсивно обойду, должно отработать?
4. Sashares 33 12.02.25 10:43 Сейчас в теме
(3) При текущей реализации, судя по коду, в массиве только номенклатура из первого уровня дерева.
Если в дереве несколько уровней, это надо учесть в коде.
Рекурсией или другими способами - не суть.

Это если в дереве ссылка на номенклатуру, а не строка, например.
13. user1582372 13.02.25 23:52 Сейчас в теме
(4) Все норм)) нужно было чутка запрос подправить и все поехало)
6. starjevschik 12.02.25 12:11 Сейчас в теме
(1)
МоеДерево.ПолучитьЭлементы()

Синтаксис:
ПолучитьЭлементы()
Возвращаемое значение:
Тип: ДанныеФормыКоллекцияЭлементовДерева.
===== мне вот интересно, за это платят как за программирование или это так учат сейчас?
7. Sashares 33 12.02.25 12:44 Сейчас в теме
(6) А что в данном случае не так? ТС получает коллекцию и обходит ее в цикле.
8. starjevschik 12.02.25 12:57 Сейчас в теме
(7) ну он же номенклатуру вроде бы хочет передать в запрос. А получает
Элементы коллекции:
ДанныеФормыЭлементДерева
не ну я не против, конечно.

Честно говоря, я только от него узнал о существовании метода ПолучитьЭлементы() . А я уж передал из деревьев в запросы уже наверное тысячи массивов... век живи - век учись )
9. user2107191 12.02.25 12:59 Сейчас в теме
(8) У автора:
Для каждого строка из СтрокаДерева Цикл
Массив.добавить(строка.Номенклатура);
конецЦикла;


узнал о существовании метода ПолучитьЭлементы()
Это ж классика, на клиенте можно работать, без сервера.
А на сервере - да, проще дерево в прикладной объект выгрузить и работать как с обычным деревом.
Sashares; +1 Ответить
10. starjevschik 12.02.25 13:49 Сейчас в теме
(9)
на клиенте можно работать, без сервера

так запрос же? на клиенте?? как я отстал от современных технологий.... главное, чтобы клиенты этого не узнали о)
11. user2107191 12.02.25 14:14 Сейчас в теме
(10)
так запрос же?
В данном частном случае - да, в запрос надо собрать значения из колонки дерева формы.
Но ведь иерархическая работа с деревом формы и его элементами/строками используется не только для запросов, не правда ли?
12. gybson 12.02.25 19:31 Сейчас в теме
(10) не все гоняют все данные формы на сервер и это вообще обычно не приветствуется
user2107191; +1 Ответить
5. antz 12.02.25 11:27 Сейчас в теме
В дереве точно ссылки?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот