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

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

Не фиксируется транзакция в цикле

Не фиксируется транзакция в цикле
Я
   mvgfirst
 
11.10.16 - 20:25
Есть некая база.
Написал простую обработку суть которой - помечать на удаление документы

Алогритм такой:
Запросом выбираем первых 500 документов без пометки помечаем и делаем запрос повторно. пока все документы не будут помечены.

Использую транзакции. Обнаружил интересный эффект:
Сперва сдела так:

НачатьТранзакцию
Цикл
  ПометкаНаУдаление
  ЗафиксироватьТранзакцию
  НачатьТранзакцию
КонецЦикла
ЗафиксироватьТранзакцию

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

переписал на:
Цикл
  НачатьТранзакцию
  ПометкаНаУдаление
  ЗафиксироватьТранзакцию
КонецЦикла

все нормально заработало.

В общем проблема как бы решена. Но мне не понять почему в первом варианте не отрабатывало закрытие транзакции??

Не исключаю что я что-то где-то недочитал в документации... хотя перед тем как писать и гуглил и СП читал ... несколько раз. Ответа нет, как и какого либо упоминания о циклах...
Везде только о вложенности транзакций... но у меня нет вложенности. ни в первом ни во втором варианте решения...

Кто-нибудь сталкивался с подобным? Или на лицо ошибка, если да то в чем заключается уточните пожалуйста....
 
 
   RomanYS
 
1 - 11.10.16 - 20:30
Кто-то что-то не договаривает...
Скорей всего ты "делал запрос повторно" до фиксации транзакции, хотя тогда бы, наверное, всё зациклилось на первой порции
   GROOVY
 
2 - 11.10.16 - 20:34
Зачем тут явная транзакция?
   mvgfirst
 
3 - 11.10.16 - 20:35
Такой вариант у меня тоже был )))
Сутки обработка якобы удаляла документы...

Но это было выявлено и устранено.

Запрос выполняется после фиксирования транзакции. Да и по журналу регистрации видно что документы помечаются на удаление и они разные... но все в одной транзакции состояние которой "незавершена"... Все это еще и приводило к разрастанию ТЕМП ДБ
   mvgfirst
 
4 - 11.10.16 - 20:37
(2) Ну на всяких там инфострартиках прочитал что использование транзакций ускоряет процесс удаления.

Дело не в том зачем она здесь а в феномене на который я "наступил". Т.е. если открыть транзакцию до цикла а потом в цикле закрыть и открыть новую то получается что транзакция не закрывается
   MrStomak
 
5 - 11.10.16 - 21:12
(4) быстрее оно только на файловой будет.
Поведение ненормальное, хотелось бы реальный код.
Может быть и глюк ЖР, нужно проверять через попытку отката

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