DB.DeletePhysically

From SunFlurry wiki
Revision as of 12:10, 8 June 2023 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  DeletePhysically (Удаление объектов из базы данных)
Объект:Объект базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер и БД
Исключения:Невозможно превратить в число
Визуальность:Нет

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

Синтаксис

DB.DeletePhysically(<Режим удаления подчиненных элементов (INT)>,<Режим удаления папок (INT)>):<Результат (INT)>

Аргументы

  • <Режим удаления подчиненных элементов (INT)> - (необязательный аргумент) Задает режим удаления элементов справочников, подчиненных данному. По умолчанию этот аргумент равен 1 (удалять подчиненные элементы). Если подчиненные элементы не будут удалены, они не будут подчинены никакому другому элементу и могут стать недоступными для визуального редактирования.
  • <Режим удаления папок (INT)> - (необязательный аргумент) Для папок справочников, задает режим удаления подпапок и элементов справочников, находящихся в данной папке справочника. По умолчанию этот аргумент равен 0 (не удалять подпапки и элементы внутри текущей папки). Если подпапки и элементы внутри удаляемой папки не будут удалены, они будут перемещены внутрь папки, в которой находится удаляемая.

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

Возвращается 1, если удаление прошло успешно, иначе возвращает 0 (были обнаружены блокировки удаляемых объектов и пр.).

Примеры

//Пример производит удаление элементов из списка, проверяя, не были ли они уже удалены ранее
Уд:=0;
For i:=1 To СпЭлУд.Size() Do
  б:=СпЭлУд.Get(i).Copy();
  If б.Loadable() Then
    б.DeletePhysically();
    Уд:=Уд+1;
    If Уд%10=0 Then
      Form.StatusText("Удалено элементов: "+Уд);
    EndIf;
  EndIf;
EndDo;
Message("Удалены элементы: "+Str(Уд),"I");