Имя: Пароль:
1C
1С v8
ТабличнаяЧасть Документа
0 mpvpes
 
12.12.13
01:36
Подскажите пожалуйста, как сгруппировать строки с одинаковыми данными.
Есть две Табличные Части в документе.В  первой Табличной части есть строки с одинаковыми данными, по нажатию кнопки, во второй табличной части должно выводится сгруппированные одинаковые данные.
Вот текст:
СпрО=Справочники.СправочникОбъектыЮЛ.Выбрать();
Пока СпрО.Следующий() Цикл
КодАбонента=СокрЛП(СпрО.АбонентКод);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("КодАбонента", КодАбонента);
Запрос.Текст =
"ВЫБРАТЬ
|    ВводПоказанийТабличнаяЧастьСписок.КодАбонента,
|    ВводПоказанийТабличнаяЧастьСписок.КодОбъекта,
|    ВводПоказанийТабличнаяЧастьСписок.ВремяРаботы
|ИЗ
|    Документ.ВводПоказаний.ТабличнаяЧастьСписок КАК ВводПоказанийТабличнаяЧастьСписок
|ГДЕ ВводПоказанийТабличнаяЧастьСписок.КодАбонента=&КодАбонента
|СГРУППИРОВАТЬ ПО
|    ВводПоказанийТабличнаяЧастьСписок.КодАбонента,
|    ВводПоказанийТабличнаяЧастьСписок.КодОбъекта,
|    ВводПоказанийТабличнаяЧастьСписок.ВремяРаботы";

Результат = Запрос.Выполнить().Выгрузить();

Для Каждого ТекСтр ИЗ Результат Цикл
Если СокрЛП(ТекСтр.КодАбонента)=КодОбъекта Тогда    
    НоваяСтрока=ТабличнаяЧастьРасчет.Добавить();
    НоваяСтрока.КодАбонента=ТекСтр.КодАбонента;
    НоваяСтрока.ВремяРаботы=ТекСтр.ВремяРаботы;
    КонецЕсли;
    КонецЦикла;

КонецЦикла;
1 Адский плющ
 
12.12.13
01:42
Должно выводиться... Я тебя не понял.
2 mpvpes
 
12.12.13
01:43
В первой ТЧ Документа
Колонка1 Колонка2 Колонка3
00001       0001   30
00001       0002   40
00002       0001   10
00002       0002   50
00002       0003   20
00003       0001   10
нужно чтобы во второй ТЧ документа выводилась
Колонка1  Колока2  Колнка3
00001       --        70
00002       --        80
00003       --        10
3 mpvpes
 
12.12.13
01:44
Но почему-то выводится тоже что и как в первой ТЧ документа
4 hhhh
 
12.12.13
01:44
(2) СУММА(ВводПоказанийТабличнаяЧастьСписок.ВремяРаботы)
5 mpvpes
 
12.12.13
01:48
Это должно быть в запросе?
6 Адский плющ
 
12.12.13
01:48
(4) хм. Интересное решение.
7 Адский плющ
 
12.12.13
01:51
Блин, все эти сентенции о проблемах в табличных частях меркнут перед блистательной выборкой из справочника в (0)
8 mpvpes
 
12.12.13
01:56
hhhh - спасибо попробую
9 mpvpes
 
12.12.13
03:34
Попробывал не получилось
Может кто еще чего подскажет
10 mpvpes
 
12.12.13
03:41
Вот кусок куда вставил по рекомендации hhhh
|ГДЕ  ВводПоказанийТабличнаяЧастьСписок.КодАбонента=&КодАбонента
|{ГДЕ
|(СУММА(ВводПоказанийТабличнаяЧастьСписок.ВремяРаботы))КАК ВремяРаботы}
11 Wobland
 
12.12.13
04:09
слово сгруппировать, как я понимаю, тебя не спасёт?
12 razlagator
 
12.12.13
04:14
(0) Запрос в цикле, порицаю
13 happysan
 
12.12.13
04:56
(0)отвратительный код!
ТЗ = Табчасть1.Выгрузить(....);
ТЗ.Свернуть(...);
Табчасть2.Загрузить(....);

И всего-то делов
14 Wobland
 
12.12.13
05:38
да что уж там, вторая ТЧ не нужна, автор изобрёл какой-то самокат с изолентой
15 mpvpes
 
12.12.13
08:41
Так подскажите как
16 Wobland
 
12.12.13
08:46
(15) взять и спроектировать правильно, без дублирования информации
17 mpvpes
 
12.12.13
08:55
Понял. Сделал как предлагает happysam
Получились.Спасибо ВСЕМ, Особенно happysam
Вот, без запроса и циклов
ДокОб=Документы.ВводПоказаний.НайтиПоНомеру(Месяц);
ТЧДок=ДокОб.ТабличнаяЧастьСписок.Выгрузить();
ТЧДок.Свернуть("КодАбонента");
ТабличнаяЧастьРасчет.Загрузить(ТЧДок);