Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Сгруппировать строки в запросе

Сгруппировать строки в запросе
Я
   Родом из детства
 
03.03.21 - 11:58
Суть в следующем:
У контрагента имеется ТЧ с услугами, нужно получить следующую строку:
Контрагент - СписокУслуг(через пробел, или запятую)
И сделать это запросом...
Хотел сначала создать новое поле (Наименование услуги + " "), а потом сгруппировать по контрагенту, и это поле просуммировать, однако, строки суммировать при группировке в запросе нельзя(
Может, у кого-нибудь есть альтернативные решения?
   Малыш Джон
 
1 - 03.03.21 - 11:59
(0) запросом нельзя, в СКД есть возможности такие
   Родом из детства
 
2 - 03.03.21 - 12:01
(1) Жаль, это в последующем буду в таблице использовать. Можно, конечно, выполнять такие махинации в обработчике самой ТЧ при получении данных, или пройтись в выборке, но хотелось сделать все в запросе. Странно, ведь в самой системе строки можно суммировать
   mikecool
 
3 - 03.03.21 - 12:03
(2) сделай в скд, потом получи и засунь в таблицу
вот только функция Массив() в СКД вернет Массив в случае выгрузки в ТЗ или ДЗ
   Малыш Джон
 
4 - 03.03.21 - 12:07
(2) результат СКД можно и в таблицу значений выгрузить
   dka80
 
5 - 03.03.21 - 12:07
(2) скд может возвращать таблицу значений, а не только в макет выводить
   Родом из детства
 
6 - 03.03.21 - 12:09
Спасибо за ответы, друзья. Буду пробовать:)
   Said_We
 
7 - 03.03.21 - 17:21
(0) В MS SQL есть оператор PIVOT для таких трансформаций таблиц. Есть и противоположная трансформация UNPIVOT. Но в 1С такого нет. Возможно СКД использует, а может и нет.
   Михаил Козлов
 
8 - 03.03.21 - 17:27
Сделайте группировку по контрагенту в запросе к ТЧ. Сначала выбирайте по группировке, а в выборке детальных записей формируйте список услуг строкой.
На времени особо не скажется, код простейший (2 цикла), все сделать запросом не самоцель.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.