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