Skip to content

Commit 70dce65

Browse files
BarinovINartbear
authored andcommitted
Исключить передачу адреса временного хранилища между сеансами
см: #1097
1 parent 7d892fa commit 70dce65

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl

+19-6
Original file line numberDiff line numberDiff line change
@@ -632,11 +632,25 @@
632632

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

635+
Функция КлючиХраненияНастроек()
636+
637+
Ключи = Новый Структура;
638+
// Ключом объекта должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки
639+
// может совпадать с именем обработки, встроенной в состав конфигурации
640+
// Для разделения настроек между параллельными запусками учитываем номер сеанса.
641+
// Настройки нужны только на время одного запуска для получения из разных контекстов.
642+
КлючОбъекта = Метаданные().ПолноеИмя() + Формат(НомерСеансаИнформационнойБазы(), "ЧГ=0");
643+
Ключи.Вставить("Объект", КлючОбъекта);
644+
Ключи.Вставить("Настройка", "");
645+
646+
Возврат Ключи;
647+
648+
КонецФункции
649+
635650
Процедура ЗагрузитьНастройки() Экспорт
636651
ЭтотОбъект.Настройки = ПолучитьПустыеНастройкиБраузераТестирования();
637-
// Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки
638-
// может совпадать с именем обработки, встроенной в состав конфигурации
639-
СчитанныеНастройки = ХранилищеОбщихНастроек.Загрузить(ЭтотОбъект.Метаданные().ПолноеИмя());
652+
Ключи = КлючиХраненияНастроек();
653+
СчитанныеНастройки = ХранилищеОбщихНастроек.Загрузить(Ключи.Объект, Ключи.Настройка);
640654
Если ТипЗнч(СчитанныеНастройки) = Тип("Структура") Тогда
641655
Для каждого КлючЗначение Из СчитанныеНастройки Цикл
642656
Если ЭтотОбъект.Настройки.Свойство(КлючЗначение.Ключ) И ТипЗнч(КлючЗначение.Значение) = ТипЗнч(ЭтотОбъект.Настройки[КлючЗначение.Ключ]) Тогда
@@ -647,10 +661,9 @@
647661
КонецПроцедуры
648662

649663
Процедура СохранитьНастройки() Экспорт
664+
Ключи = КлючиХраненияНастроек();
650665
Попытка
651-
// Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки
652-
// может совпадать с именем обработки, встроенной в состав конфигурации
653-
ХранилищеОбщихНастроек.Сохранить(ЭтотОбъект.Метаданные().ПолноеИмя(), , ЭтотОбъект.Настройки);
666+
ХранилищеОбщихНастроек.Сохранить(Ключи.Объект, Ключи.Настройка, ЭтотОбъект.Настройки);
654667
Исключение
655668
// TODO: При пакетном запуске и тестировании в тонком клиенте возникает ошибка типа XDTO
656669
// Могут возникнуть ошибки, пропускаем

epf/xddTestRunner/xddTestRunner/Forms/УправляемаяФорма/Ext/Form/Module.bsl

+5-7
Original file line numberDiff line numberDiff line change
@@ -402,16 +402,14 @@
402402
&НаСервере
403403
Процедура ПодготовитьНастройкиВоВременномХранилище()
404404

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

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

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

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

0 commit comments

Comments
 (0)