1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-01-23 18:54:40 +02:00
Методы установки реквизитов ссылки
This commit is contained in:
alkoleft 2023-10-02 22:57:54 +03:00
parent c4be2768ad
commit 20c24b6653
4 changed files with 92 additions and 22 deletions

View File

@ -758,7 +758,7 @@
ПараметрыЗаписи = Новый Структура();
ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь);
ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура);
ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Запись);
ПараметрыЗаписи.Вставить("РежимЗаписи");
Возврат ПараметрыЗаписи;

View File

@ -580,6 +580,33 @@
#КонецЕсли
// Устанавливает значение реквизита ссылки
//
// Параметры:
// Ссылка - ЛюбаяСсылка
// ИмяРеквизита - Строка
// ЗначениеРеквизита - Произвольный
// ПараметрыЗаписи - см. ЮТФабрика.ПараметрыЗаписи
Процедура УстановитьЗначениеРеквизита(Ссылка, ИмяРеквизита, ЗначениеРеквизита, ПараметрыЗаписи = Неопределено) Экспорт
Значения = Новый Соответствие();
Значения.Вставить(ИмяРеквизита, ЗначениеРеквизита);
УстановитьЗначенияРеквизитов(Ссылка, Значения, ПараметрыЗаписи);
КонецПроцедуры
// Устанавливает значения реквизитов ссылки.
//
// Параметры:
// Ссылка - ЛюбаяСсылка - Ссылка
// ЗначенияРеквизитов - Структура, Соответствие из Произвольный - Значения реквизитов
// ПараметрыЗаписи - см. ЮТФабрика.ПараметрыЗаписи
Процедура УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи = Неопределено) Экспорт
ЮТТестовыеДанныеВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -21,21 +21,11 @@
Функция СоздатьЗапись(Знач Менеджер, Знач Данные, Знач ПараметрыЗаписи, Знач ВернутьОбъект) Экспорт
Менеджер = ЮТОбщий.Менеджер(Менеджер);
Если ПараметрыЗаписи = Неопределено Тогда
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
Иначе
ПереданныеПараметрыЗаписи = ПараметрыЗаписи;
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ПереданныеПараметрыЗаписи);
КонецЕсли;
ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи);
Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства);
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер);
РежимЗаписи = ?(СтрСравнить(ОписаниеОбъектаМетаданных.ОписаниеТипа.Имя, "Документ") = 0, ПараметрыЗаписи.РежимЗаписи, Неопределено);
КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи.ОбменДаннымиЗагрузка, РежимЗаписи);
КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи);
Если ВернутьОбъект Тогда
Возврат Объект;
@ -164,7 +154,7 @@
ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных);
Возврат ЗаписатьОбъект(Объект);
Возврат ЗаписатьОбъект(Объект, ПараметрыЗаписи());
КонецФункции
@ -207,6 +197,19 @@
КонецФункции
Процедура УстановитьЗначенияРеквизитов(Знач Ссылка, Знач ЗначенияРеквизитов, Знач ПараметрыЗаписи = Неопределено) Экспорт
Объект = Ссылка.ПолучитьОбъект();
ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи);
Для Каждого Элемент Из ЗначенияРеквизитов Цикл
Объект[Элемент.Ключ] = Элемент.Значение;
КонецЦикла;
ЗаписатьОбъект(Объект, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@ -255,21 +258,33 @@
КонецФункции
Функция ЗаписатьОбъект(Объект, ОбменДаннымиЗагрузка = Ложь, РежимЗаписи = Неопределено)
// Записать объект.
//
// Параметры:
// Объект - Произвольный - Объект
// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи
//
// Возвращаемое значение:
// ЛюбаяСсылка
Функция ЗаписатьОбъект(Объект, ПараметрыЗаписи)
Если ОбменДаннымиЗагрузка Тогда
Если ПараметрыЗаписи.ОбменДаннымиЗагрузка Тогда
Объект.ОбменДанными.Загрузка = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(ПараметрыЗаписи.ДополнительныеСвойства) Тогда
ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства);
КонецЕсли;
Попытка
Если РежимЗаписи <> Неопределено Тогда
Объект.Записать(РежимЗаписи);
Если ПараметрыЗаписи.РежимЗаписи <> Неопределено Тогда
Объект.Записать(ПараметрыЗаписи.РежимЗаписи);
Иначе
Объект.Записать();
КонецЕсли;
Если ОбменДаннымиЗагрузка Тогда
Если ПараметрыЗаписи.ОбменДаннымиЗагрузка Тогда
Объект.ОбменДанными.Загрузка = Ложь;
КонецЕсли;
@ -341,4 +356,16 @@
КонецФункции
Функция ПараметрыЗаписи(ВходящиеПараметрыЗаписи = Неопределено)
Если ВходящиеПараметрыЗаписи = Неопределено Тогда
Возврат ЮТОбщий.ПараметрыЗаписи();
Иначе
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ВходящиеПараметрыЗаписи);
Возврат ПараметрыЗаписи;
КонецЕсли;
КонецФункции
#КонецОбласти

View File

@ -32,6 +32,7 @@
.ДобавитьТест("ЗагрузитьИзМакета_Проверки")
.ДобавитьТест("СлучайныйИдентификатор")
.ДобавитьТест("СлучайноеЗначениеПеречисления")
.ДобавитьТест("УстановитьЗначениеРеквизита")
;
КонецПроцедуры
@ -324,11 +325,10 @@
Варианты = ЮТест.Варианты("Перечисление, Описание")
.Добавить("Перечисление.PushУведомления", "По имени")
.Добавить("Перечисления.PushУведомления", "По имени коллекции")
.Добавить("Перечисления.PushУведомления", "По имени коллекции");
#Если Сервер Тогда
.Добавить(Перечисления.PushУведомления, "Через менеджер")
Варианты.Добавить(Перечисления.PushУведомления, "Через менеджер");
#КонецЕсли
;
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
@ -340,4 +340,20 @@
КонецПроцедуры
Процедура УстановитьЗначениеРеквизита() Экспорт
Контрагент = ЮТест.Данные().СоздатьЭлемент("Справочники.Контрагенты");
ЮТест.ОжидаетЧТо(ЮТЗапросы.ЗначениеРеквизита(Контрагент, "Индекс"))
.НеЗаполнено();
Индекс = ЮТест.Данные().СлучайнаяСтрока();
ЮТест.Данные().УстановитьЗначениеРеквизита(Контрагент, "Индекс", Индекс);
ЮТест.ОжидаетЧто(ЮТЗапросы.ЗначениеРеквизита(Контрагент, "Индекс"))
.Заполнено()
.Равно(Индекс);
КонецПроцедуры
#КонецОбласти