|
СКД, использование агрегатных функций в вычисляемых полях |
☑ |
0
servs
15.01.13
✎
19:56
|
Есть запрос в котором список документов в шапке - контрагент. По кажому документу левым соединением добавляю контактных лиц по контрагенту, тем самым дублируя строки в результате запроса.
Выношу КонтактноеЛицо в ресурс, формула: СоединитьСтроки(Массив(КонтактноеЛицо), ", ")
При выводе в таблицу значений получил следующее:
Настройка вариант 1:
группировка(в одну стоку): Документ, КонтактноеЛицо,
детальных записей нет
Результат: в ТЗ выгружен только ресурс, других полей нет.
Настройка вариант 2:
группировка(в одну стоку): Документ, КонтактноеЛицо,
детальные записи есть
Результат: в ТЗ выгружаются все поля, но с дублированием строк из-за группировки.
Как выводить строки в ТЗ из СКД, без дублирования, не применяя метод свернуть у таблицы значений?
Как поменять запрос, чтобы потом можно было бы не использовать группировку в настройках СКД, а использовать СоединитьСтроки(Массив(КонтактноеЛицо), ", ") в вычисляемом поле?
|
|
1
Fragster
гуру
15.01.13
✎
19:58
|
два набора данных
|
|
2
Fragster
гуру
15.01.13
✎
19:58
|
не вычисляемое поле, а формула у ресурса с контактными лицами
|
|
3
servs
15.01.13
✎
20:03
|
(1) не охота запрос разбивать
(2) по второму варианту решения, надо как-то получить результат в примерно таком виде:
ВЫБРАТЬ
ЗаказПокупателя.Номер,
ЗаказПокупателя.Товары.(
НомерСтроки
)
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
А потом по полю таблицы значений применить агрегатную функцию в вычисляемом поле
только вместо таблицы Товары у меня временная таблица, соединение между временной таблицей и таблицей документов по полю Контрагент
|
|
4
servs
15.01.13
✎
20:13
|
мысли вслух: чтобы уйти от дублирования строк в ТЗ получаемых в результате группировки, необходимо отказаться от использования ресурса в СКД, тогда строку нужно суммировать в вычисляемом поле, но для этого нужно по другому формировать запрос
|
|
5
servs
15.01.13
✎
20:14
|
В результате запроса тип поля с контактными лицами должен быть или Массив или Таблица значений.
|
|
6
servs
15.01.13
✎
20:20
|
насколько я понимаю никак, это справедливо только для табличных частей документов.
|
|
7
servs
15.01.13
✎
20:22
|
предложенный вариант, разделения на 2 набора данных, остается единственным, жаль.
|
|
8
Fragster
гуру
15.01.13
✎
20:25
|
(7) у тебя дублирование строк не из-за группировки, а из-за соединения. если 2 набора данных, то умная СКД правильно всякие суммы считать будет, а если соединение - то нужно долго выеживаться с формулами
|
|
9
servs
15.01.13
✎
20:31
|
(8) да, соединение я делал специально, чтобы в одной таблице получить все документы и все контактные лица по каждому документу. Группировкой пытался уйти от дублирования, искусственно созданного.
Спасибо, мысль понял.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший