Имя: Пароль:
1C
1С v8
Нумерация внутри транзакции
0 Антиквар
 
22.03.23
21:25
Всем привет!

Внутри транзакции выполняются определенные действия по созданию различных объектов.
У некоторых создаваемых объектов (справочников) есть реквизит, который должен быть уникальным.
При записи элементы такого справочника делается запрос на получение максимального номера этого реквизита, который увеличивается на "1" и пишется в реквизит нового элемента.
Но внутри транзакции элементы в базу не записаны, соответственно запрос возвращает для каждого нового элемента справочника один и тот же номер.
Какой тут может быть выход? Хранить последний номер в регистре и забирать его оттуда, а внутри транзакции увеличивать счетчик в этом регистре?
1 Волшебник
 
22.03.23
21:26
Подсказка: Транзакция видит свои данные
2 Антиквар
 
22.03.23
21:30
(1) но запрос внутри этой транзакции выполняется. Почему-то не видит
3 Волшебник
 
22.03.23
21:33
(2) Надо записывать
4 Антиквар
 
22.03.23
21:34
мне нужно "грязное" чтение
5 Антиквар
 
22.03.23
21:35
(3) объекты записываются внутри транзакции, транзакция фиксируется в самом конце
6 Антиквар
 
22.03.23
21:40
возможно понимаю...
Есть объекты (элементы справочника), которые создаются и записываются внутри транзакции, но кроме этого в этой транзакции есть создание и проведение определенного документа, в модуле проведения которого создаются эти же объекты (элементы справочника). И вот создание элементов справочника внутри проведения документа находится уже в другой транзакции, и поэтому не видит данные текущей транзакции, из которой это проведение было вызвано.
Может быть так?
7 Мультук
 
гуру
22.03.23
21:46
(6)

Может всё же стоит показать код?
Или сокращенный кусок кода (пример)
8 Волшебник
 
22.03.23
21:51
(6) Транзакция не видит другую транзакцию.
Основная теорема систематики: Новые системы плодят новые проблемы.