Получение кода элемента справочника - в цикле долго...

1. johnny17 28.09.23 00:06 Сейчас в теме
Пишу обход элемента справочника (номенклатура) по реквизитам, есть реквизиты справочники, у них есть реквизиты справочники и т.д.
При замере производительности больше всего тормозит простая строка: Код = Элемент.Код. Элемент - это необязательно номенклатура, это может быть ее реквизит и т.д. как выше...
Для одного элемента не критично, а если номенклатуры много... Эта строка по замерам "весит" 65%
Найденные решения
2. Sashares 34 28.09.23 00:18 Сейчас в теме
(1)Ну так используйте запрос, очевидно же...
Даже ОбщегоЗначения.ЗначениеРеквизитаОбъекта поможет, но лучше конечно все получить заранее в одном запросе.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 28.09.23 00:18 Сейчас в теме
(1)Ну так используйте запрос, очевидно же...
Даже ОбщегоЗначения.ЗначениеРеквизитаОбъекта поможет, но лучше конечно все получить заранее в одном запросе.
4. PlatonStepan 38 28.09.23 04:19 Сейчас в теме
(1) Выше уже написали, как от конкретной ссылки получить набор её реквизитов.
Просто поясню, почему именно "тормозит простая строка: Код = Элемент.Код":
Как только вы к обращаетесь к данным ссылки, делается запрос на экземпляр объекта ссылки со всеми подчинёнными реквизитами, табличными частями, представлениями. Этот экземпляр кэшируется на некоторое время, поэтому последующие обращения к данным ссылки не имеют "веса".
Если бы вы получали сперва Элемент.Наименование или Элемент.Реквизит1, то тогда бы это занимало много времени замера.

Кстати, в БСП для этого целый ряд методов:
ЗначениеРеквизитаОбъекта -один объект, один реквизит
ЗначенияРеквизитовОбъекта -один объект, список реквизитов
ЗначениеРеквизитаОбъектов -список объектов, один реквизит
ЗначенияРеквизитовОбъектов -список объектов, список реквизитов
3. Oldsad 28.09.23 01:57 Сейчас в теме
Именно для этого в БСП придумали функцию(и):
Код = ОбщегоНазначения.ЗначениеРеквизитаОбъекта( Элемент, "Код");

Есть как для отдельного реквизита и объекта, так и для списка реквизитов и/или массива объектов
5. cassper 28.09.23 08:20 Сейчас в теме
(3)
массива объектов

одного типа
Оставьте свое сообщение
Вакансии
Программист 1С
Кемерово
зарплата от 200 000 руб.
Полный день

Программист 1С
Киров (Кировская обл.)
зарплата от 100 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Архитектор 1С
Москва
зарплата от 250 000 руб.
Полный день

1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день