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

Очищаются движения регистра после каждого второго проведения

Очищаются движения регистра после каждого второго проведения
Я
   ГдеСобакаЗарыта
 
02.07.20 - 15:42
8.3.14.1854 ЗУП 3.1.10.50
Добавлен новый регистр накопления. Движения в него пишутся подпиской на запись набора другого типового регистра. При четных перепроведениях документа, по подписке формируются движения моего регистра, запсываются, все Ок. При нечетном перепроведении - по подписке формируются движения моего регистра, записываются и следом записывается уже пустой набор записей. То бишь первый раз только подписка, второй - подписка и следом запись пустого набора. И так через раз. В стеке вызовов второй записи регистра пусто.
Что это может быть?
   ГдеСобакаЗарыта
 
1 - 02.07.20 - 15:45
Удаление движений документа - Удалять автоматически при отмене проведения
   1nvertex
 
2 - 02.07.20 - 15:55
Первый раз подписка не видит движений, так как сами движения еще не записаны. Второй раз она видит еще не удаленные движения. Можете убедиться в этом, если поменяете какой нибудь реквизит между проведениями.
   Волшебник
 
Модератор
3 - 02.07.20 - 15:57
Это потому что "движения в него пишутся подпиской". Перестаньте заниматься извращениями и сделайте нормальную запись из модуля документа.
   ГдеСобакаЗарыта
 
4 - 02.07.20 - 16:01
(3) Мопед не мой так-то. Сам я всегда из модулей объектов делал. Подписка от предшественника досталась. Обнаружил забавное поведение и стало интересно что это и как победить.
   МимохожийОднако
 
5 - 02.07.20 - 16:59
(4) для победы см (3). Вопрос "Почему подпиской?" есть кому задать?
   rogachev
 
6 - 02.07.20 - 17:10
нигде в типовых подпиской движения в док не пишутся . в модуле объекта  . на крайний случай через общий модуль
   ptiz
 
7 - 02.07.20 - 17:11
(4) Точку останова в подписку и вперёд.
   ГдеСобакаЗарыта
 
8 - 02.07.20 - 18:06
Перенос в модуль объекта конечно же решил проблему, но сущность и механика ее остались неразгаданными до конца. Может кто и расскажет для будущих поколений в чем дело было.
   Волшебник
 
Модератор
9 - 02.07.20 - 18:09
(8) Скорее всего подписка срабатывает в параллельной транзакции и не видит результаты транзакции, которая добавляет движения.
   1nvertex
 
10 - 03.07.20 - 10:33
(9) Не так. Подписка срабатывает до завершения транзакции. См.п.2
   MyNick
 
11 - 03.07.20 - 10:41
(0) теперь я знаю как реализовать крестики нолики в 1С
   fisher
 
12 - 03.07.20 - 10:44
Какие значения свойств документа "Удаление движений" и "Запись движений при проведении"?
   fisher
 
13 - 03.07.20 - 10:45
Ага. На первый вопрос вижу ответ в (1). А "Запись движений при проведении"?
   fisher
 
14 - 03.07.20 - 10:54
Тут фишка в том, что платформа вызывает системную Движения.Записать() не до подписок, а после. И скорее всего в четных случаях она считает что набор записей регистра записывать не нужно (и поэтому не выполняет запись пустого набора после отработки всех подписок), а в нечетных - что нужно. Навскидку это может происходить, если "Запись движений при проведении" установлено в "Записывать модифицированные".
   fisher
 
15 - 03.07.20 - 10:58
А в подписке, вероятно, работа ведется не через коллекцию Движения, а через отдельный набор записей.

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