Удаление движений документа, если сам документ удален. БП 3.0, УПП, ББУ


Обработка для удаления движений документа, если сам документ удален, но по нему остались движения с битыми ссылками.

Иногда бывает, что документ совсем отсутствует в базе (Объект не найден…), а проводки остались. 

Это выясняется при сдаче отчетности или формировании акта сверки.

Поможет эта обработка. Выбираем период: дата начальная и дата конечная, если нужно просто посмотреть какие движения остались нажимаем кнопку "Найти проводки", и если найдены проводки, которые нужно удалить, тогда жмем кнопку "Удалить проводки"

По кнопке "Удалить проводки" удалены проводки тех документов, которые отсутствуют.

Тестировалось на платформе 1С:Предприятие 8.3 (8.3.10.2561). Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.60.50)

Пример кода, который очищает проводки:

 
Для Каждого МетаданныеРегистра Из Метаданные.РегистрыБухгалтерии Цикл
ИмяРегистра = МетаданныеРегистра.Имя;
Отчет.ДобавитьСтроку("Регистр бухгалтерии = "+ИмяРегистра);
Набор = РегистрыБухгалтерии[ИмяРегистра].СоздатьНаборЗаписей();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| "+ИмяРегистра+".Регистратор КАК Регистратор
|ИЗ
| РегистрБухгалтерии."+ИмяРегистра+" КАК "+ИмяРегистра+"
|
|ГДЕ "+ИмяРегистра+".Период>=&ДатаНач И "+ИмяРегистра+".Период<=&ДатаКон
|
|УПОРЯДОЧИТЬ ПО
| Регистратор
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("ДатаНач",НачалоДня(Объект.ДатаНачальная));
Запрос.УстановитьПараметр("ДатаКон",КонецДня(Объект.ДатаКонечная));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистраторНаименование = Строка(Выборка.Регистратор);
Если Найти(РегистраторНаименование,"<Объект не найден>")>0 Тогда
Отчет.ДобавитьСтроку(РегистраторНаименование);
КонецЕсли;
КонецЦикла;
КонецЦикла;

 

Leave a Comment

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