Имя: Пароль:
1C
1С v8
И снова 1С (Блокировка данных)
0 nikast
 
07.10.19
10:22
Все привет. Уже неоднократно задавал вопросы по блокировке данных. Стал читать оф. документацию и не получается исполнить, то что там написано.
Вот что я хочу сделать:
Есть процедура и в ней несколько методов:
Начало_Процедуры_1()
   Метод_1()
   Метод_2()
   Метод_3()
Конец_Процедуры_1()

Задача следующая: Сделать так, чтобы никто не смог выполнить процедуру_1 пока она выполняется кем-то.
Например в C# я бы сделал так
Создал объект, которым заблокировал бы потоки
private object _LOCK = new Object();

Начало_Процедуры_1()
Lock(_LOCK)
  {
   Метод_1()
   Метод_2()
   Метод_3()
  }
Конец_Процедуры_1()

При такой конструкции потоки не смогут зайти, пока предыдущий не закончит выполнение.

Вопрос, можно ли сделать, что-то подобное в рамках 1с.
1 Волшебник
 
07.10.19
10:23
Заведи предопределённый элемент справочника, который и блокируй
2 Cyberhawk
 
07.10.19
10:26
Даже через объектную блокировку получится, управляемая не нужна
3 Cyberhawk
 
07.10.19
10:27
ЗаблокироватьДанныеДляРедактирования
4 Cyberhawk
 
07.10.19
10:27
Ну и надеюсь не нужно говорить, что работать оно будет только если весь нежелательный код будет пытаться сделать то же самое
5 nikast
 
07.10.19
10:35
Принято.
Программист всегда исправляет последнюю ошибку.