DB.Folder

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

Функция возвращает или изменяет папку в которую входит элемент справочника. При перемещении объекта в другую папку, рекомендуется производить проверку цикличной вложенности папок, чтобы не получилась ситуация, когда текущий объект-папка вложена в папку, которая вложена в одну из папок внутри текущей. Проверка цикличности занимает некоторое время и дополнительно загружает сервер, однако, она необходима, чтобы иметь уверенность в корректности структуры папок справочника. При изменении папки текущего элемента, изменения не записываются в базу данных до момента вызова функции Save, объект получает признак измененный, если производится визуальное редактирование объекта, форма редактирования также получает признак были изменения.

Синтаксис

DB.Folder(<Новая папка объекта (DB)>,<Проверять цикличность вложенности папок (INT)>=1):<Текущая папка объекта (DB)>

Аргументы

  • <Новая папка объекта (DB)> - Аргумент указывает на новую папку элемента, т.е. выполнение функции будет означать перемещение текущего объекта в указанную папку. Если аргумент опущен, функция возвратит текущую папку элемента, объект изменен не будет.
  • <Проверять цикличность вложенности папок (INT)> - Аргумент задает режим проверки цикличности вложения папок (по умолчанию режим активирован). В этом режиме при перемещении папки в какую-либо другую папку, система выполнит проверку, входит ли папка, в которую происходит перемещение в структуру подчиненности текущей папки (самый простой пример: попытка переместить текущую папку в ее же саму), если обнаружена подобная цикличность, создается исключение. Режим производит обращение к серверу, однако рекомендуется к использованию, чтобы не исключить получение некорректной структуры подчинения.

Возвращаемое значение

Возвращается объект БД, который является папкой текущего элемента справочника. Если объект не находится ни в какой папке, будет возвращен пустой объект БД текущего вида.

Примеры

aEl:=Ref.Номенклатура;
aEl.Find("Code","000000001176");
Message("Элемент "+aEl+?(isEmpty(aEl.Folder()),"не находится ни в какой папке!","находится в папке "+aEl.Folder()+"!"));