|
Работа с массивом в СКД | ☑ | ||
---|---|---|---|---|
0
NickAn
03.08.12
✎
10:12
|
Делаю глобальную функцию в которой возвращаю массив. Массив если добавить как поле выводиться как строка, а в расшифровке дает выбрать элемент массива.
Но мне этот массив нужно разбить на части, часть данных кинуть в одну строку, соответственно поменять представление, а часть в другую. Как в вычисляемых полях можно работать с массивом, который в этих же вычисляемых полях. Можно было сделать сразу разделение четыре функции которые возвращаю свои данные, две представление, а две расшифровки, но для каждой из них делать выборку, будет сильно накладно. |
|||
1
NickAn
03.08.12
✎
10:31
|
Получается в вычисляемых полях доступны только поля из набора данных?
|
|||
2
Kashemir
03.08.12
✎
11:17
|
Значение вычисляемого поля рассчитывается для каждой записи / итога. Параметризируй свою функцию и получай результат с нужной детализацией.
|
|||
3
NickAn
03.08.12
✎
11:22
|
Можно ли этот массив как то обработать в пользовательских полях?
|
|||
4
NickAn
03.08.12
✎
11:23
|
(2) Но тогда мне каждый раз нужно делать выборку. А так вернул массив и крути его
|
|||
5
Kashemir
03.08.12
✎
11:25
|
(4) Такой массив крутить не получится. Посмотри v8: посчитать сумму выбранных строк в регистре сведений походу в 8.1.14 появились другие объекты для кручения.
|
|||
6
NickAn
03.08.12
✎
11:34
|
(5) Совсем не по теме, че-то я не заметил СКД
|
|||
7
Kashemir
03.08.12
✎
11:35
|
(6) Упс сори - не ту тему линканул v8: СоединитьСтроки() - как?
|
|||
8
NickAn
03.08.12
✎
11:41
|
(7) Я так не понял что там мне подходит.
Тогда вопрос, можно ли вернуть значение, а выражении представления обратиться к этому выражению. Потому что я хочу вернуть документ для расшифровки, а показать в отчете только его номер |
|||
9
Kashemir
03.08.12
✎
11:43
|
(8) Сделай еще одну функцию приведения представления к нужной. Кстати где-то вроде что на новых релизах некий функционал для изменения представления документов появился.
|
|||
10
Leksus
03.08.12
✎
11:46
|
(9) это в 8.3
|
|||
11
NickAn
03.08.12
✎
11:53
|
10) На 8.3 стремно переходить
(9) Функцию я смогу сделать, но как я писал в (1), мне придется 4 раза выборку одну и ту же делать. И как в вычисляемых полях поставить в представление вычисляемое поле, дает только из набора данных |
|||
12
Kashemir
03.08.12
✎
11:56
|
(11) Ты бы объяснил на конкретном примере чего нужно. Может все можно решить гораздо проще.
|
|||
13
NickAn
03.08.12
✎
12:02
|
Есть документ, на него есть несколько ссылок в других документах одного типа.
Мне нужно вернуть в первую колонку первый документ с его номером и расшифровкой на него, во вторую колонку вернуть остальные документы с номерами через ";" и с расшифровкой на них Пока только получилось через запрос и то во второй колонке только второй документ возвращаю, и работает жутко долго, решил переделать через внешние функции, т.к. там могу использовать критерии отбора, думаю будет быстрее |
|||
14
NickAn
03.08.12
✎
12:04
|
Документ|Документ который ссылается (первый)|Документ который ссылается второй и остальные|
|
|||
15
Kashemir
03.08.12
✎
12:10
|
(14) А нельзя это все запросом получить ? 1 группировка - основной документ. 2 группировка - документы, ссылающиеся на основной документ(напрямую не выводить). Нужное представление формировать представлением полей. Для вывода одной строкой второй группировки можно пользовать тему из (7)
|
|||
16
NickAn
03.08.12
✎
12:24
|
Запросом, долго получается, сейчас переделал пока без расшифровки, смотрю что быстрее будет работать.
В табличных частях документов которые ищу бывает больше 100 строк, и самих документов прилично. |
|||
17
Kashemir
03.08.12
✎
12:26
|
(16) Программный перебор табличных частей быстрее чем запросом ? - что-то тут не так :)
|
|||
18
NickAn
03.08.12
✎
12:29
|
Во внешней функции использую критерии отборов, и не вы первый раз стыкаюсь с тем, что выборка в табличных частях подтормаживает в запросах, а простой перебор работает быстрее. Смысл в том что в отчет вообще есть несколько виртуальных таблиц, которые дальше соединяются.
|
|||
19
NickAn
03.08.12
✎
12:39
|
И в добавок отчет сильно подгружает систему
|
|||
20
Kashemir
03.08.12
✎
12:40
|
(18) Никто не мешает критерии в запросе использовать. Можно так реализовать задачу и на внешнем источнике.
|
|||
21
NickAn
03.08.12
✎
13:04
|
хорошо, как критерий использовать в соединении, или как передать в него массив ссылок?
|
|||
22
Kashemir
03.08.12
✎
13:19
|
(21) Неясна суть вопросов. Критерий возвращает выборку неких документов - где тут проблема использования в соединении ? Массив ссылок передает в СКД как параметр - тут вроде тоже все понятно.
|
|||
23
NickAn
03.08.12
✎
13:27
|
Как в запросе сделать выборку по документам + выбрать все связанные используя критерий отбора
ВЫБРАТЬ СвязанныеДокументы.Ссылка ИЗ КритерийОтбора.СвязанныеДокументы(&Ссылка) КАК СвязанныеДокументы |
|||
24
Kashemir
03.08.12
✎
13:35
|
(23) Вот ты интересные вопросы задаешь - как мне догадаться как у тебя связанны документы ? Я ж мыслей не читаю
|
|||
25
NickAn
03.08.12
✎
13:38
|
Я просто хотел сказать, что критерий отбора в соединениях нельзя использовать
|
|||
26
Kashemir
03.08.12
✎
13:40
|
(25) У тебя настолько непредсказуемая связь что никак приличным запросом не выразить? - не верю - вот то что хотел я сказать
|
|||
27
NickAn
03.08.12
✎
13:47
|
ладно тема закрыта, переделал немного запрос, стало работать быстрее даже чем с внешней функцией. Буду ждать 1С8.3.
Спасибо за ответы, хотя бы ушел от неопределенности по своему вопросу. |
|||
28
Kashemir
03.08.12
✎
13:51
|
(27) Зачем тебе 8.3 ?
|
|||
29
NickAn
03.08.12
✎
14:11
|
может что новое будет по перебору массивов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |