Skip to content

Commit

Permalink
Исключить передачу адреса временного хранилища между сеансами
Browse files Browse the repository at this point in the history
см: #1097
  • Loading branch information
BarinovIN authored and artbear committed Nov 24, 2024
1 parent 7d892fa commit 70dce65
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
25 changes: 19 additions & 6 deletions epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -632,11 +632,25 @@

КонецФункции

Функция КлючиХраненияНастроек()

Ключи = Новый Структура;
// Ключом объекта должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки
// может совпадать с именем обработки, встроенной в состав конфигурации
// Для разделения настроек между параллельными запусками учитываем номер сеанса.
// Настройки нужны только на время одного запуска для получения из разных контекстов.
КлючОбъекта = Метаданные().ПолноеИмя() + Формат(НомерСеансаИнформационнойБазы(), "ЧГ=0");
Ключи.Вставить("Объект", КлючОбъекта);
Ключи.Вставить("Настройка", "");

Возврат Ключи;

КонецФункции

Процедура ЗагрузитьНастройки() Экспорт
ЭтотОбъект.Настройки = ПолучитьПустыеНастройкиБраузераТестирования();
// Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки
// может совпадать с именем обработки, встроенной в состав конфигурации
СчитанныеНастройки = ХранилищеОбщихНастроек.Загрузить(ЭтотОбъект.Метаданные().ПолноеИмя());
Ключи = КлючиХраненияНастроек();
СчитанныеНастройки = ХранилищеОбщихНастроек.Загрузить(Ключи.Объект, Ключи.Настройка);
Если ТипЗнч(СчитанныеНастройки) = Тип("Структура") Тогда
Для каждого КлючЗначение Из СчитанныеНастройки Цикл
Если ЭтотОбъект.Настройки.Свойство(КлючЗначение.Ключ) И ТипЗнч(КлючЗначение.Значение) = ТипЗнч(ЭтотОбъект.Настройки[КлючЗначение.Ключ]) Тогда
Expand All @@ -647,10 +661,9 @@
КонецПроцедуры

Процедура СохранитьНастройки() Экспорт
Ключи = КлючиХраненияНастроек();
Попытка
// Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки
// может совпадать с именем обработки, встроенной в состав конфигурации
ХранилищеОбщихНастроек.Сохранить(ЭтотОбъект.Метаданные().ПолноеИмя(), , ЭтотОбъект.Настройки);
ХранилищеОбщихНастроек.Сохранить(Ключи.Объект, Ключи.Настройка, ЭтотОбъект.Настройки);
Исключение
// TODO: При пакетном запуске и тестировании в тонком клиенте возникает ошибка типа XDTO
// Могут возникнуть ошибки, пропускаем
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -402,16 +402,14 @@
&НаСервере
Процедура ПодготовитьНастройкиВоВременномХранилище()

НастройкиПродукта = ЭтотОбъектНаСервере().НовыеНастройкиПродукта();
ОбъектНаСервере = ЭтотОбъектНаСервере();
НастройкиПродукта = ОбъектНаСервере.НовыеНастройкиПродукта();

Объект.АдресВременногоХранилища = ПоместитьВоВременноеХранилище(НастройкиПродукта, УникальныйИдентификатор);

ВремНастройки = ХранилищеОбщихНастроек.Загрузить(ПолноеИмяОбъекта());
Если Не ЗначениеЗаполнено(ВремНастройки) Тогда
ВремНастройки = Новый Структура;
КонецЕсли;
ВремНастройки.Вставить("АдресВременногоХранилища", Объект.АдресВременногоХранилища);
ХранилищеОбщихНастроек.Сохранить(ПолноеИмяОбъекта(), , ВремНастройки);
ОбъектНаСервере.ЗагрузитьНастройки();
ОбъектНаСервере.Настройки.АдресВременногоХранилища = Объект.АдресВременногоХранилища;
ОбъектНаСервере.СохранитьНастройки();

КонецПроцедуры

Expand Down

0 comments on commit 70dce65

Please sign in to comment.