Ошибка при проведении документа
☑
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) Ясно. Спасибо.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс