mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
Создание объекта из конструктора без записи
This commit is contained in:
parent
92245f47e8
commit
f296aef9e0
@ -131,7 +131,7 @@
|
||||
|
||||
// Создает новый объект и возвращает его или ссылку.
|
||||
//
|
||||
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество объектов.
|
||||
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов.
|
||||
// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор.
|
||||
//
|
||||
// Параметры:
|
||||
@ -156,6 +156,19 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создает и возвращяет новый объект (не записывая его).
|
||||
//
|
||||
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов.
|
||||
// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Созданный объект.
|
||||
Функция НовыйОбъект() Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
Возврат ЮТТестовыеДанныеВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства);
|
||||
|
||||
КонецФункции
|
||||
// Создает и проводит новый документ. Возвращает объект или или ссылку на него.
|
||||
//
|
||||
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создать множество объектов.
|
||||
|
@ -65,8 +65,43 @@
|
||||
|
||||
Менеджер = ЮТОбщий.Менеджер(Менеджер);
|
||||
|
||||
Если ПараметрыЗаписи = Неопределено Тогда
|
||||
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
|
||||
Иначе
|
||||
ПереданныеПараметрыЗаписи = ПараметрыЗаписи;
|
||||
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
|
||||
ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ПереданныеПараметрыЗаписи);
|
||||
КонецЕсли;
|
||||
|
||||
Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства);
|
||||
|
||||
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектМетаданных(ТипЗнч(Менеджер));
|
||||
|
||||
РежимЗаписи = ?(СтрСравнить(ОписаниеОбъектаМетаданных.ОписаниеТипа.Имя, "Документ") = 0, ПараметрыЗаписи.РежимЗаписи, Неопределено);
|
||||
КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи.ОбменДаннымиЗагрузка, РежимЗаписи);
|
||||
|
||||
Если ВернутьОбъект Тогда
|
||||
Возврат Объект;
|
||||
Иначе
|
||||
Возврат КлючЗаписи;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создает новый объект и заполняет его данными
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - Произвольный
|
||||
// Данные - Структура - Данные заполнения объекта
|
||||
// ДополнительныеСвойства - Структура - Дополнительные свойства объекта
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Созданный объект
|
||||
Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства = Неопределено) Экспорт
|
||||
|
||||
Менеджер = ЮТОбщий.Менеджер(Менеджер);
|
||||
|
||||
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектМетаданных(ТипЗнч(Менеджер));
|
||||
ЭтоСсылочный = ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный;
|
||||
|
||||
Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа);
|
||||
ЗаполнитьЗначенияСвойств(Объект, Данные);
|
||||
@ -89,28 +124,13 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыЗаписи = Неопределено Тогда
|
||||
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
|
||||
Иначе
|
||||
ПереданныеПараметрыЗаписи = ПараметрыЗаписи;
|
||||
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
|
||||
ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ПереданныеПараметрыЗаписи);
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных);
|
||||
|
||||
Если ЭтоСсылочный Тогда
|
||||
ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства);
|
||||
Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный И ДополнительныеСвойства <> Неопределено Тогда
|
||||
ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства);
|
||||
КонецЕсли;
|
||||
|
||||
РежимЗаписи = ?(СтрСравнить(ОписаниеОбъектаМетаданных.ОписаниеТипа.Имя, "Документ") = 0, ПараметрыЗаписи.РежимЗаписи, Неопределено);
|
||||
КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи.ОбменДаннымиЗагрузка, РежимЗаписи);
|
||||
|
||||
Если ВернутьОбъект Тогда
|
||||
Возврат Объект;
|
||||
Иначе
|
||||
Возврат КлючЗаписи;
|
||||
КонецЕсли;
|
||||
Возврат Объект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user