Удаление проводок в регистре бухгалтерии

Обработка удаления проводок в регистре бухгалтерии по всем организациям кроме выбранной без перепроведения документов.

Стояла задача удаления всех проводок документов, кроме проводок выбранной организации. Она встала после переноса данных по одной организации в новую базу через стандартную обработку «ВыгрузкаЗагрузкаДанныхXML»

Делалась в основном из-за Документа «Корректировки записей регистра» , так как в нем могли содержаться данные по нескольким организациям, включая нужную.

///Удаление из РегистрБухгалтерии.Налоговый
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| Налоговый.Регистратор
|ИЗ
| РегистрБухгалтерии.Налоговый КАК Налоговый
|ГДЕ
| Налоговый.Организация <> &Организация
|
|УПОРЯДОЧИТЬ ПО
| Налоговый.Регистратор.Дата";
Запрос.УстановитьПараметр("Организация",Организация);

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Налоговый.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);

НаборЗаписей.Прочитать();
НомераСтрок = Новый СписокЗначений;

Для каждого Запись из НаборЗаписей Цикл

Если Запись.Организация <> Организация Тогда
НомераСтрок.Добавить(Запись.НомерСтроки-1);
КонецЕсли;

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


НаборЗаписей.Записать();
НомераСтрок.Очистить();
КонецЦикла;

///Удаление из РегистрБухгалтерии.Хозрасчетный

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| Хозрасчетный.Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Организация <> &Организация
|
|УПОРЯДОЧИТЬ ПО
| Хозрасчетный.Регистратор.Дата";
Запрос.УстановитьПараметр("Организация",Организация);

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);

НаборЗаписей.Прочитать();
НомераСтрок = Новый СписокЗначений;

Для каждого Запись из НаборЗаписей Цикл

Если Запись.Организация <> Организация Тогда
НомераСтрок.Добавить(Запись.НомерСтроки-1);
КонецЕсли;

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

НаборЗаписей.Записать();
НомераСтрок.Очистить();
КонецЦикла;

1 Comment

  1. t278

    Способ работает, удаление 6 лет длится 3 часа на SQL. 320 тысяч проводок

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *