Имя: Пароль:
1C
1С v8
Ошибка при проведении документа
,
0 R1A1
 
28.11.13
10:47
При проведении документа из обработки возникает ошибка

Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)

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

//==========================================================
ПРоцедура ПроведениеДокументов(_Док,НачДата,КонДата)    
_ДокВыборка =_Док.Выбрать(НачДата,КонДата);
    
Пока _ДокВыборка.Следующий() Цикл
        
_ДокОБ=_ДокВыборка.ПолучитьОбъект();
        
Если  _ДокОБ.ПометкаУдаления Тогда
    Продолжить;
КОНЕЦеСЛИ;
Если  _ДокОБ.Проведен Тогда
         Продолжить;
КОНЕЦеСЛИ;

Попытка
        
_ДокОБ.Записать(РежимЗаписиДокумента.Проведение);
        
Исключение КонецПопытки;
КонецЦикла;
КонецПроцедуры
1 Wobland
 
28.11.13
10:48
отличная новость
2 Defender aka LINN
 
28.11.13
10:49
(0) "запись была изменена или удалена" - какая-то буква непонятна, или что?
3 R1A1
 
28.11.13
10:51
Не понятно в какой момент она была изменена.
4 Defender aka LINN
 
28.11.13
10:53
(3) Возможно, параллельным заданием.
З.Ы. А вообще клево, конечно - сначала получить объект, а потом уже смотреть - а не помечен ли он на удаление
5 Господин ПЖ
 
28.11.13
10:53
в любой...

.Выбрать()

не гарантирует отсутствие фантомов и повторяемости чтения...

за "_ДокОБ=_ДокВыборка.ПолучитьОбъект();" без нужды - отдельное спасибо от базы...
6 R1A1
 
28.11.13
11:02
(5) А что гарантирует?
7 Defender aka LINN
 
28.11.13
11:03
(6) Что ты будешь выгребешь кучу ненужных данных порциями по 25 записей.
8 Господин ПЖ
 
28.11.13
11:03
(6) Транзакция... "ДЛЯ ИЗМЕНЕНИЯ" в запросе
9 R1A1
 
28.11.13
11:08
(8) Ясно. Спасибо.