Difference between revisions of "DB.Folder"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:43, 7 February 2021
FounderObject (Работа с папками справочников) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция возвращает или изменяет папку в которую входит элемент справочника. При перемещении объекта в другую папку, рекомендуется производить проверку цикличной вложенности папок, чтобы не получилась ситуация, когда текущий объект-папка вложена в папку, которая вложена в одну из папок внутри текущей. Проверка цикличности занимает некоторое время и дополнительно загружает сервер, однако, она необходима, чтобы иметь уверенность в корректности структуры папок справочника. При изменении папки текущего элемента, изменения не записываются в базу данных до момента вызова функции Save, объект получает признак измененный, если производится визуальное редактирование объекта, форма редактирования также получает признак были изменения.
Синтаксис
DB.Folder(<Новая папка объекта (DB)>,<Проверять цикличность вложенности папок (INT)>=1):<Текущая папка объекта (DB)>
Аргументы
<Новая папка объекта (DB)>
- Аргумент указывает на новую папку элемента, т.е. выполнение функции будет означать перемещение текущего объекта в указанную папку. Если аргумент опущен, функция возвратит текущую папку элемента, объект изменен не будет.<Проверять цикличность вложенности папок (INT)>
- Аргумент задает режим проверки цикличности вложения папок (по умолчанию режим активирован). В этом режиме при перемещении папки в какую-либо другую папку, система выполнит проверку, входит ли папка, в которую происходит перемещение в структуру подчиненности текущей папки (самый простой пример: попытка переместить текущую папку в ее же саму), если обнаружена подобная цикличность, создается исключение. Режим производит обращение к серверу, однако рекомендуется к использованию, чтобы не исключить получение некорректной структуры подчинения.
Возвращаемое значение
Возвращается объект БД, который является папкой текущего элемента справочника. Если объект не находится ни в какой папке, будет возвращен пустой объект БД текущего вида.
Примеры
aEl:=Ref.Номенклатура; aEl.Find("Code","000000001176"); Message("Элемент "+aEl+?(isEmpty(aEl.Folder()),"не находится ни в какой папке!","находится в папке "+aEl.Folder()+"!"));