|
Через какой механизм быстрее всего корректировать записи Регистра Бухгалтерии |
☑ |
0
Сергиус
01.06.12
✎
14:06
|
я делаю так:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекСчет",ТекСчет);
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| Обороты.Регистратор
|ИЗ
| РегистрБухгалтерии."+ПланСчетов+".Обороты(, , Регистратор, Счет = &ТекСчет, , , , ) КАК Обороты";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии[ПланСчетов].СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
Для каждого Стр ИЗ НаборЗаписей Цикл
//Мои изменения данных
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
Но попался один счет, изменения по которому длятся более 20 часов..Можно как то ускорить эту процедуру?
|
|
1
Живой Ископаемый
01.06.12
✎
14:06
|
отключить итоги.
|
|
2
Defender aka LINN
01.06.12
✎
14:08
|
(1) Угу. И потом их 20 часов включать 6)
|
|
3
Сергиус
01.06.12
✎
14:08
|
(1) Извини за вопрос, как это сделать?
|
|
4
Сергиус
01.06.12
✎
14:08
|
(2)Т.е. других вариантов нет?
|
|
5
Maxus43
01.06.12
✎
14:09
|
заключить в Транзакцию по 1000 записей
|
|
6
Живой Ископаемый
01.06.12
✎
14:10
|
2(2) да, мне тоже не нравится... :(
2(3) всем известно как.. ВыгрузкаЗагрузкаДанныхХМЛв82.епф, закладка загрузка, нажать кнопку выключить итоги
|
|
7
Сергиус
01.06.12
✎
14:10
|
(5)Выигрыш будет заметен?
|
|
8
Maxus43
01.06.12
✎
14:12
|
(7) должен быть заметен... а разделение итогов включено?
|
|
9
Сергиус
01.06.12
✎
14:15
|
(8) да, включено
|
|
10
Maxus43
01.06.12
✎
14:16
|
сколько наборов? по 5000 наборов в транзакцию заворачивай, прирост будет
|
|
11
Сергиус
01.06.12
✎
14:45
|
(10)Регистраторов где то 135.000..в каждом от 10 до 1000 записей..по-разному
|
|
12
Maxus43
01.06.12
✎
14:49
|
попробуй короче. замер сделай как в транзакцию завернёш, по 500-1000 наборов думаю
|
|
13
Сергиус
01.06.12
✎
14:58
|
В транзакцию завернуть вот этот блок :
НаборЗаписей = РегистрыБухгалтерии[ПланСчетов].СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
Для каждого Стр ИЗ НаборЗаписей Цикл
//Мои изменения данных
КонецЦикла;
НаборЗаписей.Записать();
?
|
|
14
Maxus43
01.06.12
✎
15:05
|
да, счетчик на количество наборов, потом фиксируй и заново начинай
|
|
15
Maxus43
01.06.12
✎
15:05
|
ну 1000 наборов просто запиши в транзкции и без неё, погляди производительность
|
|
16
Сергиус
01.06.12
✎
16:38
|
Да, скорость выросла в разы..Спасибо за помощь.
|
|