Имя: Пароль:
1C
1С v8
Через какой механизм быстрее всего корректировать записи Регистра Бухгалтерии
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
Да, скорость выросла в разы..Спасибо за помощь.