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

Конкатенация строк с группировкой

Конкатенация строк с группировкой
Я
   barsnfox
 
16.07.21 - 14:42
Доброго времени суток.
Имеем -- Запрос + СКД. Кодом результат запроса обработать негде. Сам текст запроса прилагать бесполезно, он слишком огромный, так что опишу вкратце.
Берём договор из спр. ДоговорыКонтрагентов
Берём комментарий фин.отдела из регистра сведений КомОтделов
Берём комментарий юр.отдела из того же регистра
Подставляем туда сумму
Получаем на выходе такой результат запроса, без всяких группировок:

Договор --- Комментарий Фин Отдела --- Комментарий Юр Отдела -- Сумма

№12345 ---- "" ----------------------- "Какой то коммент Юр" -- 10000
№12345 ---- "" ----------------------- "Ещё коммент Юр" ------- 10000
№12345 ---- "Тут коммент Фин" -------- "" --------------------- 10000
№12345 ---- "Тут другой коммент Фин" - "" --------------------- 10000
№12345 ---- "Ну и есчо" -------------- "" --------------------- 10000

При выводе в отчёт необходима такая картина

Договор| Комментарий Фин Отдела ---| Комментарий Юр Отдела -| Сумма

-------|"Тут коммент Фин" -------- |"Какой то коммент Юр"---|
№12345 |"Тут другой коммент Фин" - |"Ещё коммент Юр"--------| 10000
-------|"Ну и есчо"

Т.е. в одной строке договора нужно сложить все принадлежащие ему комментарии определённого отдела. Это решается с помощью "СоеденитьСтроки()" в вычисляемом поле, окей
Проблема в том, что отчёт "не плоский", а с группировкой по договору, валюте, организации и нескольким другим полям, которые мы опустим как не существенные
Остальные поля являются ресурсами.
Соответственно, при группировке договора, сумма становится не 10000, а 50000

Ломаю над этим голову уже пару дней, т.к. откровенный хардкод по типу деления суммы на количество комментариев применять не хочется.
   barsnfox
 
1 - 16.07.21 - 14:43
хоспаде, как же всё посъезжало. А пока рисовал табличку, считал себя идеальным художником...
   Mihenius
 
2 - 16.07.21 - 15:13
А в чем проблема вначале все посчитать, а комментарии добавить к уже готовой таблице?
   МихаилМ
 
3 - 16.07.21 - 15:15
(0)
в поиск. один из самых частых вопросов
   barsnfox
 
4 - 19.07.21 - 13:44
(2) И так, всё считается в запросе, потом прилетает в СКД. Но вот при группировке СКД начинают складываться числовые значения, которые складываться не должны. Объеденить комментарии как нужно, до попадания в СКД нет возможности

(3) Ради того, чтобы задать этот вопрос -- зарегался здесь. Потому как гугл мне ничего внятного подсказать не смог. Наткнулся на "спортивный" способ складывания текстовых строк по колонке, но думаю есть способ проще, средствами СКД. Про них и хочу узнать
   Мультук
 
5 - 19.07.21 - 14:00
(4) >> Ради того, чтобы задать этот вопрос -- зарегался здесь.

Если ты все еще ждешь ответа, то нужны нормальные картинки.
   barsnfox
 
6 - 19.07.21 - 14:06
(5) https://ibb.co/LJ3BJQv ну, если мои наскальные рисунки не подходят, то вот)
   Малыш Джон
 
7 - 19.07.21 - 14:10
(6) То есть проблема в том, что число суммируется, а оно не должно?
   golem14
 
8 - 19.07.21 - 14:26
почему не использовать функцию Максимум?
   SiAl-chel
 
9 - 19.07.21 - 14:31
(6) У тебя 5 детальных записей с 1000 в поле Сумма. конечно при агрегировании функцией Сумма у тебя будет 50000 в группировке. Используй для поля Сумма функцию Максимум, Минимум или Среднее.
   barsnfox
 
10 - 19.07.21 - 14:32
(8) для чего именно?
   pasha_d
 
11 - 19.07.21 - 14:38
(10) Максимум(Сумма) на вкладке "Ресурсы"
   barsnfox
 
12 - 19.07.21 - 14:55
Мда... А ларчик просто открывался. Спасибо

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