Получение кода элемента справочника - в цикле долго...
Пишу обход элемента справочника (номенклатура) по реквизитам, есть реквизиты справочники, у них есть реквизиты справочники и т.д.
При замере производительности больше всего тормозит простая строка: Код = Элемент.Код. Элемент - это необязательно номенклатура, это может быть ее реквизит и т.д. как выше...
Для одного элемента не критично, а если номенклатуры много... Эта строка по замерам "весит" 65%
При замере производительности больше всего тормозит простая строка: Код = Элемент.Код. Элемент - это необязательно номенклатура, это может быть ее реквизит и т.д. как выше...
Для одного элемента не критично, а если номенклатуры много... Эта строка по замерам "весит" 65%
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Выше уже написали, как от конкретной ссылки получить набор её реквизитов.
Просто поясню, почему именно "тормозит простая строка: Код = Элемент.Код":
Как только вы к обращаетесь к данным ссылки, делается запрос на экземпляр объекта ссылки со всеми подчинёнными реквизитами, табличными частями, представлениями. Этот экземпляр кэшируется на некоторое время, поэтому последующие обращения к данным ссылки не имеют "веса".
Если бы вы получали сперва Элемент.Наименование или Элемент.Реквизит1, то тогда бы это занимало много времени замера.
Кстати, в БСП для этого целый ряд методов:
ЗначениеРеквизитаОбъекта -один объект, один реквизит
ЗначенияРеквизитовОбъекта -один объект, список реквизитов
ЗначениеРеквизитаОбъектов -список объектов, один реквизит
ЗначенияРеквизитовОбъектов -список объектов, список реквизитов
Просто поясню, почему именно "тормозит простая строка: Код = Элемент.Код":
Как только вы к обращаетесь к данным ссылки, делается запрос на экземпляр объекта ссылки со всеми подчинёнными реквизитами, табличными частями, представлениями. Этот экземпляр кэшируется на некоторое время, поэтому последующие обращения к данным ссылки не имеют "веса".
Если бы вы получали сперва Элемент.Наименование или Элемент.Реквизит1, то тогда бы это занимало много времени замера.
Кстати, в БСП для этого целый ряд методов:
ЗначениеРеквизитаОбъекта -один объект, один реквизит
ЗначенияРеквизитовОбъекта -один объект, список реквизитов
ЗначениеРеквизитаОбъектов -список объектов, один реквизит
ЗначенияРеквизитовОбъектов -список объектов, список реквизитов
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот