Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Свернуть ТЗ

Свернуть ТЗ
Я
   lirt82
 
28.09.18 - 08:10
В результате выполнения запроса, получаем ТаблицуЗначении с колонками
Док, НомерВагона, Контрагент. Мне нужно ее свернуть так.
Колонка                Колонка                       колонка 
 Док №1       номера вагонов через запятую          Контрагент
                     25, 65, 11, 84

Если сворачиваю по документу то в колонке где номера вагонов остается только первый вагон, как сделать?
 
 
   Zmich
 
1 - 28.09.18 - 08:13
(0). Запросом к ТЗ. Обходя группировки, простым алгоритмом формировать колонку вагонов через запятую.
   Лодырь
 
2 - 28.09.18 - 08:20
Использовать СКД, как вариант
   fenement
 
3 - 28.09.18 - 08:53
Если это делается не для отчета, то можно:
1)Получить новую ТЗ путем сворачивания по Документу,Контрагенту. (Получится ТЗ с двумя колонками)
2) Добавить в эту ТЗ колонку "НомераВагонов"
3) Обойти эту ТЗ и для каждой строчки произвести поиск методом "НайтиСтроки" в исходной таблице.
4) Обходя массив с результатами поиска, сформировать строковое значение колонки "НомераВагонов"
   lirt82
 
4 - 28.09.18 - 09:31
(3) 3) Обойти эту ТЗ "подтолкни..." пример:)

ТЗДляПередачиВФорму = ТЗ.Скопировать();
ТЗДляПередачиВФорму.Свернуть("Док, Клиент");
ТЗДляПередачиВФорму.Колонки.Добавить("Пометка", Новый ОписаниеТипов("Булево"));
ТЗДляПередачиВФорму.Колонки.Добавить("НомерВагона", Новый ОписаниеТипов("Строка"));
   arsik
 
5 - 28.09.18 - 09:35
(3) (4) К чему это все. просто изначальный запрос поправьте и выгружайте не в ТЗ, а в дерево с итогами по документу и контрагенту
   lirt82
 
6 - 28.09.18 - 09:42
(5) почти допилил:)
   lirt82
 
7 - 28.09.18 - 11:57
(3) Спасибо большое за написание алгоритма
получилось, вот итог

ТЗДляПередачиВФорму = ТЗ.Скопировать();
                    ТЗДляПередачиВФорму.Свернуть("Док, Клиент");
                    ТЗДляПередачиВФорму.Колонки.Добавить("Пометка", Новый ОписаниеТипов("Булево"));
                    ТЗДляПередачиВФорму.Колонки.Добавить("НомерВагона", Новый ОписаниеТипов("Строка"));
                    
                    Для каждого Стр Из ТЗДляПередачиВФорму Цикл
                        Нашли = ТЗ.НайтиСтроки(Новый Структура("Док", Стр.Док));
                        Если Нашли <> Неопределено Тогда 
                            Для каждого СтрокаНашли Из Нашли Цикл
                                НомВагонаДобавить = Стр.НомерВагона;
                                Стр.НомерВагона = СтрокаНашли.НомерВагона;
                                Стр.НомерВагона = НомВагонаДобавить + Лев(", " + СтрокаНашли.НомерВагона, 10);
                            КонецЦикла; 
                        КонецЕсли;
                    КонецЦикла;
   arsik
 
8 - 28.09.18 - 12:01
(7) lirt82 Стаж: 9 лет 2 месяца 20 дней
Твой подход печален.
   Borteg
 
9 - 28.09.18 - 12:03
(7) Используй скд и ВычислитьВыражениеСГруппировкойМассив

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