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