|
Свернуть ТЗ | ☑ | ||
---|---|---|---|---|
0
lirt82
28.09.18
✎
08:10
|
В результате выполнения запроса, получаем ТаблицуЗначении с колонками
Док, НомерВагона, Контрагент. Мне нужно ее свернуть так. Колонка Колонка колонка Док №1 номера вагонов через запятую Контрагент 25, 65, 11, 84 Если сворачиваю по документу то в колонке где номера вагонов остается только первый вагон, как сделать? |
|||
1
Zmich
28.09.18
✎
08:13
|
(0). Запросом к ТЗ. Обходя группировки, простым алгоритмом формировать колонку вагонов через запятую.
|
|||
2
Лодырь
28.09.18
✎
08:20
|
Использовать СКД, как вариант
|
|||
3
fenement
28.09.18
✎
08:53
|
Если это делается не для отчета, то можно:
1)Получить новую ТЗ путем сворачивания по Документу,Контрагенту. (Получится ТЗ с двумя колонками) 2) Добавить в эту ТЗ колонку "НомераВагонов" 3) Обойти эту ТЗ и для каждой строчки произвести поиск методом "НайтиСтроки" в исходной таблице. 4) Обходя массив с результатами поиска, сформировать строковое значение колонки "НомераВагонов" |
|||
4
lirt82
28.09.18
✎
09:31
|
(3) 3) Обойти эту ТЗ "подтолкни..." пример:)
ТЗДляПередачиВФорму = ТЗ.Скопировать(); ТЗДляПередачиВФорму.Свернуть("Док, Клиент"); ТЗДляПередачиВФорму.Колонки.Добавить("Пометка", Новый ОписаниеТипов("Булево")); ТЗДляПередачиВФорму.Колонки.Добавить("НомерВагона", Новый ОписаниеТипов("Строка")); |
|||
5
arsik
гуру
28.09.18
✎
09:35
|
(3) (4) К чему это все. просто изначальный запрос поправьте и выгружайте не в ТЗ, а в дерево с итогами по документу и контрагенту
|
|||
6
lirt82
28.09.18
✎
09:42
|
(5) почти допилил:)
|
|||
7
lirt82
28.09.18
✎
11:57
|
(3) Спасибо большое за написание алгоритма
получилось, вот итог ТЗДляПередачиВФорму = ТЗ.Скопировать(); ТЗДляПередачиВФорму.Свернуть("Док, Клиент"); ТЗДляПередачиВФорму.Колонки.Добавить("Пометка", Новый ОписаниеТипов("Булево")); ТЗДляПередачиВФорму.Колонки.Добавить("НомерВагона", Новый ОписаниеТипов("Строка")); Для каждого Стр Из ТЗДляПередачиВФорму Цикл Нашли = ТЗ.НайтиСтроки(Новый Структура("Док", Стр.Док)); Если Нашли <> Неопределено Тогда Для каждого СтрокаНашли Из Нашли Цикл НомВагонаДобавить = Стр.НомерВагона; Стр.НомерВагона = СтрокаНашли.НомерВагона; Стр.НомерВагона = НомВагонаДобавить + Лев(", " + СтрокаНашли.НомерВагона, 10); КонецЦикла; КонецЕсли; КонецЦикла; |
|||
8
arsik
гуру
28.09.18
✎
12:01
|
(7) lirt82 Стаж: 9 лет 2 месяца 20 дней
Твой подход печален. |
|||
9
Borteg
28.09.18
✎
12:03
|
(7) Используй скд и ВычислитьВыражениеСГруппировкойМассив
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |