Имя: Пароль:
1C
1С v8
СКД, использование агрегатных функций в вычисляемых полях
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) да, соединение я делал специально, чтобы в одной таблице получить все документы и все контактные лица по каждому документу. Группировкой пытался уйти от дублирования, искусственно созданного.

Спасибо, мысль понял.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший