Имя: Пароль:
1C
 
при отмене транзакции наборы записей в коллекции "Движения" документа очищаются
0 TormozIT
 
05.07.23
10:56
Подскажите, где в ИТС описано, что при отмене транзакции наборы записей в коллекции "Движения" документа очищаются. У набора записей того же регистра, созданного независимо, такого не происходит.
https://paste1c.ru/2ekq08ymgye6
        НачатьТранзакцию();
    НаборСтрок = Документ.ПолучитьОбъект().Движения[0];
    //НаборСтрок = РегистрыСведений.Затраты.СоздатьНаборЗаписей();
    НаборСтрок.Добавить();
    Сообщить("До=" + НаборСтрок.Количество());
    ОтменитьТранзакцию();
    Сообщить("После=" + НаборСтрок.Количество());
1 lodger
 
05.07.23
11:13
а если завершить транзакцию, то что в наборе останется лежать?
2 lodger
 
05.07.23
11:14
а если НаборЗаписей не просто с горы взять, а утановить регистратора и прочитать из базы, то после отмены он тоже протухнет?
3 НафНаф
 
05.07.23
11:18
(0) у меня не очистились
4 НафНаф
 
05.07.23
11:30
+(3) может от релиза зависит?
5 TormozIT
 
05.07.23
11:37
Приношу извинения. Немного наврал в коде примера.
Правильный пример такой
    НачатьТранзакцию();
    ф = Документ.ПолучитьОбъект();
    НаборСтрок = ф.Движения[0];
    //НаборСтрок = РегистрыСведений.Затраты.СоздатьНаборЗаписей();
    НаборСтрок.Добавить();
    //ф = Неопределено;
    Сообщить("До=" + НаборСтрок.Количество());
    ОтменитьТранзакцию();
    Сообщить("После=" + НаборСтрок.Количество());
Вот если в нем раскомментировать хотя бы одну строку то числа совпадают. А в исходном виде в конце получаем пустой набор.
6 TormozIT
 
05.07.23
11:39
(2) Очищаются все наборы записей (в памяти), если они принадлежат объекту ДокументОбъект на момент отмены транзакции. Если ДокументОбъект уничтожить перед отменой транзакции, то не очищаются.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан