UnlockStorage

From SunFlurry wiki
Jump to: navigation, search
  UnlockStorage (Блокировка накопителей)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер
Исключения:Невозможно превратить в строку, неверный накопитель, режим транзакции
Визуальность:Нет

Функция производит разблокировку указанного накопителя, при его блокировке функцией LockStorage. Функция может использоваться только вне режима транзакции, так как при окончании транзакции, все заблокированные накопители автоматически будут разблокированы системой. Если функция LockStorage использовалась до начала транзакции, функция UnlockStorage может отменить ее действие, если ошибка возникла при проверке, выполняемой до начала транзакции. Если транзакция уже начата, нет необходимости в использовании UnlockStorage, так как она будет вызвана автоматически. При попытке вызвать функцию внутри транзакции, она будет вызывать исключение. См. также описание LockStorage.

Синтаксис

UnlockStorage(<Наименование накопителя (STRING)>)

Аргументы

  • <Наименование накопителя (STRING)> - Наименование накопителя, который необходимо разблокировать

Примеры

//Фрагмент иллюстрирует описанную выше последовательность действий по записи в накопитель
//аДок -- текущий документ, в накопитель которого необходимо выполнить запись
LockStorage("Остатки");
ФлБлокировка:=1;
ФлТранзакция:=0;
Try
  флПроверкаУдачна:=1;
  //Далее следуют проверки, изеняющие флПроверкаУдачна
  ...
  If not флПроверкаУдачна Then
    Exit;
  EndIf;

  aTab:=аДок.InitStorageTab("Остатки");
  //Заполнение таблицы aTab
  ...

  //Сохранение изменений
  BeginTransaction();
  ФлТранзакция:=1;
  аДок.SaveStorage("Остатки",aTab,аДок.DocDate);

  //Фиксирование транзакции
  ФлТранзакция:=0;
  CommitTransaction();
  ФлБлокировка:=0;

Finally
  If ФлТранзакция Then
    RollbackTransaction();
  ElseIf ФлБлокировка Then
    UnlockStorage("Остатки");
  EndIf;
EndTry