Работа с массивом в СКД #623444


#0 by NickAn
Делаю глобальную функцию в которой возвращаю массив. Массив если добавить как поле выводиться как строка, а в расшифровке дает выбрать элемент массива. Но мне этот массив нужно разбить на части, часть данных кинуть в одну строку, соответственно поменять представление, а часть в другую. Как в вычисляемых полях можно работать с массивом, который в этих же вычисляемых полях. Можно было сделать сразу разделение четыре функции которые возвращаю свои данные, две представление, а две расшифровки, но для каждой из них делать выборку, будет сильно накладно.
#1 by NickAn
Получается в вычисляемых полях доступны только поля из набора данных?
#2 by Kashemir
Значение вычисляемого поля рассчитывается для каждой записи / итога. Параметризируй свою функцию и получай результат с нужной детализацией.
#3 by NickAn
Можно ли этот массив как то обработать в пользовательских полях?
#4 by NickAn
Но тогда мне каждый раз нужно делать выборку. А так вернул массив и крути его
#5 by Kashemir
Такой массив крутить не получится. Посмотри  походу в 8.1.14 появились другие объекты для кручения.
#6 by NickAn
Совсем не по теме, че-то я не заметил СКД
#7 by Kashemir
Упс сори - не ту тему линканул
#8 by NickAn
Я так не понял что там мне подходит. Тогда вопрос, можно ли вернуть значение, а выражении представления обратиться к этому выражению. Потому что я хочу вернуть документ для расшифровки, а показать в отчете только его номер
#9 by Kashemir
Сделай еще одну функцию приведения представления к нужной. Кстати где-то вроде что на новых релизах некий функционал для изменения представления документов появился.
#10 by Leksus
это в 8.3
#11 by NickAn
10) На 8.3 стремно переходить Функцию я смогу сделать, но как я писал в , мне придется 4 раза выборку одну и ту же делать. И как в вычисляемых полях поставить в представление вычисляемое поле, дает только из набора данных
#12 by Kashemir
Ты бы объяснил на конкретном примере чего нужно. Может все можно решить гораздо проще.
#13 by NickAn
Есть документ, на него есть несколько ссылок в других документах одного типа. Мне нужно вернуть в первую колонку первый документ с его номером и расшифровкой на него, во вторую колонку вернуть остальные документы с номерами через ";" и с расшифровкой на них Пока только получилось через запрос и то во второй колонке только второй документ возвращаю, и работает жутко долго, решил переделать через внешние функции, т.к. там могу использовать критерии отбора, думаю будет быстрее
#14 by NickAn
Документ|Документ который ссылается (первый)|Документ который ссылается второй и остальные|
#15 by Kashemir
А нельзя это все запросом получить ? 1 группировка - основной документ. 2 группировка - документы, ссылающиеся на основной документ(напрямую не выводить). Нужное представление формировать представлением полей. Для вывода одной строкой второй группировки можно пользовать тему из
#16 by NickAn
Запросом, долго получается, сейчас переделал пока без расшифровки, смотрю что быстрее будет работать. В табличных частях документов которые ищу бывает больше 100 строк, и самих документов прилично.
#17 by Kashemir
Программный перебор табличных частей быстрее чем запросом ? - что-то тут не так :)
#18 by NickAn
Во внешней функции использую критерии отборов, и не вы первый раз стыкаюсь с тем, что выборка в табличных частях подтормаживает в запросах, а простой перебор работает быстрее. Смысл в том что в отчет вообще есть несколько виртуальных таблиц, которые дальше соединяются.
#19 by NickAn
И в добавок отчет сильно подгружает систему
#20 by Kashemir
Никто не мешает критерии в запросе использовать. Можно так реализовать задачу и на внешнем источнике.
#21 by NickAn
хорошо, как критерий использовать в соединении, или как передать в него массив ссылок?
#22 by Kashemir
Неясна суть вопросов. Критерий возвращает выборку неких документов - где тут проблема использования в соединении ? Массив ссылок передает в СКД как параметр - тут вроде тоже все понятно.
#23 by NickAn
Как в запросе сделать выборку по документам + выбрать все связанные используя критерий отбора    СвязанныеДокументы.Ссылка
#24 by Kashemir
Вот ты интересные вопросы задаешь - как мне догадаться как у тебя связанны документы ? Я ж мыслей не читаю
#25 by NickAn
Я просто хотел сказать, что критерий отбора в соединениях нельзя использовать
#26 by Kashemir
У тебя настолько непредсказуемая связь что никак приличным запросом не выразить? - не верю - вот то что хотел я сказать
#27 by NickAn
ладно тема закрыта, переделал немного запрос, стало работать быстрее даже чем с внешней функцией. Буду ждать 1С8.3. Спасибо за ответы, хотя бы ушел от неопределенности по своему вопросу.
#28 by Kashemir
Зачем тебе 8.3 ?
#29 by NickAn
может что новое будет по перебору массивов
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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