Имя: Пароль:
1C
 
Помогите оптимизировать алгоритм изменения регистра накопления
, ,
0 Обфускация
 
22.05.18
14:31
У меня в базе есть разлетевшийся регистр себестоимости. Причины пока ищем, но надо работать. Я написала обработку, которая проходит по регистру, отбирает разлетевшиеся записи и выводит их в таблицу, это все быстро. Потом также быстро эта таблица дополняется ценами прихода. После этого данные надо поместить в регистр. Но вот тут все дико виснет и делается очень долго, хотя косметический эффект есть, все в отчетах становится как надо. Вопрос, как это можно ускорить?

для каждого стр из объект.Изменения цикл
Набор = РегистрыНакопления.ОстаткиНоменклатурыВСебестоимости.СоздатьНаборЗаписей () ;
Набор.Отбор.Регистратор.Значение = стр.регистратор;
Набор.Прочитать();
Для Каждого движ Из Набор Цикл
если стр.АналитикаУчетаНоменклатуры= движ.АналитикаУчетаНоменклатуры тогда

    движ.стоимость=стр.контракт;
    стр.стоимость2= движ.Стоимость;
    Набор.Записать();

    конецесли;
КонецЦикла;

конеццикла;
1 Мыш
 
22.05.18
14:33
(0) Отключить итоги, выполнить все записи, включить итоги.
2 Обфускация
 
22.05.18
14:34
(1)
можно с примером кода?
3 Дык ё
 
22.05.18
14:34
(0) Записать() вынести из цикла
4 Мыш
 
22.05.18
14:34
+(1) Вынести Набор.Записать() за пределы цикла )
5 Timon1405
 
22.05.18
14:36
(1)+ оценить на копии время на включение/выключение итогов. на боевой наголо такими шашками лучше не махать.
6 Обфускация
 
22.05.18
14:38
(4)
в цикле условие соблюдается только один раз
7 RomanYS
 
22.05.18
14:56
Часть обработчиков можно выключить с помощью
Набор.ОбменДанными.Загрузка = Истина;
8 cons74
 
22.05.18
15:41
(7) и словить потом отсутствие корректных сумм в связанных (через подписки) регистрах?
9 aleks_default
 
22.05.18
17:17
сделай запросом по таблице Изменения и итоги по регистратору
10 spiller26
 
22.05.18
17:36
11 spiller26
 
22.05.18
17:38
(10) не туда
12 Tateossian
 
22.05.18
17:54
ОбменДанными.Загрузка можно в истину переключить.
13 xXeNoNx
 
22.05.18
19:11
(6) обушки-воробушки. Пардон, а чем не устраивают движения объекта? Зачем их еще через набор искать? А после проведения значения те же останутся?