Когда надо срочно удалить кучу документов реализации и счет-фактуры, а сделать это надо крайне быстро и желательно в короткий срок. Тогда на помощь приходит эта "замечательная" обработка. Вы можете сделать массовое удаление документов, без контроля ссылочной целостности, перед тем как провести заново загрузку документов из другой программы. Предупреждение: нет контроля ссылочной целостности, поэтому будьте внимательны.
Как пользоваться обработкой:
1. Выбрать период, за который нужно удалить документы
2. Выбрать организацию
3. Выбрать контрагента
4. Нажать кнопку "Удалить реализации", если нужно удалить реализации, либо нажать кнопку "Удалить счета-фактуры" если нужно удалить счет-фактуры.
5. Дождаться окончания удаления документов.
Пример запроса на удаление реализаций:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка КАК Док |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон | И РеализацияТоваровУслуг.Организация = &Организация | И РеализацияТоваровУслуг.Контрагент = &Контрагент | |УПОРЯДОЧИТЬ ПО | РеализацияТоваровУслуг.Дата"; Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Объект.ДатаНач)); Запрос.УстановитьПараметр("ДатаКон", КонецДня(Объект.ДатаКон)); Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент); Запрос.УстановитьПараметр("Организация", Объект.Организация); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); СтрНаименованиеДокумента = СокрЛП(ВыборкаДетальныеЗаписи.Док); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ДокО=ВыборкаДетальныеЗаписи.Док.ПолучитьОбъект(); СтрНаименованиеДокумента = СокрЛП(ВыборкаДетальныеЗаписи.Док); Попытка ДокО.Удалить(); Отчет.ДобавитьСтроку("Удален документ "+СтрНаименованиеДокумента); Исключение Отчет.ДобавитьСтроку("Ошибка удаление документа "+СтрНаименованиеДокумента); Отчет.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; КонецЦикла;
Пример запроса на удаление счетов-фактур:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СчетФактураВыданный.Ссылка КАК Док |ИЗ | Документ.СчетФактураВыданный КАК СчетФактураВыданный |ГДЕ | СчетФактураВыданный.Дата МЕЖДУ &ДатаНач И &ДатаКон | И СчетФактураВыданный.Организация = &Организация | И СчетФактураВыданный.Контрагент = &Контрагент | |УПОРЯДОЧИТЬ ПО | СчетФактураВыданный.Дата"; Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Объект.ДатаНач)); Запрос.УстановитьПараметр("ДатаКон", КонецДня(Объект.ДатаКон)); Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент); Запрос.УстановитьПараметр("Организация", Объект.Организация); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ДокО=ВыборкаДетальныеЗаписи.Док.ПолучитьОбъект(); СтрНаименованиеДокумента = СокрЛП(ВыборкаДетальныеЗаписи.Док); Попытка ДокО.Удалить(); Отчет.ДобавитьСтроку("Удален документ "+СтрНаименованиеДокумента); Исключение Отчет.ДобавитьСтроку("Ошибка удаление документа "+СтрНаименованиеДокумента); Отчет.ДобавитьСтроку(ОписаниеОшибки()); КонецПопытки; КонецЦикла;
Тестировалось на платформе: 1С:Предприятие 8.3 (8.3.12.1595)
Конфигурация: Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.71.75)