Внутри транзакции выполняются определенные действия по созданию различных объектов.
У некоторых создаваемых объектов (справочников) есть реквизит, который должен быть уникальным.
При записи элементы такого справочника делается запрос на получение максимального номера этого реквизита, который увеличивается на "1" и пишется в реквизит нового элемента.
Но внутри транзакции элементы в базу не записаны, соответственно запрос возвращает для каждого нового элемента справочника один и тот же номер.
Какой тут может быть выход? Хранить последний номер в регистре и забирать его оттуда, а внутри транзакции увеличивать счетчик в этом регистре?
возможно понимаю...
Есть объекты (элементы справочника), которые создаются и записываются внутри транзакции, но кроме этого в этой транзакции есть создание и проведение определенного документа, в модуле проведения которого создаются эти же объекты (элементы справочника). И вот создание элементов справочника внутри проведения документа находится уже в другой транзакции, и поэтому не видит данные текущей транзакции, из которой это проведение было вызвано.
Может быть так?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший