Имя: Пароль:
1C
1С v8
{HTTPСервис.Обмен.Модуль(118)}: Ошибка при вызове метода контекста (Записать)
0 Viktoria97
 
24.12.18
14:26
Всем привет, подскажите в чем может быть проблема?
{HTTPСервис.Синхронизация.Модуль(118)}: Ошибка при вызове метода контекста (Записать)

Узел=ПланыОбмена.Обмен.НайтиПоКоду(Код);
Узел = Узел.ПолучитьОбъект();
Узел.Реквизит = Сообщение;
Узел.Записать();

Пытаюсь записать реквизит в плане обмена.
1 butterbean
 
24.12.18
14:29
тут отладчик нужен, да и программист не помешал бы
2 Viktoria97
 
24.12.18
15:19
Иногда перезаписывается иногда вылетает ошибка. Вообще не понимаю
3 oleg_km
 
24.12.18
16:19
(1) Тогда уж и фотка.
4 palsergeich
 
24.12.18
16:20
Оберните в попытку и при исключении пишите в Журнал регистрации
5 Viktoria97
 
24.12.18
17:42
{HTTPСервис.Синхронизация.Модуль(364)}: Ошибка при вызове метода контекста (Записать): Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!
Вот что пишет
6 ZhikinVN
 
24.12.18
17:51
Всё просто.
Когда вы получаете объект, из базы он считывается с версией "А".
Когда вы записываете объект, в базе он уже версии "Б".
Т.е. этот же узел уже был записан, в другом сеансе, а может быть даже и в этом же.

И вообще, зачем вы перезаписываете сам узел?
В чём соль, так сказать, это же условно неизменяемый во времени объект.
7 Viktoria97
 
24.12.18
17:58
Мне нужно отслеживать статус обмена, поэтому добавил реквизит в плане обмена и изменяю его статус
8 Viktoria97
 
24.12.18
18:00
Получается я не никак не могу изменять его в разных сеансах?
9 ZhikinVN
 
24.12.18
18:08
(7) Для таких вещей надо делать лог или отдельный регистр сведений. Ибо если было два "обмена", но в последнем всё нормально, то как узнать что была ошибка в первом?
(8) Если упростить то да, не может или если точнее может, но не всегда (а при условии, что они по-очереди будут его записывать).
10 Viktoria97
 
24.12.18
18:19
Спасибо Вам огромное! Перенесу тогда все свои статусы в регистр сведений.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.