Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Массовое удаление проведенных документов

Массовое удаление проведенных документов
Я
   Wefast
 
10.01.19 - 23:52
В общем есть документы установка цен.
около 100к шт.

Нужно их все удалить.

Слышал краем уха, что удалять через транзакцию быстрее

Но не пойму надо ли мне их распроводить сначала, или можно сразу Удалить()?


пишу пока так:

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 1000
        |    УстановкаЦенНоменклатуры.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.УстановкаЦенНоменклатуры КАК УстановкаЦенНоменклатуры
        |ГДЕ
        |    УстановкаЦенНоменклатуры.Дата = &Дата
        |    И УстановкаЦенНоменклатуры.Проведен = &Проведен";
    
    Запрос.УстановитьПараметр("Дата", НачалоГода(ТекущаяДата()));
    Запрос.УстановитьПараметр("Проведен", Истина);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    НачатьТранзакцию();    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Док = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        Док.Записать(РежимЗаписиДокумента.ОтменаПроведения);
        Док.Удалить();
    КонецЦикла;
    ЗафиксироватьТранзакцию();

Но наверное быстрее было бы без
        Док.Записать(РежимЗаписиДокумента.ОтменаПроведения);

Я удалил 1 док без распроведения. Посмотрел в регистр установки цен. Никаких ОбъектНеНайден там нет. Но может это их просто не видно.
 
 
   МихаилМ
 
1 - 11.01.19 - 00:34
на этом форуме тема обсуждалась сотни раз. в поиск
   bolero
 
2 - 11.01.19 - 00:38
Если удалять _все_ установки, то зачем их отбирать?

TRUNCATE TABLE xxx; для четырех таблиц:

Документ_УстановкаЦенНоменклатуры_ВидыЦен
Документ_УстановкаЦенНоменклатуры_Товары
Документ_УстановкаЦенНоменклатуры
РегистрСведений_ЦеныНоменклатуры

Отработает меньше, чем за секунду.
   Wefast
 
3 - 11.01.19 - 00:50
(2) не работал на прямую с таблицами никогда. Делаю на живой базе - хочется без сюрпризов.

И мне конечно желательно не все удалить, а по отбору


(1) Что то я не нашел ничего по словам Удалить() или Удалить проведенные документы.

Я удалил проведенный документ через УДалить()

Зашел в регистр сведений, там нет записей с этого документа.

Но так ли оно на самом деле не понимаю.

Удалить() по идее удаляет сам объект. Но без ссылочной целостности. Но относится ли это к проводкам не понятно.
   bolero
 
4 - 11.01.19 - 01:27
После удаления установки цен могут случиться только две нехорошие вещи:
- станет активной старая цена, более не перекрытая свежей относительно той. Поэтому удалять лучше в порядке от более старых к более свежим
- кому-то понадобится перезаполнить цены в документе, а действующих цен на тот период больше нет. Если старое не ворошить - все будет норм.

Больше нигде накосячить с удалением установок не получится

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует