Имя: Пароль:
1C
 
Запись документа в независимый регистр удаляется при отказе проведения
,
0 Блондинка_
 
17.04.18
16:41
Добрый день! Что-то не пойму, почему так происходит.
Ут 10.3, в процедуре перед записью счета-фактуры выданного доработана запись номера, при этом номер записывается в спец.регистр сведений. Регистр независимый, ссылки на документ в нем нет, только номера и даты.
При этом если счет-фактуру создать и сразу попробовать провести, а в результате проведения будет отказ, то номер в реквизит запишется, а из регистра запись удалится, хоть он и не зависимый. Получается, происходит откат всего того что выполнялось в процессе проведения?  Почему тогда номер остается в поле.
1 cw014
 
17.04.18
16:42
Происходит откат транзакции. Любая запись в БД при этом недействительна
2 Фрэнки
 
17.04.18
16:59
Если это именно так, то из-за какой-то невнимательности произошел перенос кода для сохранения записи в регистр из контекста процедуры для события ПередЗаписью в контекст события ОбработкаПроведения - событие происходит в транзакции и при отказе происходит откат всех действий над базой из этого контекста.

Если нужно чтоб от подобного рода допилов гарантировано оставались следы, то их нужно запихивать в обработки Подписок на события.
3 cw014
 
17.04.18
17:02
(2) Тоже на транзакции могут отвалиться, хотя бывают спецэффекты "грязного чтения"
4 Фрэнки
 
17.04.18
17:08
(3) смотря какое событие выбрать.
5 Блондинка_
 
18.04.18
09:48
Спасибо большое за ответы!
Но ведь присвоение номера не сделаешь в подписке, это же уже после всех процедур будет, как-то неправильно..
а почему тогда номер остается в реквизите? Который присвоили перед записью.
6 hhhh
 
18.04.18
10:16
(5) это же на форме вы видите номер.
7 Блондинка_
 
18.04.18
10:18
Ну да, вы правы, в БД его нет.
Просто пользователь потом берет и просто записывает. В итоге номер есть в документе, а в регистре нет
8 hhhh
 
18.04.18
10:30
(7) ну это ваша недоработка. То что вы только при проведении в регистр пишете. При записи Пушкин что ли в регистр будет писать?
9 Блондинка_
 
18.04.18
10:45
Да это "так было"))) Это происходит ПередЗаписью. Но стоит проверка на номер, типа номер присвоен и значит уже записан в регистр. Придумаю что-нибудь получше)
10 unregistered
 
18.04.18
10:58
(9) >> номер присвоен и значит уже записан в регистр

Тупая логика.
Номер может быть вручную изменён в любой момент. В том числе по объективным  причинам.
Номер в регистр должен писаться всегда. Отказываться от записи можно только в том случае, если запись в регистре уже есть и номер в регистре равен номеру в объекте.

PS Интересно как вообще работает этот ваш чудный регистр, если в нём нет ссылки на документ... Бред какой-то.