DB.New

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

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

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

Синтаксис

DB.New(<Новая папка (INT)>=0,<Объект, для копирования реквизитов (DB)>,<Также копировать нумераторы (INT)>=0,<Объект-основание (DB)>)

Аргументы

  • <Новая папка (INT)> - (необязательный аргумент) Для элементов справочника, будет создана новая папка (1) или новый элемент (0, по умолчанию). Для документов этот аргумент не используется.
  • <Объект, для копирования реквизитов (DB)> - (необязательный аргумент) Параметр задает объект реквизиты и строчные части которого будут скопированы в текущий объект при создании. По умолчанию, новый объект создается с пустыми реквизитами и строчными частями.
  • <Также копировать нумераторы (INT)> - (необязательный аргумент) Задает режим копирования реквизитов из объекта, для копирования реквизитов, когда в список копируемых реквизитов включаются также нумераторы (1), либо не включаются нумераторы (0, по умолчанию). Включение нумераторов не рекомендуется, так как можно получить объект, который невозможно будет сохранить из-за нарушения уникальности значений реквизитов-нумераторов, имеющих проверку уникальности.
  • <Объект-основание (DB)> - (необязательный аргумент) Параметр задает объект-основание текущего объекта. Это произвольный объект, который будет доступен посредством функции FounderObject. В момент визуального открытия нового объекта для редактирования, подразумевается, что программа обработки события OnOpen или OnNew будет использовать эту функцию для заполнения реквизитов нового объекта, зависящих от объекта-основания.

Примеры

//Пример создает новый несохраненный объект аЭл, заполняет его реквизиты и сохраняет его в базе данных
аЭл:=Ref.Улицы;
//Создаем папку или элемент, в зависимости от флага флПапка
аЭл.New(флПапка);
//аГород -- объект-владелец текущего
аЭл.Parent(аГород);
//аПапка -- папка, в которую помещается новая папка
If аПапка<>0 Then
  аЭл.Folder(аПапка);
EndIf;
    
//Заполняем реквизиты
аЭл.Name:=аНаменование;
аЭл.ВнешнийКод:=аВнешнийКод;

//Сохраняем новый объект
аЭл.Save();