Имя: Пароль:
1C
1С v8
Можно ли сделать рациональней?
0 new1snik
 
13.09.13
11:08
Добрый день. Есть табЧасть документа с 2 десятками различных колонок. В этой ТабЧасти может находится по сотню, две строк. Нужно найти все строки с одинаковым товаром и просуммировать кол-во. Пытался сделать с помощью метода Свернуть(), но не получилось его корректно использовать, т.к требуется полное покрытие всех строк табчасти в параметрах. Придумал вот такой костыль:

Для Каждого ТекСтрокаТовары Из Товары Цикл
            
            Массив = Товары.НайтиСтроки(Новый Структура("Номенклатура", ТекСтрокаТовары.Номенклатура));
            Если Массив.Количество() > 1 Тогда
                Общее = 0;
                а = 0;
                Для каждого Товар Из Массив Цикл
                    Если а > 0 Тогда
                        Общее = Общее + Товар.Количество;
                        Товары.Удалить(Товар);
                    КонецЕсли;
                     а = а + 1;
                 КонецЦикла;
                 Строка = Массив.Получить(0);
                 Строка.Количество = Строка.Количество + Общее;
                
            КонецЕсли;
Конеццикла;

На сколько медленно он будет работаться с раздутой табчастью? И можно ли придумать что-то более красивое и быстрое?
1 Волшебник
 
модератор
13.09.13
11:09
Используй Свернуть()
2 new1snik
 
13.09.13
11:09
(0) "полное покрытие всех строк табчасти в параметрах"
Колонок. ошибся.
3 new1snik
 
13.09.13
11:10
(1) А свернуть намного быстрей того, что я написал?
4 Зойч
 
13.09.13
11:16
Сортируй по номенклатуре. Тогда 1 проходом можно обойтись
5 hhhh
 
13.09.13
11:20
(3) главное, не забудьте индекс по номенклатуре, тогда быстро будет