Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Тормозит простая функция с директивой &НаСервере [решено с помощью &НаСервереБезКонтекста]

Тормозит простая функция с директивой &НаСервере [решено с помощью &НаСервереБезКонтекста]
Я
   Олдж
 
14.07.20 - 20:42
Добрый день, началось всё с того, что вроде бы простая обработка выполняется непозволительно долгое время.
Замер производительности показал 95% времени выполняется одна функция.
В этой функции одна единственная строка:

Возврат Справочники.Номенклатура.НайтиПоРеквизиту("Код77",КодНоменклатуры77).Ссылка;

Реквизит Код77 индексированный. В ходе эксперимента оставил в этой функции одну строку Возврат 0; - производительность не изменилась.
В самой функции время выполнения меньше секунды, а в процедуре на клиенте эта функция возвращает значение секунду и более.

Вопрос: как исправить ситуацию в лучшую сторону ?
   acht
 
1 - 14.07.20 - 20:46
Уменьшить число контекстых вызовов, количество данных контекстф формы и т.п.
   acht
 
2 - 14.07.20 - 20:47
1) Используй вместо &НаСервере &НаСервереБезКонтекста
2) Убери наъ .Ссылка от результата поиска по реквизиту
   acht
 
3 - 14.07.20 - 20:48
3) Ищи сразу все нужные данные одним заходом на сервер, без дерганья в цикле
   Олдж
 
4 - 14.07.20 - 20:50
(2) ага, без контекста помогло. Спасибо. А можно уточнить почему так ?
   acht
 
5 - 14.07.20 - 20:52
(4) У тебя очень "толстая" форма, очевидно есть табличная часть с большим числом строк. При каждом контекстном вызове (который &НаСервере) это барахло едет на сервер. При возврате из функции - обратно на клиент.
   acht
 
6 - 14.07.20 - 20:53
Вот ты производительности сериализатора и сети и замеряешь
   Олдж
 
7 - 14.07.20 - 20:54
(5) Да так и есть.

Благодарю за разъяснение
   Злопчинский
 
8 - 14.07.20 - 23:49
(2) "Убери наъ .Ссылка от результата поиска по реквизиту" - почему?
Возврат Справочники.Номенклатура.НайтиПоРеквизиту("Код77",КодНоменклатуры77).Ссылка - здесь возвращается ссылка
Возврат Справочники.Номенклатура.НайтиПоРеквизиту("Код77",КодНоменклатуры77) - здесь возвращается объект? -зачем нам обьект если допустим нужна только ссылка? илия неправильно понимаю?
   Сергиус
 
9 - 14.07.20 - 23:54
(8)НайтиПоРеквизиту и так ссылку возвратит.
   Злопчинский
 
10 - 14.07.20 - 23:58
(9) хм.. как однако непросто в снеговике.
объект по поиску среди объектов не возвращает? надо как-то принудительно объект получать?
   Сергиус
 
11 - 15.07.20 - 00:00
(10)Ссылка.ПолучитьОбъект()

Собственно зачем при поиске сам объект то?
   Злопчинский
 
12 - 15.07.20 - 00:02
(11) согласен. без надобности объект тянуть не надо.
спсб за пояснение
   Сергиус
 
13 - 15.07.20 - 00:04
(13)было б за что..я смотрю ты в лоно 8-ки не торопишься особо))
   Злопчинский
 
14 - 15.07.20 - 00:05
(13) а смысл...?
   Злопчинский
 
15 - 15.07.20 - 00:06
(13) .. чтобы тривиальные вопросы типа в КА2: Списание ДС - задваиваются проводки - превращались в проблему?
   Сергиус
 
16 - 15.07.20 - 00:12
(15)Отладчик в руки..хотя конечно в КА2 это то еще удовольствие(
   Злопчинский
 
17 - 15.07.20 - 00:27
(16) в УТ11 или в ЕРП - лучше?
   Сергиус
 
18 - 15.07.20 - 00:54
(17)В УТ 10.3 неплохо было)
   Злопчинский
 
19 - 15.07.20 - 02:51
(18) но это ж древнее как г... мамонта ;-)
   Сергиус
 
20 - 15.07.20 - 13:33
(19)а 7.7 ТиС как тогда?)
   Злопчинский
 
21 - 15.07.20 - 16:21
(20) это как теплое ламповое железо. может и УТ10 когда-то таким станет, но вряд ли


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