Всем привет! Уважаемые форумчане, подскажите, существует ли способ объединения строк через язык запросов 1С? Ситуацию поясню на примере. Есть таблица, например, список заказов. Мы выбираем реализацию, возвраты, оплаты по каждому из приведенных заказов. Там, где к заказу есть одна реализация и одна оплата там вопросов нет. Но там, где к одному заказу есть, например, несколько реализаций, то там нужно получить не сами реализации, как в первом случае, а строку типа "НомерРеализации1; НомерРеализации2". Как-нибудь это можно сделать через запрос или только хардкорить - выгружать в таблицу и ее обрабатывать? Заранее спасибо за ответ!;)
Соединение строковых полей есть, но только если строковые поля в одной строке запроса.
А у тебя получается надо объединить строковые поля разных строк запроса.
Коллеги, в общем, собрал через ТЗ. Там слишком много ветвлений: может быть один заказ и одно РТиУ, но несколько оплат, возвратов; может быть несколько РТиУ, но одна оплата и т.д. По-моему, дольше собирать запрос, чем сделать через обработку ТЗ. Конечно, вариант через ТЗ не самый оптимальный, но вполне рабочий. Большое спасибо всем за ответы! Всем добра!)
Я отчет управленческий в ЗУПе написал, где в том числе в запросе делал конкатенацию строковых значений из N-числа строк входящей временной таблицы.
Надо было по одинаковому набору других полей соединить "Фамилия инициалы" физлиц из разных строк временной таблицы.
Единственное ограничение - не более 2048 символов в итоговом поле.
И ни строки языком 1С, всё в запросе.
(11) Такими выкрутасами в 1С занимались, когда не было последних функций работы со строками. А именно разбирали строку посимвольно. Какие-то символы выкидывали или заменяли и т.д. в зависимости от задачи и потом собирали строку обратно.
Обратно собирали склеивая соседние строки, первая со второй строкой, третья с четвертой и т.д.: 1-2, 3-4, 5-6...
Потом перенумерация получившихся строк (1-2)=1, (3-4)=2 и т.д. и опять склейка. Восемь таких итераций = 2^(8+1) = 512 строк можно было сложить. Или другими словами собрать строку из 512 отдельно стоящих символов.
При наличии хорошего перечня работы со строками, а так же функций конвертации типов всё решается проще.
А если сюда прибавить регулярные выражения из Постгри (в MS не помню таких функций), то ещё проще.
Но в 1С этого не будет, до тех пор пока не оставят один SQL Постгри и не откажутся от файловой в пользу того же Постгри с ограничением количества подключений.
(12) Скажу так.
Мне было лучше сделать в запросе, и я сделал. Потому что это промежуточное в выборке данных действие.
Причем работает шустро, запрос входную временную таблицу численностью порядка 3000 строк склеивает ФИО в итоговые ~ 500 строк примерно за 2-3 сек.
На встроенном языке было бы ... в чем-то проще, но медленнее.
И опять же промежуточные данные выгрузи, обработай и загрузи обратно в менеджер.
А отчет работает уже 1,5 года.
Таки почему бы и нет?