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

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

Сумма по колонке табличной части с отбором

Сумма по колонке табличной части с отбором
Я
   МаленькийВопросик
 
23.11.18 - 19:17
Напишите самое оптимальное решение на ваш взгляд:

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

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

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