Имя: Пароль:
1C
1С v8
Номенклатура - замер производительности
0 DmitryPavlik
 
25.01.12
14:22
Делаю кое-какую обработочку (обмен данными)
SQl база
1С:Предприятие 8.2 (8.2.15.289)
Управление производственным предприятием, редакция 1.3 (1.3.17.1)
переписка, в номенклатуру добавлены кое-какие реквизиты; модуль менеджера пуст.

В замере производительности заметил, что 40% времени тратится на получение ...
"Номенклатура.ЕдиницаХраненияОстатков"!
Данные получаются из этой же базы.
Кусок кода:
       Номенклатура = Справочники.Номенклатура.НайтиПоКоду(ЛП(СтрРез2.itemid));
       Если НЕ Номенклатура.Пустая() Тогда
           НовСтр = ТабТовары.Добавить();
           НовСтр.Номенклатура        = Номенклатура;
           НовСтр.Количество            = ЛП(СтрРез2.Количество);
           НовСтр.Сумма                = Число(ЛП(СтрРез2.ЦенаПродажи)) * Число(ЛП(СтрРез2.Количество));
           НовСтр.ЕдиницаИзмерения        = Номенклатура.ЕдиницаХраненияОстатков;


Т.е. в принципе, ничего сверхъестественного.
Есть какие-либо варианты?

ПС: помимо этого, получаю другие ссылки (контрагенты, договора, документы), но запарка именно тут.
1 pavig
 
25.01.12
14:25
(0) выдерни все одним запросом, потом в запросе убери выдергивание ЕдиницыИзмерения, сравни время на выполнение первого и второго вариантов
и да, Номенклатура.ЕдиницаХраненияОстатков - индексировано?
2 DmitryPavlik
 
25.01.12
14:27
(1) "Номенклатура.ЕдиницаХраненияОстатков - индексировано?" - откуда-же, нет

Похоже, придётся через представления всякие лазить
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс