Студия/OnMoveToFolder

From SunFlurry wiki
Jump to: navigation, search
  OnMoveToFolder (Визуальные события)
Применимость:Таблица значений
Тип события:Прерывающее
Статус разработки: Реализована

Событие, возникающее в момент интерактивного перемещения элемента в другую папку. Позволяет запретить или разрешить перемещение.

Аргументы

  • <Element (DB)> - Переменная задает перемещаемый элемент (или папку).
  • <Folder (DB)> - Переменная задает папку, в которую выполняется перемещение элемента.
  • <Result (INT)> - (возможен аргумент-переменная (ByRef)) Переменная результата может принимать значения:
    • 0 (по умолчанию) -- Разрешить выполнить операцию.
    • 1 -- Запретить выполнение операции.

Примеры

//Пример обработчика OnMoveToFolder
If IsEmpty(Гр) Then
  Folder:=GetNothing("Ref.Контрагенты");
EndIf;
If (Element.IsFolder())And(not Пользователь.Администратор) Then
  Box("Вы не имеете права переносить папки!",Q_STOP);
  Exit 1;
ElseIf Element.IsFolder() Then
  //Разрешить перенос администраторам
  Exit;
EndIf;
Гр:=Folder;
//Проверка запретов на папках
While Гр.Selected()<>0 Do
  If Гр.ТипАктива>0 Then
    If Гр.ТипАктива-1<>Эл.ТипАктива Then
      Box("В папке "+Гр+" ("+Гр.Code+") должны находиться только контрагенты вида """+Гр.ТипАктива+"""!",Q_STOP);
      Exit 1;
    EndIf;
    Break;
  EndIf;
  Гр:=Гр.Folder();
EndDo;
  
  
If (Эл.Folder().Selected()<>0)And(not Эл.IsFolder()) Then
  If Folder.Selected()=0 Then
    Box("Запрещено перемещать контрагентов в корневую папку!",Q_STOP);
    Exit 1;
  EndIf;
EndIf;