Имя: Пароль:
1C
1С v8
Объединение значений нескольких строк в одну
0 Vikantib
 
18.05.15
13:27
Добрый день.
Имеется запрос на выборку данных с полями Наименование, ШК, Цена, Количество. У одного наименования могут быть несколько ШК, соответственно и в таблице получается несколько строк на одно наименование. Не подскажите как перебрать строки, чтобы получилась ТЗ вида Наименование, ШК (все ШК в одной колонке через запятую), Цена и Количество, соответственно и в таблице одна строка на одно наименование ?
1 anatoly
 
18.05.15
13:29
запросом - никак.
2 GROOVY
 
18.05.15
13:30
ШК - это строка?
3 Vikantib
 
18.05.15
13:31
Имелось ввиду в одной колонке и одной строке.
4 Vikantib
 
18.05.15
13:31
ШК строка
5 Vikantib
 
18.05.15
13:31
ШтрихКод если быть точным
6 Fragster
 
гуру
18.05.15
13:34
"...Итоги
  Максимум(Наименование), ...
По Номенклатура"
...
Выборка = Результат.Выбрать(бходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка.Следующий() Цикл
  // тут будут различные номенклатуры
  ВыборкаДетальные = Выборка.Выборать();
  Пока ВыборкаДетальные.Следующий() Цикл
    // тут будут различные ШК
7 Лефмихалыч
 
18.05.15
13:34
(0) в запросе - ни как. Но есть СКД, в которой есть

СоединитьСтроки (JoinStrings)
Предназначена для объединения строк в одну строку.

Синтаксис:

СоединитьСтроки (Значение, РазделительЭлементов, РазделителиКолонок)

Параметры:

Значение - выражения, которые нужно объединить в одну строку. Если является Массивом, то в строку будут объединяться элементы массива. Если является ТаблицаЗначений, то в строку будут объединяться все колонки и строки таблицы;
РазделительЭлементов - строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк;
РазделителиКолонок -строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию "; ".
Пример:

СоединитьСтроки(ТаблицаЗначений(НомерТелефона, Адрес));
8 GROOVY
 
18.05.15
13:35
Можно извернутся с соединением выворки сомой с собой, но это если мы заранее знаем сколько ШК может быть. А потом просто конкатенацией собрать поле.

Но СКД это проще сделать.
9 Basilio
 
18.05.15
13:36
(0)в запросе никак. а вот в СКД вроде как в последних версиях платформы добавили такую возможность. Поправьте если я ошибаюсь.
10 Vikantib
 
18.05.15
13:39
(6) Спасибо, попробую в этом направлении, а то впринципе реализовал, но очень долго, потому как Цикл в Цикле получилось, что не есть хорошо. (7) Про СКД не подумал.