Имя: Пароль:
1C
1С v8
СКД многократное обращение к функции вычисляемого поля.
0 Толич
 
07.12.17
09:48
Добрый день.
Столкнулся с непонятной для меня ситуацией:
В отчете СКД, который заполняется не программно, есть два вычисляемых поля. В выражении вычисляемых полей находится функция, которая возвращает числовое значение и находится в общем модуле. Значения вычисляемых полей добавлены в ресурсы. В отчете нет группировок. Есть только единственная группировка по детальным записям.
При отладке отчета столкнулся с тем, что по одной строке данных программа заходит 4 раза в одну функцию вычисляемого поля и 4 раза в другую. Т.е. 4 раза делаются одни и те же вычисления. Отчет формируется корректно, но очень уж медленно.
Попробовал поэкспериментировать. Если я убираю одно вычисляемое поле, то функция выполняется два раза. Если я делаю три вычисляемых поля, то каждая из трех функций выполняется по 8 раз.

Кто сталкивался с данной проблемой?
Подскажите как сделать, чтобы каждое вычисляемое поле вычислялось только один раз.

Заранее спасибо.
1 Ненавижу 1С
 
гуру
07.12.17
09:51
отбор и сортировка есть по ним? а вообще да, медленные они
2 Толич
 
07.12.17
09:53
(1) Есть отбор и сортировка.
Я пробовал их убирать. Результат такой же. Многократно вычисляются одни и те же данные.
3 FIXXXL
 
07.12.17
10:37
(2) оберни в повторноеИспользование, мож ускорит
4 Толич
 
07.12.17
12:24
(3) Спасибо.

Действительно решение было найдено с помощью нового модуля с повторным использованием:На время вызова.

Скорость заполнения отчета увеличилась в 3 раза.
5 Armando
 
08.12.17
00:04
(4) А расход памяти как?
6 Толич
 
08.12.17
07:46
(5) Все нормально. Не заметил скачка.
7 Ненавижу 1С
 
гуру
08.12.17
09:27
а в 8.2 модуль должен быть только глобальный?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший