DB.MassMark

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

Функция множественного изменения пометок (как пометок удаления, так и пометок обработки) объектов, заданных в выборке с помощью стандратных фильтров. Функция не проверяет наличие блокировки на объектах до выполнения изменения! Внимание: в реальной работе необходимо либо заблокировать изменяемые объекты до вызова функции, либо использовать функцию LockDBPath, иначе измененный таким образом флаг может быть утерян, если какой-либо объект открыт в данный момент на редактирование пользователем (или программно) и будет записан.

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

Синтаксис

DB.MassMark(<Пометка удаления или обработки (INT)>,<Стандарные фильтры>...)

Аргументы

  • <Пометка удаления или обработки (INT)> - Задает режим функции:
    • 0 -- снять пометку удаления с объектов. Обработанные документы не будут изменены.
    • 1 -- установить пометку удаления на объектах. Обработанные документы не будут изменены.
    • 2-200 -- изменить пометку обработки на документе. Необработанные документы и элементы справочников не будут изменены.
  • <Стандартные фильтры> - (необязательный аргумент) Стандартные фильтры позиционирования описаны в статье Стандартные фильтры.

Примеры

//Пример производит удаление всех элементов справочника Номенклатура, родительская папка которых имеет реквизит Code равный "000000008636"
aEl:=Ref.Номенклатура;
aEl.MassMark(1,"~(@Folder.Code=""000000008636"")");