|
Планы обмена, Зарегистрировать Изменения |
☑ |
0
rull9ss
06.11.13
✎
13:48
|
Сильно не пинать, только учусь.
Типовая УТ. Настроены планы обмена.
Записываю примерно 300к записей в регистр сведений ЗначенияСвойствОбъектов. 95% времени занимает выполнение типового кода:
Если ТипОбъекта = Тип("РегистрСведенийНаборЗаписей.ЗначенияСвойствОбъектов") Тогда
МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);
Для каждого Запись Из Объект Цикл
ТипДанных = ТипЗнч(Запись.Объект);
Если ТипДанных = Тип("СправочникСсылка.Номенклатура") Тогда
ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект);
ИначеЕсли ТипДанных = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда
ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Основное время занимает ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект);
Есть ли возможность записать данные разом, не обходя циклом построчно? а то уж очень долго выполняется запись.
|
|
1
rull9ss
06.11.13
✎
13:55
|
апну
|
|
2
Naumov
06.11.13
✎
14:01
|
использовать транзакцию?
|
|
3
Feunoir
06.11.13
✎
14:03
|
(0) Судя по коду, оно регистрирует каждый элемент номенклатуры у которого есть дополнительные свойства. Боюсь, что победить получится только двумя способами
первый: закомментировать строку, загрузить, раскомментировать строку.
второй: записывать набор записей в режиме "загрузка=истина", а регистрировать для обмена потом вручную. Хотя оно может не помочь, так как не очень понятно откуда этот код выдернут.
|
|
4
rull9ss
06.11.13
✎
14:06
|
(3) ОМ ПроцедурыОбменаССайтом
Процедура ЗарегистрироватьИзменения(Объект)
|
|
5
rull9ss
06.11.13
✎
14:07
|
(2) как использование транзакции поможет уменьшить время выполнения?
|
|
6
Галахад
гуру
06.11.13
✎
14:09
|
А номенклатур всего сколько?
|
|
7
rull9ss
06.11.13
✎
14:10
|
(6) примерно 300000
|
|
8
Feunoir
06.11.13
✎
14:13
|
(4) Ну в общем для обмена с сайтом контроля на "загрузка=истина" нет, поэтому второй вариант отпадает.
|
|
9
Serg_1960
06.11.13
✎
14:13
|
(0) Хех. Временно отключи подписки типа "ПриЗаписи...ОбменССайтомПриЗаписи". Но ежели что - я этого не говорил :)
|
|
10
Feunoir
06.11.13
✎
14:14
|
+(8) Но есть другой грязный хак :) Перед загрузкой попытаться поставить ПараметрыСеанса.НаличиеОбменаССайтом=Ложь. Может и получится.
|
|
11
Галахад
гуру
06.11.13
✎
14:15
|
(7) Т.е. в любом случае всю номенклатуру надо выгружать?
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой