Цикл в запросе СКД #686592


#0 by ifoxy
Подскажите, как организовать цикл в запросе в СКД? Сдесь в одной теме вычитала советуют в СКД: ВЫБРАТЬ     Контрагенты.Ссылка,     ПолучитьСписокМенеджеров(Контрагенты.МенеджерыПокупателя.(         НомерСтроки,     Справочник.Контрагенты КАК Контрагенты в глобальном модуле: но у меня так не получается, никакую функцию запрос признавать не хочет. Может быть существуют другие варианты зациклить запрос?
#1 by Ksandr
Какая задача стоит?
#2 by fisher
По дефолту использование внешних функций в СКД отключено. Смотри примеры программной компоновки. Но вообще эту хрень можно реализовать без внешних функций. Смотри примеры использования функции СКД ВычислитьВыражениеСГруппировкойМассив
#3 by Ksandr
Можно и просто Массив(ИмяПоля), автор получит, что хочет
#4 by Feunoir
Я бы ещё добавил СоединитьСтроки на всякий случай СоединитьСтроки(Массив(Контрагенты.МенеджерыПокупателя))
#5 by fisher
И то верно. Привык к более сложным раскладам :)
#6 by fisher
СоединитьСтроки добавляется автоматом в случае . Это документировано.
#7 by fisher
Но можно вызвать явно, если нужен свой разделитель значений.
#8 by Feunoir
Может быть, просто я тут давеча выводил массив чисел, он мне их как массив и вывел, не через запятую, а в столбик. Поэтому "на всякий случай".
#9 by fisher
Хм... Может ты и прав. В СП пишут, что СоединитьСтроки по дефолту юзает разделителем перевод строки. Странно. Вроде когда я ВычислитьВыражениеСГруппировкойМассив юзал выводило через запятую...
#10 by ifoxy
забыла уточнить, у меня 8.1 хотя думаю особого значение это не имеет а можно поподробнее, что значит Массив(ИмяПоля) это мне в запросе такое написать или где?
#11 by fisher
Боюсь, имеет. Кажись, в 8.1 этих функций еще не было.
#12 by fisher
В 8.2 это можно писать в выражениях вычисляемых полей и ресурсов СКД.
#13 by ifoxy
а можно тогда маленький примерчик, как бы это было в 8.2 и какой разультат получился, я просто не очень понимаю как можно зациклить одно поле если его результат зависит от даты например.
#14 by fisher
Никакого зацикливания. Допустим, детальные записи у тебя содержат и контрагентов и их менеджеров (соединение с табличной частью). Делается группировка по контрагентам, а Массив(Менеджер) выступает в качестве агрегатной функции ресурса.
#15 by fisher
"Если результат зависит от даты" - если ты имеешь в виду что-то типа среза последних на даты из запроса, то это совсем другой случай. В книге знаний есть примеры. Решается или хитрым запросом к основной таблице регистра, или соединением наборов данных СКД.
#16 by fisher
+ В случае параметризированного соединения наборов данных в самом деле получается логика вложенного цикла.
#17 by ifoxy
ну да, соединение наборов данных мне как раз подходит, но в 8.1 есть особенность, в такой конструкции не работают отборы, а они очень нужны(((
#18 by fisher
Если нужны отборы в правом наборе - тогда да, проблема.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С