1С 8.3 Очистка регистра накопления
Данные > Примеры кода 1С > 1С 8.3 Регистры накопления
Перейти в раздел примеры кода 1С 8.3:
Очистка регистра накопления в 1С 8.3:
Процедура ОчисткаРегистраНакопления(Отказ, Режим)
ДатаКон = Дата(2021, 06, 22); // например 22.06.2021
//отключаем итоги:
РегистрыНакопления.ДвижениеПоСкладу.УстановитьИспользованиеИтогов(Ложь);
Запрос=Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| РегистрНакопления.Регистратор
|ИЗ
| РегистрНакопления.ДвижениеПоСкладу КАК РегистрНакопления
|ГДЕ
| РегистрНакопления.Регистратор.Дата < &ДатаКон"
Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
РезультатЗапроса = Запрос.Выполнить();
Кол=0; БылиОшибки=Ложь;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
//ОбработкаПрерыванийПользователя();
НаборЗаписей = РегистрыНакопления.ДвижениеПоСкладу.СоздатьНаборЗаписей();
//НаборЗаписей.Отбор.Регистратор.Значение = Выборка.Регистратор;
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
Попытка
НаборЗаписей.Записать();
Исключение
БылиОшибки=Истина;
КонецПопытки;
Кол=Кол+1;
Если Кол%100=0 Тогда
Сообщить("Отработано "+Кол+" документов из "+Выборка.Количество());
КонецЕсли;
КонецЦикла;
Если БылиОшибки Тогда
#Если Клиент Тогда
Предупреждение("Обработка завершена. Регистр очищен не до конца!!!");
#КонецЕсли
КонецЕсли;
//включаем итоги:
РегистрыНакопления.ДвижениеПоСкладу.УстановитьИспользованиеИтогов(Истина);
КонецПроцедуры
ДатаКон = Дата(2021, 06, 22); // например 22.06.2021
//отключаем итоги:
РегистрыНакопления.ДвижениеПоСкладу.УстановитьИспользованиеИтогов(Ложь);
Запрос=Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| РегистрНакопления.Регистратор
|ИЗ
| РегистрНакопления.ДвижениеПоСкладу КАК РегистрНакопления
|ГДЕ
| РегистрНакопления.Регистратор.Дата < &ДатаКон"
Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
РезультатЗапроса = Запрос.Выполнить();
Кол=0; БылиОшибки=Ложь;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
//ОбработкаПрерыванийПользователя();
НаборЗаписей = РегистрыНакопления.ДвижениеПоСкладу.СоздатьНаборЗаписей();
//НаборЗаписей.Отбор.Регистратор.Значение = Выборка.Регистратор;
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
Попытка
НаборЗаписей.Записать();
Исключение
БылиОшибки=Истина;
КонецПопытки;
Кол=Кол+1;
Если Кол%100=0 Тогда
Сообщить("Отработано "+Кол+" документов из "+Выборка.Количество());
КонецЕсли;
КонецЦикла;
Если БылиОшибки Тогда
#Если Клиент Тогда
Предупреждение("Обработка завершена. Регистр очищен не до конца!!!");
#КонецЕсли
КонецЕсли;
//включаем итоги:
РегистрыНакопления.ДвижениеПоСкладу.УстановитьИспользованиеИтогов(Истина);
КонецПроцедуры
2
комментарии
Administrator
07 дек 2021
ValMa, спасибо. Да, так лучше. Поправил
ValMa
07 дек 2021
//НаборЗаписей.Отбор.Регистратор.Значение = Выборка.Регистратор;
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник