|
Нумерация внутри транзакции
| ☑ |
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) Транзакция не видит другую транзакцию.
|
|