Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Не удаляются документы в транзакции

Не удаляются документы в транзакции
Я
   GrVas
 
27.09.18 - 11:05
Пытаюсь удалить все документы, кроме одной организации.
Код
Процедура ВыбратьВсеДокументы()
    
//    УстановитьМонопольныйРежим(Истина);

    МассивДокументов=Метаданные.Документы;
    ВсегоДок = 0;  
    Для каждого СтрМас Из МассивДокументов Цикл
//        НачатьТранзакцию();

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

             КолДок = 0;
//             НачатьТранзакцию(); 

            КонецЕсли;     
            Состояние(ВыборкаДетальныеЗаписи.Ссылка);
            Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
            Объект.Удалить();
            КолДок= КолДок+1;
        КонецЦикла;
  //      ЗафиксироватьТранзакцию();

    КонецЦикла;
//    УстановитьМонопольныйРежим(Ложь);

КонецПроцедуры    


Если использовать транзакции, строки закомментированы, то документы не удаляются.
Если не использовать транзакции документы удаляются.
Что не так?
 
 
   Вафель
 
1 - 27.09.18 - 11:06
транзакция не фиксируется из-за ошибки.
   GrVas
 
2 - 27.09.18 - 11:07
(1) Тоже так подумал, сообщений об ошибках не выводится при удалении без транзакции.
   Cyberhawk
 
3 - 27.09.18 - 11:09
"документы не удаляются" // Подробнее
   GrVas
 
4 - 27.09.18 - 11:09
(1) удаление сделать в попытке ?
   GrVas
 
5 - 27.09.18 - 11:10
(3) не понятно, что не понятно. ))))
   runuts
 
6 - 27.09.18 - 11:14
ну навскидку количество вызовов НачатьТранзакцию <> ЗафиксироватьТранзакцию

из-за

Если СтрМас.Реквизиты.Найти("Организация")= Неопределено Тогда
            Продолжить;  !!!!!!!!!!!!!!!1
   GrVas
 
7 - 27.09.18 - 11:21
(6) попробую

Процедура ВыбратьВсеДокументы()
    
//    УстановитьМонопольныйРежим(Истина);

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

КонецПроцедуры
   GrVas
 
8 - 27.09.18 - 11:37
(6) Спасибо. Документы удаляются.

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