Имя: Пароль:
1C
1С v8
Сумма по колонке табличной части с отбором
0 Маленький Вопросик
 
23.11.18
19:17
Напишите самое оптимальное решение на ваш взгляд:

Для Каждого Стр11 ИЗ Объект.ВыручкаБезНДС Цикл
        Если Стр11.Период = Период Тогда
            ВырБезНДС = ВырБезНДС + Стр11.Сумма;
        КонецЕсли;    
    КонецЦикла;

Спасибо!
1 Franchiser
 
гуру
23.11.18
19:41
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект, "ВыручкаБезНдс")
2 Franchiser
 
гуру
23.11.18
19:44
ВырБезНДС = ?(Стр11.Период = Период,ВырБезНДС  + Стр11.Сумма, ВырБезНДС)
3 Маленький Вопросик
 
23.11.18
19:46
(2) +1!
4 Конструктор1С
 
23.11.18
20:27
(0) оптимальное в каком плане?
5 Маленький Вопросик
 
23.11.18
20:29
(4) универсальности
6 RomanYS
 
23.11.18
20:32
вроде недавно выяснили, что обход большой ТЧ на клиенте абсолютно неоптимален. Так что уходим на сервер, а там хоть цикл с условием, хоть найтистроки и цикл без условий, хоть запрос, хоть в ТЗ выгружай и сворачивай
7 Маленький Вопросик
 
23.11.18
20:50
(6) почему? на клиенте всегда лучше такие вещи делать, чем на сервере? вот 100 юзеров запустит обход
8 RomanYS
 
23.11.18
20:54
(7) если вкратце, то из-за оптимизации платформы большая ТЧ не передается на клиент целиком, а только видимая часть (в ветке вроде называлась цифра 15 строк). В итоге тупой обход пары тысяч строк на клиенте вызовет сотню вызовов сервера. Вроде понятно, что даже один лишний вызов сервера в среднем перекроет всю вашу оптимизацию арифметики.
9 Маленький Вопросик
 
23.11.18
21:02
те все-так &НаКлиенте использует Сервер????
10 RomanYS
 
23.11.18
21:06
(9) если данных нет на клиенте, то ответ очевиден.
Для динамического списка такое поведение боле чем естественно, а вот для ТЧ и табличных документов - результат оптимизации.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс