Объединение строк запроса в одну строку

1. max2000119187 5 13.02.25 10:08 Сейчас в теме
Всем привет! Уважаемые форумчане, подскажите, существует ли способ объединения строк через язык запросов 1С? Ситуацию поясню на примере. Есть таблица, например, список заказов. Мы выбираем реализацию, возвраты, оплаты по каждому из приведенных заказов. Там, где к заказу есть одна реализация и одна оплата там вопросов нет. Но там, где к одному заказу есть, например, несколько реализаций, то там нужно получить не сами реализации, как в первом случае, а строку типа "НомерРеализации1; НомерРеализации2". Как-нибудь это можно сделать через запрос или только хардкорить - выгружать в таблицу и ее обрабатывать? Заранее спасибо за ответ!;)
По теме из базы знаний
Найденные решения
3. Sashares 33 13.02.25 11:04 Сейчас в теме
(1)
выгружать в таблицу и ее обрабатывать

Это будет проще в конечном счете.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Sashares 33 13.02.25 11:04 Сейчас в теме
(1)
выгружать в таблицу и ее обрабатывать

Это будет проще в конечном счете.
5. glek 119 13.02.25 11:21 Сейчас в теме
(1) В запросе не совсем наверное правильно. Лучше сделать через схему компоновку данных.
2. miniogn 44 13.02.25 11:00 Сейчас в теме
Соединение строковых полей есть, но только если строковые поля в одной строке запроса.
А у тебя получается надо объединить строковые поля разных строк запроса.
4. miniogn 44 13.02.25 11:06 Сейчас в теме
(2) В принципе, если сможешь всякими объединениями сделать что бы получился такой результат запроса:
"НомерРеализации1" как ПолеСтрока1, "НомерРеализации2"  как ПолеСтрока2,  "НомерРеализации3" как ПолеСтрока3, и т.д. до например 10


То соответственно ответ на твой вопрос - Да.
Но лучше хардкордить
7. max2000119187 5 13.02.25 14:27 Сейчас в теме
Коллеги, в общем, собрал через ТЗ. Там слишком много ветвлений: может быть один заказ и одно РТиУ, но несколько оплат, возвратов; может быть несколько РТиУ, но одна оплата и т.д. По-моему, дольше собирать запрос, чем сделать через обработку ТЗ. Конечно, вариант через ТЗ не самый оптимальный, но вполне рабочий. Большое спасибо всем за ответы! Всем добра!)
9. max2000119187 5 13.02.25 14:44 Сейчас в теме
(8) Класс! а как, не поделитесь?)
10. Said-We 13.02.25 14:48 Сейчас в теме
11. Vinzor 112 13.02.25 16:49 Сейчас в теме
Я отчет управленческий в ЗУПе написал, где в том числе в запросе делал конкатенацию строковых значений из N-числа строк входящей временной таблицы.
Надо было по одинаковому набору других полей соединить "Фамилия инициалы" физлиц из разных строк временной таблицы.
Единственное ограничение - не более 2048 символов в итоговом поле.
И ни строки языком 1С, всё в запросе.

Взял отсюда, автору мега-респект
13. max2000119187 5 13.02.25 18:02 Сейчас в теме
(11) спасибо! Ссылку сохраню.
12. Said-We 13.02.25 17:07 Сейчас в теме
(11) Такими выкрутасами в 1С занимались, когда не было последних функций работы со строками. А именно разбирали строку посимвольно. Какие-то символы выкидывали или заменяли и т.д. в зависимости от задачи и потом собирали строку обратно.
Обратно собирали склеивая соседние строки, первая со второй строкой, третья с четвертой и т.д.: 1-2, 3-4, 5-6...
Потом перенумерация получившихся строк (1-2)=1, (3-4)=2 и т.д. и опять склейка. Восемь таких итераций = 2^(8+1) = 512 строк можно было сложить. Или другими словами собрать строку из 512 отдельно стоящих символов.

При наличии хорошего перечня работы со строками, а так же функций конвертации типов всё решается проще.
А если сюда прибавить регулярные выражения из Постгри (в MS не помню таких функций), то ещё проще.

Но в 1С этого не будет, до тех пор пока не оставят один SQL Постгри и не откажутся от файловой в пользу того же Постгри с ограничением количества подключений.
14. Vinzor 112 13.02.25 22:19 Сейчас в теме
(12) Скажу так.
Мне было лучше сделать в запросе, и я сделал. Потому что это промежуточное в выборке данных действие.
Причем работает шустро, запрос входную временную таблицу численностью порядка 3000 строк склеивает ФИО в итоговые ~ 500 строк примерно за 2-3 сек.
На встроенном языке было бы ... в чем-то проще, но медленнее.
И опять же промежуточные данные выгрузи, обработай и загрузи обратно в менеджер.

А отчет работает уже 1,5 года.
Таки почему бы и нет?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот