Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Управляемая блокировка не на всю транзакцию, а чуть раньше

Управляемая блокировка не на всю транзакцию, а чуть раньше
Я
   sdemon72
 
14.01.22 - 12:29
Скорее всего дурацкий вопрос, но вдруг. Есть условно-длинная транзакция создания некоего документа, внутри которой в цикле происходит обращение к регистру сведений, хранящему порядковые номера некоторых объектов, за следующим номером (если для такого объекта номера еще нет, то добавляется запись в регистр с максимальным номером по регистру +1).
И чтобы разные сеансы не получили один и тот же номер при одновременном обращении, перед чтением регистра я делаю исключительную блокировку на весь регистр (весь, т.к. мне надо получить макс.номер по всему регистру). И после получения нового номера и записи его в регистр, мне уже его держать заблокированным в общем-то не нужно (даже если транзакция будет отменена, пропуски номеров не страшно).
Есть какой-то способ снять блокировку регистра, не дожидаясь завершения транзакции?
   ИС-2
 
1 - 14.01.22 - 12:30
Конструкция для изменения ?

ВЫБРАТЬ
    ABCКлассификацияПокупателей.Период,
    ABCКлассификацияПокупателей.Регистратор,
    ABCКлассификацияПокупателей.НомерСтроки,
    ABCКлассификацияПокупателей.Активность,
    ABCКлассификацияПокупателей.Контрагент,
    ABCКлассификацияПокупателей.ABCКлассПокупателя
ИЗ
    РегистрСведений.ABCКлассификацияПокупателей КАК ABCКлассификацияПокупателей
ГДЕ
    ABCКлассификацияПокупателей.Контрагент = &Контрагент

ДЛЯ ИЗМЕНЕНИЯ
   ДенисЧ
 
2 - 14.01.22 - 12:33
Ну получи номер до транзакции...
   H A D G E H O G s
 
3 - 14.01.22 - 12:33
(0) ФоновоеЗадание с ожиданием завершения
   sdemon72
 
4 - 14.01.22 - 12:34
Режим блокировки управляемый, забыл сказать
   sdemon72
 
5 - 14.01.22 - 12:35
(3) Стесняюсь спросить - предлагаете внутри транзакции запустить фоновое задание и ждать его завершения?
   H A D G E H O G s
 
6 - 14.01.22 - 12:35
(5) Да. Чебынет, это быстро.
   sdemon72
 
7 - 14.01.22 - 12:39
(5) хм, смело... но я бы за такое дал канделябром по голове :))))
   sdemon72
 
8 - 14.01.22 - 12:39
(2) да, тоже вариант...
   sdemon72
 
9 - 14.01.22 - 12:40
Ну штатных механизмов именно снятия блокировки внутри транзакции не существует, как я понимаю?
   Fragster
 
10 - 14.01.22 - 12:41
(9) да
   sdemon72
 
11 - 14.01.22 - 12:42
Понял, всем спасибо, в т.ч. и за идеи
   2mugik
 
12 - 15.01.22 - 13:22
(0)А он у тебя тот же номер не возьмет? Который в незакрытой транзакции?
   2mugik
 
13 - 15.01.22 - 13:23
(0)т.е. он запишет в базу то что в не закрытой транзакции?
   pechkin
 
14 - 15.01.22 - 13:28
Разбей транзакцию на части: номер и все остальное
   pechkin
 
15 - 15.01.22 - 13:29
Те создал док, закрыл 1 транзакцию.
Во 2 заполнил и провел

Список тем форума
 
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.