diff --git "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf"
index 77113c21..3516fd98 100644
Binary files "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" and "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" differ
diff --git "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf" "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf"
index 256bd5a0..2674e454 100644
Binary files "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf" and "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf" differ
diff --git "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf" "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf"
index ee477e69..3a70db7c 100644
Binary files "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf" and "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf" differ
diff --git "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf"
index 885b0ab2..e9aef5b4 100644
Binary files "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" and "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" differ
diff --git "a/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.epf" "b/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.epf"
index 8b7a2867..af003c67 100644
Binary files "a/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.epf" and "b/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262.epf" differ
diff --git "a/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL.epf" "b/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL.epf"
index 147c0904..cd493d3f 100644
Binary files "a/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL.epf" and "b/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL.epf" differ
diff --git "a/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265.epf" "b/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265.epf"
index b7158fba..2518ec04 100644
Binary files "a/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265.epf" and "b/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265.epf" differ
diff --git "a/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262.epf" "b/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262.epf"
index 5b75cf45..a1a44d0a 100644
Binary files "a/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262.epf" and "b/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262.epf" differ
diff --git "a/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83.epf" "b/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83.epf"
new file mode 100644
index 00000000..69823945
Binary files /dev/null and "b/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83.epf" differ
diff --git "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf"
index e6840eac..43d0ece2 100644
Binary files "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" and "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" differ
diff --git "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf"
index 20ebf29e..17614f4a 100644
Binary files "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" and "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" differ
diff --git "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf" "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf"
index 95427155..a4562f31 100644
Binary files "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf" and "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf" differ
diff --git "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf"
index 8a6bf87f..b44d8504 100644
Binary files "a/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" and "b/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260.epf" differ
diff --git "a/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf" "b/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf"
new file mode 100644
index 00000000..01ea19ac
Binary files /dev/null and "b/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.epf" differ
diff --git a/Tests/TestConfig.cf b/Tests/TestConfig.cf
index bda15aee..a165375f 100644
Binary files a/Tests/TestConfig.cf and b/Tests/TestConfig.cf differ
diff --git "a/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164.epf" "b/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164.epf"
index f812bf23..8db64ca7 100644
Binary files "a/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164.epf" and "b/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164.epf" differ
diff --git a/Utils/UILogToScript.epf b/Utils/UILogToScript.epf
new file mode 100644
index 00000000..153ff8d0
Binary files /dev/null and b/Utils/UILogToScript.epf differ
diff --git a/Utils/xddTestsConvertIntoRebornFormat.epf b/Utils/xddTestsConvertIntoRebornFormat.epf
index 58fcb888..d5f99f96 100644
Binary files a/Utils/xddTestsConvertIntoRebornFormat.epf and b/Utils/xddTestsConvertIntoRebornFormat.epf differ
diff --git "a/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..28e14445
--- /dev/null
+++ "b/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,366 @@
+&НаКлиенте
+Перем СтатусыРезультатаТестирования;
+
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат Объект().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+
+// { функции утверждения- проверки значений.
+
+&НаКлиенте
+Процедура Проверить(_Истина, ДопСообщениеОшибки = "") Экспорт
+ Если Не _Истина Тогда
+ СообщениеОшибки = "Переданный параметр ("+Формат(_Истина, "БЛ=ложь; БИ=истина")+") не является Истиной, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьИстину(_Истина, ДопСообщениеОшибки = "") Экспорт
+ Проверить(_Истина, ДопСообщениеОшибки);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьЛожь(_Ложь, ДопСообщениеОшибки = "") Экспорт
+ Если _Ложь Тогда
+ СообщениеОшибки = "Переданный параметр ("+Формат(_Ложь, "БЛ=ложь; БИ=истина")+") не является Ложью, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьДату(_Дата, _Период, ДопСообщениеОшибки = "") Экспорт
+ Если _Дата < _Период.ДатаНачала или _Дата > _Период.ДатаОкончания Тогда
+ представление = ПредставлениеПериода(_Период.ДатаНачала, _Период.ДатаОкончания, "ФП = Истина");
+ СообщениеОшибки = "Переданный параметр ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не входит в период "+представление+", а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьРавенствоДатСТочностью2Секунды(_Дата, _Дата2, ДопСообщениеОшибки = "") Экспорт
+ Если _Дата < _Дата2-2 или _Дата > _Дата2+2 Тогда
+ СообщениеОшибки = "Переданная дата ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не равна дате ("+Формат(_Дата2, "ДФ='dd.MM.yyyy HH:mm:ss'")+") с точностью до 2-х секунд, а хотели, чтобы они равнялись." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт
+ Если _1 <> _2 Тогда
+ СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьНеРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт
+ Если _1 = _2 Тогда
+ СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") равны, а хотели, чтобы были не равны." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьБольше(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт
+ Если _Больше <= _Меньше Тогда
+ СообщениеОшибки = "Первый параметр ("+_Больше+") меньше или равен второму ("+_Меньше+") а хотели, чтобы был больше." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьБольшеИлиРавно(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт
+ Если _Больше < _Меньше Тогда
+ СообщениеОшибки = "Первый параметр ("+_Больше+") меньше второго ("+_Меньше+") а хотели, чтобы был больше или равен." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьМеньше(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт
+ Если проверяемоеЗначение1 >= проверяемоеЗначение2 Тогда
+ СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше или равно, чем <"+проверяемоеЗначение2+">, а ожидалось меньше"+
+ ФорматДСО(СообщениеОбОшибке);
+ ВызватьОшибкуПроверки(СообщениеОшибки)
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьМеньшеИлиРавно(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт
+ Если проверяемоеЗначение1 > проверяемоеЗначение2 Тогда
+ СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше, чем <"+проверяемоеЗначение2+">, а ожидалось меньше или равно"+
+ ФорматДСО(СообщениеОбОшибке);
+ ВызватьОшибкуПроверки(СообщениеОшибки)
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт
+ Перем Параметры;
+
+ Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда
+ ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки;
+ Иначе
+ Параметры = ПараметрыИлиДопСообщениеОшибки;
+ КонецЕсли;
+ Попытка
+ Выполнить(СтрокаАлгоритм);
+ Исключение
+ ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ СообщениеОшибки = "Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецПопытки;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьМетодВыполнился(Объект, Знач ИмяМетода, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт
+ Перем Параметры;
+
+ Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда
+ ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки;
+ Иначе
+ Параметры = ПараметрыИлиДопСообщениеОшибки;
+ Если Параметры <> Неопределено Тогда
+ ТипПараметра = ТипЗнч(Параметры);
+ Если ТипПараметра <> Тип("Массив") Тогда
+ ВызватьИсключение ("Ожидали, что вторым параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">");
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
+ ПараметрыСтрока = ПараметрыСтрокой(Параметры);
+
+ СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")";
+
+ Попытка
+ Выполнить(СтрокаВыполнения);
+ Исключение
+ ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ СообщениеОшибки = "Хотели, чтобы код """+СтрокаВыполнения+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецПопытки;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПараметрыСтрокой(Параметры)
+ ПараметрыСтрока = "";
+ Если ЗначениеЗаполнено(Параметры) Тогда
+ Для Индекс = 0 По Параметры.ВГраница() Цикл
+ ПараметрыСтрока = ПараметрыСтрока + ", Параметры[" + Формат(Индекс, "ЧН=0; ЧГ=0") + "]";
+ КонецЦикла;
+ КонецЕсли;
+ Возврат Сред(ПараметрыСтрока, 3);
+КонецФункции
+
+&НаКлиенте
+Процедура ПроверитьНеВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт
+ Перем Параметры, ОжидаемоеОписаниеОшибки;
+ Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда
+ ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки;
+ ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки;
+ Иначе
+ Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки;
+ ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки;
+ КонецЕсли;
+ Попытка
+ Выполнить(СтрокаАлгоритм);
+ Исключение
+ ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда
+ ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки));
+ КонецЕсли;
+ Возврат;
+ КонецПопытки;
+
+ ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки));
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьМетодНеВыполнился(Объект, ИмяМетода, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт
+ Перем Параметры, ОжидаемоеОписаниеОшибки;
+
+ Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда
+ ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки;
+ ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки;
+ Иначе
+ Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки;
+ Если Параметры <> Неопределено Тогда
+ ТипПараметра = ТипЗнч(Параметры);
+ Если ТипПараметра <> Тип("Массив") Тогда
+ ВызватьИсключение ("Ожидали, что третьим параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">");
+ КонецЕсли;
+ КонецЕсли;
+ ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки;
+ КонецЕсли;
+
+ ПараметрыСтрока = ПараметрыСтрокой(Параметры);
+
+ СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")";
+
+ Попытка
+ Выполнить(СтрокаВыполнения);
+ Исключение
+ ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда
+ ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки));
+ КонецЕсли;
+ Возврат;
+ КонецПопытки;
+
+ ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки));
+
+КонецПроцедуры
+
+// проверка идет через ЗначениеЗаполнено, но мутабельные значение всегда считаем заполненными
+&НаКлиенте
+Процедура ПроверитьЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт
+ Попытка
+ фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение);
+ Исключение
+ Возврат;
+ КонецПопытки;
+ Если НЕ фЗаполнено Тогда
+ ВызватьОшибкуПроверки("Значение ("+ПроверяемоеЗначение+") не заполнено, а ожидалась заполненность" + ФорматДСО(ДопСообщениеОшибки));
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт
+ СообщениеОшибки = "Значение ("+ПроверяемоеЗначение+") заполнено, а ожидалась незаполненность" + ФорматДСО(ДопСообщениеОшибки);
+ Попытка
+ фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение);
+ Исключение
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецПопытки;
+ Если фЗаполнено Тогда
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьТип(значение, ТипИлиИмяТипа, ДопСообщениеОшибки = "") Экспорт
+ Если ТипЗнч(ТипИлиИмяТипа) = Тип("Строка") Тогда
+ искомыйТип = Тип(ТипИлиИмяТипа);
+ ИначеЕсли ТипЗнч(ТипИлиИмяТипа) = Тип("Тип") Тогда
+ искомыйТип = ТипИлиИмяТипа;
+ Иначе
+ ВызватьИсключение ("ПроверитьТип: Тип значения параметра ТипИлиИмяТипа должен быть <Тип> или <Строка>, а получили <"+ ТипЗнч(ТипИлиИмяТипа) + ">" + ФорматДСО(ДопСообщениеОшибки));
+ КонецЕсли;
+ Если ТипЗнч(значение) <> искомыйТип Тогда
+ ВызватьОшибкуПроверки("Типом значения <"+значение+"> является <"+ТипЗнч(значение)+">, а ожидался тип <"+ТипИлиИмяТипа+">."+ФорматДСО(ДопСообщениеОшибки));
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьВхождение(строка, подстрокаПоиска, ДопСообщениеОшибки = "") Экспорт
+ Если Найти(строка, подстрокаПоиска) = 0 Тогда
+ ПредставлениеСтроки = "<"+строка+">";
+ Если СтрДлина(строка) > 20 Тогда
+ ПредставлениеСтроки = ПредставлениеСтроки + Символы.ПС;
+ КонецЕсли;
+ ПредставлениеПодСтроки = "<"+подстрокаПоиска+">";
+ Если СтрДлина(подстрокаПоиска) > 20 Тогда
+ ПредставлениеПодСтроки = ПредставлениеПодСтроки + Символы.ПС;
+ КонецЕсли;
+ СообщениеОшибки = "Искали в "+ПредставлениеСтроки+" подстроку "+ПредставлениеПодСтроки+", но не нашли." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+//Коллекция - Массив, Структура, Соответствие, ФиксированныйМассив, ФиксированнаяСтруктура, ФиксированноеСоответствие, СписокЗначений
+&НаКлиенте
+Процедура ПроверитьВхождениеВКоллекцию(Элемент, Коллекция, ДопСообщениеОшибки = "") Экспорт
+ Нашли = Неопределено;
+ ТипКоллекции = ТипЗнч(Коллекция);
+ Если ТипКоллекции = Тип("Массив") или ТипКоллекции = Тип("ФиксированныйМассив") Тогда
+ Нашли = Коллекция.Найти(Элемент) <> Неопределено;
+ ИначеЕсли ТипКоллекции = Тип("Структура") или ТипКоллекции = Тип("Соответствие")
+ или ТипКоллекции = Тип("ФиксированнаяСтруктура") или ТипКоллекции = Тип("ФиксированноеСоответствие") Тогда
+ Для каждого КлючЗначение Из Коллекция Цикл
+ Нашли = КлючЗначение.Значение = Элемент;
+ Если Нашли Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ ИначеЕсли ТипКоллекции = Тип("СписокЗначений") Тогда
+ Нашли = Коллекция.НайтиПоЗначению(Элемент) <> Неопределено;
+ КонецЕсли;
+ Если Нашли = Неопределено Тогда
+ СообщениеОшибки = "Утверждение ""ПроверитьВхождениеВКоллекцию"" не умеет работать с типом коллекции <"+ТипКоллекции+">." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьИсключение СообщениеОшибки;
+ КонецЕсли;
+ Если Не Нашли Тогда
+ СообщениеОшибки = "Не нашли элемент <"+Элемент+"> в коллекции, а хотели, чтобы он был в коллекции." + ФорматДСО(ДопСообщениеОшибки);
+ ВызватьОшибкуПроверки(СообщениеОшибки);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки = "") Экспорт
+ ПроверитьВалидностьЗапросаСКДНаСервере(ТекстЗапроса, ДопСообщениеОшибки);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт
+ ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки);
+КонецПроцедуры
+
+&НаСервере
+Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт
+ Объект().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ВызватьОшибкуПроверки(СообщениеОшибки)
+
+ Префикс = "[" + СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
+ ВызватьИсключение Префикс + " " + СообщениеОшибки;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПропуститьТест(Знач Сообщение = "") Экспорт
+
+ Префикс = "[" + СтатусыРезультатаТестирования.ТестПропущен + "]";
+ Если ПустаяСтрока(Сообщение) Тогда
+ Сообщение = НСтр("ru = 'Тест пропущен'");
+ КонецЕсли;
+ ВызватьИсключение Префикс + " " + Сообщение;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПроверитьВалидностьЗапросаСКДНаСервере(ТекстЗапроса, ДопСообщениеОшибки = "")
+ Объект().ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки);
+КонецПроцедуры
+// }
+
+&НаКлиенте
+Функция ФорматДСО(ДопСообщениеОшибки)
+ Если ДопСообщениеОшибки = "" Тогда
+ Возврат "";
+ КонецЕсли;
+
+ Возврат Символы.ПС + ДопСообщениеОшибки;
+КонецФункции
+
+&НаСервере
+Функция Объект()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+СтатусыРезультатаТестирования = Новый Структура;
+СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed");
+СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken");
+СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending");
+СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования);
diff --git "a/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index cadd69af..00000000
--- "a/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-&НаКлиенте
Перем СтатусыРезультатаТестирования;
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат Объект().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// { функции утверждения- проверки значений.
&НаКлиенте
Процедура Проверить(_Истина, ДопСообщениеОшибки = "") Экспорт
Если Не _Истина Тогда
СообщениеОшибки = "Переданный параметр ("+Формат(_Истина, "БЛ=ложь; БИ=истина")+") не является Истиной, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьИстину(_Истина, ДопСообщениеОшибки = "") Экспорт
Проверить(_Истина, ДопСообщениеОшибки);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьЛожь(_Ложь, ДопСообщениеОшибки = "") Экспорт
Если _Ложь Тогда
СообщениеОшибки = "Переданный параметр ("+Формат(_Ложь, "БЛ=ложь; БИ=истина")+") не является Ложью, а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьДату(_Дата, _Период, ДопСообщениеОшибки = "") Экспорт
Если _Дата < _Период.ДатаНачала или _Дата > _Период.ДатаОкончания Тогда
представление = ПредставлениеПериода(_Период.ДатаНачала, _Период.ДатаОкончания, "ФП = Истина");
СообщениеОшибки = "Переданный параметр ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не входит в период "+представление+", а хотели, чтобы являлся." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьРавенствоДатСТочностью2Секунды(_Дата, _Дата2, ДопСообщениеОшибки = "") Экспорт
Если _Дата < _Дата2-2 или _Дата > _Дата2+2 Тогда
СообщениеОшибки = "Переданная дата ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не равна дате ("+Формат(_Дата2, "ДФ='dd.MM.yyyy HH:mm:ss'")+") с точностью до 2-х секунд, а хотели, чтобы они равнялись." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт
Если _1 <> _2 Тогда
СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьНеРавенство(_1, _2, ДопСообщениеОшибки = "") Экспорт
Если _1 = _2 Тогда
СообщениеОшибки = "Сравниваемые значения ("+_1+"; "+_2+") равны, а хотели, чтобы были не равны." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьБольше(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт
Если _Больше <= _Меньше Тогда
СообщениеОшибки = "Первый параметр ("+_Больше+") меньше или равен второму ("+_Меньше+") а хотели, чтобы был больше." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьБольшеИлиРавно(_Больше, _Меньше, ДопСообщениеОшибки = "") Экспорт
Если _Больше < _Меньше Тогда
СообщениеОшибки = "Первый параметр ("+_Больше+") меньше второго ("+_Меньше+") а хотели, чтобы был больше или равен." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьМеньше(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт
Если проверяемоеЗначение1 >= проверяемоеЗначение2 Тогда
СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше или равно, чем <"+проверяемоеЗначение2+">, а ожидалось меньше"+
ФорматДСО(СообщениеОбОшибке);
ВызватьОшибкуПроверки(СообщениеОшибки)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьМеньшеИлиРавно(проверяемоеЗначение1, проверяемоеЗначение2, СообщениеОбОшибке = "") Экспорт
Если проверяемоеЗначение1 > проверяемоеЗначение2 Тогда
СообщениеОшибки = "Значение <"+проверяемоеЗначение1+"> больше, чем <"+проверяемоеЗначение2+">, а ожидалось меньше или равно"+
ФорматДСО(СообщениеОбОшибке);
ВызватьОшибкуПроверки(СообщениеОшибки)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт
Перем Параметры;
Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда
ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки;
Иначе
Параметры = ПараметрыИлиДопСообщениеОшибки;
КонецЕсли;
Попытка
Выполнить(СтрокаАлгоритм);
Исключение
ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
СообщениеОшибки = "Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьМетодВыполнился(Объект, Знач ИмяМетода, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт
Перем Параметры;
Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда
ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки;
Иначе
Параметры = ПараметрыИлиДопСообщениеОшибки;
Если Параметры <> Неопределено Тогда
ТипПараметра = ТипЗнч(Параметры);
Если ТипПараметра <> Тип("Массив") Тогда
ВызватьИсключение ("Ожидали, что вторым параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">");
КонецЕсли;
КонецЕсли;
КонецЕсли;
ПараметрыСтрока = ПараметрыСтрокой(Параметры);
СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")";
Попытка
Выполнить(СтрокаВыполнения);
Исключение
ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
СообщениеОшибки = "Хотели, чтобы код """+СтрокаВыполнения+""" выполнился, а он упал с ошибкой """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Функция ПараметрыСтрокой(Параметры)
ПараметрыСтрока = "";
Если ЗначениеЗаполнено(Параметры) Тогда
Для Индекс = 0 По Параметры.ВГраница() Цикл
ПараметрыСтрока = ПараметрыСтрока + ", Параметры[" + Формат(Индекс, "ЧН=0; ЧГ=0") + "]";
КонецЦикла;
КонецЕсли;
Возврат Сред(ПараметрыСтрока, 3);
КонецФункции
&НаКлиенте
Процедура ПроверитьНеВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт
Перем Параметры, ОжидаемоеОписаниеОшибки;
Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда
ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки;
ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки;
Иначе
Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки;
ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки;
КонецЕсли;
Попытка
Выполнить(СтрокаАлгоритм);
Исключение
ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда
ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки));
КонецЕсли;
Возврат;
КонецПопытки;
ВызватьОшибкуПроверки("Хотели, чтобы алгоритм """+СтрокаАлгоритм+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки));
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьМетодНеВыполнился(Объект, ИмяМетода, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт
Перем Параметры, ОжидаемоеОписаниеОшибки;
Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда
ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки;
ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки;
Иначе
Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки;
Если Параметры <> Неопределено Тогда
ТипПараметра = ТипЗнч(Параметры);
Если ТипПараметра <> Тип("Массив") Тогда
ВызватьИсключение ("Ожидали, что третьим параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">");
КонецЕсли;
КонецЕсли;
ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки;
КонецЕсли;
ПараметрыСтрока = ПараметрыСтрокой(Параметры);
СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")";
Попытка
Выполнить(СтрокаВыполнения);
Исключение
ПолученноеОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Если Найти(ПолученноеОписаниеОшибки, ОжидаемоеОписаниеОшибки) = 0 Тогда
ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал с сообщением об ошибке """+ОжидаемоеОписаниеОшибки+""", а он упал с сообщением """+ПолученноеОписаниеОшибки+"""." + ФорматДСО(ДопСообщениеОшибки));
КонецЕсли;
Возврат;
КонецПопытки;
ВызватьОшибкуПроверки("Хотели, чтобы код """+СтрокаВыполнения+""" упал, а он выполнился" + ФорматДСО(ДопСообщениеОшибки));
КонецПроцедуры
// проверка идет через ЗначениеЗаполнено, но мутабельные значение всегда считаем заполненными
&НаКлиенте
Процедура ПроверитьЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт
Попытка
фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение);
Исключение
Возврат;
КонецПопытки;
Если НЕ фЗаполнено Тогда
ВызватьОшибкуПроверки("Значение ("+ПроверяемоеЗначение+") не заполнено, а ожидалась заполненность" + ФорматДСО(ДопСообщениеОшибки));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт
СообщениеОшибки = "Значение ("+ПроверяемоеЗначение+") заполнено, а ожидалась незаполненность" + ФорматДСО(ДопСообщениеОшибки);
Попытка
фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение);
Исключение
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецПопытки;
Если фЗаполнено Тогда
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьТип(значение, ТипИлиИмяТипа, ДопСообщениеОшибки = "") Экспорт
Если ТипЗнч(ТипИлиИмяТипа) = Тип("Строка") Тогда
искомыйТип = Тип(ТипИлиИмяТипа);
ИначеЕсли ТипЗнч(ТипИлиИмяТипа) = Тип("Тип") Тогда
искомыйТип = ТипИлиИмяТипа;
Иначе
ВызватьИсключение ("ПроверитьТип: Тип значения параметра ТипИлиИмяТипа должен быть <Тип> или <Строка>, а получили <"+ ТипЗнч(ТипИлиИмяТипа) + ">" + ФорматДСО(ДопСообщениеОшибки));
КонецЕсли;
Если ТипЗнч(значение) <> искомыйТип Тогда
ВызватьОшибкуПроверки("Типом значения <"+значение+"> является <"+ТипЗнч(значение)+">, а ожидался тип <"+ТипИлиИмяТипа+">."+ФорматДСО(ДопСообщениеОшибки));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВхождение(строка, подстрокаПоиска, ДопСообщениеОшибки = "") Экспорт
Если Найти(строка, подстрокаПоиска) = 0 Тогда
ПредставлениеСтроки = "<"+строка+">";
Если СтрДлина(строка) > 20 Тогда
ПредставлениеСтроки = ПредставлениеСтроки + Символы.ПС;
КонецЕсли;
ПредставлениеПодСтроки = "<"+подстрокаПоиска+">";
Если СтрДлина(подстрокаПоиска) > 20 Тогда
ПредставлениеПодСтроки = ПредставлениеПодСтроки + Символы.ПС;
КонецЕсли;
СообщениеОшибки = "Искали в "+ПредставлениеСтроки+" подстроку "+ПредставлениеПодСтроки+", но не нашли." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
//Коллекция - Массив, Структура, Соответствие, ФиксированныйМассив, ФиксированнаяСтруктура, ФиксированноеСоответствие, СписокЗначений
&НаКлиенте
Процедура ПроверитьВхождениеВКоллекцию(Элемент, Коллекция, ДопСообщениеОшибки = "") Экспорт
Нашли = Неопределено;
ТипКоллекции = ТипЗнч(Коллекция);
Если ТипКоллекции = Тип("Массив") или ТипКоллекции = Тип("ФиксированныйМассив") Тогда
Нашли = Коллекция.Найти(Элемент) <> Неопределено;
ИначеЕсли ТипКоллекции = Тип("Структура") или ТипКоллекции = Тип("Соответствие")
или ТипКоллекции = Тип("ФиксированнаяСтруктура") или ТипКоллекции = Тип("ФиксированноеСоответствие") Тогда
Для каждого КлючЗначение Из Коллекция Цикл
Нашли = КлючЗначение.Значение = Элемент;
Если Нашли Тогда
Прервать;
КонецЕсли;
КонецЦикла;
ИначеЕсли ТипКоллекции = Тип("СписокЗначений") Тогда
Нашли = Коллекция.НайтиПоЗначению(Элемент) <> Неопределено;
КонецЕсли;
Если Нашли = Неопределено Тогда
СообщениеОшибки = "Утверждение ""ПроверитьВхождениеВКоллекцию"" не умеет работать с типом коллекции <"+ТипКоллекции+">." + ФорматДСО(ДопСообщениеОшибки);
ВызватьИсключение СообщениеОшибки;
КонецЕсли;
Если Не Нашли Тогда
СообщениеОшибки = "Не нашли элемент <"+Элемент+"> в коллекции, а хотели, чтобы он был в коллекции." + ФорматДСО(ДопСообщениеОшибки);
ВызватьОшибкуПроверки(СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки = "") Экспорт
ПроверитьВалидностьЗапросаСКДНаСервере(ТекстЗапроса, ДопСообщениеОшибки);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт
ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт
Объект().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки);
КонецПроцедуры
&НаКлиенте
Процедура ВызватьОшибкуПроверки(СообщениеОшибки)
Префикс = "[" + СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
ВызватьИсключение Префикс + " " + СообщениеОшибки;
КонецПроцедуры
&НаКлиенте
Процедура ПропуститьТест(Знач Сообщение = "") Экспорт
Префикс = "[" + СтатусыРезультатаТестирования.ТестПропущен + "]";
Если ПустаяСтрока(Сообщение) Тогда
Сообщение = НСтр("ru = 'Тест пропущен'");
КонецЕсли;
ВызватьИсключение Префикс + " " + Сообщение;
КонецПроцедуры
&НаСервере
Процедура ПроверитьВалидностьЗапросаСКДНаСервере(ТекстЗапроса, ДопСообщениеОшибки = "")
Объект().ПроверитьВалидностьЗапросаСКД(ТекстЗапроса, ДопСообщениеОшибки);
КонецПроцедуры
// }
&НаКлиенте
Функция ФорматДСО(ДопСообщениеОшибки)
Если ДопСообщениеОшибки = "" Тогда
Возврат "";
КонецЕсли;
Возврат Символы.ПС + ДопСообщениеОшибки;
КонецФункции
&НаСервере
Функция Объект()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
СтатусыРезультатаТестирования = Новый Структура;
СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed");
СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken");
СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending");
СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования);
\ No newline at end of file
diff --git "a/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/ObjectModule.txt" "b/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/ObjectModule.bsl"
similarity index 100%
rename from "src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/ObjectModule.txt"
rename to "src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/ObjectModule.bsl"
diff --git "a/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/maps.txt" "b/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/maps.txt"
index 0f538c80..c6881d9f 100644
--- "a/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/maps.txt"
+++ "b/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 395)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 395)
diff --git "a/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/renames.txt" "b/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/renames.txt"
index 31723e1f..f90a2039 100644
--- "a/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/renames.txt"
+++ "b/src/Plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..c8ecf289
--- /dev/null
+++ "b/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,19 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 9d226060..00000000
--- "a/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/ObjectModule.txt" "b/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/ObjectModule.bsl"
similarity index 100%
rename from "src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/ObjectModule.txt"
rename to "src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/ObjectModule.bsl"
diff --git "a/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/maps.txt" "b/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/maps.txt"
index 4962a47e..4ba753df 100644
--- "a/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/maps.txt"
+++ "b/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 48)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 48)
diff --git "a/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/renames.txt" "b/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/renames.txt"
index 31723e1f..f90a2039 100644
--- "a/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/renames.txt"
+++ "b/src/Plugins/\320\222\321\200\320\265\320\274\320\265\320\275\320\275\321\213\320\265\320\244\320\260\320\271\320\273\321\213/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..9f00ea34
--- /dev/null
+++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,44 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Report generator interface
+&НаКлиенте
+Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт
+ Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
+ Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов;
+ Возврат СоздатьОтчетНаСервере(РезультатыТестирования);
+КонецФункции
+
+&НаСервере
+Функция СоздатьОтчетНаСервере(РезультатыТестирования)
+ Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования);
+КонецФункции
+
+&НаКлиенте
+Процедура Показать(Отчет) Экспорт
+ Отчет.Показать();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт
+ Отчет.Записать(ПолныйПутьФайла);
+КонецПроцедуры
+// } Report generator interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
+
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 255eebbd..00000000
--- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Report generator interface
&НаКлиенте
Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт
Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов;
Возврат СоздатьОтчетНаСервере(РезультатыТестирования);
КонецФункции
&НаСервере
Функция СоздатьОтчетНаСервере(РезультатыТестирования)
Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования);
КонецФункции
&НаКлиенте
Процедура Показать(Отчет) Экспорт
Отчет.Показать();
КонецПроцедуры
&НаКлиенте
Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт
Отчет.Записать(ПолныйПутьФайла);
КонецПроцедуры
// } Report generator interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl"
similarity index 100%
rename from "src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.txt"
rename to "src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl"
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt"
index d21556a1..b9002f0c 100644
--- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt"
+++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt"
@@ -1,2 +1,2 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 73)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 73)
Макеты\СхемаJUnit4.txt-->00f1e100-3117-4bea-8be0-1a49b1eccdd9.0
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/renames.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/renames.txt"
index 0449022b..9193eba7 100644
--- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/renames.txt"
+++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/renames.txt"
@@ -4,7 +4,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..793020bf
--- /dev/null
+++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,46 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Report generator interface
+&НаКлиенте
+Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт
+ Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
+ Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов;
+ Возврат СоздатьОтчетНаСервере(РезультатыТестирования);
+КонецФункции
+
+&НаСервере
+Функция СоздатьОтчетНаСервере(РезультатыТестирования)
+ Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования);
+КонецФункции
+
+&НаКлиенте
+Процедура Показать(Отчет) Экспорт
+ Если Отчет <> Неопределено Тогда
+ ЗаголовокОкнаОтчета = НСтр("ru = 'Отчет об автоматическом тестировании'");
+ Отчет.Показать(ЗаголовокОкнаОтчета);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт
+ ВызватьИсключение "Метод не реализован";
+КонецПроцедуры
+// } Report generator interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 80fc6595..00000000
--- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Report generator interface
&НаКлиенте
Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт
Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов;
Возврат СоздатьОтчетНаСервере(РезультатыТестирования);
КонецФункции
&НаСервере
Функция СоздатьОтчетНаСервере(РезультатыТестирования)
Возврат ЭтотОбъектНаСервере().СоздатьОтчетНаСервере(РезультатыТестирования);
КонецФункции
&НаКлиенте
Процедура Показать(Отчет) Экспорт
Если Отчет <> Неопределено Тогда
ЗаголовокОкнаОтчета = НСтр("ru = 'Отчет об автоматическом тестировании'");
Отчет.Показать(ЗаголовокОкнаОтчета);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт
ВызватьИсключение "Метод не реализован";
КонецПроцедуры
// } Report generator interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.bsl"
similarity index 98%
rename from "src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.txt"
rename to "src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.bsl"
index 6f66ad23..4be4b504 100644
--- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.txt"
+++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.bsl"
@@ -57,7 +57,7 @@
КонецЦикла;
Иначе
ОбластьЭлемент = МакетОтчетТестирования.ПолучитьОбласть("Элемент");
- ОбластьЭлемент.Параметры.ИмяМетода = РезультатыТестирования.ИмяМетода;
+ ОбластьЭлемент.Параметры.ИмяМетода = РезультатыТестирования.Представление;
ОбластьЭлемент.Параметры.Путь = РезультатыТестирования.Путь;
ОбластьЭлемент.Параметры.Сообщение = РезультатыТестирования.Сообщение;
ОбластьЭлемент.Области.Элемент.Отступ = Уровень * 2;
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt"
index 53c5b722..d4f72c18 100644
--- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt"
+++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt"
@@ -1,2 +1,2 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 75)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 75)
Макеты\ОтчетТестирования.mxl-->e723b36e-7faa-4345-bf5b-763f60cd5663.0
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/renames.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/renames.txt"
index 361c0735..19427328 100644
--- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/renames.txt"
+++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
e723b36e-7faa-4345-bf5b-763f60cd5663-->und\e723b36e-7faa-4345-bf5b-763f60cd5663
e723b36e-7faa-4345-bf5b-763f60cd5663.0-->und\e723b36e-7faa-4345-bf5b-763f60cd5663.0
diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions"
index 934b4bea..2209dc20 100644
--- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions"
+++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions"
@@ -1 +1 @@
-{1,11,"",1bfb7b64-d033-4178-b6c3-4b15b36f6d12,"versions",0dc0ce19-c5f8-4ea4-b2b5-44df41a1aef5,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",a91622c4-36f4-4c1d-82af-26e4645b71a5,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",62ae4793-1447-48e3-ad39-0e500237a0c7,"root",c154d79e-9e76-4a02-b1b0-d31a0e2e3f00,"e723b36e-7faa-4345-bf5b-763f60cd5663",2837fca9-157f-4865-8ff5-9b8271c051ab,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",c029b102-b5bd-446f-b6dc-414993458897,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",4cc26bd4-c62a-45a3-9b4c-08c4148dc51c,"version",5164c308-29dd-42e7-b40e-3838593f7527,"e723b36e-7faa-4345-bf5b-763f60cd5663.0",43d59dd4-cff5-497d-a55b-b7a1f83bc259,"copyinfo",17b0b2e8-e40e-4036-baf3-50571f0b0164}
\ No newline at end of file
+{1,11,"",ad4da44d-18db-4044-bcb6-26f2c8b7ceb5,"versions",3c865e0a-0b79-4972-8ced-503e27d4890c,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",fd7e0723-7b45-4de8-9d83-c3bb7f0cc5cf,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",b7fe60ea-1adf-41eb-9534-0bfa4b7bb079,"root",81927546-aaf0-4fc4-9d3e-4ce804696878,"e723b36e-7faa-4345-bf5b-763f60cd5663",7cc3d945-c911-47a6-87e8-258524a203f0,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",9df62da8-0951-4c81-a81f-483ae5a5386e,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",efd8d0f6-a0ad-4d35-91bf-8ad5cac4fc9d,"version",5634d453-9b18-462b-ab56-ee9bb15029a3,"e723b36e-7faa-4345-bf5b-763f60cd5663.0",2883c5af-b7b3-4298-81f7-72c9d2c99e57,"copyinfo",e0ca2c81-33e1-4fdc-a387-a461d9aae2b1}
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..78762bfe
--- /dev/null
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,386 @@
+&НаКлиенте
+Перем ПостроительДереваТестов;
+&НаКлиенте
+Перем ЗагружаемыйПуть;
+
+&НаКлиенте
+Перем КонтейнерТестов;
+&НаКлиенте
+Перем ТекущаяГруппа;
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Loader interface
+&НаКлиенте
+Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
+ Перем ВыбранныйПуть;
+
+ ПараметрыОткрытия = Новый Структура("ОтборПоИмениТеста", "");
+ ИмяФормыВыбораПодсистемыУФ = СтрЗаменить(ЭтаФорма.ИмяФормы, "УправляемаяФорма", "ФормаВыбораПодсистемУФ");
+ ВыбранныйПуть = ОткрытьФормуМодально(ИмяФормыВыбораПодсистемыУФ, ПараметрыОткрытия, ЭтаФорма);
+
+ Возврат ВыбранныйПуть;
+КонецФункции
+
+&НаКлиенте
+Функция Загрузить(КонтекстЯдра, Путь) Экспорт
+ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов;
+
+ СтруктураМетаданных = СтруктураМетаданныхПоПереданномуПути(Путь);
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ ДеревоТестов = Неопределено;
+ ОбработатьОбъектМетаданных(СтруктураМетаданных, ДеревоТестов);
+ Возврат ДеревоТестов;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
+ Перем Контекст;
+ Если ЭтоПутьККлиентскомуКонтексту(Путь) Тогда
+ Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь);
+ Иначе
+ Контекст = ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь);
+ КонецЕсли;
+
+ Возврат Контекст;
+КонецФункции
+// } Loader interface
+
+&НаКлиенте
+Функция ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь)
+ ИдентификаторКонтекста = ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Сред(Путь, СтрДлина(ПрефиксПутейСФормами()) + 1));
+ ОписаниеКонтекста = ПолучитьФорму("Обработка." + ИдентификаторКонтекста + ".Форма", , ЭтаФорма, Новый УникальныйИдентификатор);
+ КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ИдентификаторКонтекста, Истина);
+
+ Возврат ОписаниеКонтекста;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь)
+ ИдентификаторКонтекста = ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Путь);
+ ОписаниеКонтекста = КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ИдентификаторКонтекста, Истина);
+
+ Возврат ОписаниеКонтекста;
+КонецФункции
+
+&НаСервере
+Функция СтруктураМетаданныхПоПереданномуПути(Путь)
+ ОбъектМетаданных = ЭтотОбъектНаСервере().ПолучитьОбъектМетаданныхПоПути(Путь);
+ Если ЭтоПодсистема(ОбъектМетаданных.ПолноеИмя()) Тогда
+ СтруктураМетаданных = СтруктураМетаданныхПодсистемы(ОбъектМетаданных);
+ Иначе
+ СтруктураМетаданных = СтрокаДереваМетаданных(ОбъектМетаданных);
+ КонецЕсли;
+ Возврат СтруктураМетаданных;
+КонецФункции
+
+&НаСервере
+Функция СтруктураМетаданныхПодсистемы(Подсистема)
+ СтруктураМетаданных = СтрокаДереваМетаданных(Подсистема);
+ Для Каждого ПодчиненнаяПодсистема Из Подсистема.Подсистемы Цикл
+ СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхПодсистемы(ПодчиненнаяПодсистема));
+ КонецЦикла;
+
+ Для Каждого ДочернееМетаданное Из Подсистема.Состав цикл
+ Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено
+ ИЛИ Метаданные.Отчеты.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда
+ СтруктураМетаданныхОбработки = СтрокаДереваМетаданных(ДочернееМетаданное);
+ СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхОбработки);
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат СтруктураМетаданных;
+КонецФункции
+
+&НаСервере
+Функция СтрокаДереваМетаданных(ОбъектМетаданных)
+ СтрокаДерева = Новый Структура();
+ СтрокаДерева.Вставить("Имя", ОбъектМетаданных.Имя);
+ СтрокаДерева.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
+ СтрокаДерева.Вставить("Строки", Новый Массив);
+
+ Возврат СтрокаДерева;
+КонецФункции
+
+&НаКлиенте
+Функция ОбработатьОбъектМетаданных(СтруктураМетаданных, ДеревоТестов)
+ Если ЭтоПодсистема(СтруктураМетаданных.ПолноеИмя) Тогда
+ Контейнер = ЗагрузитьПодсистему(СтруктураМетаданных, ДеревоТестов);
+ Иначе
+ Контейнер = ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов);
+ КонецЕсли;
+
+ Возврат Контейнер;
+КонецФункции
+
+&НаКлиентеНаСервереБезКонтекста
+Функция ЭтоПодсистема(ПолноеИмяОбъектаМетаданных)
+ Возврат (Найти(НРег(ПолноеИмяОбъектаМетаданных), НРег("Подсистема")) > 0);
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьПодсистему(СтруктураМетаданных, ДеревоТестов)
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер(СтруктураМетаданных.Имя, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Подсистема);
+ Для Каждого ПодчиненноеМетаданное Из СтруктураМетаданных.Строки Цикл
+ Если ЭтоПодсистема(ПодчиненноеМетаданное.ПолноеИмя) Тогда
+ ЗагрузитьПодсистему(ПодчиненноеМетаданное, Контейнер);
+ Иначе
+ ЗагрузитьОбработку(ПодчиненноеМетаданное, Контейнер);
+ КонецЕсли;
+ КонецЦикла;
+
+ Если ДеревоТестов = Неопределено Тогда
+ ДеревоТестов = Контейнер;
+ ИначеЕсли Контейнер.Строки.Количество() > 0 Тогда
+ ДеревоТестов.Строки.Добавить(Контейнер);
+ КонецЕсли;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов)
+ ЗагружаемыйПуть = СтрЗаменить("Метаданные." + СтруктураМетаданных.ПолноеИмя, ".Обработка.", ".Обработки.");
+ ЗагружаемыйПуть = СтрЗаменить(ЗагружаемыйПуть, ".Отчет.", ".Отчеты.");
+ Контейнер = ЗагрузитьОбработкуНаСервере(ЗагружаемыйПуть);
+ КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных);
+ Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда
+ Контейнер.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки);
+ КонецЕсли;
+ Если ДеревоТестов = Неопределено Тогда
+ ДеревоТестов = Контейнер;
+ ИначеЕсли Контейнер.Строки.Количество() > 0 Тогда
+ ДеревоТестов.Строки.Добавить(Контейнер);
+ КонецЕсли;
+
+КонецФункции
+
+&НаСервере
+Функция ЗагрузитьОбработкуНаСервере(Путь)
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов");
+ ЗагрузчикФайла = КонтекстЯдра.СоздатьОбъектПлагина("ЗагрузчикФайла");
+
+ ДеревоТестов = ЭтотОбъектНаСервере().ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла);
+
+ Возврат ДеревоТестов;
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных)
+ ФормаОбработки = ПолучитьФорму(СтруктураМетаданных.ПолноеИмя + ".Форма");
+ Попытка
+ Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ФормаОбработки);
+ Исключение
+ ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда
+ ВызватьИсключение;
+ Иначе
+ Контейнер = ЗагрузитьТестыВСтаромФормате_НаКлиенте(ФормаОбработки);
+ КонецЕсли;
+ КонецПопытки;
+ Возврат Контейнер;
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки)
+ ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов");
+
+ Возврат ЭтоНовыйФорматОбработки;
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьТестыВНовомФормате_НаКлиенте(ФормаОбработки)
+ КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ПрефиксПутейСФормами() + СтрЗаменить(ЗагружаемыйПуть, "Метаданные.Обработки.", ""), ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма);
+ ФормаОбработки.ЗаполнитьНаборТестов(ЭтаФорма);
+ Результат = КонтейнерТестов;
+ КонтейнерТестов = Неопределено;
+ ТекущаяГруппа = Неопределено;
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьТестыВСтаромФормате_НаКлиенте(ФормаОбработки)
+ Попытка
+ СписокТестов = ФормаОбработки.ПолучитьСписокТестов();
+ Исключение
+ Описание = ОписаниеОшибки();
+ Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда
+ ВызватьИсключение "Старый формат тестов в обработке тестов <"+ЗагружаемыйПуть+">."+Символы.ПС+
+ "Метод ПолучитьСписокТестов сейчас не принимает параметров";
+ КонецЕсли;
+
+ Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда
+ ВызватьИсключение Описание;
+ КонецЕсли;
+ КонецПопытки;
+ СлучайныйПорядокВыполнения = Истина;
+ Попытка
+ СлучайныйПорядокВыполнения = ФормаОбработки.РазрешенСлучайныйПорядокВыполненияТестов();
+ Исключение
+ КонецПопытки;
+
+ Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ПрефиксПутейСФормами() + СтрЗаменить(ЗагружаемыйПуть, "Обработка.", ""), ПрефиксПутейСФормами() + ЗагружаемыйПуть, СлучайныйПорядокВыполнения);
+ Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма;
+
+ Возврат Контейнер;
+КонецФункции
+
+&НаСервере
+Функция ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Путь)
+ ОбъектМетаданных = ЭтотОбъектНаСервере().ПолучитьОбъектМетаданныхПоПути(Путь);
+
+ Возврат ОбъектМетаданных.Имя;
+КонецФункции
+
+&НаСервере
+Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина)
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов");
+ ЗагрузчикФайла = КонтекстЯдра.СоздатьОбъектПлагина("ЗагрузчикФайла");
+
+ Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения);
+
+ Возврат Контейнер;
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоПутьККлиентскомуКонтексту(Путь)
+ ПрефиксПутейСФормами = ПрефиксПутейСФормами();
+ Результат = (Найти(Путь, ПрефиксПутейСФормами) = 1);
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Функция ПрефиксПутейСФормами()
+ Возврат "УпрФорма # ";
+КонецФункции
+
+// { API нового формата
+&НаКлиенте
+Процедура СлучайныйПорядокВыполнения() Экспорт
+ Если ЗначениеЗаполнено(КонтейнерТестов) Тогда
+ КонтейнерТестов.СлучайныйПорядокВыполнения = Истина;
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СтрогийПорядокВыполнения() Экспорт
+ Если ЗначениеЗаполнено(КонтейнерТестов) Тогда
+ КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь;
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт
+ ТекущаяГруппа = ПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Группа);
+ ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения;
+ КонтейнерТестов.Строки.Добавить(ТекущаяГруппа);
+КонецПроцедуры
+
+&НаКлиенте
+Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт
+ Элемент = ПостроительДереваТестов.СоздатьЭлемент(ПрефиксПутейСФормами() + ЗагружаемыйПуть, ИмяМетода, Представление);
+ Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда
+ Элемент.Параметры = Параметры;
+ КонецЕсли;
+ Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда
+ ТекущаяГруппа.Строки.Добавить(Элемент);
+ Иначе
+ КонтейнерТестов.Строки.Добавить(Элемент);
+ КонецЕсли;
+
+ Возврат Элемент;
+КонецФункции
+
+&НаКлиенте
+Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт
+ ВсеПараметры = Новый Массив;
+ ВсеПараметры.Добавить(Парам1);
+ ВсеПараметры.Добавить(Парам2);
+ ВсеПараметры.Добавить(Парам3);
+ ВсеПараметры.Добавить(Парам4);
+ ВсеПараметры.Добавить(Парам5);
+ ВсеПараметры.Добавить(Парам6);
+ ВсеПараметры.Добавить(Парам7);
+ ВсеПараметры.Добавить(Парам8);
+ ВсеПараметры.Добавить(Парам9);
+
+ ИндексСПоследнимПараметром = 0;
+ Для Сч = 0 По ВсеПараметры.ВГраница() Цикл
+ Индекс = ВсеПараметры.ВГраница() - Сч;
+ Если ВсеПараметры[Индекс] <> Неопределено Тогда
+ ИндексСПоследнимПараметром = Индекс;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ ПараметрыТеста = Новый Массив;
+ Для Сч = 0 По ИндексСПоследнимПараметром Цикл
+ ПараметрыТеста.Добавить(ВсеПараметры[Сч]);
+ КонецЦикла;
+
+ Возврат ПараметрыТеста;
+КонецФункции
+// } API нового формата
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+&НаКлиенте
+Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода)
+ Результат = Ложь;
+ Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0
+ Или Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда
+ Результат = Истина;
+ КонецЕсли;
+
+ Возврат Результат;
+КонецФункции
+// } Helpers
+
+// { Подсистема конфигурации xUnitFor1C
+
+&НаСервере
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки");
+ Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 08718d92..00000000
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-&НаКлиенте
Перем ПостроительДереваТестов;
&НаКлиенте
Перем ЗагружаемыйПуть;
&НаКлиенте
Перем КонтейнерТестов;
&НаКлиенте
Перем ТекущаяГруппа;
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Loader interface
&НаКлиенте
Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
Перем ВыбранныйПуть;
ПараметрыОткрытия = Новый Структура("ОтборПоИмениТеста", "");
ИмяФормыВыбораПодсистемыУФ = СтрЗаменить(ЭтаФорма.ИмяФормы, "УправляемаяФорма", "ФормаВыбораПодсистемУФ");
ВыбранныйПуть = ОткрытьФормуМодально(ИмяФормыВыбораПодсистемыУФ, ПараметрыОткрытия, ЭтаФорма);
Возврат ВыбранныйПуть;
КонецФункции
&НаКлиенте
Функция Загрузить(КонтекстЯдра, Путь) Экспорт
СтруктураМетаданных = СтруктураМетаданныхПоПереданномуПути(Путь);
ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
ДеревоТестов = Неопределено;
ОбработатьОбъектМетаданных(СтруктураМетаданных, ДеревоТестов);
Возврат ДеревоТестов;
КонецФункции
&НаКлиенте
Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
Перем Контекст;
Если ЭтоПутьККлиентскомуКонтексту(Путь) Тогда
Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь);
Иначе
Контекст = ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь);
КонецЕсли;
Возврат Контекст;
КонецФункции
// } Loader interface
&НаКлиенте
Функция ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь)
ИдентификаторКонтекста = ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Сред(Путь, СтрДлина(ПрефиксПутейСФормами()) + 1));
ОписаниеКонтекста = ПолучитьФорму("Обработка." + ИдентификаторКонтекста + ".Форма", , ЭтаФорма, Новый УникальныйИдентификатор);
КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ИдентификаторКонтекста, Истина);
Возврат ОписаниеКонтекста;
КонецФункции
&НаКлиенте
Функция ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь)
ИдентификаторКонтекста = ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Путь);
ОписаниеКонтекста = КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ИдентификаторКонтекста, Истина);
Возврат ОписаниеКонтекста;
КонецФункции
&НаСервере
Функция СтруктураМетаданныхПоПереданномуПути(Путь)
ОбъектМетаданных = ЭтотОбъектНаСервере().ПолучитьОбъектМетаданныхПоПути(Путь);
Если ЭтоПодсистема(ОбъектМетаданных.ПолноеИмя()) Тогда
СтруктураМетаданных = СтруктураМетаданныхПодсистемы(ОбъектМетаданных);
Иначе
СтруктураМетаданных = СтрокаДереваМетаданных(ОбъектМетаданных);
КонецЕсли;
Возврат СтруктураМетаданных;
КонецФункции
&НаСервере
Функция СтруктураМетаданныхПодсистемы(Подсистема)
СтруктураМетаданных = СтрокаДереваМетаданных(Подсистема);
Для Каждого ПодчиненнаяПодсистема Из Подсистема.Подсистемы Цикл
СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхПодсистемы(ПодчиненнаяПодсистема));
КонецЦикла;
Для Каждого ДочернееМетаданное Из Подсистема.Состав цикл
Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда
СтруктураМетаданныхОбработки = СтрокаДереваМетаданных(ДочернееМетаданное);
СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхОбработки);
КонецЕсли;
КонецЦикла;
Возврат СтруктураМетаданных;
КонецФункции
&НаСервере
Функция СтрокаДереваМетаданных(ОбъектМетаданных)
СтрокаДерева = Новый Структура();
СтрокаДерева.Вставить("Имя", ОбъектМетаданных.Имя);
СтрокаДерева.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
СтрокаДерева.Вставить("Строки", Новый Массив);
Возврат СтрокаДерева;
КонецФункции
&НаКлиенте
Функция ОбработатьОбъектМетаданных(СтруктураМетаданных, ДеревоТестов)
Если ЭтоПодсистема(СтруктураМетаданных.ПолноеИмя) Тогда
Контейнер = ЗагрузитьПодсистему(СтруктураМетаданных, ДеревоТестов);
Иначе
Контейнер = ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов);
КонецЕсли;
Возврат Контейнер;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЭтоПодсистема(ПолноеИмяОбъектаМетаданных)
Возврат (Найти(НРег(ПолноеИмяОбъектаМетаданных), НРег("Подсистема")) > 0);
КонецФункции
&НаКлиенте
Функция ЗагрузитьПодсистему(СтруктураМетаданных, ДеревоТестов)
Контейнер = ПостроительДереваТестов.СоздатьКонтейнер(СтруктураМетаданных.Имя, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Подсистема);
Для Каждого ПодчиненноеМетаданное Из СтруктураМетаданных.Строки Цикл
Если ЭтоПодсистема(ПодчиненноеМетаданное.ПолноеИмя) Тогда
ЗагрузитьПодсистему(ПодчиненноеМетаданное, Контейнер);
Иначе
ЗагрузитьОбработку(ПодчиненноеМетаданное, Контейнер);
КонецЕсли;
КонецЦикла;
Если ДеревоТестов = Неопределено Тогда
ДеревоТестов = Контейнер;
ИначеЕсли Контейнер.Строки.Количество() > 0 Тогда
ДеревоТестов.Строки.Добавить(Контейнер);
КонецЕсли;
КонецФункции
&НаКлиенте
Функция ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов)
ЗагружаемыйПуть = СтрЗаменить("Метаданные." + СтруктураМетаданных.ПолноеИмя, ".Обработка.", ".Обработки.");
Контейнер = ЗагрузитьОбработкуНаСервере(ЗагружаемыйПуть);
КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных);
Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда
Контейнер.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки);
КонецЕсли;
Если ДеревоТестов = Неопределено Тогда
ДеревоТестов = Контейнер;
ИначеЕсли Контейнер.Строки.Количество() > 0 Тогда
ДеревоТестов.Строки.Добавить(Контейнер);
КонецЕсли;
КонецФункции
&НаСервере
Функция ЗагрузитьОбработкуНаСервере(Путь)
ПостроительДереваТестов = ВнешниеОбработки.Создать("ПостроительДереваТестов");
ЗагрузчикФайла = ВнешниеОбработки.Создать("ЗагрузчикФайла");
ДеревоТестов = ЭтотОбъектНаСервере().ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла);
Возврат ДеревоТестов;
КонецФункции
&НаКлиенте
Функция ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных)
ФормаОбработки = ПолучитьФорму(СтруктураМетаданных.ПолноеИмя + ".Форма");
Попытка
Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ФормаОбработки);
Исключение
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда
ВызватьИсключение;
Иначе
Контейнер = ЗагрузитьТестыВСтаромФормате_НаКлиенте(ФормаОбработки);
КонецЕсли;
КонецПопытки;
Возврат Контейнер;
КонецФункции
&НаКлиенте
Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки)
ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов");
Возврат ЭтоНовыйФорматОбработки;
КонецФункции
&НаКлиенте
Функция ЗагрузитьТестыВНовомФормате_НаКлиенте(ФормаОбработки)
КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ПрефиксПутейСФормами() + СтрЗаменить(ЗагружаемыйПуть, "Метаданные.Обработки.", ""), ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма);
ФормаОбработки.ЗаполнитьНаборТестов(ЭтаФорма);
Результат = КонтейнерТестов;
КонтейнерТестов = Неопределено;
ТекущаяГруппа = Неопределено;
Возврат Результат;
КонецФункции
&НаКлиенте
Функция ЗагрузитьТестыВСтаромФормате_НаКлиенте(ФормаОбработки)
Попытка
СписокТестов = ФормаОбработки.ПолучитьСписокТестов();
Исключение
Описание = ОписаниеОшибки();
Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда
ВызватьИсключение "Старый формат тестов в обработке тестов <"+ЗагружаемыйПуть+">."+Символы.ПС+
"Метод ПолучитьСписокТестов сейчас не принимает параметров";
КонецЕсли;
Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда
ВызватьИсключение Описание;
КонецЕсли;
КонецПопытки;
СлучайныйПорядокВыполнения = Истина;
Попытка
СлучайныйПорядокВыполнения = ФормаОбработки.РазрешенСлучайныйПорядокВыполненияТестов();
Исключение
КонецПопытки;
Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ПрефиксПутейСФормами() + СтрЗаменить(ЗагружаемыйПуть, "Обработка.", ""), ПрефиксПутейСФормами() + ЗагружаемыйПуть, СлучайныйПорядокВыполнения);
Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма;
Возврат Контейнер;
КонецФункции
&НаСервере
Функция ПолучитьИдентификаторКонтекстаПоПутиНаСервере(Путь)
ОбъектМетаданных = ЭтотОбъектНаСервере().ПолучитьОбъектМетаданныхПоПути(Путь);
Возврат ОбъектМетаданных.Имя;
КонецФункции
&НаСервере
Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина)
ПостроительДереваТестов = ВнешниеОбработки.Создать("ПостроительДереваТестов", Ложь);
ЗагрузчикФайла = ВнешниеОбработки.Создать("ЗагрузчикФайла", Ложь);
Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения);
Возврат Контейнер;
КонецФункции
&НаКлиенте
Функция ЭтоПутьККлиентскомуКонтексту(Путь)
ПрефиксПутейСФормами = ПрефиксПутейСФормами();
Результат = (Найти(Путь, ПрефиксПутейСФормами) = 1);
Возврат Результат;
КонецФункции
&НаКлиенте
Функция ПрефиксПутейСФормами()
Возврат "УпрФорма # ";
КонецФункции
// { API нового формата
&НаКлиенте
Процедура СлучайныйПорядокВыполнения() Экспорт
Если ЗначениеЗаполнено(КонтейнерТестов) Тогда
КонтейнерТестов.СлучайныйПорядокВыполнения = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СтрогийПорядокВыполнения() Экспорт
Если ЗначениеЗаполнено(КонтейнерТестов) Тогда
КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт
ТекущаяГруппа = ПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Группа);
ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения;
КонтейнерТестов.Строки.Добавить(ТекущаяГруппа);
КонецПроцедуры
&НаКлиенте
Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт
Элемент = ПостроительДереваТестов.СоздатьЭлемент(ПрефиксПутейСФормами() + ЗагружаемыйПуть, ИмяМетода, Представление);
Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда
Элемент.Параметры = Параметры;
КонецЕсли;
Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда
ТекущаяГруппа.Строки.Добавить(Элемент);
Иначе
КонтейнерТестов.Строки.Добавить(Элемент);
КонецЕсли;
Возврат Элемент;
КонецФункции
&НаКлиенте
Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт
ВсеПараметры = Новый Массив;
ВсеПараметры.Добавить(Парам1);
ВсеПараметры.Добавить(Парам2);
ВсеПараметры.Добавить(Парам3);
ВсеПараметры.Добавить(Парам4);
ВсеПараметры.Добавить(Парам5);
ВсеПараметры.Добавить(Парам6);
ВсеПараметры.Добавить(Парам7);
ВсеПараметры.Добавить(Парам8);
ВсеПараметры.Добавить(Парам9);
ИндексСПоследнимПараметром = 0;
Для Сч = 0 По ВсеПараметры.ВГраница() Цикл
Индекс = ВсеПараметры.ВГраница() - Сч;
Если ВсеПараметры[Индекс] <> Неопределено Тогда
ИндексСПоследнимПараметром = Индекс;
Прервать;
КонецЕсли;
КонецЦикла;
ПараметрыТеста = Новый Массив;
Для Сч = 0 По ИндексСПоследнимПараметром Цикл
ПараметрыТеста.Добавить(ВсеПараметры[Сч]);
КонецЦикла;
Возврат ПараметрыТеста;
КонецФункции
// } API нового формата
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
&НаКлиенте
Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода)
Результат = Ложь;
Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0
Или Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..e6fa7d84
--- /dev/null
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,26 @@
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+ РеквизитФормыВЗначение("Объект").ЗаполнитьДеревоПодсистем(ДеревоПодсистем, Параметры.ОтборПоИмениТеста);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПриОткрытии(Отказ)
+ РазвернутьСтрокиДерева(Истина);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ДеревоПодсистемВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
+ СтандартнаяОбработка = Ложь;
+ Закрыть(ДеревоПодсистем.НайтиПоИдентификатору(ВыбраннаяСтрока).Путь);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура РазвернутьСтрокиДерева(ВключаяПодчиненные = Ложь)
+
+ Для каждого СтрокаДерева из ДеревоПодсистем.ПолучитьЭлементы() Цикл
+ Идентификатор = СтрокаДерева.ПолучитьИдентификатор();
+ Элементы.ДеревоПодсистем.Развернуть(Идентификатор, ВключаяПодчиненные);
+ КонецЦикла;
+
+КонецПроцедуры
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index cf2ec6ac..00000000
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\243\320\244/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РеквизитФормыВЗначение("Объект").ЗаполнитьДеревоПодсистем(ДеревоПодсистем, Параметры.ОтборПоИмениТеста);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
РазвернутьСтрокиДерева(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПодсистемВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Закрыть(ДеревоПодсистем.НайтиПоИдентификатору(ВыбраннаяСтрока).Путь);
КонецПроцедуры
&НаКлиенте
Процедура РазвернутьСтрокиДерева(ВключаяПодчиненные = Ложь)
Для каждого СтрокаДерева из ДеревоПодсистем.ПолучитьЭлементы() Цикл
Идентификатор = СтрокаДерева.ПолучитьИдентификатор();
Элементы.ДеревоПодсистем.Развернуть(Идентификатор, ВключаяПодчиненные);
КонецЦикла;
КонецПроцедуры
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/form" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/form"
index 4567f6f9..afeb1a04 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/form"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/form"
@@ -3,7 +3,7 @@
{
{1,1,
{"ru","Выберите тестовый случай или всю подсистему"}
-},8,4294967295},
+},9,4294967295},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
@@ -56,7 +56,7 @@
{2,286,0,1,4,0,0,6,0},0,4294967295,5,64,0},
{0}
},
-{3,
+{4,
{ea83fe3a-ac3c-4cce-8045-3dddf35b28b1,4,
{5,
{"Pattern",
@@ -125,7 +125,7 @@
{"ru","Имя"}
},
{1,0},
-{1,0},194.9999999999999,0,-1,-1,-1,12590595,
+{1,0},197,0,-1,-1,-1,12590595,
{3,0,
{0},"",-1,-1,1,0},
{3,0,
@@ -153,7 +153,7 @@
{6,3,0,1},
{6,3,0,1},
{6,3,0,1},1,0,0,4,0,"Имя",
-{},28,0,
+{},29,0,
{1,0},
{"Pattern",
{"S"}
@@ -504,9 +504,76 @@ A0Qbgk0z0YbgC3miYgVfyBMVK/hCfqTFCqEQJxgjhEKcYIwQCnGKYwQXAACvVTho
{0,7,3},0,0,0,0,2,2,0,0},
{14,"ПолеКартинкиПодсистема",4294967295,0,0,0},
{0}
+},
+{151ef23e-6bb2-4681-83d0-35bc2217230c,9,
+{1,
+{
+{10,1,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{6,3,0,1},0,
+{3,3,
+{-22}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,3,
+{-7}
+},
+{3,3,
+{-21}
+},
+{3,0,
+{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
+{1,0}
+},15,0,0,
+{3,1,
+{0,db817ee1-fd28-4e7f-bb4a-53686b2b153c},"",-1,-1,0,0},
+{0,0,0},1,1,0,0,
+{1,0}
+},
+{0}
+},
+{8,106,178,141,208,0,
+{0,
+{2,-1,6,0},
+{2,-1,6,0}
+},
+{0,
+{2,9,0,30},
+{2,-1,6,0}
+},
+{0,
+{2,-1,6,0},
+{2,-1,6,0}
+},
+{0,
+{2,9,2,35},
+{2,-1,6,0}
+},
+{0,
+{2,-1,6,0},
+{2,-1,6,0}
+},
+{0,
+{2,-1,6,0},
+{2,-1,6,0}
+},1,
+{0,9,1},0,1,
+{0,9,3},0,0,0,0,3,4,0,0},
+{14,"ПолеКартинкиТестОтчет",4294967295,0,0,0},
+{0}
}
}
-},400,292,1,0,1,4,4,352},
+},400,292,1,0,1,4,4,361},
{
{5},8,
{3,
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/module" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/module.bsl"
similarity index 87%
rename from "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/module"
rename to "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/module.bsl"
index c07c5a1d..4858e319 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/module"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213/module.bsl"
@@ -14,8 +14,9 @@
КонецПроцедуры
//{ Типы строк дерева тестов
-мМассивПиктограммТиповСтроки = Новый Массив(4);
+мМассивПиктограммТиповСтроки = Новый Массив(8);
мМассивПиктограммТиповСтроки[мЗначенияТиповСтроки.ТестовыйСлучай] = ЭлементыФормы.ПолеКартинкиТест.Картинка;
мМассивПиктограммТиповСтроки[мЗначенияТиповСтроки.Подсистема] = ЭлементыФормы.ПолеКартинкиПодсистема.Картинка;
+мМассивПиктограммТиповСтроки[мЗначенияТиповСтроки.ТестовыйСлучайОтчет] = ЭлементыФормы.ПолеКартинкиТестОтчет.Картинка;
мМассивПиктограммТиповСтроки = Новый ФиксированныйМассив(мМассивПиктограммТиповСтроки);
//} Типы строк дерева тестов
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl"
similarity index 89%
rename from "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.txt"
rename to "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl"
index 109945b1..51df8b82 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl"
@@ -93,7 +93,8 @@
КонецЦикла;
Для каждого ДочернееМетаданное Из Подсистема.Состав цикл
- Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда
+ Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено
+ ИЛИ Метаданные.Отчеты.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда
КонтейнерСТестамиОбработки = ЗагрузитьОбработку(ДочернееМетаданное, ПостроительДереваТестов, ЗагрузчикФайла);
Если КонтейнерСТестамиОбработки.Строки.Количество() > 0 Тогда
Контейнер.Строки.Добавить(КонтейнерСТестамиОбработки);
@@ -121,9 +122,15 @@
КонецФункции
Функция ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, МетаданныеОбработки, ЗагрузчикФайла)
- ЗагружаемыйПуть = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Обработка.", ".Обработки.");
КэшПостроительДереваТестов = ПостроительДереваТестов;
- КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(МетаданныеОбработки.Имя, ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка);
+ Если Метаданные.Обработки.Содержит(МетаданныеОбработки) Тогда
+ ЗагружаемыйПуть = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Обработка.", ".Обработки.");
+ ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка;
+ ИначеЕсли Метаданные.Отчеты.Содержит(МетаданныеОбработки) Тогда
+ ЗагружаемыйПуть = СтрЗаменить("Метаданные." + МетаданныеОбработки.ПолноеИмя(), ".Отчет.", ".Отчеты.");
+ ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Отчет;
+ КонецЕсли;
+ КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(МетаданныеОбработки.Имя, ИконкаУзла);
Обработка.ЗаполнитьНаборТестов(ЭтотОбъект);
Результат = КонтейнерТестов;
КонтейнерТестов = Неопределено;
@@ -175,7 +182,13 @@
КонецФункции
Функция СоздатьОбработкуПоМетаданным(МетаданныеОбработки)
- Возврат Обработки[МетаданныеОбработки.Имя].Создать();
+ Если Метаданные.Обработки.Найти(МетаданныеОбработки.Имя) <> Неопределено Тогда
+ Возврат Обработки[МетаданныеОбработки.Имя].Создать();
+ ИначеЕсли Метаданные.Отчеты.Найти(МетаданныеОбработки.Имя) <> Неопределено Тогда
+ Возврат Отчеты[МетаданныеОбработки.Имя].Создать();
+ Иначе
+ ВызватьИсключение "Не удалось найти обработку / отчет с идентификатором """+МетаданныеОбработки.Имя+"""";
+ КонецЕсли;
КонецФункции
//{ Работа со встроенными в конфигурацию тестами и подсистемами
@@ -200,6 +213,11 @@
СтрокаТеста.Имя = ОбъектМетаданных.Имя;
СтрокаТеста.Путь = "Метаданные."+СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), "Обработка.", "Обработки.");
СтрокаТеста.ТипСтроки = мЗначенияТиповСтроки.ТестовыйСлучай;
+ ИначеЕсли Найти(ОбъектМетаданных.ПолноеИмя(), "Отчет."+ОтборПоИмениТеста) = 1 Тогда
+ СтрокаТеста = ПодчиненныеСтроки(СтрокаПодсистемы).Добавить();
+ СтрокаТеста.Имя = ОбъектМетаданных.Имя;
+ СтрокаТеста.Путь = "Метаданные."+СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), "Отчет.", "Отчеты.");
+ СтрокаТеста.ТипСтроки = мЗначенияТиповСтроки.ТестовыйСлучайОтчет;
КонецЕсли;
КонецЦикла;
@@ -307,6 +325,7 @@
мЗначенияТиповСтроки = Новый Структура;
мЗначенияТиповСтроки.Вставить("КаталогТестов", 0);
мЗначенияТиповСтроки.Вставить("ТестовыйСлучай", 1);
+мЗначенияТиповСтроки.Вставить("ТестовыйСлучайОтчет", 7);
мЗначенияТиповСтроки.Вставить("ТестовыйМетод", 2);
мЗначенияТиповСтроки.Вставить("Подсистема", 3);
мЗначенияТиповСтроки.Вставить("Ошибка", 9);
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt"
index 275bf92c..1d8d0dad 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt"
@@ -1,2 +1,2 @@
-Form\УправляемаяФорма\Форма.txt-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 376)
-Form\ФормаВыбораПодсистемУФ\Форма.txt-->7074798d-333f-4d35-91d6-154b9f00a019.0 (381, 407)
+Form\УправляемаяФорма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 414)
+Form\ФормаВыбораПодсистемУФ\Форма.bsl-->7074798d-333f-4d35-91d6-154b9f00a019.0 (427, 453)
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt"
index 1eb75ecf..2d3c155a 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt"
@@ -7,7 +7,7 @@ copyinfo-->und\copyinfo
d75f146d-5027-4604-80fd-3b704ddd86a8-->und\d75f146d-5027-4604-80fd-3b704ddd86a8
d75f146d-5027-4604-80fd-3b704ddd86a8.0-->und\d75f146d-5027-4604-80fd-3b704ddd86a8.0
dfe532e1-d0ef-4008-afd4-214781ee4960.0\info-->und\dfe532e1-d0ef-4008-afd4-214781ee4960.0\info
-dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.txt
+dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/7074798d-333f-4d35-91d6-154b9f00a019.0" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/7074798d-333f-4d35-91d6-154b9f00a019.0"
index 7da9b325..54232af7 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/7074798d-333f-4d35-91d6-154b9f00a019.0"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/7074798d-333f-4d35-91d6-154b9f00a019.0"
@@ -36,37 +36,60 @@
{3,3,
{0},"",-1,-1,0,
{
-{#base64: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}
+{#base64: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}
},0},
{3,4,
{0}
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0"
index b938ea27..17987340 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0"
@@ -62,6 +62,8 @@
&НаКлиенте
Функция Загрузить(КонтекстЯдра, Путь) Экспорт
+ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов;
+
СтруктураМетаданных = СтруктураМетаданныхПоПереданномуПути(Путь);
ПостроительДереваТестов = КонтекстЯдра.Плагин(""ПостроительДереваТестов"");
ДеревоТестов = Неопределено;
@@ -118,7 +120,8 @@
КонецЦикла;
Для Каждого ДочернееМетаданное Из Подсистема.Состав цикл
- Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда
+ Если Метаданные.Обработки.Найти(ДочернееМетаданное.Имя) <> Неопределено
+ ИЛИ Метаданные.Отчеты.Найти(ДочернееМетаданное.Имя) <> Неопределено Тогда
СтруктураМетаданныхОбработки = СтрокаДереваМетаданных(ДочернееМетаданное);
СтруктураМетаданных.Строки.Добавить(СтруктураМетаданныхОбработки);
КонецЕсли;
@@ -176,6 +179,7 @@
&НаКлиенте
Функция ЗагрузитьОбработку(СтруктураМетаданных, ДеревоТестов)
ЗагружаемыйПуть = СтрЗаменить(""Метаданные."" + СтруктураМетаданных.ПолноеИмя, "".Обработка."", "".Обработки."");
+ ЗагружаемыйПуть = СтрЗаменить(ЗагружаемыйПуть, "".Отчет."", "".Отчеты."");
Контейнер = ЗагрузитьОбработкуНаСервере(ЗагружаемыйПуть);
КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьОбработкуНаКлиенте(СтруктураМетаданных);
Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда
@@ -191,8 +195,11 @@
&НаСервере
Функция ЗагрузитьОбработкуНаСервере(Путь)
- ПостроительДереваТестов = ВнешниеОбработки.Создать(""ПостроительДереваТестов"");
- ЗагрузчикФайла = ВнешниеОбработки.Создать(""ЗагрузчикФайла"");
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина(""ПостроительДереваТестов"");
+ ЗагрузчикФайла = КонтекстЯдра.СоздатьОбъектПлагина(""ЗагрузчикФайла"");
+
ДеревоТестов = ЭтотОбъектНаСервере().ЗагрузитьПуть(Путь, ПостроительДереваТестов, ЗагрузчикФайла);
Возврат ДеревоТестов;
@@ -268,8 +275,11 @@
&НаСервере
Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина)
- ПостроительДереваТестов = ВнешниеОбработки.Создать(""ПостроительДереваТестов"", Ложь);
- ЗагрузчикФайла = ВнешниеОбработки.Создать(""ЗагрузчикФайла"", Ложь);
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина(""ПостроительДереваТестов"");
+ ЗагрузчикФайла = КонтекстЯдра.СоздатьОбъектПлагина(""ЗагрузчикФайла"");
+
Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, ЗагрузчикФайла, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения);
Возврат Контейнер;
@@ -373,8 +383,36 @@
Возврат Результат;
КонецФункции
// } Helpers
-",
-{4,1,
+
+// { Подсистема конфигурации xUnitFor1C
+
+&НаСервере
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, ""Обработка"", ""Обработки"");
+ Выполнить(""КонтекстЯдра = "" + ИмяОбработкиКонекстаЯдра + "".Создать()"");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, ""ВнешняяОбработка"", ""ВнешниеОбработки"");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ""."", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить(""КонтекстЯдра = "" + МенеджерОбъектов + "".Создать(""""""+ИмяОбъекта+"""""")"");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C",
+{4,2,
{9,
{1},0,"Объект",
{1,0},
@@ -393,6 +431,27 @@
{0,0},1,0,0,0,
{0,0},
{0,0}
+},
+{9,
+{2},0,"ПолноеИмяБраузераТестов",
+{1,1,
+{"ru","Полное имя браузера тестов"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
},0,0,
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions"
index 67d31a79..fc9beede 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions"
@@ -1 +1 @@
-{1,15,"7074798d-333f-4d35-91d6-154b9f00a019",0faf7006-8bd0-46d0-aaaf-46d480cbb787,"7074798d-333f-4d35-91d6-154b9f00a019.0",d4049c32-1066-4754-b65c-e0df4a6acf0e,"7074798d-333f-4d35-91d6-154b9f00a019.1",cee938b5-68b8-422f-9afa-810b9299c036,"",6640787d-eaed-43e5-b987-86a784ccdf82,"versions",143f4395-d524-4c48-b1de-d3710ba20f1f,"root",7087237e-be7e-4959-9db5-d6d050e2b3eb,"c279f76a-3497-488b-ad4e-2ba469b0bd9b",ca7fdcbd-de61-4677-9ff7-e411a7770446,"51efd65a-ed36-4be7-a563-89b34ebfa851",c09e6b3f-4ca6-4037-8a4f-6e06467d405d,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",1b7678be-2c9c-4cb2-9eaf-2c1c9c3af379,"c279f76a-3497-488b-ad4e-2ba469b0bd9b.0",7e27bce4-b31a-4dcf-afcd-2579b7394032,"c279f76a-3497-488b-ad4e-2ba469b0bd9b.1",34b3490d-5b18-4d62-8822-f65cab5af125,"d75f146d-5027-4604-80fd-3b704ddd86a8",c3ef4553-6c35-448c-9ce8-4a201c78d0f3,"version",4134ff87-a48e-43b5-ab67-f10135a5cf5f,"copyinfo",3c1b2d00-62b1-454e-bd9b-795a4a41573f,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",ae9951b0-f7fa-4dda-9d0a-fbd4a48d7414}
\ No newline at end of file
+{1,15,"7074798d-333f-4d35-91d6-154b9f00a019",00e9fa7a-a001-4f7c-9980-65426f423b3f,"7074798d-333f-4d35-91d6-154b9f00a019.1",cee938b5-68b8-422f-9afa-810b9299c036,"7074798d-333f-4d35-91d6-154b9f00a019.0",bec7bffd-74c7-4954-8430-284a1ba6b869,"",2f438957-e571-416f-b97b-878877d690e3,"versions",d4d6440e-6e8c-4585-87aa-a4cfebdb7f18,"root",7d6ee2d2-2237-4eee-88ec-b15f49036672,"c279f76a-3497-488b-ad4e-2ba469b0bd9b",a0483b09-af40-4029-a4dd-e1623524a2dc,"51efd65a-ed36-4be7-a563-89b34ebfa851",f37556ab-7441-4e72-bb7a-1768c936abbf,"c279f76a-3497-488b-ad4e-2ba469b0bd9b.0",29930658-ed00-461f-bbf0-28cc9b4e217c,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",15bc5568-ef27-4899-aa73-33cd6ed066fb,"c279f76a-3497-488b-ad4e-2ba469b0bd9b.1",34b3490d-5b18-4d62-8822-f65cab5af125,"d75f146d-5027-4604-80fd-3b704ddd86a8",8b28bef4-c3c7-4bf4-9228-536f16ba8ae9,"version",db532ab5-bf94-48e7-9b57-abe564416b15,"copyinfo",d90ef72f-b750-4486-8c3d-4664de8bebfd,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",ffbd6064-4373-44dd-bd3e-1beef334cbc3}
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..28be2169
--- /dev/null
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,95 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Loader interface
+&НаКлиенте
+Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
+ ДиалогВыбораКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
+ ДиалогВыбораКаталога.Каталог = ТекущийПуть;
+
+ Результат = "";
+ Если ДиалогВыбораКаталога.Выбрать() Тогда
+ Результат = ДиалогВыбораКаталога.Каталог;
+ КонецЕсли;
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Функция Загрузить(КонтекстЯдра, Путь) Экспорт
+ КаталогДляЗагрузки = Новый Файл(Путь);
+ Если Не (КаталогДляЗагрузки.Существует() И КаталогДляЗагрузки.ЭтоКаталог()) Тогда
+ ВызватьИсключение "Для загрузки передан не каталог файловой системы <" + КаталогДляЗагрузки.ПолноеИмя + ">";
+ КонецЕсли;
+ ДеревоТестов = ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки);
+ ДеревоТестов.Имя = КаталогДляЗагрузки.ПолноеИмя;
+
+ Возврат ДеревоТестов;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
+ ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла");
+ Контекст = ЗагрузчикФайла.ПолучитьКонтекстПоПути(КонтекстЯдра, Путь);
+
+ Возврат Контекст;
+КонецФункции
+// } Loader interface
+
+&НаКлиенте
+Функция ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки)
+ КонтейнерКаталога = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьКонтейнер(КаталогДляЗагрузки.Имя);
+ НайденныеФайлы = НайтиФайлы(КаталогДляЗагрузки.ПолноеИмя, "*", Ложь);
+ Для каждого Файл из НайденныеФайлы Цикл
+ ОбработкаПрерыванияПользователя();
+ Если Файл.ЭтоКаталог() Тогда
+ КонтейнерДочернегоКаталога = ЗагрузитьКаталог(КонтекстЯдра, Файл);
+ Если КонтейнерДочернегоКаталога.Строки.Количество() > 0 Тогда
+ КонтейнерКаталога.Строки.Добавить(КонтейнерДочернегоКаталога);
+ КонецЕсли;
+ ИначеЕсли НРег(Файл.Расширение) = ".epf"
+ ИЛИ НРег(Файл.Расширение) = ".erf" Тогда
+ КонтейнерФайла = ЗагрузитьФайл(КонтекстЯдра, Файл);
+ Если ЗначениеЗаполнено(КонтейнерФайла) И КонтейнерФайла.Строки.Количество() > 0 Тогда
+ КонтейнерКаталога.Строки.Добавить(КонтейнерФайла);
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат КонтейнерКаталога;
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьФайл(КонтекстЯдра, ФайлОбработки)
+ ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла");
+ Попытка
+ ДеревоТестовФайла = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработки.ПолноеИмя);
+ Результат = ДеревоТестовФайла;
+ Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда
+ Результат = ДеревоТестовФайла.Строки[0];
+ КонецЕсли;
+
+ Исключение
+ Сообщить("Не удалось загрузить файл " + ФайлОбработки.ПолноеИмя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+ Результат = Неопределено;
+ КонецПопытки;
+
+ Возврат Результат;
+КонецФункции
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 837b8202..00000000
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Loader interface
&НаКлиенте
Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
ДиалогВыбораКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогВыбораКаталога.Каталог = ТекущийПуть;
Результат = "";
Если ДиалогВыбораКаталога.Выбрать() Тогда
Результат = ДиалогВыбораКаталога.Каталог;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаКлиенте
Функция Загрузить(КонтекстЯдра, Путь) Экспорт
КаталогДляЗагрузки = Новый Файл(Путь);
Если Не (КаталогДляЗагрузки.Существует() И КаталогДляЗагрузки.ЭтоКаталог()) Тогда
ВызватьИсключение "Для загрузки передан не каталог файловой системы <" + КаталогДляЗагрузки.ПолноеИмя + ">";
КонецЕсли;
ДеревоТестов = ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки);
ДеревоТестов.Имя = КаталогДляЗагрузки.ПолноеИмя;
Возврат ДеревоТестов;
КонецФункции
&НаКлиенте
Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла");
Контекст = ЗагрузчикФайла.ПолучитьКонтекстПоПути(КонтекстЯдра, Путь);
Возврат Контекст;
КонецФункции
// } Loader interface
&НаКлиенте
Функция ЗагрузитьКаталог(КонтекстЯдра, КаталогДляЗагрузки)
КонтейнерКаталога = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьКонтейнер(КаталогДляЗагрузки.Имя);
НайденныеФайлы = НайтиФайлы(КаталогДляЗагрузки.ПолноеИмя, "*", Ложь);
Для каждого Файл из НайденныеФайлы Цикл
ОбработкаПрерыванияПользователя();
Если Файл.ЭтоКаталог() Тогда
КонтейнерДочернегоКаталога = ЗагрузитьКаталог(КонтекстЯдра, Файл);
Если КонтейнерДочернегоКаталога.Строки.Количество() > 0 Тогда
КонтейнерКаталога.Строки.Добавить(КонтейнерДочернегоКаталога);
КонецЕсли;
ИначеЕсли НРег(Файл.Расширение) = ".epf" Тогда
КонтейнерФайла = ЗагрузитьФайл(КонтекстЯдра, Файл);
Если ЗначениеЗаполнено(КонтейнерФайла) И КонтейнерФайла.Строки.Количество() > 0 Тогда
КонтейнерКаталога.Строки.Добавить(КонтейнерФайла);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат КонтейнерКаталога;
КонецФункции
&НаКлиенте
Функция ЗагрузитьФайл(КонтекстЯдра, ФайлОбработки)
ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла");
Попытка
ДеревоТестовФайла = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработки.ПолноеИмя);
Результат = ДеревоТестовФайла;
Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда
Результат = ДеревоТестовФайла.Строки[0];
КонецЕсли;
Исключение
Сообщить("Не удалось загрузить файл " + ФайлОбработки.ПолноеИмя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Результат = Неопределено;
КонецПопытки;
Возврат Результат;
КонецФункции
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.bsl"
similarity index 98%
rename from "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.txt"
rename to "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.bsl"
index a1243e6f..ca495c24 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.bsl"
@@ -58,7 +58,8 @@
Если КонтейнерДочернегоКаталога.Строки.Количество() > 0 Тогда
КонтейнерКаталога.Строки.Добавить(КонтейнерДочернегоКаталога);
КонецЕсли;
- ИначеЕсли НРег(Файл.Расширение) = ".epf" Тогда
+ ИначеЕсли НРег(Файл.Расширение) = ".epf"
+ ИЛИ НРег(Файл.Расширение) = ".erf" Тогда
КонтейнерФайла = ЗагрузитьФайл(КонтекстЯдра, Файл);
Если ЗначениеЗаполнено(КонтейнерФайла) И КонтейнерФайла.Строки.Количество() > 0 Тогда
КонтейнерКаталога.Строки.Добавить(КонтейнерФайла);
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt"
index d55d2535..b22b49ed 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0 (29, 123)
+Form\Форма\Форма.bsl-->b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0 (29, 124)
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/renames.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/renames.txt"
index 016c7042..1803b0c8 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/renames.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/renames.txt"
@@ -1,5 +1,5 @@
47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0\info-->und\47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0\info
-47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0\text-->ObjectModule.txt
+47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0\text-->ObjectModule.bsl
b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4-->und\b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4
b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0-->und\b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0
copyinfo-->und\copyinfo
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0"
index 5707dc11..5033f4dc 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0"
@@ -85,7 +85,8 @@
Если КонтейнерДочернегоКаталога.Строки.Количество() > 0 Тогда
КонтейнерКаталога.Строки.Добавить(КонтейнерДочернегоКаталога);
КонецЕсли;
- ИначеЕсли НРег(Файл.Расширение) = "".epf"" Тогда
+ ИначеЕсли НРег(Файл.Расширение) = "".epf""
+ ИЛИ НРег(Файл.Расширение) = "".erf"" Тогда
КонтейнерФайла = ЗагрузитьФайл(КонтекстЯдра, Файл);
Если ЗначениеЗаполнено(КонтейнерФайла) И КонтейнерФайла.Строки.Количество() > 0 Тогда
КонтейнерКаталога.Строки.Добавить(КонтейнерФайла);
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions"
index 01eff009..f985d8f8 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions"
@@ -1 +1 @@
-{1,9,"",a73548cb-8b09-4339-8e65-5dafbc67e9ba,"versions",836f05f6-3716-4525-b8a7-88884cc8e1bf,"root",41c35924-0c56-4645-900c-4012d0cc1ecf,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4",e55900cb-dc21-430b-b801-929e89884b34,"d8b3f25c-4b0c-4bad-8a2e-f7cf4018a448",8e5cff37-ef98-4a5c-86dc-c11d1ac0dbe5,"version",a3e2635a-3df5-4011-9887-a2c5b784e886,"47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0",ae0ef434-0699-4a5f-a4a7-53a1fb8e84cc,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0",b70ab356-25f4-483e-948b-8db3c9344f08,"copyinfo",338ec1da-041e-4029-afcf-50abe78abc74}
\ No newline at end of file
+{1,9,"",c976b57c-a78d-4a15-88d2-bc1bfab6b0a5,"versions",4faab415-d1c3-49ca-bf2f-9a49d85c217e,"root",8e10878a-c30c-4f77-b2ea-8070a6c7061b,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4",e3f9aec2-f9af-459f-acdc-a5d857f5832d,"d8b3f25c-4b0c-4bad-8a2e-f7cf4018a448",5f22a51b-d89c-4cb5-a591-3b2c47646211,"version",52a1a5ee-fdbb-40b1-9449-47f637fa0871,"47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0",3f5e0575-79e6-4a48-ae14-4790b3824efd,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0",1b5a5666-3fb3-4b28-ab81-c87949865cd0,"copyinfo",4beb48c3-57cb-49a4-9a4c-01201dd22437}
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..1da1574e
--- /dev/null
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,374 @@
+&НаКлиенте
+Перем КэшПостроительДереваТестов;
+&НаКлиенте
+Перем ЗагружаемыйПуть;
+
+&НаКлиенте
+Перем КонтейнерТестов;
+&НаКлиенте
+Перем ТекущаяГруппа;
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+КонецПроцедуры
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Loader interface
+&НаКлиенте
+Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
+ ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
+ ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Отчет-тест (*.erf)|*.erf|Все файлы|*";
+ ДиалогВыбораТеста.МножественныйВыбор = Истина;
+ ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина;
+ ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть;
+
+ Результат = Новый ТекстовыйДокумент;
+ Если ДиалогВыбораТеста.Выбрать() Тогда
+ Для каждого ПолноеИмяФайла Из ДиалогВыбораТеста.ВыбранныеФайлы Цикл
+ Результат.ДобавитьСтроку(ПолноеИмяФайла);
+ КонецЦикла;
+ КонецЕсли;
+ Текст = Результат.ПолучитьТекст();
+
+ Возврат Лев(Текст, СтрДлина(Текст) - 1);
+КонецФункции
+
+&НаКлиенте
+Функция Загрузить(КонтекстЯдра, Путь) Экспорт
+
+ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов;
+
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ ДеревоТестов = Неопределено;
+ Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл
+ ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч));
+ ПроверитьКорректностьФайла(ФайлОбработки);
+
+ Если ДеревоТестов = Неопределено Тогда
+ ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь);
+ КонецЕсли;
+
+ КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки);
+
+ КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя);
+ КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки);
+ Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда
+ КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки);
+ КонецЕсли;
+ Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда
+ ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки);
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат ДеревоТестов;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
+ Перем Контекст;
+ Если ЭтоПутьККлиентскомуКонтексту(Путь) Тогда
+ Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь);
+ Иначе
+ Контекст = ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь);
+ КонецЕсли;
+
+ Возврат Контекст;
+КонецФункции
+// } Loader interface
+
+&НаКлиенте
+Функция ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь)
+ ПрефиксПутейСФормами = ПрефиксПутейСФормами();
+ ФайлОбработки = Новый Файл(Сред(Путь, СтрДлина(ПрефиксПутейСФормами) + 1));
+ ПроверитьКорректностьФайла(ФайлОбработки);
+ КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки);
+ Контекст = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма", , ЭтаФорма, Новый УникальныйИдентификатор);
+ Если ПеременнаяСодержитСвойство(Контекст, "ПутьКФайлуПолный") Тогда
+ Контекст.ПутьКФайлуПолный = ФайлОбработки.ПолноеИмя;
+ КонецЕсли;
+
+ Возврат Контекст;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь)
+ ФайлОбработки = Новый Файл(Путь);
+ ПроверитьКорректностьФайла(ФайлОбработки);
+ КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки);
+ Контекст = КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ФайлОбработки.ИмяБезРасширения);
+
+ Возврат Контекст;
+КонецФункции
+
+&НаКлиенте
+Процедура ПроверитьКорректностьФайла(Файл)
+ Если Не Файл.Существует() Тогда
+ ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">";
+ КонецЕсли;
+ Если Файл.ЭтоКаталог() Тогда
+ ВызватьИсключение "Передан каталог вместо файла <" + Файл.ПолноеИмя + ">";
+ КонецЕсли;
+КонецПроцедуры
+
+&НаСервере
+Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте)
+
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов");
+ ФайлОбработки = Новый Файл(ПолныйПутьКОбработкеНаКлиенте);
+ Контейнер = ЭтотОбъектНаСервере().ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки);
+
+ Возврат Контейнер;
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки)
+
+ ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = ".erf");
+
+ Если ЭтоФайлОтчета Тогда
+ ФормаОбработки = ПолучитьФорму("ВнешнийОтчет." + ФайлОбработки.ИмяБезРасширения + ".Форма");
+ Иначе
+ ФормаОбработки = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма");
+ КонецЕсли;
+
+ Попытка
+ Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки);
+ Исключение
+ ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда
+ ВызватьИсключение;
+ Иначе
+ Контейнер = ЗагрузитьТестыВСтаромФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки);
+ КонецЕсли;
+ КонецПопытки;
+
+ Возврат Контейнер;
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки)
+ ЗагружаемыйПуть = ФайлОбработки.ПолноеИмя;
+ КэшПостроительДереваТестов = ПостроительДереваТестов;
+ КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма);
+ ФормаОбработки.ЗаполнитьНаборТестов(ЭтаФорма);
+ Результат = КонтейнерТестов;
+ КонтейнерТестов = Неопределено;
+ ТекущаяГруппа = Неопределено;
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки)
+ ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов");
+
+ Возврат ЭтоНовыйФорматОбработки;
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузитьТестыВСтаромФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки)
+ Попытка
+ СписокТестов = ФормаОбработки.ПолучитьСписокТестов();
+ Исключение
+ Описание = ОписаниеОшибки();
+ Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда
+ ВызватьИсключение "Старый формат тестов в обработке тестов <"+ФайлОбработки.ПолноеИмя+">."+Символы.ПС+
+ "Метод ПолучитьСписокТестов сейчас не принимает параметров";
+ КонецЕсли;
+
+ Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда
+ ВызватьИсключение Описание;
+ КонецЕсли;
+ КонецПопытки;
+ СлучайныйПорядокВыполнения = Истина;
+ Попытка
+ СлучайныйПорядокВыполнения = ФормаОбработки.РазрешенСлучайныйПорядокВыполненияТестов();
+ Исключение
+ КонецПопытки;
+
+ ИмяКонтейнера = ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения;
+ Путь = ПрефиксПутейСФормами() + ФайлОбработки.ПолноеИмя;
+ Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения);
+ Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма;
+
+ Возврат Контейнер;
+КонецФункции
+
+&НаСервере
+Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина)
+
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина("ПостроительДереваТестов");
+ Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения);
+
+ Возврат Контейнер;
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоПутьККлиентскомуКонтексту(Путь)
+ ПрефиксПутейСФормами = ПрефиксПутейСФормами();
+ Результат = (Найти(Путь, ПрефиксПутейСФормами) = 1);
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Функция ПрефиксПутейСФормами()
+ Возврат "УпрФорма # ";
+КонецФункции
+
+// { API нового формата
+&НаКлиенте
+Процедура СлучайныйПорядокВыполнения() Экспорт
+ Если ЗначениеЗаполнено(КонтейнерТестов) Тогда
+ КонтейнерТестов.СлучайныйПорядокВыполнения = Истина;
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СтрогийПорядокВыполнения() Экспорт
+ Если ЗначениеЗаполнено(КонтейнерТестов) Тогда
+ КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь;
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт
+ ТекущаяГруппа = КэшПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, КэшПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Группа);
+ ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения;
+ КонтейнерТестов.Строки.Добавить(ТекущаяГруппа);
+КонецПроцедуры
+
+&НаКлиенте
+Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт
+ Элемент = КэшПостроительДереваТестов.СоздатьЭлемент(ПрефиксПутейСФормами() + ЗагружаемыйПуть, ИмяМетода, Представление);
+ Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда
+ Элемент.Параметры = Параметры;
+ КонецЕсли;
+ Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда
+ ТекущаяГруппа.Строки.Добавить(Элемент);
+ Иначе
+ КонтейнерТестов.Строки.Добавить(Элемент);
+ КонецЕсли;
+
+ Возврат Элемент;
+КонецФункции
+
+&НаКлиенте
+Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт
+ ВсеПараметры = Новый Массив;
+ ВсеПараметры.Добавить(Парам1);
+ ВсеПараметры.Добавить(Парам2);
+ ВсеПараметры.Добавить(Парам3);
+ ВсеПараметры.Добавить(Парам4);
+ ВсеПараметры.Добавить(Парам5);
+ ВсеПараметры.Добавить(Парам6);
+ ВсеПараметры.Добавить(Парам7);
+ ВсеПараметры.Добавить(Парам8);
+ ВсеПараметры.Добавить(Парам9);
+
+ ИндексСПоследнимПараметром = 0;
+ Для Сч = 0 По ВсеПараметры.ВГраница() Цикл
+ Индекс = ВсеПараметры.ВГраница() - Сч;
+ Если ВсеПараметры[Индекс] <> Неопределено Тогда
+ ИндексСПоследнимПараметром = Индекс;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ ПараметрыТеста = Новый Массив;
+ Для Сч = 0 По ИндексСПоследнимПараметром Цикл
+ ПараметрыТеста.Добавить(ВсеПараметры[Сч]);
+ КонецЦикла;
+
+ Возврат ПараметрыТеста;
+КонецФункции
+// } API нового формата
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+&НаКлиенте
+Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода)
+ Результат = Ложь;
+ Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0
+ ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда
+ Результат = Истина;
+ КонецЕсли;
+
+ Возврат Результат;
+КонецФункции
+// } Helpers
+
+// Универсальная функция для проверки наличия
+// свойств у значения любого типа данных
+// Переменные:
+// 1. Переменная - переменная любого типа,
+// для которой необходимо проверить наличие свойства
+// 2. ИмяСвойства - переменная типа "Строка",
+// содержащая искомое свойства
+//
+&НаКлиентеНаСервереБезКонтекста
+Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства)
+ // Инициализируем структуру для теста
+ // с ключом (значение переменной "ИмяСвойства")
+ // и значением произвольного GUID'а
+ GUIDПроверка = Новый УникальныйИдентификатор;
+ СтруктураПроверка = Новый Структура;
+ СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
+ // Заполняем созданную структуру из переданного
+ // значения переменной
+ ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
+ // Если значение для свойства структуры осталось
+ // NULL, то искомое свойство не найдено,
+ // и наоборот.
+ Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда
+ Возврат Ложь;
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+КонецФункции
+
+&НаСервере
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки");
+ Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 7485c980..00000000
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-&НаКлиенте
Перем КэшПостроительДереваТестов;
&НаКлиенте
Перем ЗагружаемыйПуть;
&НаКлиенте
Перем КонтейнерТестов;
&НаКлиенте
Перем ТекущаяГруппа;
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонецПроцедуры
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Loader interface
&НаКлиенте
Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Все файлы|*";
ДиалогВыбораТеста.МножественныйВыбор = Истина;
ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина;
ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть;
Результат = Новый ТекстовыйДокумент;
Если ДиалогВыбораТеста.Выбрать() Тогда
Для каждого ПолноеИмяФайла Из ДиалогВыбораТеста.ВыбранныеФайлы Цикл
Результат.ДобавитьСтроку(ПолноеИмяФайла);
КонецЦикла;
КонецЕсли;
Текст = Результат.ПолучитьТекст();
Возврат Лев(Текст, СтрДлина(Текст) - 1);
КонецФункции
&НаКлиенте
Функция Загрузить(КонтекстЯдра, Путь) Экспорт
ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
ДеревоТестов = Неопределено;
Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл
ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч));
ПроверитьКорректностьФайла(ФайлОбработки);
Если ДеревоТестов = Неопределено Тогда
ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь);
КонецЕсли;
КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки);
КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя);
КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки);
Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда
КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки);
КонецЕсли;
Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда
ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки);
КонецЕсли;
КонецЦикла;
Возврат ДеревоТестов;
КонецФункции
&НаКлиенте
Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
Перем Контекст;
Если ЭтоПутьККлиентскомуКонтексту(Путь) Тогда
Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь);
Иначе
Контекст = ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь);
КонецЕсли;
Возврат Контекст;
КонецФункции
// } Loader interface
&НаКлиенте
Функция ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь)
ПрефиксПутейСФормами = ПрефиксПутейСФормами();
ФайлОбработки = Новый Файл(Сред(Путь, СтрДлина(ПрефиксПутейСФормами) + 1));
ПроверитьКорректностьФайла(ФайлОбработки);
КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки);
Контекст = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма", , ЭтаФорма, Новый УникальныйИдентификатор);
Возврат Контекст;
КонецФункции
&НаКлиенте
Функция ПолучитьСерверныйКонтекст(КонтекстЯдра, Путь)
ФайлОбработки = Новый Файл(Путь);
ПроверитьКорректностьФайла(ФайлОбработки);
КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки);
Контекст = КонтекстЯдра.ПолучитьОписаниеКонтекстаВыполнения(ФайлОбработки.ИмяБезРасширения);
Возврат Контекст;
КонецФункции
&НаКлиенте
Процедура ПроверитьКорректностьФайла(Файл)
Если Не Файл.Существует() Тогда
ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">";
КонецЕсли;
Если Файл.ЭтоКаталог() Тогда
ВызватьИсключение "Передан каталог вместо файла <" + Файл.ПолноеИмя + ">";
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте)
ПостроительДереваТестов = ВнешниеОбработки.Создать("ПостроительДереваТестов", Ложь);
ФайлОбработки = Новый Файл(ПолныйПутьКОбработкеНаКлиенте);
Контейнер = ЭтотОбъектНаСервере().ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки);
Возврат Контейнер;
КонецФункции
&НаКлиенте
Функция ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки)
ФормаОбработки = ПолучитьФорму("ВнешняяОбработка." + ФайлОбработки.ИмяБезРасширения + ".Форма");
Попытка
Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки);
Исключение
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Если ЭтоНовыйФорматОбработки(ТекстОшибки) Тогда
ВызватьИсключение;
Иначе
Контейнер = ЗагрузитьТестыВСтаромФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки);
КонецЕсли;
КонецПопытки;
Возврат Контейнер;
КонецФункции
&НаКлиенте
Функция ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки)
ЗагружаемыйПуть = ФайлОбработки.ПолноеИмя;
КэшПостроительДереваТестов = ПостроительДереваТестов;
КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения, ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма);
ФормаОбработки.ЗаполнитьНаборТестов(ЭтаФорма);
Результат = КонтейнерТестов;
КонтейнерТестов = Неопределено;
ТекущаяГруппа = Неопределено;
Возврат Результат;
КонецФункции
&НаКлиенте
Функция ЭтоНовыйФорматОбработки(Знач ТекстОшибки)
ЭтоНовыйФорматОбработки = Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, "ЗаполнитьНаборТестов");
Возврат ЭтоНовыйФорматОбработки;
КонецФункции
&НаКлиенте
Функция ЗагрузитьТестыВСтаромФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки)
Попытка
СписокТестов = ФормаОбработки.ПолучитьСписокТестов();
Исключение
Описание = ОписаниеОшибки();
Если Найти(Описание, "Недостаточно фактических параметров") > 0 Тогда
ВызватьИсключение "Старый формат тестов в обработке тестов <"+ФайлОбработки.ПолноеИмя+">."+Символы.ПС+
"Метод ПолучитьСписокТестов сейчас не принимает параметров";
КонецЕсли;
Если Найти(Описание, "Метод объекта не обнаружен (ПолучитьСписокТестов)") = 0 Тогда
ВызватьИсключение Описание;
КонецЕсли;
КонецПопытки;
СлучайныйПорядокВыполнения = Истина;
Попытка
СлучайныйПорядокВыполнения = ФормаОбработки.РазрешенСлучайныйПорядокВыполненияТестов();
Исключение
КонецПопытки;
Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения, ПрефиксПутейСФормами() + ФайлОбработки.ПолноеИмя, СлучайныйПорядокВыполнения);
Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма;
Возврат Контейнер;
КонецФункции
&НаСервере
Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина)
ПостроительДереваТестов = ВнешниеОбработки.Создать("ПостроительДереваТестов", Ложь);
Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения);
Возврат Контейнер;
КонецФункции
&НаКлиенте
Функция ЭтоПутьККлиентскомуКонтексту(Путь)
ПрефиксПутейСФормами = ПрефиксПутейСФормами();
Результат = (Найти(Путь, ПрефиксПутейСФормами) = 1);
Возврат Результат;
КонецФункции
&НаКлиенте
Функция ПрефиксПутейСФормами()
Возврат "УпрФорма # ";
КонецФункции
// { API нового формата
&НаКлиенте
Процедура СлучайныйПорядокВыполнения() Экспорт
Если ЗначениеЗаполнено(КонтейнерТестов) Тогда
КонтейнерТестов.СлучайныйПорядокВыполнения = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СтрогийПорядокВыполнения() Экспорт
Если ЗначениеЗаполнено(КонтейнерТестов) Тогда
КонтейнерТестов.СлучайныйПорядокВыполнения = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачатьГруппу(Знач ИмяГруппы, Знач СтрогийПорядокВыполнения = Ложь) Экспорт
ТекущаяГруппа = КэшПостроительДереваТестов.СоздатьКонтейнер(ИмяГруппы, КэшПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Группа);
ТекущаяГруппа.СлучайныйПорядокВыполнения = Не СтрогийПорядокВыполнения;
КонтейнерТестов.Строки.Добавить(ТекущаяГруппа);
КонецПроцедуры
&НаКлиенте
Функция Добавить(Знач ИмяМетода, Знач Параметры = Неопределено, Знач Представление = "") Экспорт
Элемент = КэшПостроительДереваТестов.СоздатьЭлемент(ПрефиксПутейСФормами() + ЗагружаемыйПуть, ИмяМетода, Представление);
Если ЗначениеЗаполнено(Параметры) И ТипЗнч(Параметры) = Тип("Массив") Тогда
Элемент.Параметры = Параметры;
КонецЕсли;
Если ЗначениеЗаполнено(ТекущаяГруппа) Тогда
ТекущаяГруппа.Строки.Добавить(Элемент);
Иначе
КонтейнерТестов.Строки.Добавить(Элемент);
КонецЕсли;
Возврат Элемент;
КонецФункции
&НаКлиенте
Функция ПараметрыТеста(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт
ВсеПараметры = Новый Массив;
ВсеПараметры.Добавить(Парам1);
ВсеПараметры.Добавить(Парам2);
ВсеПараметры.Добавить(Парам3);
ВсеПараметры.Добавить(Парам4);
ВсеПараметры.Добавить(Парам5);
ВсеПараметры.Добавить(Парам6);
ВсеПараметры.Добавить(Парам7);
ВсеПараметры.Добавить(Парам8);
ВсеПараметры.Добавить(Парам9);
ИндексСПоследнимПараметром = 0;
Для Сч = 0 По ВсеПараметры.ВГраница() Цикл
Индекс = ВсеПараметры.ВГраница() - Сч;
Если ВсеПараметры[Индекс] <> Неопределено Тогда
ИндексСПоследнимПараметром = Индекс;
Прервать;
КонецЕсли;
КонецЦикла;
ПараметрыТеста = Новый Массив;
Для Сч = 0 По ИндексСПоследнимПараметром Цикл
ПараметрыТеста.Добавить(ВсеПараметры[Сч]);
КонецЦикла;
Возврат ПараметрыТеста;
КонецФункции
// } API нового формата
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
&НаКлиенте
Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода)
Результат = Ложь;
Если Найти(текстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0
ИЛИ Найти(текстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.bsl"
similarity index 89%
rename from "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.txt"
rename to "src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.bsl"
index fa4ad593..6bbc206d 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.bsl"
@@ -23,7 +23,7 @@
#Если ТолстыйКлиентОбычноеПриложение Тогда
Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
- ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Все файлы|*";
+ ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Отчет-тест (*.erf)|*.erf|Все файлы|*";
ДиалогВыбораТеста.МножественныйВыбор = Истина;
ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина;
ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть;
@@ -45,7 +45,6 @@
ДеревоТестов = Неопределено;
Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл
ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч));
- ПроверитьКорректностьФайла(ФайлОбработки);
Если ДеревоТестов = Неопределено Тогда
ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь);
@@ -62,14 +61,36 @@
Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
ФайлОбработки = Новый Файл(Путь);
- ПроверитьКорректностьФайла(ФайлОбработки);
- Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь);
+ Обработка = ПолучитьКонтекстОбработки(ФайлОбработки);
Возврат Обработка;
КонецФункции
// } Loader interface
+Функция ПолучитьКонтекстОбработки(ФайлОбработки)
+
+ ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = ".erf");
+
+ Попытка
+ Если ЭтоФайлОтчета Тогда
+ Обработка = ВнешниеОтчеты.Создать(ФайлОбработки.ИмяБезРасширения, Ложь);
+ Иначе
+ Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ИмяБезРасширения, Ложь);
+ КонецЕсли;
+ Исключение
+ ПроверитьКорректностьФайла(ФайлОбработки);
+
+ Если ЭтоФайлОтчета Тогда
+ Обработка = ВнешниеОтчеты.Создать(ФайлОбработки.ПолноеИмя, Ложь);
+ Иначе
+ Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь);
+ КонецЕсли;
+ КонецПопытки;
+ Возврат Обработка;
+
+КонецФункции
+
Процедура ПроверитьКорректностьФайла(Файл)
Если Не Файл.Существует() Тогда
ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">";
@@ -80,7 +101,7 @@
КонецПроцедуры
Функция ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки) Экспорт
- Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь);
+ Обработка = ПолучитьКонтекстОбработки(ФайлОбработки);
Попытка
Контейнер = ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, ФайлОбработки);
Исключение
@@ -98,7 +119,12 @@
Функция ЗагрузитьТестыВНовомФормате(ПостроительДереваТестов, Обработка, ФайлОбработки)
ЗагружаемыйПуть = ФайлОбработки.ПолноеИмя;
КэшПостроительДереваТестов = ПостроительДереваТестов;
- КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.ИмяБезРасширения, ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка);
+ Если НРег(ФайлОбработки.Расширение) = ".erf" Тогда
+ ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Отчет;
+ Иначе
+ ИконкаУзла = ПостроительДереваТестов.ИконкиУзловДереваТестов.Обработка;
+ КонецЕсли;
+ КонтейнерТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.ИмяБезРасширения, ИконкаУзла);
Обработка.ЗаполнитьНаборТестов(ЭтотОбъект);
Результат = КонтейнерТестов;
КонтейнерТестов = Неопределено;
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt"
index a0d4b300..0815d097 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 325)
+Form\Форма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 403)
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
index 3c0c8e26..4d07c6f4 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
@@ -3,7 +3,7 @@ copyinfo-->und\copyinfo
d75f146d-5027-4604-80fd-3b704ddd86a8-->und\d75f146d-5027-4604-80fd-3b704ddd86a8
d75f146d-5027-4604-80fd-3b704ddd86a8.0-->und\d75f146d-5027-4604-80fd-3b704ddd86a8.0
dfe532e1-d0ef-4008-afd4-214781ee4960.0\info-->und\dfe532e1-d0ef-4008-afd4-214781ee4960.0\info
-dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.txt
+dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0"
index 27983413..bbf5830b 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0"
@@ -56,7 +56,7 @@
&НаКлиенте
Функция ВыбратьПутьИнтерактивно(ТекущийПуть = """") Экспорт
ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
- ДиалогВыбораТеста.Фильтр = ""Обработка-тест (*.epf)|*.epf|Все файлы|*"";
+ ДиалогВыбораТеста.Фильтр = ""Обработка-тест (*.epf)|*.epf|Отчет-тест (*.erf)|*.erf|Все файлы|*"";
ДиалогВыбораТеста.МножественныйВыбор = Истина;
ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина;
ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть;
@@ -74,6 +74,9 @@
&НаКлиенте
Функция Загрузить(КонтекстЯдра, Путь) Экспорт
+
+ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов;
+
ПостроительДереваТестов = КонтекстЯдра.Плагин(""ПостроительДереваТестов"");
ДеревоТестов = Неопределено;
Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл
@@ -119,6 +122,9 @@
ПроверитьКорректностьФайла(ФайлОбработки);
КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки);
Контекст = ПолучитьФорму(""ВнешняяОбработка."" + ФайлОбработки.ИмяБезРасширения + "".Форма"", , ЭтаФорма, Новый УникальныйИдентификатор);
+ Если ПеременнаяСодержитСвойство(Контекст, ""ПутьКФайлуПолный"") Тогда
+ Контекст.ПутьКФайлуПолный = ФайлОбработки.ПолноеИмя;
+ КонецЕсли;
Возврат Контекст;
КонецФункции
@@ -145,7 +151,10 @@
&НаСервере
Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте)
- ПостроительДереваТестов = ВнешниеОбработки.Создать(""ПостроительДереваТестов"", Ложь);
+
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина(""ПостроительДереваТестов"");
ФайлОбработки = Новый Файл(ПолныйПутьКОбработкеНаКлиенте);
Контейнер = ЭтотОбъектНаСервере().ЗагрузитьФайл(ПостроительДереваТестов, ФайлОбработки);
@@ -154,7 +163,15 @@
&НаКлиенте
Функция ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки)
- ФормаОбработки = ПолучитьФорму(""ВнешняяОбработка."" + ФайлОбработки.ИмяБезРасширения + "".Форма"");
+
+ ЭтоФайлОтчета = (НРег(ФайлОбработки.Расширение) = "".erf"");
+
+ Если ЭтоФайлОтчета Тогда
+ ФормаОбработки = ПолучитьФорму(""ВнешнийОтчет."" + ФайлОбработки.ИмяБезРасширения + "".Форма"");
+ Иначе
+ ФормаОбработки = ПолучитьФорму(""ВнешняяОбработка."" + ФайлОбработки.ИмяБезРасширения + "".Форма"");
+ КонецЕсли;
+
Попытка
Контейнер = ЗагрузитьТестыВНовомФормате_НаКлиенте(ПостроительДереваТестов, ФормаОбработки, ФайлОбработки);
Исключение
@@ -210,7 +227,9 @@
Исключение
КонецПопытки;
- Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения, ПрефиксПутейСФормами() + ФайлОбработки.ПолноеИмя, СлучайныйПорядокВыполнения);
+ ИмяКонтейнера = ПрефиксПутейСФормами() + ФайлОбработки.ИмяБезРасширения;
+ Путь = ПрефиксПутейСФормами() + ФайлОбработки.ПолноеИмя;
+ Контейнер = ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения);
Контейнер.ИконкаУзла = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов.Форма;
Возврат Контейнер;
@@ -218,7 +237,10 @@
&НаСервере
Функция ПолучитьКонтейнерДереваТестовПоСпискуТестовНаСервере(СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения = Истина)
- ПостроительДереваТестов = ВнешниеОбработки.Создать(""ПостроительДереваТестов"", Ложь);
+
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ ПостроительДереваТестов = КонтекстЯдра.СоздатьОбъектПлагина(""ПостроительДереваТестов"");
Контейнер = ЭтотОбъектНаСервере().ПолучитьКонтейнерДереваТестовПоСпискуТестов(ПостроительДереваТестов, СписокТестов, ИмяКонтейнера, Путь, СлучайныйПорядокВыполнения);
Возврат Контейнер;
@@ -322,8 +344,64 @@
Возврат Результат;
КонецФункции
// } Helpers
+
+// Универсальная функция для проверки наличия
+// свойств у значения любого типа данных
+// Переменные:
+// 1. Переменная - переменная любого типа,
+// для которой необходимо проверить наличие свойства
+// 2. ИмяСвойства - переменная типа ""Строка"",
+// содержащая искомое свойства
+//
+&НаКлиентеНаСервереБезКонтекста
+Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства)
+ // Инициализируем структуру для теста
+ // с ключом (значение переменной ""ИмяСвойства"")
+ // и значением произвольного GUID'а
+ GUIDПроверка = Новый УникальныйИдентификатор;
+ СтруктураПроверка = Новый Структура;
+ СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
+ // Заполняем созданную структуру из переданного
+ // значения переменной
+ ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
+ // Если значение для свойства структуры осталось
+ // NULL, то искомое свойство не найдено,
+ // и наоборот.
+ Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда
+ Возврат Ложь;
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+КонецФункции
+
+&НаСервере
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, ""Обработка"", ""Обработки"");
+ Выполнить(""КонтекстЯдра = "" + ИмяОбработкиКонекстаЯдра + "".Создать()"");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, ""ВнешняяОбработка"", ""ВнешниеОбработки"");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ""."", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить(""КонтекстЯдра = "" + МенеджерОбъектов + "".Создать(""""""+ИмяОбъекта+"""""")"");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
",
-{4,1,
+{4,2,
{9,
{1},0,"Объект",
{1,0},
@@ -342,6 +420,27 @@
{0,0},1,0,0,0,
{0,0},
{0,0}
+},
+{9,
+{2},0,"ПолноеИмяБраузераТестов",
+{1,1,
+{"ru","Полное имя браузера тестов"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
},0,0,
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
index 46a4b792..5a81c3d5 100644
--- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
+++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
@@ -1 +1 @@
-{1,9,"",dedbd9a9-89c6-4bc2-9d82-4eae3a0a43ee,"versions",cddd11fd-4a9b-4f80-8f9b-e1b1ed267a5e,"root",6bdf644e-702d-4576-bbc6-0d51015572e4,"51efd65a-ed36-4be7-a563-89b34ebfa851",35002c5e-f7aa-4b6d-9dc3-17d0c16ff4d2,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",5161140a-66e8-4c0c-a059-74bd58c2ad51,"d75f146d-5027-4604-80fd-3b704ddd86a8",c08777aa-27bb-481a-a96a-e161a273ef4f,"version",009aad49-2f04-4edb-bd30-2677e65f466f,"copyinfo",30bfa618-1fff-4aa2-a454-7351653b2719,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",6cb5e7d6-e58d-4645-8c55-10591d225047}
\ No newline at end of file
+{1,9,"",599d7500-b04b-455f-afbf-f5aebcac7cfd,"versions",4ddcf7d6-e62e-4151-aa57-ceaa252a33fe,"root",b0d0b048-53ba-4b02-aaf7-b12d801f8fab,"51efd65a-ed36-4be7-a563-89b34ebfa851",509e5c47-75ea-412a-a898-505ee928e721,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",8034b5ad-0627-4645-a476-9cfaa0720799,"d75f146d-5027-4604-80fd-3b704ddd86a8",9c78f44b-2768-40ba-b424-404384d058a4,"version",c2985c6b-6411-4798-8f0f-0c93866c0dd3,"copyinfo",fbd38334-beaf-4449-a806-d5bc44cca36a,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",50571a90-9665-4f15-88ec-be723f93edab}
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..c8ecf289
--- /dev/null
+++ "b/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,19 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 9d226060..00000000
--- "a/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/ObjectModule.txt" "b/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/ObjectModule.bsl"
similarity index 100%
rename from "src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/ObjectModule.txt"
rename to "src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/ObjectModule.bsl"
diff --git "a/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/maps.txt" "b/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/maps.txt"
index 4962a47e..4ba753df 100644
--- "a/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/maps.txt"
+++ "b/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 48)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 48)
diff --git "a/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/renames.txt" "b/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/renames.txt"
index 31723e1f..f90a2039 100644
--- "a/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/renames.txt"
+++ "b/src/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..c8ecf289
--- /dev/null
+++ "b/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,19 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 9d226060..00000000
--- "a/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/ObjectModule.txt" "b/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/ObjectModule.bsl"
similarity index 100%
rename from "src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/ObjectModule.txt"
rename to "src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/ObjectModule.bsl"
diff --git "a/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/maps.txt" "b/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/maps.txt"
index 4962a47e..4ba753df 100644
--- "a/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/maps.txt"
+++ "b/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 48)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 48)
diff --git "a/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/renames.txt" "b/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/renames.txt"
index 31723e1f..f90a2039 100644
--- "a/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/renames.txt"
+++ "b/src/Plugins/\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\244\320\260\320\271\320\273/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..dc9c9f50
--- /dev/null
+++ "b/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,29 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+&НаКлиенте
+Функция Разобрать(СтрокаПараметров) Экспорт
+ Возврат РазобратьНаСервере(СтрокаПараметров);
+КонецФункции
+
+&НаСервере
+Функция РазобратьНаСервере(СтрокаПараметров)
+ Возврат ЭтотОбъектНаСервере().Разобрать(СтрокаПараметров);
+КонецФункции
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index a1934d86..00000000
--- "a/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
&НаКлиенте
Функция Разобрать(СтрокаПараметров) Экспорт
Возврат РазобратьНаСервере(СтрокаПараметров);
КонецФункции
&НаСервере
Функция РазобратьНаСервере(СтрокаПараметров)
Возврат ЭтотОбъектНаСервере().Разобрать(СтрокаПараметров);
КонецФункции
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/ObjectModule.txt" "b/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/ObjectModule.bsl"
similarity index 100%
rename from "src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/ObjectModule.txt"
rename to "src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/ObjectModule.bsl"
diff --git "a/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/maps.txt" "b/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/maps.txt"
index 69ef73b7..c56d31a1 100644
--- "a/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/maps.txt"
+++ "b/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 58)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 58)
diff --git "a/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/renames.txt" "b/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/renames.txt"
index 31723e1f..f90a2039 100644
--- "a/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/renames.txt"
+++ "b/src/Plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..3be6f296
--- /dev/null
+++ "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,39 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+&НаКлиенте
+Функция СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла = Неопределено) Экспорт
+ Возврат СоздатьКонтейнерНаСервере(ИмяКонтейнера, ИконкаУзла);
+КонецФункции
+
+&НаСервере
+Функция СоздатьКонтейнерНаСервере(ИмяКонтейнера, ИконкаУзла)
+ Возврат ЭтотОбъектНаСервере().СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла);
+КонецФункции
+
+&НаКлиенте
+Функция СоздатьЭлемент(Путь, ИмяМетода, Представление = "", ИконкаУзла = Неопределено) Экспорт
+ Возврат СоздатьЭлементНаСервере(Путь, ИмяМетода, Представление, ИконкаУзла);
+КонецФункции
+
+&НаСервере
+Функция СоздатьЭлементНаСервере(Путь, ИмяМетода, Представление, ИконкаУзла)
+ Возврат ЭтотОбъектНаСервере().СоздатьЭлемент(Путь, ИмяМетода, Представление, ИконкаУзла);
+КонецФункции
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 05b8ea61..00000000
--- "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
&НаКлиенте
Функция СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла = Неопределено) Экспорт
Возврат СоздатьКонтейнерНаСервере(ИмяКонтейнера, ИконкаУзла);
КонецФункции
&НаСервере
Функция СоздатьКонтейнерНаСервере(ИмяКонтейнера, ИконкаУзла)
Возврат ЭтотОбъектНаСервере().СоздатьКонтейнер(ИмяКонтейнера, ИконкаУзла);
КонецФункции
&НаКлиенте
Функция СоздатьЭлемент(Путь, ИмяМетода, Представление = "", ИконкаУзла = Неопределено) Экспорт
Возврат СоздатьЭлементНаСервере(Путь, ИмяМетода, Представление, ИконкаУзла);
КонецФункции
&НаСервере
Функция СоздатьЭлементНаСервере(Путь, ИмяМетода, Представление, ИконкаУзла)
Возврат ЭтотОбъектНаСервере().СоздатьЭлемент(Путь, ИмяМетода, Представление, ИконкаУзла);
КонецФункции
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.txt" "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.bsl"
similarity index 98%
rename from "src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.txt"
rename to "src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.bsl"
index 89a3fa45..377977a4 100644
--- "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.txt"
+++ "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.bsl"
@@ -28,6 +28,7 @@
Результат.Вставить("Форма", 4);
Результат.Вставить("ФункцияНаФорме", 5);
Результат.Вставить("Группа", 6);
+ Результат.Вставить("Отчет", 7);
Возврат Новый ФиксированнаяСтруктура(Результат);
КонецФункции
diff --git "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt" "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt"
index 92a28969..7f491ee3 100644
--- "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt"
+++ "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->6b075fcb-982d-4834-be17-5c2ec6964f8f.0 (29, 67)
+Form\Форма\Форма.bsl-->6b075fcb-982d-4834-be17-5c2ec6964f8f.0 (29, 67)
diff --git "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt" "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
index c51c4330..55b22a49 100644
--- "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
+++ "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
@@ -1,5 +1,5 @@
0cccd541-8b75-44da-b850-b0a7254eb4e4.0\info-->und\0cccd541-8b75-44da-b850-b0a7254eb4e4.0\info
-0cccd541-8b75-44da-b850-b0a7254eb4e4.0\text-->ObjectModule.txt
+0cccd541-8b75-44da-b850-b0a7254eb4e4.0\text-->ObjectModule.bsl
6b075fcb-982d-4834-be17-5c2ec6964f8f-->und\6b075fcb-982d-4834-be17-5c2ec6964f8f
6b075fcb-982d-4834-be17-5c2ec6964f8f.0-->und\6b075fcb-982d-4834-be17-5c2ec6964f8f.0
8c7dc67a-399f-441c-8acd-6bcdf2539678-->und\8c7dc67a-399f-441c-8acd-6bcdf2539678
diff --git "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/und/versions" "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/und/versions"
index 26b0576e..d989ff4f 100644
--- "a/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/und/versions"
+++ "b/src/Plugins/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\224\320\265\321\200\320\265\320\262\320\260\320\242\320\265\321\201\321\202\320\276\320\262/und/versions"
@@ -1 +1 @@
-{1,9,"",3b125b56-6aae-431e-9d9a-87a62e8b48c4,"versions",501fe1bc-096f-4cba-9f77-779c66ced61e,"root",7efe0f08-77b4-4643-8d43-d5b298e53b18,"6b075fcb-982d-4834-be17-5c2ec6964f8f.0",deb2355e-ce7c-443d-adb4-908fef0bb7b4,"8c7dc67a-399f-441c-8acd-6bcdf2539678",d6f02e6d-e1ee-43d9-ac72-d983331b0a8c,"0cccd541-8b75-44da-b850-b0a7254eb4e4.0",69568088-7dc2-4ec9-b16f-46fed7412d44,"version",c137f9e2-d960-4745-bac2-bb12706c112b,"copyinfo",143599d0-39f2-4391-808f-48d257b7a85b,"6b075fcb-982d-4834-be17-5c2ec6964f8f",578da219-d94c-4646-adaa-902144304331}
\ No newline at end of file
+{1,9,"",d8ec4fd3-4a66-4c93-86b0-f2f581bfde43,"versions",4e3220d9-657c-47c6-803d-723896eb6c50,"root",a7b2dbaf-7bdb-463f-9156-f47b0934c90a,"6b075fcb-982d-4834-be17-5c2ec6964f8f.0",7309732a-3d4f-47b6-a266-31c22df78c84,"8c7dc67a-399f-441c-8acd-6bcdf2539678",9dc10e03-c2e3-4f97-b7ea-32e6fc4f9cb8,"0cccd541-8b75-44da-b850-b0a7254eb4e4.0",890df57b-36aa-49ff-bb65-d287e164e05a,"version",0bd54340-9f04-4cac-8c04-d1254bff24f4,"copyinfo",39f26e11-d9ea-4757-935a-55c2cb3c4e20,"6b075fcb-982d-4834-be17-5c2ec6964f8f",04a593a2-a479-43f5-af6c-68a60e00757c}
\ No newline at end of file
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..67f7cc2c
--- /dev/null
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,484 @@
+
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат Объект().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Методы генерации тестовых данных
+
+&НаКлиенте
+Функция СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения = Неопределено, ИмяКолонкиЗамещения = Неопределено) Экспорт
+ Данные = СоздатьДанныеПоТабличномуДокументуСервер(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения);
+ Возврат Данные;
+КонецФункции
+
+&НаСервере
+Функция СоздатьДанныеПоТабличномуДокументуСервер(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения)
+ Данные = Объект().СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения);
+ Возврат Неопределено; //Данные;
+КонецФункции
+//}
+
+////////////////////////////////////////////////////////////////////////////////
+// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ШАПКИ ФОРМЫ
+
+////////////////////////////////////////////////////////////////////////////////
+// ОБРАБОТЧИКИ СОБЫТИЙ ТАБЛИЦЫ ФОРМЫ ТаблицаДанных
+
+&НаКлиенте
+Процедура ТаблицаДанныхСсылкаПриИзменении(Элемент)
+ ТаблицаДанныхСсылкаПриИзмененииСервер(Элементы.ТаблицаДанных.ТекущаяСтрока);
+КонецПроцедуры
+
+////////////////////////////////////////////////////////////////////////////////
+// ОБРАБОТЧИКИ КОМАНД ФОРМЫ
+
+&НаКлиенте
+Процедура СоздатьМакетДанных(Команда)
+ ПанельИсточников = Элементы.ГруппаСтраницы;
+ Если ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаМетаданные Тогда
+ КоманднаяПанель1СоздатьМакетДанныхПоМетаданным();
+ ИначеЕсли ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаТаблицаДанных Тогда
+ КоманднаяПанель1СоздатьМакетДанныхПоТаблицеДанных();
+ ИначеЕсли ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаПользователиИБ Тогда
+ КоманднаяПанель1СоздатьМакетДанныхДляПользователейИБ();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КоманднаяПанель1СоздатьМакетДанныхПоТаблицеДанных()
+ Если ПроверитьЗаполнение() Тогда
+ НовыйМакет = СоздатьМакетДанныхПоТаблицеДанныхСервер();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КоманднаяПанель1СоздатьМакетДанныхПоМетаданным()
+
+ СохранитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
+ НовыйМакет = СоздатьМакетДанныхПоМетаданнымСервер();
+ ВосстановитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КоманднаяПанель1СоздатьМакетДанныхДляПользователейИБ()
+
+ МассивИменПользователей = Новый Массив;
+ Для Каждого ИдентификаторСтроки Из Элементы.ПользователиИнфБазы.ВыделенныеСтроки Цикл
+ Строка = Объект.ПользователиИБ.НайтиПоИдентификатору(ИдентификаторСтроки);
+ МассивИменПользователей.Добавить(Строка.Имя);
+ КонецЦикла;
+ НовыйМакет = СоздатьМакетДанныхПоПользователямИБСервер(МассивИменПользователей);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПротестироватьЗагрузкуМакета(Команда)
+ ПроверитьЗагрузкуМакетаСервер(Макет);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СохранитьМакетДанныхВФайл(Команда)
+ ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
+ ДиалогВыбораФайла.ПолноеИмяФайла = "";
+ ДиалогВыбораФайла.Фильтр = "Табличный документ (*.mxl)|*.mxl|Все файлы (*.*)|*.*";
+ ДиалогВыбораФайла.Заголовок = "Выберите файл";
+ Если Не ДиалогВыбораФайла.Выбрать() Тогда
+ Возврат;
+ КонецЕсли;
+
+ Макет.Записать(ДиалогВыбораФайла.ПолноеИмяФайла);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОчиститьТаблицуДанных(Команда)
+ Объект.ТаблицаДанных.Очистить();
+КонецПроцедуры
+
+////////////////////////////////////////////////////////////////////////////////
+// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
+
+&НаСервере
+Функция Объект()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+&НаСервере
+Процедура ТаблицаДанныхСсылкаПриИзмененииСервер(ИдентификаторСтрокиДанных)
+ ЭлементДанных = Объект.ТаблицаДанных.НайтиПоИдентификатору(ИдентификаторСтрокиДанных);
+ Объект().ПриИзмененииСсылки(ЭлементДанных);
+КонецПроцедуры
+
+&НаСервере
+Функция СоздатьМакетДанныхПоТаблицеДанныхСервер()
+ Возврат Объект().СоздатьМакетДанныхПоТаблицеДанных(Макет);
+КонецФункции
+
+&НаСервере
+Функция СоздатьМакетДанныхПоМетаданнымСервер()
+
+ ОбъектНаСервере = Объект();
+ ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере);
+ НовыйМакет = ОбъектНаСервере.СоздатьМакетДанныхПоМетаданным(Макет);
+ ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
+
+ Возврат НовыйМакет;
+
+КонецФункции
+
+Функция СоздатьМакетДанныхПоПользователямИБСервер(МассивИменПользователей)
+ Возврат Объект().СоздатьМакетДанныхПоПользователямИБ(Макет, МассивИменПользователей);
+КонецФункции
+
+&НаСервере
+Процедура ПроверитьЗагрузкуМакетаСервер(ТабличныйДокумент)
+ Объект().ПроверитьЗагрузкуМакета(ТабличныйДокумент);
+КонецПроцедуры
+
+
+
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ ОбъектНаСервере = Объект();
+ ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы();
+
+ ОбъектНаСервере.НачальнаяИнициализация();
+ ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
+ ЗначениеВРеквизитФормы(ОбъектНаСервере.ПользователиИБ, "Объект.ПользователиИБ");
+
+ ОбъектНаСервере.СписокВыбора_РежимПоиска(Элементы.ТаблицаДанныхРежимПоиска.СписокВыбора);
+ ОбъектНаСервере.СписокВыбора_РежимСоздания(Элементы.ТаблицаДанныхРежимСоздания.СписокВыбора);
+
+ Объект.ВыгружатьСсылку = Истина;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПересчитатьВыгружаемыеПоСсылке(Команда)
+
+ Состояние(Нстр("ru = 'Выполняется поиск объектов метаданных, которые могут быть выгружены по ссылкам...'"));
+ СохранитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
+ ПересчитатьВыгружаемыеПоСсылкеНаСервере();
+ ВосстановитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СохранитьОтображениеДерева(СтрокиДерева)
+
+ Для Каждого Строка Из СтрокиДерева Цикл
+
+ ИдентификаторСтроки=Строка.ПолучитьИдентификатор();
+ Строка.Развернут = Элементы.ДеревоМетаданных.Развернут(ИдентификаторСтроки);
+
+ СохранитьОтображениеДерева(Строка.ПолучитьЭлементы());
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ВосстановитьОтображениеДерева(СтрокиДерева)
+
+ Для Каждого Строка Из СтрокиДерева Цикл
+
+ ИдентификаторСтроки=Строка.ПолучитьИдентификатор();
+ Если Строка.Развернут Тогда
+ Элементы.ДеревоМетаданных.Развернуть(ИдентификаторСтроки);
+ КонецЕсли;
+
+ ВосстановитьОтображениеДерева(Строка.ПолучитьЭлементы());
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПересчитатьВыгружаемыеПоСсылкеНаСервере()
+
+ ОбъектНаСервере = Объект();
+ ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере);
+ ОбъектНаСервере.СоставВыгрузки(Истина);
+ ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере)
+
+ ДеревоМетаданных = РеквизитФормыВЗначение("Объект.ДеревоМетаданных");
+
+ ОбъектНаСервере.НачальнаяИнициализация();
+
+ ПроставитьПометкиВыгружаемыхДанных(ОбъектНаСервере.ДеревоМетаданных.Строки, ДеревоМетаданных.Строки);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПроставитьПометкиВыгружаемыхДанных(СтрокиИсходногоДерева, СтрокиЗаменяемогоДерева)
+
+ КолонкаВыгружать = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("Выгружать");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаВыгружать, "Выгружать");
+
+ КолонкаВыгружатьПриНеобходимости = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("ВыгружатьПриНеобходимости");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаВыгружатьПриНеобходимости, "ВыгружатьПриНеобходимости");
+
+ КолонкаРазвернут = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("Развернут");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаРазвернут, "Развернут");
+
+ КолонкаНастройкиКомпоновщика = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("НастройкиКомпоновщика");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаНастройкиКомпоновщика, "НастройкиКомпоновщика");
+
+ КолонкаИспользоватьОтбор = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("ИспользоватьОтбор");
+ СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаИспользоватьОтбор, "ИспользоватьОтбор");
+
+ Для Каждого СтрокаИсходногоДерева Из СтрокиИсходногоДерева Цикл
+
+ ИндексСтроки = СтрокиИсходногоДерева.Индекс(СтрокаИсходногоДерева);
+ СтрокаИзменяемогоДерева = СтрокиЗаменяемогоДерева.Получить(ИндексСтроки);
+
+ ПроставитьПометкиВыгружаемыхДанных(СтрокаИсходногоДерева.Строки, СтрокаИзменяемогоДерева.Строки);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+////////////////////////////////////////////////////////////////////////////////
+// ОБРАБОТЧИКИ СОБЫТИЙ ТАБЛИЦЫ ФОРМЫ ДеревоМетаданных
+
+&НаКлиенте
+Процедура ДеревоМетаданныхВыгружатьПриИзменении(Элемент)
+
+ ТекущиеДанные = Элементы.ДеревоМетаданных.ТекущиеДанные;
+
+ Если ТекущиеДанные.Выгружать = 2 Тогда
+ ТекущиеДанные.Выгружать = 0;
+ КонецЕсли;
+
+ УстановитьПометкиПодчиненных(ТекущиеДанные, "Выгружать");
+ УстановитьПометкиРодителей(ТекущиеДанные, "Выгружать");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ДеревоМетаданныхВыгружатьПриНеобходимостиПриИзменении(Элемент)
+
+ ТекущиеДанные = Элементы.ДеревоМетаданных.ТекущиеДанные;
+
+ Если ТекущиеДанные.ВыгружатьПриНеобходимости = 2 Тогда
+ ТекущиеДанные.ВыгружатьПриНеобходимости = 0;
+ КонецЕсли;
+
+ УстановитьПометкиПодчиненных(ТекущиеДанные, "ВыгружатьПриНеобходимости");
+ УстановитьПометкиРодителей(ТекущиеДанные, "ВыгружатьПриНеобходимости");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УстановитьПометкиПодчиненных(ТекСтрока, ИмяФлажка)
+
+ Подчиненные = ТекСтрока.ПолучитьЭлементы();
+
+ Если Подчиненные.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ Для Каждого Строка из Подчиненные Цикл
+
+ Строка[ИмяФлажка] = ТекСтрока[ИмяФлажка];
+
+ УстановитьПометкиПодчиненных(Строка, ИмяФлажка);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УстановитьПометкиРодителей(ТекСтрока, ИмяФлажка)
+
+ Родитель = ТекСтрока.ПолучитьРодителя();
+ Если Родитель = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТекСостояние = Родитель[ИмяФлажка];
+
+ НайденыВключенные = Ложь;
+ НайденыВыключенные = Ложь;
+
+ Для Каждого Строка из Родитель.ПолучитьЭлементы() Цикл
+ Если Строка[ИмяФлажка] = 0 Тогда
+ НайденыВыключенные = Истина;
+ ИначеЕсли Строка[ИмяФлажка] = 1
+ ИЛИ Строка[ИмяФлажка] = 2 Тогда
+ НайденыВключенные = Истина;
+ КонецЕсли;
+ Если НайденыВключенные И НайденыВыключенные Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если НайденыВключенные И НайденыВыключенные Тогда
+ Включить = 2;
+ ИначеЕсли НайденыВключенные И (Не НайденыВыключенные) Тогда
+ Включить = 1;
+ ИначеЕсли (Не НайденыВключенные) И НайденыВыключенные Тогда
+ Включить = 0;
+ ИначеЕсли (Не НайденыВключенные) И (Не НайденыВыключенные) Тогда
+ Включить = 2;
+ КонецЕсли;
+
+ Если Включить = ТекСостояние Тогда
+ Возврат;
+ Иначе
+ Родитель[ИмяФлажка] = Включить;
+ УстановитьПометкиРодителей(Родитель, ИмяФлажка);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ДеревоМетаданныхПриАктивизацииСтроки(Элемент)
+
+ Если Элемент.ТекущаяСтрока = ДеревоМетаданныхПредыдущаяСтрока Тогда
+ Возврат;
+ КонецЕсли;
+ ДеревоМетаданныхПредыдущаяСтрока = Элемент.ТекущаяСтрока;
+
+ НастроитьКомпоновщик();
+
+КонецПроцедуры
+
+// Служит для настройки построителя при отборе данных
+//
+// Параметры:
+//
+&НаКлиенте
+Процедура НастроитьКомпоновщик()
+
+ ТекущаяСтрока = Элементы.ДеревоМетаданных.ТекущиеДанные;
+
+ Если ТекущаяСтрока = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если НЕ ОпределитьПоСтрокеДереваДоступенПостроитель(ТекущаяСтрока) Тогда
+
+ ДоступностьКомпоновщика = ЛОЖЬ;
+ УдалитьОтборыКомпоновщика(Объект.КомпоновщикНастроекКомпоновкиДанных);
+
+ Иначе
+
+ Попытка
+
+ НастроитьКомпоновщикНаСервере(Элементы.ДеревоМетаданных.ТекущаяСтрока);
+
+ ДоступностьКомпоновщика = Истина;
+
+ Исключение
+ ДоступностьКомпоновщика = ЛОЖЬ;
+ УдалитьОтборыКомпоновщика(Объект.КомпоновщикНастроекКомпоновкиДанных);
+ КонецПопытки;
+
+ КонецЕсли;
+
+ Элементы.КомпоновщикОтбор.Доступность = ДоступностьКомпоновщика;
+ //Элементы.КоманднаяПанельКомпоновщикОтбор.Доступность = ДоступностьКомпоновщика;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ОпределитьПоСтрокеДереваДоступенПостроитель(СтрокаДерева)
+
+ Если СтрокаДерева.ПолучитьЭлементы().Количество() > 0 Тогда
+ Возврат Ложь;
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+
+КонецФункции
+
+&НаКлиенте
+Процедура УдалитьОтборыКомпоновщика(Компоновщик)
+
+ Компоновщик.Настройки.Отбор.Элементы.Очистить();
+
+КонецПроцедуры
+
+&НаСервере
+Процедура НастроитьКомпоновщикНаСервере(ТекущаяСтрока)
+
+ СтрокаДерева = Объект.ДеревоМетаданных.НайтиПоИдентификатору(ТекущаяСтрока);
+ СхемаКомпоновкиДанных = Объект().ПодготовитьКомпоновщикДляВыгрузки(СтрокаДерева);
+ АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор);
+ Объект.КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
+ Объект.КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
+
+КонецПроцедуры // НастроитьКомпоновщикНаСервере()
+
+&НаКлиенте
+Процедура КомпоновщикОтборПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
+
+ ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КомпоновщикОтборПослеУдаления(Элемент)
+
+ ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки()
+
+ ТекущаяСтрока = Элементы.ДеревоМетаданных.ТекущиеДанные;
+ Если Объект.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор.Элементы.Количество() > 0 Тогда
+
+ ТекущаяСтрока.НастройкиКомпоновщика = Объект.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор;//Объект.КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки();
+ ТекущаяСтрока.ИспользоватьОтбор = ИСТИНА;
+ ТекущаяСтрока.Выгружать = Истина;
+
+ Иначе
+
+ ТекущаяСтрока.НастройкиКомпоновщика = Неопределено;
+ ТекущаяСтрока.ИспользоватьОтбор = ЛОЖЬ;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПоказатьРезультатОтбора(Команда)
+
+ // показать выбранные записи
+ Если Элементы.КомпоновщикОтбор.Доступность <> Истина
+ ИЛИ Элементы.ДеревоМетаданных.ТекущиеДанные = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТабличныйДокумент = ПолучитьРезультатОтбораНаСервере();
+ ТабличныйДокумент.Показать(НСтр("ru = 'Выбранные объекты'"));
+
+КонецПроцедуры
+
+&НаСервере
+Функция ПолучитьРезультатОтбораНаСервере()
+
+ СтрокаДерева = Объект.ДеревоМетаданных.НайтиПоИдентификатору(Элементы.ДеревоМетаданных.ТекущаяСтрока);
+ ТабличныйДокумент = Объект().СформироватьОтчетПоОтобраннымДанным(СтрокаДерева);
+
+ Возврат ТабличныйДокумент;
+
+КонецФункции // ПолучитьРезультатОтбораНаСервере()
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 46109dfc..00000000
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат Объект().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Методы генерации тестовых данных
&НаКлиенте
Функция СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения = Неопределено, ИмяКолонкиЗамещения = Неопределено) Экспорт
Данные = СоздатьДанныеПоТабличномуДокументуСервер(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения);
Возврат Данные;
КонецФункции
&НаСервере
Функция СоздатьДанныеПоТабличномуДокументуСервер(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения)
Данные = Объект().СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения);
Возврат Неопределено; //Данные;
КонецФункции
//}
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ШАПКИ ФОРМЫ
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ТАБЛИЦЫ ФОРМЫ ТаблицаДанных
&НаКлиенте
Процедура ТаблицаДанныхСсылкаПриИзменении(Элемент)
ТаблицаДанныхСсылкаПриИзмененииСервер(Элементы.ТаблицаДанных.ТекущаяСтрока);
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ КОМАНД ФОРМЫ
&НаКлиенте
Процедура СоздатьМакетДанных(Команда)
ПанельИсточников = Элементы.ГруппаСтраницы;
Если ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаМетаданные Тогда
КоманднаяПанель1СоздатьМакетДанныхПоМетаданным();
ИначеЕсли ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаТаблицаДанных Тогда
КоманднаяПанель1СоздатьМакетДанныхПоТаблицеДанных();
ИначеЕсли ПанельИсточников.ТекущаяСтраница = ПанельИсточников.ПодчиненныеЭлементы.ГруппаПользователиИБ Тогда
КоманднаяПанель1СоздатьМакетДанныхДляПользователейИБ();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КоманднаяПанель1СоздатьМакетДанныхПоТаблицеДанных()
Если ПроверитьЗаполнение() Тогда
НовыйМакет = СоздатьМакетДанныхПоТаблицеДанныхСервер();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КоманднаяПанель1СоздатьМакетДанныхПоМетаданным()
СохранитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
НовыйМакет = СоздатьМакетДанныхПоМетаданнымСервер();
ВосстановитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
КонецПроцедуры
&НаКлиенте
Процедура КоманднаяПанель1СоздатьМакетДанныхДляПользователейИБ()
МассивИменПользователей = Новый Массив;
Для Каждого ИдентификаторСтроки Из Элементы.ПользователиИнфБазы.ВыделенныеСтроки Цикл
Строка = Объект.ПользователиИБ.НайтиПоИдентификатору(ИдентификаторСтроки);
МассивИменПользователей.Добавить(Строка.Имя);
КонецЦикла;
НовыйМакет = СоздатьМакетДанныхПоПользователямИБСервер(МассивИменПользователей);
КонецПроцедуры
&НаКлиенте
Процедура ПротестироватьЗагрузкуМакета(Команда)
ПроверитьЗагрузкуМакетаСервер(Макет);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьМакетДанныхВФайл(Команда)
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
ДиалогВыбораФайла.ПолноеИмяФайла = "";
ДиалогВыбораФайла.Фильтр = "Табличный документ (*.mxl)|*.mxl|Все файлы (*.*)|*.*";
ДиалогВыбораФайла.Заголовок = "Выберите файл";
Если Не ДиалогВыбораФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
Макет.Записать(ДиалогВыбораФайла.ПолноеИмяФайла);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьТаблицуДанных(Команда)
Объект.ТаблицаДанных.Очистить();
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
&НаСервере
Функция Объект()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
&НаСервере
Процедура ТаблицаДанныхСсылкаПриИзмененииСервер(ИдентификаторСтрокиДанных)
ЭлементДанных = Объект.ТаблицаДанных.НайтиПоИдентификатору(ИдентификаторСтрокиДанных);
Объект().ПриИзмененииСсылки(ЭлементДанных);
КонецПроцедуры
&НаСервере
Функция СоздатьМакетДанныхПоТаблицеДанныхСервер()
Возврат Объект().СоздатьМакетДанныхПоТаблицеДанных(Макет);
КонецФункции
&НаСервере
Функция СоздатьМакетДанныхПоМетаданнымСервер()
ОбъектНаСервере = Объект();
ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере);
НовыйМакет = ОбъектНаСервере.СоздатьМакетДанныхПоМетаданным(Макет);
ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
Возврат НовыйМакет;
КонецФункции
Функция СоздатьМакетДанныхПоПользователямИБСервер(МассивИменПользователей)
Возврат Объект().СоздатьМакетДанныхПоПользователямИБ(Макет, МассивИменПользователей);
КонецФункции
&НаСервере
Процедура ПроверитьЗагрузкуМакетаСервер(ТабличныйДокумент)
Объект().ПроверитьЗагрузкуМакета(ТабличныйДокумент);
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОбъектНаСервере = Объект();
ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы();
ОбъектНаСервере.НачальнаяИнициализация();
ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
ЗначениеВРеквизитФормы(ОбъектНаСервере.ПользователиИБ, "Объект.ПользователиИБ");
ОбъектНаСервере.СписокВыбора_РежимПоиска(Элементы.ТаблицаДанныхРежимПоиска.СписокВыбора);
ОбъектНаСервере.СписокВыбора_РежимСоздания(Элементы.ТаблицаДанныхРежимСоздания.СписокВыбора);
Объект.ВыгружатьСсылку = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ПересчитатьВыгружаемыеПоСсылке(Команда)
Состояние(Нстр("ru = 'Выполняется поиск объектов метаданных, которые могут быть выгружены по ссылкам...'"));
СохранитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
ПересчитатьВыгружаемыеПоСсылкеНаСервере();
ВосстановитьОтображениеДерева(Объект.ДеревоМетаданных.ПолучитьЭлементы());
КонецПроцедуры
&НаКлиенте
Процедура СохранитьОтображениеДерева(СтрокиДерева)
Для Каждого Строка Из СтрокиДерева Цикл
ИдентификаторСтроки=Строка.ПолучитьИдентификатор();
Строка.Развернут = Элементы.ДеревоМетаданных.Развернут(ИдентификаторСтроки);
СохранитьОтображениеДерева(Строка.ПолучитьЭлементы());
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВосстановитьОтображениеДерева(СтрокиДерева)
Для Каждого Строка Из СтрокиДерева Цикл
ИдентификаторСтроки=Строка.ПолучитьИдентификатор();
Если Строка.Развернут Тогда
Элементы.ДеревоМетаданных.Развернуть(ИдентификаторСтроки);
КонецЕсли;
ВосстановитьОтображениеДерева(Строка.ПолучитьЭлементы());
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПересчитатьВыгружаемыеПоСсылкеНаСервере()
ОбъектНаСервере = Объект();
ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере);
ОбъектНаСервере.СоставВыгрузки(Истина);
ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных");
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДеревоМетаданныхНаСервере(ОбъектНаСервере)
ДеревоМетаданных = РеквизитФормыВЗначение("Объект.ДеревоМетаданных");
ОбъектНаСервере.НачальнаяИнициализация();
ПроставитьПометкиВыгружаемыхДанных(ОбъектНаСервере.ДеревоМетаданных.Строки, ДеревоМетаданных.Строки);
КонецПроцедуры
&НаСервере
Процедура ПроставитьПометкиВыгружаемыхДанных(СтрокиИсходногоДерева, СтрокиЗаменяемогоДерева)
КолонкаВыгружать = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("Выгружать");
СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаВыгружать, "Выгружать");
КолонкаВыгружатьПриНеобходимости = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("ВыгружатьПриНеобходимости");
СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаВыгружатьПриНеобходимости, "ВыгружатьПриНеобходимости");
КолонкаРазвернут = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("Развернут");
СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаРазвернут, "Развернут");
КолонкаНастройкиКомпоновщика = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("НастройкиКомпоновщика");
СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаНастройкиКомпоновщика, "НастройкиКомпоновщика");
КолонкаИспользоватьОтбор = СтрокиЗаменяемогоДерева.ВыгрузитьКолонку("ИспользоватьОтбор");
СтрокиИсходногоДерева.ЗагрузитьКолонку(КолонкаИспользоватьОтбор, "ИспользоватьОтбор");
Для Каждого СтрокаИсходногоДерева Из СтрокиИсходногоДерева Цикл
ИндексСтроки = СтрокиИсходногоДерева.Индекс(СтрокаИсходногоДерева);
СтрокаИзменяемогоДерева = СтрокиЗаменяемогоДерева.Получить(ИндексСтроки);
ПроставитьПометкиВыгружаемыхДанных(СтрокаИсходногоДерева.Строки, СтрокаИзменяемогоДерева.Строки);
КонецЦикла;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ТАБЛИЦЫ ФОРМЫ ДеревоМетаданных
&НаКлиенте
Процедура ДеревоМетаданныхВыгружатьПриИзменении(Элемент)
ТекущиеДанные = Элементы.ДеревоМетаданных.ТекущиеДанные;
Если ТекущиеДанные.Выгружать = 2 Тогда
ТекущиеДанные.Выгружать = 0;
КонецЕсли;
УстановитьПометкиПодчиненных(ТекущиеДанные, "Выгружать");
УстановитьПометкиРодителей(ТекущиеДанные, "Выгружать");
КонецПроцедуры
&НаКлиенте
Процедура ДеревоМетаданныхВыгружатьПриНеобходимостиПриИзменении(Элемент)
ТекущиеДанные = Элементы.ДеревоМетаданных.ТекущиеДанные;
Если ТекущиеДанные.ВыгружатьПриНеобходимости = 2 Тогда
ТекущиеДанные.ВыгружатьПриНеобходимости = 0;
КонецЕсли;
УстановитьПометкиПодчиненных(ТекущиеДанные, "ВыгружатьПриНеобходимости");
УстановитьПометкиРодителей(ТекущиеДанные, "ВыгружатьПриНеобходимости");
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПометкиПодчиненных(ТекСтрока, ИмяФлажка)
Подчиненные = ТекСтрока.ПолучитьЭлементы();
Если Подчиненные.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Для Каждого Строка из Подчиненные Цикл
Строка[ИмяФлажка] = ТекСтрока[ИмяФлажка];
УстановитьПометкиПодчиненных(Строка, ИмяФлажка);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПометкиРодителей(ТекСтрока, ИмяФлажка)
Родитель = ТекСтрока.ПолучитьРодителя();
Если Родитель = Неопределено Тогда
Возврат;
КонецЕсли;
ТекСостояние = Родитель[ИмяФлажка];
НайденыВключенные = Ложь;
НайденыВыключенные = Ложь;
Для Каждого Строка из Родитель.ПолучитьЭлементы() Цикл
Если Строка[ИмяФлажка] = 0 Тогда
НайденыВыключенные = Истина;
ИначеЕсли Строка[ИмяФлажка] = 1
ИЛИ Строка[ИмяФлажка] = 2 Тогда
НайденыВключенные = Истина;
КонецЕсли;
Если НайденыВключенные И НайденыВыключенные Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если НайденыВключенные И НайденыВыключенные Тогда
Включить = 2;
ИначеЕсли НайденыВключенные И (Не НайденыВыключенные) Тогда
Включить = 1;
ИначеЕсли (Не НайденыВключенные) И НайденыВыключенные Тогда
Включить = 0;
ИначеЕсли (Не НайденыВключенные) И (Не НайденыВыключенные) Тогда
Включить = 2;
КонецЕсли;
Если Включить = ТекСостояние Тогда
Возврат;
Иначе
Родитель[ИмяФлажка] = Включить;
УстановитьПометкиРодителей(Родитель, ИмяФлажка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДеревоМетаданныхПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущаяСтрока = ДеревоМетаданныхПредыдущаяСтрока Тогда
Возврат;
КонецЕсли;
ДеревоМетаданныхПредыдущаяСтрока = Элемент.ТекущаяСтрока;
НастроитьКомпоновщик();
КонецПроцедуры
// Служит для настройки построителя при отборе данных
//
// Параметры:
//
&НаКлиенте
Процедура НастроитьКомпоновщик()
ТекущаяСтрока = Элементы.ДеревоМетаданных.ТекущиеДанные;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Если НЕ ОпределитьПоСтрокеДереваДоступенПостроитель(ТекущаяСтрока) Тогда
ДоступностьКомпоновщика = ЛОЖЬ;
УдалитьОтборыКомпоновщика(Объект.КомпоновщикНастроекКомпоновкиДанных);
Иначе
Попытка
НастроитьКомпоновщикНаСервере(Элементы.ДеревоМетаданных.ТекущаяСтрока);
ДоступностьКомпоновщика = Истина;
Исключение
ДоступностьКомпоновщика = ЛОЖЬ;
УдалитьОтборыКомпоновщика(Объект.КомпоновщикНастроекКомпоновкиДанных);
КонецПопытки;
КонецЕсли;
Элементы.КомпоновщикОтбор.Доступность = ДоступностьКомпоновщика;
//Элементы.КоманднаяПанельКомпоновщикОтбор.Доступность = ДоступностьКомпоновщика;
КонецПроцедуры
&НаКлиенте
Функция ОпределитьПоСтрокеДереваДоступенПостроитель(СтрокаДерева)
Если СтрокаДерева.ПолучитьЭлементы().Количество() > 0 Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура УдалитьОтборыКомпоновщика(Компоновщик)
Компоновщик.Настройки.Отбор.Элементы.Очистить();
КонецПроцедуры
&НаСервере
Процедура НастроитьКомпоновщикНаСервере(ТекущаяСтрока)
СтрокаДерева = Объект.ДеревоМетаданных.НайтиПоИдентификатору(ТекущаяСтрока);
СхемаКомпоновкиДанных = Объект().ПодготовитьКомпоновщикДляВыгрузки(СтрокаДерева);
АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор);
Объект.КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
Объект.КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КонецПроцедуры // НастроитьКомпоновщикНаСервере()
&НаКлиенте
Процедура КомпоновщикОтборПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки();
КонецПроцедуры
&НаКлиенте
Процедура КомпоновщикОтборПослеУдаления(Элемент)
ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьНастройкиПостроителяВТаблицеДляВыгрузки()
ТекущаяСтрока = Элементы.ДеревоМетаданных.ТекущиеДанные;
Если Объект.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор.Элементы.Количество() > 0 Тогда
ТекущаяСтрока.НастройкиКомпоновщика = Объект.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор;//Объект.КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки();
ТекущаяСтрока.ИспользоватьОтбор = ИСТИНА;
ТекущаяСтрока.Выгружать = Истина;
Иначе
ТекущаяСтрока.НастройкиКомпоновщика = Неопределено;
ТекущаяСтрока.ИспользоватьОтбор = ЛОЖЬ;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьРезультатОтбора(Команда)
// показать выбранные записи
Если Элементы.КомпоновщикОтбор.Доступность <> Истина
ИЛИ Элементы.ДеревоМетаданных.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ТабличныйДокумент = ПолучитьРезультатОтбораНаСервере();
ТабличныйДокумент.Показать(НСтр("ru = 'Выбранные объекты'"));
КонецПроцедуры
&НаСервере
Функция ПолучитьРезультатОтбораНаСервере()
СтрокаДерева = Объект.ДеревоМетаданных.НайтиПоИдентификатору(Элементы.ДеревоМетаданных.ТекущаяСтрока);
ТабличныйДокумент = Объект().СформироватьОтчетПоОтобраннымДанным(СтрокаДерева);
Возврат ТабличныйДокумент;
КонецФункции // ПолучитьРезультатОтбораНаСервере()
\ No newline at end of file
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\244\320\276\321\200\320\274\320\260/form" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\244\320\276\321\200\320\274\320\260/form"
index 64b3094e..137b6be0 100644
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\244\320\276\321\200\320\274\320\260/form"
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\244\320\276\321\200\320\274\320\260/form"
@@ -92,7 +92,29 @@
{1,0}
},8,2,1,0,1,1,
{5,c45fa92b-aba3-4d9e-a9fe-274560abc287,286,1,8,
-{6,276f1308-64e1-4512-a03f-93324270533c,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,8a0d842b-3e14-4f27-9585-6a879e8494d5,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
+{6,2b39e455-221b-44b9-a7ae-2da17d3e370d,1,e1692cc2-605b-4535-84dd-28440238746c,
+{3,"КоманднаяПанель1ПодменюСоздатьМакетДанных",
+{1,"КоманднаяПанель1ПодменюСоздатьМакетДанных",
+{1,1,
+{"ru","Подменю создать макет данных"}
+},
+{1,1,
+{"ru","Подменю создать макет данных"}
+},
+{1,1,
+{"ru","Подменю создать макет данных"}
+},
+{3,0,
+{0},"",-1,-1,1,0},
+{0,0,0}
+}
+},1,
+{3,1,
+{0,affb1617-24bc-4170-9c84-0902cc3ef206},"",-1,-1,1,0}
+},
+{6,c90b136a-e3a4-4bf0-9cd7-2e4c05299bb3,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанель1ПротестироватьЗагрузкуМакета",
{1,"КоманднаяПанель1ПротестироватьЗагрузкуМакета",
{1,1,
@@ -112,16 +134,14 @@
{3,1,
{0,20ebc47b-f4d9-439c-acd3-fdc624fbac2a},"",-1,-1,1,0}
},
-{6,a0808445-f34a-47d9-8b21-2edfa143931d,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
+{6,48d66207-c286-4533-951d-de92644af716,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
{6,4294967295,00000000-0000-0000-0000-000000000000,142,
{1,99,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0},0,1},0},
-{6,0d8e18a6-75bb-4c63-bd3a-6eafe0ae3273,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
-{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
-{6,1e13ab7c-7558-4863-b060-4812a0dab948,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{6,277bdfd7-82b7-4c6e-a5cb-8cf898097182,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
-{6,4890e1d4-b20e-4442-a9ec-d6bc22162335,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{6,504389c0-6f9f-49ac-8bc3-82c315fe2b1c,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
-{6,437408dc-3cb1-4fb1-8624-fc3785565a6d,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,773f2072-0e0c-4ebf-ba4e-8c5b3206cd8c,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанель1СохранитьМакетДанныхВФайл",
{1,"КоманднаяПанель1СохранитьМакетДанныхВФайл",
{1,1,
@@ -141,57 +161,37 @@
{3,1,
{0,818ab7d0-4654-4542-bd5e-fd9d1352b5a1},"",-1,-1,1,0}
},
-{6,8f5a9af6-600a-474e-aa9d-b2521f16f7a0,1,e1692cc2-605b-4535-84dd-28440238746c,
-{3,"КоманднаяПанель1ПодменюСоздатьМакетДанных",
-{1,"КоманднаяПанель1ПодменюСоздатьМакетДанных",
-{1,1,
-{"ru","Подменю создать макет данных"}
-},
-{1,1,
-{"ru","Подменю создать макет данных"}
-},
-{1,1,
-{"ru","Подменю создать макет данных"}
-},
-{3,0,
-{0},"",-1,-1,1,0},
-{0,0,0}
-}
-},1,
-{3,1,
-{0,affb1617-24bc-4170-9c84-0902cc3ef206},"",-1,-1,1,0}
-},
-{6,eee8ec2d-adb1-4c3c-8e8a-93095c912c3b,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{6,10c33669-56f5-4bd4-9221-863fe52857ea,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,8,1e13ab7c-7558-4863-b060-4812a0dab948,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,8,8a0d842b-3e14-4f27-9585-6a879e8494d5,
{8,"Разделитель4",0,1,
{1,1,
{"ru","Действие2"}
-},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,38,1e2,2,0,1,0,0,0,0},8f5a9af6-600a-474e-aa9d-b2521f16f7a0,
+},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,38,1e2,2,0,1,0,0,0,0},2b39e455-221b-44b9-a7ae-2da17d3e370d,
{8,"ПодменюСоздатьМакетДанных",0,1,
{1,1,
{"ru","Создать макет данных"}
-},1,c45fa92b-aba3-4d9e-a9fe-274560abc287,81,1e2,0,3,1,0,0,0,0},4890e1d4-b20e-4442-a9ec-d6bc22162335,
+},1,c45fa92b-aba3-4d9e-a9fe-274560abc287,81,1e2,0,3,1,0,0,0,0},10c33669-56f5-4bd4-9221-863fe52857ea,
{8,"Разделитель1",0,1,
{1,1,
{"ru","Действие1"}
-},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,11,1e2,2,0,1,0,0,0,0},276f1308-64e1-4512-a03f-93324270533c,
+},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,11,1e2,2,0,1,0,0,0,0},c90b136a-e3a4-4bf0-9cd7-2e4c05299bb3,
{8,"ПротестироватьЗагрузкуМакета",0,1,
{1,1,
{"#","Протестировать загрузку макета"}
-},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,12,1e2,0,3,1,0,0,0,0},eee8ec2d-adb1-4c3c-8e8a-93095c912c3b,
+},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,12,1e2,0,3,1,0,0,0,0},504389c0-6f9f-49ac-8bc3-82c315fe2b1c,
{8,"Разделитель2",0,1,
{1,1,
{"ru","Действие1"}
-},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,13,1e2,2,0,1,0,0,0,0},437408dc-3cb1-4fb1-8624-fc3785565a6d,
+},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,13,1e2,2,0,1,0,0,0,0},773f2072-0e0c-4ebf-ba4e-8c5b3206cd8c,
{8,"СохранитьМакетДанныхВФайл",0,1,
{1,1,
{"#","Сохранить макет данных в файл"}
-},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,14,1e2,0,3,1,0,0,0,0},0d8e18a6-75bb-4c63-bd3a-6eafe0ae3273,
+},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,14,1e2,0,3,1,0,0,0,0},277bdfd7-82b7-4c6e-a5cb-8cf898097182,
{8,"Разделитель3",0,1,
{1,1,
{"ru","Действие2"}
-},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,16,1e2,2,0,1,0,0,0,0},a0808445-f34a-47d9-8b21-2edfa143931d,
+},0,c45fa92b-aba3-4d9e-a9fe-274560abc287,16,1e2,2,0,1,0,0,0,0},48d66207-c286-4533-951d-de92644af716,
{8,"Действие1",0,1,
{1,1,
{"#","Действие1"}
@@ -542,9 +542,9 @@
{1,0}
},8,2,1,0,1,1,
{5,c57d1982-5648-4cf0-a874-e4b7f130b2f9,431,1,2,
-{6,71821fb3-8d47-4db4-83c4-833d459e7042,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{6,8deff7fa-a745-4cc6-921e-a6d1e3d351ed,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
-{6,4083e81f-f20e-4b73-974a-ef2eb6e7d4f4,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,32b13ce3-331a-4ee7-aaf0-6fb281923021,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанель2ОчиститьТаблицуДанных",
{1,"КоманднаяПанель2ОчиститьТаблицуДанных",
{1,1,
@@ -564,11 +564,11 @@
{3,1,
{-2},"",-1,-1,1,0}
},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,2,71821fb3-8d47-4db4-83c4-833d459e7042,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,2,8deff7fa-a745-4cc6-921e-a6d1e3d351ed,
{8,"Разделитель",0,1,
{1,1,
{"ru","Действие9"}
-},0,c57d1982-5648-4cf0-a874-e4b7f130b2f9,88,1e2,2,0,1,0,0,0,0},4083e81f-f20e-4b73-974a-ef2eb6e7d4f4,
+},0,c57d1982-5648-4cf0-a874-e4b7f130b2f9,88,1e2,2,0,1,0,0,0,0},32b13ce3-331a-4ee7-aaf0-6fb281923021,
{8,"ОчиститьТаблицуДанных",0,1,
{1,1,
{"ru","Очистить"}
@@ -5408,9 +5408,7 @@ XFhJtSKWz30vMgcItzCmDw==},0}
{1,0}
},8,2,1,0,1,1,
{5,d0a52278-ca43-4762-b8e3-8d872ef8fe2d,182,1,2,
-{6,0dc07ea8-280f-4427-8c6c-bc3e9db854b1,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
-{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
-{6,e93e581f-f08f-4356-99ef-57b71c14881d,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,6e1c997e-0519-43e7-a4a6-259c8b4f2c86,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанельКомпоновщикОтборПоказатьРезультатаОтбора",
{1,"КоманднаяПанельКомпоновщикОтборПоказатьРезультатаОтбора",
{1,1,
@@ -5433,12 +5431,14 @@ XFhJtSKWz30vMgcItzCmDw==},0}
{1,1,
{"ru","Показать выбранные записи"}
}
-},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,2,0dc07ea8-280f-4427-8c6c-bc3e9db854b1,
+},
+{6,78e3cd83-31b2-403b-b240-4f63498a7383,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,2,78e3cd83-31b2-403b-b240-4f63498a7383,
{8,"Разделитель1",0,1,
{1,1,
{"ru","Действие4"}
-},0,d0a52278-ca43-4762-b8e3-8d872ef8fe2d,8,1e2,2,0,1,0,0,0,0},e93e581f-f08f-4356-99ef-57b71c14881d,
+},0,d0a52278-ca43-4762-b8e3-8d872ef8fe2d,8,1e2,2,0,1,0,0,0,0},6e1c997e-0519-43e7-a4a6-259c8b4f2c86,
{8,"ПоказатьРезультатаОтбора",0,3,
{1,1,
{"ru","Показать выбранные"}
@@ -5509,29 +5509,7 @@ XFhJtSKWz30vMgcItzCmDw==},0}
{1,0}
},8,2,0,0,1,1,
{5,8d6538eb-fa47-46f2-82d7-07ab238d41c2,3,1,3,
-{6,07b0be5c-bb12-4aa5-9312-7474bcad9e6c,1,e1692cc2-605b-4535-84dd-28440238746c,
-{3,"КоманднаяПанельДеревоМетаданныхЗаполнитьТаблицуДанных",
-{1,"КоманднаяПанельДеревоМетаданныхЗаполнитьТаблицуДанных",
-{1,1,
-{"ru","Заполнить таблицу данных"}
-},
-{1,1,
-{"ru","Заполнить таблицу данных"}
-},
-{1,1,
-{"ru","Заполнить таблицу данных"}
-},
-{3,0,
-{0},"",-1,-1,1,0},
-{0,0,0}
-}
-},1,
-{3,1,
-{-8},"",-1,-1,1,0}
-},
-{6,2f938440-044d-4698-8816-ae0b70179d1e,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
-{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
-{6,58ee9673-f308-4834-a0de-b392b343824a,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,2c5f7c1c-4e4d-4e2b-b521-d733a9ecbe85,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанель1ПересчетВыгружаемыхПоСсылке",
{1,"КоманднаяПанель1ПересчетВыгружаемыхПоСсылке",
{1,1,
@@ -5564,16 +5542,38 @@ AP+IiGZggA8AD4/4ZmCA//AAj/hmYI///wCP+IiAj///8I/4/4CIiIiIj/j/gGZo
////+P+AZmj////4D4BmaIiIiIgAgGZmZo///wCAZmZmj///8IBmZmaIiIiIgA==
}
},0}
+},
+{6,485d51c6-9259-4f8c-89db-267810557396,1,e1692cc2-605b-4535-84dd-28440238746c,
+{3,"КоманднаяПанельДеревоМетаданныхЗаполнитьТаблицуДанных",
+{1,"КоманднаяПанельДеревоМетаданныхЗаполнитьТаблицуДанных",
+{1,1,
+{"ru","Заполнить таблицу данных"}
+},
+{1,1,
+{"ru","Заполнить таблицу данных"}
+},
+{1,1,
+{"ru","Заполнить таблицу данных"}
+},
+{3,0,
+{0},"",-1,-1,1,0},
+{0,0,0}
+}
},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,58ee9673-f308-4834-a0de-b392b343824a,
+{3,1,
+{-8},"",-1,-1,1,0}
+},
+{6,e4e63923-c115-4c51-ad66-9aaf79575675,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,2c5f7c1c-4e4d-4e2b-b521-d733a9ecbe85,
{8,"ПересчетВыгружаемыхПоСсылке",0,2,
{1,1,
{"ru","Объекты по ссылкам"}
-},1,8d6538eb-fa47-46f2-82d7-07ab238d41c2,1,1e2,0,3,1,0,0,0,0},2f938440-044d-4698-8816-ae0b70179d1e,
+},1,8d6538eb-fa47-46f2-82d7-07ab238d41c2,1,1e2,0,3,1,0,0,0,0},e4e63923-c115-4c51-ad66-9aaf79575675,
{8,"Разделитель",0,1,
{1,1,
{"ru","Действие"}
-},0,8d6538eb-fa47-46f2-82d7-07ab238d41c2,3,1e2,2,0,1,0,0,0,0},07b0be5c-bb12-4aa5-9312-7474bcad9e6c,
+},0,8d6538eb-fa47-46f2-82d7-07ab238d41c2,3,1e2,2,0,1,0,0,0,0},485d51c6-9259-4f8c-89db-267810557396,
{8,"ЗаполнитьТаблицуДанных",0,1,
{1,1,
{"#","Заполнить таблицу данных"}
@@ -6416,7 +6416,7 @@ YkNzYWPVilk+N11kDRBtUUw/},0}
}
}
}
-},746,500,1,0,1,4,4,338},
+},746,500,1,0,1,4,4,351},
{
{0},12,
{2,
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\244\320\276\321\200\320\274\320\260/module" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
similarity index 100%
rename from "src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\244\320\276\321\200\320\274\320\260/module"
rename to "src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.txt" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.bsl"
similarity index 94%
rename from "src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.txt"
rename to "src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.bsl"
index f385e6c4..6bdffa73 100644
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.txt"
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.bsl"
@@ -18,8 +18,11 @@
Перем ОбработанныхНаборовЗаписей Экспорт;
Перем СоставВспомогательнойВыгрузки;
+Перем АнглийскоеСоответствие;
+
+
Функция Версия() Экспорт
- Возврат "3.0.0.4";
+ Возврат "3.0.0.5";
КонецФункции
Функция ЗаголовокФормы() Экспорт
@@ -393,27 +396,27 @@
ОбъектСсылка = Неопределено;
Если ПротоОбъект.Объект<>Неопределено Тогда
Возврат ПротоОбъект.Объект;
- ИначеЕсли ПротоОбъект.Тип = "Справочник" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("Справочник") Тогда
ОбъектСсылка = СоздатьОбъект_Справочник(ПротоДанные,ПротоОбъект);
- ИначеЕсли ПротоОбъект.Тип = "Документ" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("Документ") Тогда
ОбъектСсылка = СоздатьОбъект_Документ_или_БизнесПроцесс_или_Задача(Документы, ПротоДанные,ПротоОбъект);
- ИначеЕсли ПротоОбъект.Тип = "РегистрСведений" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("РегистрСведений") Тогда
ОбъектСсылка = СоздатьОбъект_Регистр(РегистрыСведений, ПротоДанные,ПротоОбъект);
- ИначеЕсли ПротоОбъект.Тип = "РегистрНакопления" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("РегистрНакопления") Тогда
ОбъектСсылка = СоздатьОбъект_Регистр(РегистрыНакопления, ПротоДанные,ПротоОбъект);
- ИначеЕсли ПротоОбъект.Тип = "РегистрБухгалтерии" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
ОбъектСсылка = СоздатьОбъект_Регистр(РегистрыБухгалтерии, ПротоДанные,ПротоОбъект);
- ИначеЕсли ПротоОбъект.Тип = "ПользовательИБ" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("ПользовательИБ") Тогда
ОбъектСсылка = СоздатьОбъект_ПользовательИБ(ПротоДанные,ПротоОбъект);
- ИначеЕсли ПротоОбъект.Тип = "БизнесПроцесс" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("БизнесПроцесс") Тогда
ОбъектСсылка = СоздатьОбъект_Документ_или_БизнесПроцесс_или_Задача(БизнесПроцессы, ПротоДанные,ПротоОбъект);
- ИначеЕсли ПротоОбъект.Тип = "Задача" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("Задача") Тогда
ОбъектСсылка = СоздатьОбъект_Документ_или_БизнесПроцесс_или_Задача(Задачи, ПротоДанные,ПротоОбъект);
- ИначеЕсли ПротоОбъект.Тип = "ПланОбмена" Тогда
+ ИначеЕсли ПротоОбъект.Тип = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
ОбъектСсылка = СоздатьОбъект_УзелПланаОбмена(ПротоДанные,ПротоОбъект);
КонецЕсли;
ПротоОбъект.Объект = ОбъектСсылка;
@@ -897,7 +900,7 @@
Функция ПолучитьОбъектЕслиВПротоДанныеПереданаСсылка(МенеджерОбъекта, ПротоОбъект)
Перем Объект;
- стрПолеСсылка = ПротоОбъект.ПоляОбъекта.Найти("Ссылка","Имя");
+ стрПолеСсылка = ПротоОбъект.ПоляОбъекта.Найти(ВернутьЗначениеСоответствия("Ссылка"),"Имя");
Если стрПолеСсылка<>Неопределено Тогда
ПротоОбъект.Объект = МенеджерОбъекта.ПолучитьСсылку(Новый УникальныйИдентификатор(стрПолеСсылка.Значение));
ПротоОбъект.ПоляОбъекта.Удалить(стрПолеСсылка);
@@ -1030,22 +1033,20 @@
Если Не УжеВычислилиЗначение и ЕстьМетаданныеРеквизита Тогда
ПолноеИмяТипаРеквизита = МетаданныеТипаРеквизита.ПолноеИмя();
-
- Если Найти(ПолноеИмяТипаРеквизита, "Справочник") = 1 Тогда
+ Если Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("Справочник")) = 1 Тогда
менеджерОбъекта = Справочники[МетаданныеТипаРеквизита.Имя];
- ИначеЕсли Найти(ПолноеИмяТипаРеквизита, "Документ") = 1 Тогда
+ ИначеЕсли Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("Документ")) = 1 Тогда
менеджерОбъекта = Документы[МетаданныеТипаРеквизита.Имя];
- ИначеЕсли Найти(ПолноеИмяТипаРеквизита, "Перечисление") = 1 Тогда
+ ИначеЕсли Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("Перечисление")) = 1 Тогда
менеджерОбъекта = Перечисления[МетаданныеТипаРеквизита.Имя];
- ИначеЕсли Найти(ПолноеИмяТипаРеквизита, "ПланСчетов") = 1 Тогда
+ ИначеЕсли Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("ПланСчетов")) = 1 Тогда
менеджерОбъекта = ПланыСчетов[МетаданныеТипаРеквизита.Имя];
- ИначеЕсли Найти(ПолноеИмяТипаРеквизита, "ПланВидовХарактеристик") = 1 Тогда
+ ИначеЕсли Найти(ПолноеИмяТипаРеквизита, ВернутьЗначениеСоответствия("ПланВидовХарактеристик")) = 1 Тогда
менеджерОбъекта = ПланыВидовХарактеристик[МетаданныеТипаРеквизита.Имя];
КонецЕсли;
Если менеджерОбъекта = Неопределено Тогда
ВызватьИсключение "Не найден менеджерОбъекта";
КонецЕсли;
-
Если Режим = "ПРЕДОПРЕДЕЛЕННЫЙ" Тогда
//Значение = менеджерОбъекта[стрПоле.Значение];
Если ЗначениеЗаполнено(стрПоле.Значение) Тогда
@@ -1161,22 +1162,22 @@
Функция НаборРеквизитовМетаданных(КорневойТип, МетаданныеОбъекта)
НаборМдРеквизитов = Новый Структура;
- Если КорневойТип = "Справочник"
- или КорневойТип = "Документ"
- или КорневойТип = "ПланВидовХарактеристик"
- или КорневойТип = "БизнесПроцесс"
- или КорневойТип = "ПланОбмена" Тогда
+ Если КорневойТип = ВернутьЗначениеСоответствия("Справочник")
+ или КорневойТип = ВернутьЗначениеСоответствия("Документ")
+ или КорневойТип = ВернутьЗначениеСоответствия("ПланВидовХарактеристик")
+ или КорневойТип = ВернутьЗначениеСоответствия("БизнесПроцесс")
+ или КорневойТип = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, НаборМдРеквизитов);
ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.Реквизиты, НаборМдРеквизитов);
- ИначеЕсли КорневойТип = "Задача" Тогда
+ ИначеЕсли КорневойТип = ВернутьЗначениеСоответствия("Задача") Тогда
ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, НаборМдРеквизитов);
ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.Реквизиты, НаборМдРеквизитов);
ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.РеквизитыАдресации, НаборМдРеквизитов);
- ИначеЕсли КорневойТип = "РегистрСведений"
- или КорневойТип = "РегистрНакопления"
- или КорневойТип = "РегистрБухгалтерии" Тогда
+ ИначеЕсли КорневойТип = ВернутьЗначениеСоответствия("РегистрСведений")
+ или КорневойТип = ВернутьЗначениеСоответствия("РегистрНакопления")
+ или КорневойТип = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, НаборМдРеквизитов);
ДобавитьРеквизитыМетаданныхВНаборРеквизитов(МетаданныеОбъекта.Измерения, НаборМдРеквизитов, КорневойТип);
@@ -1634,7 +1635,7 @@
описаниеЗаписиРегистраСведений1.Вставить("Реквизиты", РеквизитыЗаписи);
Если ПустаяСтрока(Строка.__Метаданные) Тогда
- описаниеЗаписиРегистраСведений1.Вставить("Ссылка", Строка.Ссылка);
+ описаниеЗаписиРегистраСведений1.Вставить(ВернутьЗначениеСоответствия("Ссылка"), Строка.Ссылка);
Иначе
Мета = Неопределено;
Выполнить("Мета = "+Строка.__Метаданные);
@@ -1654,7 +1655,7 @@
Функция СоздатьОписательЭлементаПоСсылке(Ссылка, МассивИмен, ДанныеОбъекта = Неопределено) Экспорт
ОписательЭлемента = СоздатьОписательЭлемента();
- ОписательЭлемента.Ссылка = Ссылка;
+ ОписательЭлемента[ВернутьЗначениеСоответствия("Ссылка")] = Ссылка;
ОписательЭлемента.ИмяПеременной = УникальноеИмяПеременнойПоСсылке(Ссылка, МассивИмен);
МетаСсылка = Ссылка.Метаданные();
ОписательЭлемента.Метаданное = МетаСсылка;
@@ -1751,7 +1752,7 @@
МассивИмен.Добавить(НРег(ОписательЭлемента.ИмяПеременной));
ОписательЭлемента.Реквизиты = НаборЗаписей;
- ОписательЭлемента.Ссылка = Неопределено;
+ ОписательЭлемента[ВернутьЗначениеСоответствия("Ссылка")] = Неопределено;
ОписательЭлемента.Метаданное = Мд;
Возврат ОписательЭлемента;
КонецФункции
@@ -1773,7 +1774,7 @@
Функция СоздатьОписательЭлемента() Экспорт
ОписательЭлемента = Новый Структура;
- ОписательЭлемента.Вставить("Ссылка");
+ ОписательЭлемента.Вставить(ВернутьЗначениеСоответствия("Ссылка"));
ОписательЭлемента.Вставить("ИмяПеременной", "");
ОписательЭлемента.Вставить("Значение", Неопределено);
ОписательЭлемента.Вставить("Метаданное");
@@ -1816,16 +1817,16 @@
КорневойТипКонфигурации = ПолучитьКорневойТипКонфигурации_ирЛкс(Мд);
Представление = "";
- Если КорневойТипКонфигурации = "Справочник" Тогда
+ Если КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Справочник") Тогда
Представление = Ссылка.Наименование;
- ИначеЕсли КорневойТипКонфигурации = "Документ" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Документ") Тогда
Представление = ""+Ссылка;
//ИначеЕсли КорневойТипКонфигурации = "РегистрСведений" Тогда
- ИначеЕсли КорневойТипКонфигурации = "БизнесПроцесс" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("БизнесПроцесс") Тогда
Представление = ""+Ссылка;
- ИначеЕсли КорневойТипКонфигурации = "Задача" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Задача") Тогда
Представление = ""+Ссылка;
- ИначеЕсли КорневойТипКонфигурации = "ПланОбмена" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
Представление = ""+Ссылка;
Иначе
ВызватьИсключение "ПолучитьИдентификаторПредставленияПоСсылке() : Неизвестный КорневойТипКонфигурации <"+КорневойТипКонфигурации+">";
@@ -1910,22 +1911,30 @@
менеджерОбъекта = ПолучитьМенеджерОбъекта_ирЛкс(Мд);
КорневойТипКонфигурации = ПолучитьКорневойТипКонфигурации_ирЛкс(Мд);
- Если КорневойТипКонфигурации = "Справочник" Тогда
+ Если КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Справочник") Тогда
Если ЗначениеЗаполнено(Ссылка) и Ссылка.ЭтоГруппа Тогда
- лПустойОбъект = менеджерОбъекта.СоздатьГруппу();
+ Если НЕ ВариантВстроенногоЯзыкаАнглийский Тогда
+ лПустойОбъект = менеджерОбъекта.СоздатьГруппу();
+ Иначе
+ лПустойОбъект = менеджерОбъекта.CreateFolder();
+ КонецЕсли;
Иначе
- лПустойОбъект = менеджерОбъекта.СоздатьЭлемент();
+ Если НЕ ВариантВстроенногоЯзыкаАнглийский Тогда
+ лПустойОбъект = менеджерОбъекта.СоздатьЭлемент();
+ Иначе
+ лПустойОбъект = менеджерОбъекта.CreateItem();
+ КонецЕсли;
КонецЕсли;
- ИначеЕсли КорневойТипКонфигурации = "Документ" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Документ") Тогда
лПустойОбъект = менеджерОбъекта.СоздатьДокумент();
- ИначеЕсли КорневойТипКонфигурации = "БизнесПроцесс" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("БизнесПроцесс") Тогда
лПустойОбъект = менеджерОбъекта.СоздатьБизнесПроцесс();
- ИначеЕсли КорневойТипКонфигурации = "Задача" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Задача") Тогда
лПустойОбъект = менеджерОбъекта.СоздатьЗадачу();
- ИначеЕсли КорневойТипКонфигурации = "РегистрСведений" Тогда
- ИначеЕсли КорневойТипКонфигурации = "РегистрНакопления" Тогда
- ИначеЕсли КорневойТипКонфигурации = "РегистрБухгалтерии" Тогда
- ИначеЕсли КорневойТипКонфигурации = "ПланОбмена" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрСведений") Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрНакопления") Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
лПустойОбъект = менеджерОбъекта.СоздатьУзел();
Иначе
ВызватьИсключение "Неизвестный КорневойТипКонфигурации <"+КорневойТипКонфигурации+">";
@@ -1938,7 +1947,7 @@
Если Не ВыгружатьСсылку И ЗначениеЗаполнено(ОписательОбъекта.ГуидСсылки) Тогда
Для каждого РеквизитМд Из Мд.СтандартныеРеквизиты Цикл
- Если РеквизитМд.Имя = "Ссылка" Тогда
+ Если РеквизитМд.Имя = ВернутьЗначениеСоответствия("Ссылка") Тогда
НомерСтрокиМакета = Макет.ВысотаТаблицы+1;
ДобавилиРеквизит = ОбработатьРеквизитОбъекта(Макет, МассивДанных, Объект, РеквизитМд, ОписательОбъекта.ГуидСсылки, Мд, НомерСтрокиМакета, ШапкаДанных);
КонецЕсли;
@@ -1951,17 +1960,17 @@
ОбработатьТабличныеЧастиОбъекта(Макет, Мд.ТабличныеЧасти, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект);
ОбработатьРежимыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Объект);
- ИначеЕсли КорневойТипКонфигурации = "РегистрСведений" и ТипЗнч(ОписательОбъекта.Реквизиты) = Тип("Структура") Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрСведений") и ТипЗнч(ОписательОбъекта.Реквизиты) = Тип("Структура") Тогда
ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.СтандартныеРеквизиты, ВыгружаемыеСтандартныеРеквизиты);
ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Измерения, Неопределено);
ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Ресурсы, Неопределено);
ОбработатьРеквизитыОбъекта(Макет, ОписательОбъекта, ШапкаДанных, МассивДанных, Мд, Неопределено, Мд.Реквизиты, Неопределено);
- ИначеЕсли КорневойТипКонфигурации = "РегистрСведений"
- Или КорневойТипКонфигурации = "РегистрНакопления"
- Или КорневойТипКонфигурации = "РегистрБухгалтерии" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрСведений")
+ Или КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрНакопления")
+ Или КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
- ЭтоРегистрБухгалтерии = КорневойТипКонфигурации = "РегистрБухгалтерии";
+ ЭтоРегистрБухгалтерии = КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрБухгалтерии");
НаборЗаписейРегистра = ОписательОбъекта.Реквизиты;
Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
@@ -2041,94 +2050,94 @@
Функция ВыгружаемыеСтандартныеРеквизиты(ОписательОбъекта, КорневойТипКонфигурации)
ВыгружаемыеСтандартныеРеквизиты = Новый Массив;
- Если КорневойТипКонфигурации = "Справочник" Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Наименование");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("ПометкаУдаления");
+ Если КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Справочник") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Наименование"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
ВыгружатьКод = Ложь;
Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Код");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Код"));
КонецЕсли;
Если ВыгружатьСсылку Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Ссылка");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
КонецЕсли;
- МетаданныеСправочника = ОписательОбъекта.Ссылка.Метаданные();
+ МетаданныеСправочника = ОписательОбъекта[ВернутьЗначениеСоответствия("Ссылка")].Метаданные();
Если МетаданныеСправочника.Владельцы.Количество() > 0 Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Владелец");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Владелец"));
КонецЕсли;
Если МетаданныеСправочника.Иерархический Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Родитель");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Родитель"));
КонецЕсли;
- ИначеЕсли КорневойТипКонфигурации = "Документ" Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Дата");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("ПометкаУдаления");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Проведен");
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Документ") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Дата"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Проведен"));
ВыгружатьКод = Ложь;
Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Номер");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Номер"));
КонецЕсли;
Если ВыгружатьСсылку Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Ссылка");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
КонецЕсли;
- ИначеЕсли КорневойТипКонфигурации = "БизнесПроцесс" Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Дата");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("ПометкаУдаления");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Стартован");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Завершен");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("ВедущаяЗадача");
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("БизнесПроцесс") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Дата"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Стартован"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Завершен"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ВедущаяЗадача"));
ВыгружатьКод = Ложь;
Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Номер");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Номер"));
КонецЕсли;
Если ВыгружатьСсылку Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Ссылка");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
КонецЕсли;
- ИначеЕсли КорневойТипКонфигурации = "Задача" Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Дата");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("ПометкаУдаления");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("БизнесПроцесс");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("ТочкаМаршрута");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Наименование");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Выполнена");
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("Задача") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Дата"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("БизнесПроцесс"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ТочкаМаршрута"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Наименование"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Выполнена"));
ВыгружатьКод = Ложь;
Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Номер");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Номер"));
КонецЕсли;
Если ВыгружатьСсылку Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Ссылка");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
КонецЕсли;
- ИначеЕсли КорневойТипКонфигурации = "РегистрСведений" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрСведений") Тогда
Если Не ОписательОбъекта.Метаданное.ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Период");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Период"));
КонецЕсли;
Если ОписательОбъекта.Метаданное.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.ПодчинениеРегистратору Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Регистратор");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Активность");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Регистратор"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Активность"));
КонецЕсли;
- ИначеЕсли КорневойТипКонфигурации = "РегистрНакопления" или КорневойТипКонфигурации = "РегистрБухгалтерии" Тогда
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрНакопления") или КорневойТипКонфигурации = ВернутьЗначениеСоответствия("РегистрБухгалтерии") Тогда
Для Каждого ОписаниеСтандартногоРеквизита Из ОписательОбъекта.Метаданное.СтандартныеРеквизиты Цикл
- Если ОписаниеСтандартногоРеквизита.Имя = "НомерСтроки" Тогда
+ Если ОписаниеСтандартногоРеквизита.Имя = ВернутьЗначениеСоответствия("НомерСтроки") Тогда
Продолжить;
КонецЕсли;
ВыгружаемыеСтандартныеРеквизиты.Добавить(ОписаниеСтандартногоРеквизита.Имя);
КонецЦикла;
- ИначеЕсли КорневойТипКонфигурации = "ПланОбмена" Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Наименование");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("ПометкаУдаления");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("НомерОтправленного");
- ВыгружаемыеСтандартныеРеквизиты.Добавить("НомерПринятого");
+ ИначеЕсли КорневойТипКонфигурации = ВернутьЗначениеСоответствия("ПланОбмена") Тогда
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Наименование"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("ПометкаУдаления"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("НомерОтправленного"));
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("НомерПринятого"));
ВыгружатьКод = Ложь;
Если ОписательОбъекта.Свойство("ВыгружатьКод", ВыгружатьКод) и ВыгружатьКод Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Код");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Код"));
КонецЕсли;
Если ВыгружатьСсылку Тогда
- ВыгружаемыеСтандартныеРеквизиты.Добавить("Ссылка");
+ ВыгружаемыеСтандартныеРеквизиты.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
КонецЕсли;
Иначе
@@ -2355,7 +2364,7 @@
Если ТипЗнч(Объект) = Тип("ОбъектМетаданных") Тогда
ЕстьРеквизитСсылка = Ложь;
Для каждого РеквизитМд Из Объект.СтандартныеРеквизиты Цикл
- Если РеквизитМд.Имя = "Ссылка" Тогда
+ Если РеквизитМд.Имя = ВернутьЗначениеСоответствия("Ссылка") Тогда
ЕстьРеквизитСсылка = Истина;
КонецЕсли;
КонецЦикла;
@@ -2479,7 +2488,7 @@
Функция ЭтоОписательОбъектаСсылки(ОписательОбъекта, РезСсылка = Неопределено)
- ЭтоСсылочныйОбъект = ОписательОбъекта.Свойство("Ссылка", РезСсылка) И РезСсылка <> Неопределено;
+ ЭтоСсылочныйОбъект = ОписательОбъекта.Свойство(ВернутьЗначениеСоответствия("Ссылка"), РезСсылка) И РезСсылка <> Неопределено;
Возврат ЭтоСсылочныйОбъект;
КонецФункции
@@ -2571,7 +2580,7 @@
//
Функция ЛиСсылкаНаПеречисление_ирЛкс(пЗначение) Экспорт
- Возврат (ПолучитьКорневойТипКонфигурации_ирЛкс(пЗначение) = "Перечисление");
+ Возврат (ПолучитьКорневойТипКонфигурации_ирЛкс(пЗначение) = ВернутьЗначениеСоответствия("Перечисление"));
КонецФункции // ЛксЛиСсылкаНаПеречисление()
@@ -2587,14 +2596,15 @@
Функция ЛиКорневойТипОбъектаБД_ирЛкс(КорневойТип) Экспорт
Если Ложь
- ИЛИ КорневойТип = "БизнесПроцесс"
- ИЛИ КорневойТип = "Задача"
- ИЛИ КорневойТип = "Документ"
- ИЛИ КорневойТип = "ПланВидовРасчета"
- ИЛИ КорневойТип = "ПланВидовХарактеристик"
- ИЛИ КорневойТип = "ПланОбмена"
- ИЛИ КорневойТип = "ПланСчетов"
- ИЛИ КорневойТип = "Справочник"
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("БизнесПроцесс")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("Задача")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("Документ")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("ПланВидовРасчета")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("ПланВидовХарактеристик")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("ПланОбмена")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("ПланСчетов")
+ ИЛИ КорневойТип = ВернутьЗначениеСоответствия("Справочник")
+
Тогда
Возврат Истина;
КонецЕсли;
@@ -2634,7 +2644,12 @@
Иначе
//КорневойТип = ЛксПолучитьКорневойТипКонфигурации(МетаданныеОбъекта, Истина); // Изменил 02.03.2012
Если КорневойТип <> Неопределено Тогда
- ИмяТипаМенеджера = КорневойТип + "Менеджер." + МетаданныеОбъекта.Имя;
+ Если НЕ ВариантВстроенногоЯзыкаАнглийский Тогда
+ ИмяМенеджер = "Менеджер.";
+ Иначе
+ ИмяМенеджер = "Manager.";
+ КонецЕсли;
+ ИмяТипаМенеджера = КорневойТип + ИмяМенеджер + МетаданныеОбъекта.Имя;
Иначе
ИмяТипаМенеджера = "Неопределено";
КонецЕсли;
@@ -3139,7 +3154,7 @@
ОписаниеКласса.Класс = "Справочники";
ОписаниеКласса.Выгружаемый = истина;
ОписаниеКласса.Менеджер = Справочники;
- ОписаниеКласса.ДляЗапроса = "Справочник.";
+ ОписаниеКласса.ДляЗапроса = ВернутьЗначениеСоответствия("Справочник") + ".";
ОписаниеКласса.Свойства.Добавить("Владельцы");
ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
ОписаниеКласса.ИндексКартинки = 3;
@@ -3175,7 +3190,7 @@
ОписаниеКласса.Класс = "Документы";
ОписаниеКласса.Выгружаемый = истина;
ОписаниеКласса.Менеджер = Документы;
- ОписаниеКласса.ДляЗапроса = "Документ.";
+ ОписаниеКласса.ДляЗапроса = ВернутьЗначениеСоответствия("Документ") + ".";
ОписаниеКласса.Свойства.Добавить("ВводитсяНаОсновании");
ОписаниеКласса.Свойства.Добавить("Движения");
ОписаниеКласса.ИндексКартинки = 7;
@@ -4500,8 +4515,8 @@
СоставВыгрузки();
мВыгруженныеОбъекты = Новый ТаблицаЗначений;
- мВыгруженныеОбъекты.Колонки.Добавить("Ссылка");
- мВыгруженныеОбъекты.Индексы.Добавить("Ссылка");
+ мВыгруженныеОбъекты.Колонки.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
+ мВыгруженныеОбъекты.Индексы.Добавить(ВернутьЗначениеСоответствия("Ссылка"));
Если ОбъектыВыгруженныеСОшибками = Неопределено Тогда
@@ -4728,7 +4743,7 @@
Если ЭтоЗапросПоОбъекту Тогда
// выгрузка ссылочных объектов
- Ссылка = ДанныеОбъекта.Ссылка;
+ Ссылка = ДанныеОбъекта[ВернутьЗначениеСоответствия("Ссылка")];
Если СсылкаВыгружена(Ссылка) Тогда
@@ -4892,14 +4907,14 @@
Функция СсылкаВыгружена(Ссылка)
- Возврат мВыгруженныеОбъекты.Найти(Ссылка, "Ссылка") <> Неопределено;
+ Возврат мВыгруженныеОбъекты.Найти(Ссылка, ВернутьЗначениеСоответствия("Ссылка")) <> Неопределено;
КонецФункции
Процедура ДобавитьСсылкуКВыгруженным(Ссылка)
СтрокаДобавления = мВыгруженныеОбъекты.Добавить();
- СтрокаДобавления.ссылка = Ссылка;
+ СтрокаДобавления[ВернутьЗначениеСоответствия("Ссылка")] = Ссылка;
КонецПроцедуры
@@ -5337,7 +5352,63 @@
КонецФункции
+//Заполнение соответствий в английском языке.
+Процедура ЗаполнитьСоответствие()
+ АнглийскоеСоответствие = Новый Соответствие;
+ АнглийскоеСоответствие.Вставить("Справочник", "Catalog");
+ АнглийскоеСоответствие.Вставить("Документ", "Document");
+ АнглийскоеСоответствие.Вставить("БизнесПроцесс", "BusinessProcess");
+ АнглийскоеСоответствие.Вставить("Задача", "Task");
+ АнглийскоеСоответствие.Вставить("ПланВидовРасчета", "ChartOfCalculationTypes");
+ АнглийскоеСоответствие.Вставить("ПланВидовХарактеристик", "ChartOfCharacteristicTypes");
+ АнглийскоеСоответствие.Вставить("ПланОбмена", "ExchangePlan");
+ АнглийскоеСоответствие.Вставить("ПланСчетов", "ChartOfAccounts");
+ АнглийскоеСоответствие.Вставить("РегистрСведений", "InformationRegister");
+ АнглийскоеСоответствие.Вставить("РегистрНакопления", "AccumulationRegister");
+ АнглийскоеСоответствие.Вставить("РегистрБухгалтерии", "AccountingRegister");
+ АнглийскоеСоответствие.Вставить("Перечисление", "Enum");
+ АнглийскоеСоответствие.Вставить("Наименование", "Description");
+ АнглийскоеСоответствие.Вставить("Код", "Code");
+ АнглийскоеСоответствие.Вставить("Родитель", "Parent");
+ АнглийскоеСоответствие.Вставить("ЭтоГруппа", "IsFolder");
+ АнглийскоеСоответствие.Вставить("ПометкаУдаления", "DeletionMark");
+ АнглийскоеСоответствие.Вставить("Ссылка", "Ref");
+ АнглийскоеСоответствие.Вставить("Предопределенный", "Predefined");
+ АнглийскоеСоответствие.Вставить("ИмяПредопределенныхДанных","PredefinedDataName");
+ АнглийскоеСоответствие.Вставить("Владелец", "Owner");
+ АнглийскоеСоответствие.Вставить("Дата", "Date");
+ АнглийскоеСоответствие.Вставить("Проведен", "Posted");
+ АнглийскоеСоответствие.Вставить("Номер", "Number");
+ АнглийскоеСоответствие.Вставить("Стартован", "Started");
+ АнглийскоеСоответствие.Вставить("Завершен", "Completed");
+ АнглийскоеСоответствие.Вставить("ВедущаяЗадача", "HeadTask");
+ АнглийскоеСоответствие.Вставить("ТочкаМаршрута", "RoutePoint");
+ АнглийскоеСоответствие.Вставить("Выполнена", "Executed");
+ АнглийскоеСоответствие.Вставить("Период", "Period");
+ АнглийскоеСоответствие.Вставить("Регистратор", "Recorder");
+ АнглийскоеСоответствие.Вставить("Активность", "Active");
+ АнглийскоеСоответствие.Вставить("НомерСтроки", "LineNumber");
+ АнглийскоеСоответствие.Вставить("НомерОтправленного", "SentNo");
+ АнглийскоеСоответствие.Вставить("НомерПринятого", "ReceivedNo");
+ АнглийскоеСоответствие.Вставить("ПользовательИБ", "InfoBaseUser");
+
+КонецПроцедуры
+
+//Функция возвращает полученное значение из списка соответствия в зависимости от языка
+Функция ВернутьЗначениеСоответствия(ИскомоеЗначение)
+ ЗначениеСоответствия = ИскомоеЗначение;
+ Если ВариантВстроенногоЯзыкаАнглийский Тогда
+ ЭлементСоответствия = АнглийскоеСоответствие.Получить(ИскомоеЗначение);
+ Если НЕ ЭлементСоответствия = Неопределено Тогда
+ ЗначениеСоответствия = ЭлементСоответствия
+ КонецЕсли;
+ КонецЕсли;
+ Возврат ЗначениеСоответствия;
+КонецФункции
+
+
мНаличиеВыгрузкиПодчиненныхОбъектов = Ложь;
мТипРезультатЗапроса = Тип("РезультатЗапроса");
мСоответствиеКолонокДвижений = Новый Соответствие;
+ЗаполнитьСоответствие();
\ No newline at end of file
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/maps.txt" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/maps.txt"
index 0cfbc9b0..23ce08e8 100644
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/maps.txt"
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/maps.txt"
@@ -1,4 +1,4 @@
-Form\УправляемаяФорма\Форма.txt-->103ebd31-7643-4b1a-ba8b-4c789efcb71f.0 (2 373, 2 857)
+Form\УправляемаяФорма\Форма.bsl-->103ebd31-7643-4b1a-ba8b-4c789efcb71f.0 (2 439, 2 923)
Макеты\СозданиеДвухЗаписейВРегистреСведений.mxl-->a5b4bbdd-19ca-489b-9dce-60e08daa143f.0
Макеты\СозданиеДвухЗаписейРегистраБухгалтерии.mxl-->178f7433-f515-4d45-befa-5af52252dd0a.0
Макеты\СозданиеДвухЗаписейРегистраНакопления.mxl-->6da54382-70f9-4d82-aa91-d001b86297ee.0
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/renames.txt" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/renames.txt"
index 2564466f..ec6ddb4a 100644
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/renames.txt"
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/renames.txt"
@@ -11,7 +11,7 @@
4b38e3ee-f722-47b8-9c4c-1c4aa073ba10-->und\4b38e3ee-f722-47b8-9c4c-1c4aa073ba10
4b38e3ee-f722-47b8-9c4c-1c4aa073ba10.0-->und\4b38e3ee-f722-47b8-9c4c-1c4aa073ba10.0
54f1dec0-8f13-4065-9f45-0e74788142d2.0\info-->und\54f1dec0-8f13-4065-9f45-0e74788142d2.0\info
-54f1dec0-8f13-4065-9f45-0e74788142d2.0\text-->ObjectModule.txt
+54f1dec0-8f13-4065-9f45-0e74788142d2.0\text-->ObjectModule.bsl
5e00fac5-7796-4854-8e6b-c5933432d814-->und\5e00fac5-7796-4854-8e6b-c5933432d814
5e00fac5-7796-4854-8e6b-c5933432d814.0-->und\5e00fac5-7796-4854-8e6b-c5933432d814.0
624cf4b8-3591-4ce1-9579-6ac683689eb1-->und\624cf4b8-3591-4ce1-9579-6ac683689eb1
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/103ebd31-7643-4b1a-ba8b-4c789efcb71f.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/103ebd31-7643-4b1a-ba8b-4c789efcb71f.0"
index c40e089d..17804df9 100644
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/103ebd31-7643-4b1a-ba8b-4c789efcb71f.0"
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/103ebd31-7643-4b1a-ba8b-4c789efcb71f.0"
@@ -112,7 +112,8 @@
{0,
{"B",1},0}
},4,"ГруппаМетаданные",
-{1,1,
+{1,2,
+{"en","Metadata"},
{"ru","Метаданные"}
},
{1,1,
@@ -145,7 +146,7 @@
{12,1,0,2,1,
{0},
{1,0},
-{"Pattern"},""},5,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{"Pattern"},""},6,77ffcc29-7f2d-4223-b22f-19666e7250ba,
{30,
{86,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
@@ -445,6 +446,69 @@
{1,1},0,1},1,
{"Pattern"},
{"Pattern"},"","",
+{0},0},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{30,
+{237,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},3,"ЯзыкПрограммированияАнглийский",1,0,
+{1,2,
+{"en","Script variant English"},
+{"ru","Язык программирования английский"}
+},
+{1,0},
+{2,
+{1},
+{0,b860830e-962e-4a6d-8a79-81183973884c}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{3,0,
+{0},"",-1,-1,1,0},
+{3,0,
+{0},"",-1,-1,1,0},
+{3,4,
+{0}
+},
+{6,3,0,1},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{6,3,0,1},
+{0,0,0},1,
+{7,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+}
+},
+{0},1,
+{17,
+{238,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"ЯзыкПрограммированияАнглийскийContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{6,3,0,1},
+{0,0,0},1,
+{1,1},0,1},1,
+{"Pattern"},
+{"Pattern"},"","",
{0},0},1},cd5394d0-7dda-4b56-8927-93ccbe967a01,
{17,
{78,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
@@ -984,7 +1048,8 @@ hTRe/ovuO95tKLz8/wMIMJTrkeBH9AAAAABJRU5ErkJggg==}
{0,
{"B",1},0}
},4,"ГруппаТаблицаДанных",
-{1,1,
+{1,2,
+{"en","Table of data"},
{"ru","Таблица данных"}
},
{1,1,
@@ -1593,7 +1658,8 @@ hTRe/ovuO95tKLz8/wMIMJTrkeBH9AAAAABJRU5ErkJggg==}
{0,
{"B",1},0}
},4,"ГруппаПользователиИБ",
-{1,1,
+{1,2,
+{"en","Users of database"},
{"ru","Пользователи ИБ"}
},
{1,1,
@@ -2955,13 +3021,13 @@ gtGM0J7RgtCx0L7RgDwvbGVmdD4NCgkJCQkJPGNvbXBhcmlzb25UeXBlPkVxdWFs
PC9jb21wYXJpc29uVHlwZT4NCgkJCQkJPHJpZ2h0IHhzaTp0eXBlPSJ4czpib29s
ZWFuIj50cnVlPC9yaWdodD4NCgkJCQk8L2l0ZW0+DQoJCQk8L2ZpbHRlcj4NCgkJ
CTxhcHBlYXJhbmNlPg0KCQkJCTxkY3Njb3I6aXRlbSB4c2k6dHlwZT0iU2V0dGlu
-Z3NQYXJhbWV0ZXJWYWx1ZSI+DQoJCQkJCTxkY3Njb3I6cGFyYW1ldGVyPkZvbnQ8
-L2Rjc2NvcjpwYXJhbWV0ZXI+DQoJCQkJCTxkY3Njb3I6dmFsdWUgeHNpOnR5cGU9
-InY4dWk6Rm9udCIgcmVmPSJzeXM6RGVmYXVsdEdVSUZvbnQiIGJvbGQ9InRydWUi
-IGl0YWxpYz0iZmFsc2UiIHVuZGVybGluZT0iZmFsc2UiIHN0cmlrZW91dD0iZmFs
-c2UiIGtpbmQ9IldpbmRvd3NGb250Ii8+DQoJCQkJPC9kY3Njb3I6aXRlbT4NCgkJ
-CTwvYXBwZWFyYW5jZT4NCgkJPC9pdGVtPg0KCTwvY29uZGl0aW9uYWxBcHBlYXJh
-bmNlPg0KPC9TZXR0aW5ncz4=}
+Z3NQYXJhbWV0ZXJWYWx1ZSI+DQoJCQkJCTxkY3Njb3I6cGFyYW1ldGVyPtCo0YDQ
+uNGE0YI8L2Rjc2NvcjpwYXJhbWV0ZXI+DQoJCQkJCTxkY3Njb3I6dmFsdWUgeHNp
+OnR5cGU9InY4dWk6Rm9udCIgcmVmPSJzeXM6RGVmYXVsdEdVSUZvbnQiIGJvbGQ9
+InRydWUiIGl0YWxpYz0iZmFsc2UiIHVuZGVybGluZT0iZmFsc2UiIHN0cmlrZW91
+dD0iZmFsc2UiIGtpbmQ9IldpbmRvd3NGb250Ii8+DQoJCQkJPC9kY3Njb3I6aXRl
+bT4NCgkJCTwvYXBwZWFyYW5jZT4NCgkJPC9pdGVtPg0KCTwvY29uZGl0aW9uYWxB
+cHBlYXJhbmNlPg0KPC9TZXR0aW5ncz4=}
},
{0,0},
{0,6,
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/178f7433-f515-4d45-befa-5af52252dd0a.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/178f7433-f515-4d45-befa-5af52252dd0a.0"
index cb2bd41b..7b7712a2 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/178f7433-f515-4d45-befa-5af52252dd0a.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/178f7433-f515-4d45-befa-5af52252dd0a.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/39a44593-4b6d-4b66-8cda-2f0e9ea7d454.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/39a44593-4b6d-4b66-8cda-2f0e9ea7d454.0"
index c501ffa1..a2d85079 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/39a44593-4b6d-4b66-8cda-2f0e9ea7d454.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/39a44593-4b6d-4b66-8cda-2f0e9ea7d454.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/3bcacc26-7049-41bb-94bc-b45f76986467.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/3bcacc26-7049-41bb-94bc-b45f76986467.0"
index 07cf3c80..e3b1961a 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/3bcacc26-7049-41bb-94bc-b45f76986467.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/3bcacc26-7049-41bb-94bc-b45f76986467.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/4b38e3ee-f722-47b8-9c4c-1c4aa073ba10.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/4b38e3ee-f722-47b8-9c4c-1c4aa073ba10.0"
index c09e526e..7103e2a1 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/4b38e3ee-f722-47b8-9c4c-1c4aa073ba10.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/4b38e3ee-f722-47b8-9c4c-1c4aa073ba10.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/5e00fac5-7796-4854-8e6b-c5933432d814.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/5e00fac5-7796-4854-8e6b-c5933432d814.0"
index d85607b7..65cd33fe 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/5e00fac5-7796-4854-8e6b-c5933432d814.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/5e00fac5-7796-4854-8e6b-c5933432d814.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/624cf4b8-3591-4ce1-9579-6ac683689eb1.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/624cf4b8-3591-4ce1-9579-6ac683689eb1.0"
index b2e4486c..d336ef73 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/624cf4b8-3591-4ce1-9579-6ac683689eb1.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/624cf4b8-3591-4ce1-9579-6ac683689eb1.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/6da54382-70f9-4d82-aa91-d001b86297ee.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/6da54382-70f9-4d82-aa91-d001b86297ee.0"
index eeb0ec4e..2acccf5a 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/6da54382-70f9-4d82-aa91-d001b86297ee.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/6da54382-70f9-4d82-aa91-d001b86297ee.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/799b41e4-6664-42d1-ba19-2dd1a0822bf6.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/799b41e4-6664-42d1-ba19-2dd1a0822bf6.0"
index 09ea6a68..3175e699 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/799b41e4-6664-42d1-ba19-2dd1a0822bf6.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/799b41e4-6664-42d1-ba19-2dd1a0822bf6.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/7b3de063-6588-445c-a318-e989e219f24c.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/7b3de063-6588-445c-a318-e989e219f24c.0"
index fdf2c306..25474cbe 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/7b3de063-6588-445c-a318-e989e219f24c.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/7b3de063-6588-445c-a318-e989e219f24c.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7.0"
index 8c4b0b35..b55cf66f 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/96508b55-1be0-4dbb-9a9d-a96d9a404282.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/96508b55-1be0-4dbb-9a9d-a96d9a404282.0"
index 56c62ef4..d144b13f 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/96508b55-1be0-4dbb-9a9d-a96d9a404282.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/96508b55-1be0-4dbb-9a9d-a96d9a404282.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/96bd1b96-9768-4a45-a972-1a728188f448.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/96bd1b96-9768-4a45-a972-1a728188f448.0"
index 5a1b78c5..96360f4a 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/96bd1b96-9768-4a45-a972-1a728188f448.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/96bd1b96-9768-4a45-a972-1a728188f448.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/9bd9901f-46d8-4c40-88b9-f58ac48f0fd0.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/9bd9901f-46d8-4c40-88b9-f58ac48f0fd0.0"
index 0824f6b1..70fd669d 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/9bd9901f-46d8-4c40-88b9-f58ac48f0fd0.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/9bd9901f-46d8-4c40-88b9-f58ac48f0fd0.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/9c8d5c50-f21a-4e92-a2df-2a0b5306e991.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/9c8d5c50-f21a-4e92-a2df-2a0b5306e991.0"
index 38d92573..db6727d4 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/9c8d5c50-f21a-4e92-a2df-2a0b5306e991.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/9c8d5c50-f21a-4e92-a2df-2a0b5306e991.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/a5b4bbdd-19ca-489b-9dce-60e08daa143f.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/a5b4bbdd-19ca-489b-9dce-60e08daa143f.0"
index d7f77d65..11a79161 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/a5b4bbdd-19ca-489b-9dce-60e08daa143f.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/a5b4bbdd-19ca-489b-9dce-60e08daa143f.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/aeaa86b2-a07f-40ef-afd6-1b116e7a37b6.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/aeaa86b2-a07f-40ef-afd6-1b116e7a37b6.0"
index 2f68ff63..693f14f9 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/aeaa86b2-a07f-40ef-afd6-1b116e7a37b6.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/aeaa86b2-a07f-40ef-afd6-1b116e7a37b6.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/copyinfo" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/copyinfo"
index bd3acfab..610d59f5 100644
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/copyinfo"
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/copyinfo"
@@ -1,5 +1,5 @@
{4,
-{30,
+{31,
{01b3462f-bb96-43d3-862b-e5cbcf9afd55,01b3462f-bb96-43d3-862b-e5cbcf9afd55,1,
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
},
@@ -79,6 +79,9 @@
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,"ПользователиИБ"},
{5d24a9d1-098e-11d6-b9b8-0050bae0a95d,"ПолноеИмя"}
},
+{b860830e-962e-4a6d-8a79-81183973884c,b860830e-962e-4a6d-8a79-81183973884c,1,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"ВариантВстроенногоЯзыкаАнглийский"}
+},
{bcd9f98c-16d2-4a22-b512-f58f24c2c2e2,bcd9f98c-16d2-4a22-b512-f58f24c2c2e2,1,
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"ДатаОкончания"}
},
@@ -111,7 +114,7 @@
{9d3c86e4-fa06-4c20-bca1-6fe80c64060e,54f1dec0-8f13-4065-9f45-0e74788142d2,0},
{e61ef7b8-f3e1-4f4b-8ac7-676e90524997,6eaeb2c4-c358-4c9b-82bf-b779f300f3e5,0}
},
-{32,
+{33,
{
{-2},8c4a53bd-2ffc-4f04-a9c8-f69b557900f6,
{-2}
@@ -193,6 +196,10 @@
{-1}
},
{
+{0,b860830e-962e-4a6d-8a79-81183973884c},9d3c86e4-fa06-4c20-bca1-6fe80c64060e,
+{-1}
+},
+{
{0,bcd9f98c-16d2-4a22-b512-f58f24c2c2e2},9d3c86e4-fa06-4c20-bca1-6fe80c64060e,
{-1}
},
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/d0ac533a-c210-47e2-94e1-6d5329bcc033" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/d0ac533a-c210-47e2-94e1-6d5329bcc033"
index ab33ed28..4555ac4e 100644
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/d0ac533a-c210-47e2-94e1-6d5329bcc033"
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/d0ac533a-c210-47e2-94e1-6d5329bcc033"
@@ -212,13 +212,14 @@
{1,
{1,1,
{-3},510405d3-2a0c-4fea-960a-7fee59b32f9b,
-{8,21,1183c14f-f814-49c6-9233-a3c26b3f64cf,
+{8,23,1183c14f-f814-49c6-9233-a3c26b3f64cf,
{"#",9ad557b1-249e-48dc-824b-3e149ecf10a6,
{3,0,0}
},2723eb98-b4c1-498a-a6f3-70444757902f,
{"#",98ea8e5a-b586-442b-b944-6e3447734aa7,0},2bbba66b-fabf-4863-8ba3-54b3c64c896e,
{"B",0},2c8143d5-4248-4c43-8bfb-307c0be2e415,
-{"B",0},3eaf5a8b-06d6-47b0-ac7d-a9698247f499,
+{"B",0},33c74a4d-561f-4bc0-9eaa-8d21c893c0a9,
+{"U"},3eaf5a8b-06d6-47b0-ac7d-a9698247f499,
{"U"},4690ff70-e3fa-4914-9127-6a9acc5fc949,
{"#",87024738-fc2a-4436-ada1-df79d395c424,
{0}
@@ -232,7 +233,8 @@
},6e3a1131-37a3-4da5-8895-572d9d0c9db6,
{"#",ace3fd07-11b2-477e-ab7f-36f0ea37c8dd,
{ace3fd07-11b2-477e-ab7f-36f0ea37c8dd,2}
-},88149a78-9448-4767-867b-0e650d165d2e,
+},7ba608f2-e654-42a3-8885-334fe88ca910,
+{"U"},88149a78-9448-4767-867b-0e650d165d2e,
{"#",87024738-fc2a-4436-ada1-df79d395c424,
{0}
},90ae4b5d-e0fd-49ef-a008-d67c1e75038c,
@@ -269,7 +271,7 @@
{0,0,125e5b0a-0bc6-45cb-a336-cb6a4d287136},"Имя",
{1,"ru","Имя"},""},
{"Pattern",
-{"S",10,1}
+{"S",100,1}
}
},0,
{0},
@@ -290,7 +292,7 @@
{0,0,8f38c53d-a655-4374-ad31-85648b2548a3},"ПолноеИмя",
{1,"ru","Полное имя"},""},
{"Pattern",
-{"S",10,1}
+{"S",255,1}
}
},0,
{0},
@@ -392,7 +394,7 @@
},
{3daea016-69b7-4ed4-9453-127911372fe6,19,efa2b5fc-de31-4695-a81b-8acc1a24d8f8,f930823a-837f-43ad-9791-02742bdf3c7a,3bcacc26-7049-41bb-94bc-b45f76986467,7b3de063-6588-445c-a318-e989e219f24c,9c8d5c50-f21a-4e92-a2df-2a0b5306e991,aeaa86b2-a07f-40ef-afd6-1b116e7a37b6,9bd9901f-46d8-4c40-88b9-f58ac48f0fd0,5e00fac5-7796-4854-8e6b-c5933432d814,a5b4bbdd-19ca-489b-9dce-60e08daa143f,624cf4b8-3591-4ce1-9579-6ac683689eb1,96bd1b96-9768-4a45-a972-1a728188f448,96508b55-1be0-4dbb-9a9d-a96d9a404282,4b38e3ee-f722-47b8-9c4c-1c4aa073ba10,6da54382-70f9-4d82-aa91-d001b86297ee,f04e1194-a196-4a4b-b797-7ece45ac1872,178f7433-f515-4d45-befa-5af52252dd0a,799b41e4-6664-42d1-ba19-2dd1a0822bf6,39a44593-4b6d-4b66-8cda-2f0e9ea7d454,7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7},
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,103ebd31-7643-4b1a-ba8b-4c789efcb71f,01b3462f-bb96-43d3-862b-e5cbcf9afd55},
-{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,15,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,16,
{
{0,
{25,
@@ -703,6 +705,27 @@
{0,0},0,
{0},
{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,b860830e-962e-4a6d-8a79-81183973884c},"ВариантВстроенногоЯзыкаАнглийский",
+{2,"en","Script Variant English","ru","Вариант встроенного языка английский"},""},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
},0}
}
}
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/efa2b5fc-de31-4695-a81b-8acc1a24d8f8.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/efa2b5fc-de31-4695-a81b-8acc1a24d8f8.0"
index eb1b4668..56a5b209 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/efa2b5fc-de31-4695-a81b-8acc1a24d8f8.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/efa2b5fc-de31-4695-a81b-8acc1a24d8f8.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/f04e1194-a196-4a4b-b797-7ece45ac1872.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/f04e1194-a196-4a4b-b797-7ece45ac1872.0"
index 44b17e36..82d00457 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/f04e1194-a196-4a4b-b797-7ece45ac1872.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/f04e1194-a196-4a4b-b797-7ece45ac1872.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/f930823a-837f-43ad-9791-02742bdf3c7a.0" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/f930823a-837f-43ad-9791-02742bdf3c7a.0"
index e09585e6..46e230e9 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/f930823a-837f-43ad-9791-02742bdf3c7a.0" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/f930823a-837f-43ad-9791-02742bdf3c7a.0" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/versions" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/versions"
index 4870053b..7edced2e 100644
--- "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/versions"
+++ "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/und/versions"
@@ -1 +1 @@
-{1,49,"",ac09c074-a41d-4b61-8962-02f9d84cb1d7,"624cf4b8-3591-4ce1-9579-6ac683689eb1.0",3ff1f5c2-c115-4936-868c-edcd9a3dc088,"f930823a-837f-43ad-9791-02742bdf3c7a",d9c5b796-a3d4-4c20-996e-79f90fe02fda,"5e00fac5-7796-4854-8e6b-c5933432d814",18090454-a98c-4274-bf39-683c1d3f47ca,"01b3462f-bb96-43d3-862b-e5cbcf9afd55",b1459b34-9b6b-47f7-b21d-7f06168ff7ef,"39a44593-4b6d-4b66-8cda-2f0e9ea7d454",618976f9-4a8f-480b-9310-a303aab8e2b0,"a5b4bbdd-19ca-489b-9dce-60e08daa143f.0",9fe48387-8081-4e9d-89c6-d1bb1af0e6ac,"96bd1b96-9768-4a45-a972-1a728188f448.0",82ae4a2c-5976-4bdf-8c82-3a89767c0fbc,"f04e1194-a196-4a4b-b797-7ece45ac1872.0",5d6b679b-aa8a-4933-bb82-66adb92b6c55,"copyinfo",271e77c8-e7d2-4c94-bfe4-cbf35d6779cd,"4b38e3ee-f722-47b8-9c4c-1c4aa073ba10",3ce6f81e-5a94-480b-873a-3434fe23f291,"799b41e4-6664-42d1-ba19-2dd1a0822bf6.0",32f4cacb-ba50-4f4a-ae21-0f949298a080,"178f7433-f515-4d45-befa-5af52252dd0a",9cba41ee-3c2f-45b2-a56e-e2903eef5401,"aeaa86b2-a07f-40ef-afd6-1b116e7a37b6.0",8ef67a25-f272-4d6f-9e30-98596e6a7288,"178f7433-f515-4d45-befa-5af52252dd0a.0",d17364ad-ad66-49ce-b9d9-31ccc9b069e2,"d0ac533a-c210-47e2-94e1-6d5329bcc033",3ac2ce19-1b6b-4f81-b743-8f42047e45c5,"01b3462f-bb96-43d3-862b-e5cbcf9afd55.0",812aa4f6-2a66-467c-a8b1-9dc99e88e484,"103ebd31-7643-4b1a-ba8b-4c789efcb71f",45332a4a-c57d-421a-8fd1-5fefaa54623f,"5e00fac5-7796-4854-8e6b-c5933432d814.0",b1bbe111-c194-45ca-b4ab-be0b45c32c72,"96508b55-1be0-4dbb-9a9d-a96d9a404282.0",64ff139c-eaba-43c5-b3f3-94991832dbf2,"9bd9901f-46d8-4c40-88b9-f58ac48f0fd0",808986e0-484d-413a-81ef-82f2db1c9a7d,"9bd9901f-46d8-4c40-88b9-f58ac48f0fd0.0",63f4571f-16ed-408d-a8c7-b4bf0ad09a14,"efa2b5fc-de31-4695-a81b-8acc1a24d8f8.0",4f39e80c-1afa-4ac7-88be-693c5cb913eb,"6da54382-70f9-4d82-aa91-d001b86297ee.0",12a51877-e2e5-46d0-ab6f-1eb2131d5e69,"aeaa86b2-a07f-40ef-afd6-1b116e7a37b6",c744dd72-e854-4ac5-b4ad-077df4881b77,"624cf4b8-3591-4ce1-9579-6ac683689eb1",6945d0db-dfee-43ff-996d-7f911cd80b33,"4b38e3ee-f722-47b8-9c4c-1c4aa073ba10.0",fbeff146-1486-47ad-9abb-2b38f6caff61,"96bd1b96-9768-4a45-a972-1a728188f448",11c1eb14-5254-4703-962b-9c5df8661d5f,"a5b4bbdd-19ca-489b-9dce-60e08daa143f",19851ba1-b130-412b-bd55-d3e77f747c35,"3bcacc26-7049-41bb-94bc-b45f76986467",606d747e-c85b-47e4-b522-f4022ad1ffdc,"f930823a-837f-43ad-9791-02742bdf3c7a.0",b075e461-1d2d-436e-a3db-89601c345085,"root",56db60ef-7837-43eb-867e-5d886b08a2d8,"version",c5dedc7e-ec1f-4efb-b14a-d840fe0cd29d,"799b41e4-6664-42d1-ba19-2dd1a0822bf6",c7222314-fc29-4419-b556-cb9f9022bc66,"versions",37a2334a-7f31-43db-aaae-e342875b15a9,"103ebd31-7643-4b1a-ba8b-4c789efcb71f.0",0888d999-fd3d-43a5-90e5-bda21c314065,"54f1dec0-8f13-4065-9f45-0e74788142d2.0",03590e1d-4342-40b8-8d30-0ddfa99c678f,"6da54382-70f9-4d82-aa91-d001b86297ee",82e74a70-4045-4a06-aa7d-78c365fc3bec,"efa2b5fc-de31-4695-a81b-8acc1a24d8f8",57b3262f-c18d-45ed-acfe-d98d3746d0b4,"7b3de063-6588-445c-a318-e989e219f24c",43f8644e-c3c2-4788-8d66-f5d7e810c0bd,"7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7.0",b1491538-75d0-44cd-9383-d4a6ea7a6fd5,"7b3de063-6588-445c-a318-e989e219f24c.0",567de72c-5c1b-4596-b4df-d9a574cf6565,"3bcacc26-7049-41bb-94bc-b45f76986467.0",8c8a41ac-1acb-4e56-9929-b4d86293074b,"9c8d5c50-f21a-4e92-a2df-2a0b5306e991",71428947-5232-4d94-85cc-1437e4de5a88,"96508b55-1be0-4dbb-9a9d-a96d9a404282",d1c43eab-4a02-47c7-af00-dfff664db03f,"9c8d5c50-f21a-4e92-a2df-2a0b5306e991.0",da0f53c2-1737-44b2-b89c-181c1775afc7,"7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7",e1a61d34-d410-43d5-9aeb-f84f11c24621,"39a44593-4b6d-4b66-8cda-2f0e9ea7d454.0",f91c1ac5-7d68-4533-afcf-60b25c8551ca,"f04e1194-a196-4a4b-b797-7ece45ac1872",e8761804-f48b-45ca-b851-9d70450418cf}
\ No newline at end of file
+{1,49,"",62571f59-cbaa-4935-917c-1c8d0ea9225a,"624cf4b8-3591-4ce1-9579-6ac683689eb1.0",90929fb9-d117-429f-ad72-c79bdc5ba629,"f930823a-837f-43ad-9791-02742bdf3c7a",e9c2cb9f-2b48-4eb9-aa51-9a719b79227a,"5e00fac5-7796-4854-8e6b-c5933432d814",2fa66924-0e8d-4e41-af2e-d6b769d7f969,"01b3462f-bb96-43d3-862b-e5cbcf9afd55",83eec688-8039-4f5f-8172-6453e26de42a,"39a44593-4b6d-4b66-8cda-2f0e9ea7d454",d5c62718-4052-4017-a3da-33fa92230591,"96bd1b96-9768-4a45-a972-1a728188f448.0",2e039425-fbee-472f-902d-412a9e5db305,"a5b4bbdd-19ca-489b-9dce-60e08daa143f.0",8f109624-88fb-4a58-8503-6997173f5667,"f04e1194-a196-4a4b-b797-7ece45ac1872.0",93a897ae-45d2-4586-b4b8-61805872f4bd,"copyinfo",5edfd4d1-9c2a-45b5-8268-dab3d16724eb,"4b38e3ee-f722-47b8-9c4c-1c4aa073ba10",2aa91801-6c65-4b62-aa74-00007e4fd62a,"799b41e4-6664-42d1-ba19-2dd1a0822bf6.0",3d0d6a50-c75f-4e74-a6ab-c2cdf8c19376,"178f7433-f515-4d45-befa-5af52252dd0a",5bc67487-09a9-47e1-b0ee-582fd6a7513f,"aeaa86b2-a07f-40ef-afd6-1b116e7a37b6.0",8f78c2a5-4a13-4588-9be8-e3406356891c,"178f7433-f515-4d45-befa-5af52252dd0a.0",fc321217-7966-43f9-942d-80ffc6a59966,"01b3462f-bb96-43d3-862b-e5cbcf9afd55.0",fe927392-5c37-4ffc-a448-9bbc83c483ce,"d0ac533a-c210-47e2-94e1-6d5329bcc033",c934cd96-c24e-4d1e-8137-747c6cffd21c,"103ebd31-7643-4b1a-ba8b-4c789efcb71f",03830908-2e5d-4f3a-b813-688b28d491c8,"5e00fac5-7796-4854-8e6b-c5933432d814.0",cde3a190-3959-46be-bba3-f285c4ef58cd,"96508b55-1be0-4dbb-9a9d-a96d9a404282.0",1bae13f8-7cb9-44c0-93bc-a1e6aba3b81d,"9bd9901f-46d8-4c40-88b9-f58ac48f0fd0",666a6a6b-099d-4df2-8587-9e95545f56ef,"9bd9901f-46d8-4c40-88b9-f58ac48f0fd0.0",38c71857-382a-429a-948b-952b05841510,"6da54382-70f9-4d82-aa91-d001b86297ee.0",c27b278c-7983-4de9-af21-e8361f016093,"efa2b5fc-de31-4695-a81b-8acc1a24d8f8.0",5e2b093f-1b91-4e88-9b9a-a649270ebb72,"aeaa86b2-a07f-40ef-afd6-1b116e7a37b6",a30b17f9-a676-4a6d-b8c7-523be88ef17e,"624cf4b8-3591-4ce1-9579-6ac683689eb1",cf0daead-5da7-44ba-97a5-2d99b347ff64,"4b38e3ee-f722-47b8-9c4c-1c4aa073ba10.0",e366f53d-abb8-4867-8e37-e6b5d56d0d4d,"a5b4bbdd-19ca-489b-9dce-60e08daa143f",2fa9b25d-43a1-4f51-b370-d95a04b12c02,"96bd1b96-9768-4a45-a972-1a728188f448",af28a6eb-4390-4e10-bb22-eb53e0f955cc,"3bcacc26-7049-41bb-94bc-b45f76986467",2c454165-08bb-4422-87a5-61eca47b3592,"version",2c4d28a7-7f45-430b-9360-1cc4361518b8,"root",3ab3f3cc-bbeb-4060-9d38-3df1a885dd82,"f930823a-837f-43ad-9791-02742bdf3c7a.0",0dfaa483-075c-4cd2-95fe-508b3d8ab740,"799b41e4-6664-42d1-ba19-2dd1a0822bf6",797f8123-352b-4990-bf01-66bdc101648c,"versions",197b873d-f757-45c6-be28-86813c96ee3c,"103ebd31-7643-4b1a-ba8b-4c789efcb71f.0",e2ad685d-3ea5-4024-a72e-63232129ac51,"54f1dec0-8f13-4065-9f45-0e74788142d2.0",b0a110c4-192a-4c1c-9d97-302ccce4d819,"6da54382-70f9-4d82-aa91-d001b86297ee",1de35b2e-3932-431a-b89e-a51f8ec9b1c4,"efa2b5fc-de31-4695-a81b-8acc1a24d8f8",296bab4b-b5cb-4708-bf12-7e9ec8719560,"7b3de063-6588-445c-a318-e989e219f24c",8491d29d-2018-47de-a968-18c6ddc066f8,"7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7.0",3db117bd-bbed-4c46-bc4f-5bdfd2839b4c,"7b3de063-6588-445c-a318-e989e219f24c.0",6af485f4-4c70-4cc1-a074-527169c686f8,"3bcacc26-7049-41bb-94bc-b45f76986467.0",38e22362-aba0-47a5-9dc2-7c3666dc7bfe,"9c8d5c50-f21a-4e92-a2df-2a0b5306e991",93c90c74-44ca-437e-b56b-ad4c18cdde37,"96508b55-1be0-4dbb-9a9d-a96d9a404282",8400ebbf-0da7-4617-af8a-410bc030cc16,"9c8d5c50-f21a-4e92-a2df-2a0b5306e991.0",76daac7f-a483-4189-975e-a02d00884eeb,"7ce6ce19-d0d0-4f0d-96c4-74d9b6238df7",2292f293-6b14-4588-b753-b2f07d052ef1,"39a44593-4b6d-4b66-8cda-2f0e9ea7d454.0",6285731b-c197-4193-a422-dc6b1c2a6126,"f04e1194-a196-4a4b-b797-7ece45ac1872",015e5479-c58c-4cd6-beaf-c9caba7280d6}
\ No newline at end of file
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.mxl"
index d7f77d65..11a79161 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270.mxl"
index cb2bd41b..7b7712a2 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217.mxl"
index eeb0ec4e..2acccf5a 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.mxl"
index 07cf3c80..e3b1961a 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.mxl"
index d85607b7..65cd33fe 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270.mxl"
index 09ea6a68..3175e699 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\320\274\320\270\320\247\320\260\321\201\321\202\321\217\320\274\320\270.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260.mxl"
index c501ffa1..a2d85079 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\243\320\267\320\273\320\276\320\262\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221.mxl"
index 8c4b0b35..b55cf66f 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\265\321\201\320\272\320\276\320\273\321\214\320\272\320\270\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\230\320\221.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265.mxl"
index 2f68ff63..693f14f9 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl"
index b2e4486c..d336ef73 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl"
index eb1b4668..56a5b209 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200.mxl"
index e09585e6..46e230e9 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.mxl"
index fdf2c306..25474cbe 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265.mxl"
index 5a1b78c5..96360f4a 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\223\321\200\321\203\320\277\320\277\320\265.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.mxl"
index 0824f6b1..70fd669d 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260.mxl"
index 44b17e36..82d00457 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264.mxl"
index 38d92573..db6727d4 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\321\201\321\213\320\273\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260\320\232\320\276\320\264.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.mxl"
index 56c62ef4..d144b13f 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271.mxl" differ
diff --git "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl"
index c09e526e..7103e2a1 100644
Binary files "a/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" and "b/src/Plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275\320\234\320\260\320\272\320\265\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260.mxl" differ
diff --git "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 99%
rename from "src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index bd58efb3..b8115f77 100644
--- "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -1031,16 +1031,18 @@
Для Каждого ЧастьСтроки Из СтрокиСоСсылками Цикл
Если ЧастьСтроки.Пометка Тогда
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение, Новый Шрифт(,,Истина)));
+ Выполнить("МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение, Новый Шрифт(,,Истина)));");
ИначеЕсли Не ПустаяСтрока(ЧастьСтроки.Представление) Тогда
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение,,,, ЧастьСтроки.Представление));
+ Выполнить("МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение,,,, ЧастьСтроки.Представление));");
Иначе
МассивСтроки.Добавить(ЧастьСтроки.Значение);
КонецЕсли;
КонецЦикла;
- Возврат Новый ФорматированнаяСтрока(МассивСтроки);
+ Рез = Неопределено;
+ Выполнить("Рез = Новый ФорматированнаяСтрока(МассивСтроки);");
+ Возврат Рез;
КонецФункции
diff --git "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.txt" "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.bsl"
similarity index 99%
rename from "src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.txt"
rename to "src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.bsl"
index faa5a281..9fa2ab21 100644
--- "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.txt"
+++ "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.bsl"
@@ -1009,16 +1009,18 @@
Для Каждого ЧастьСтроки Из СтрокиСоСсылками Цикл
Если ЧастьСтроки.Пометка Тогда
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение, Новый Шрифт(,,Истина)));
+ Выполнить("МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение, Новый Шрифт(,,Истина)));");
ИначеЕсли Не ПустаяСтрока(ЧастьСтроки.Представление) Тогда
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение,,,, ЧастьСтроки.Представление));
+ Выполнить("МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение,,,, ЧастьСтроки.Представление));");
Иначе
МассивСтроки.Добавить(ЧастьСтроки.Значение);
КонецЕсли;
КонецЦикла;
- Возврат Новый ФорматированнаяСтрока(МассивСтроки);
+ Рез = Неопределено;
+ Выполнить("Рез = Новый ФорматированнаяСтрока(МассивСтроки);");
+ Возврат Рез;
КонецФункции
diff --git "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt" "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt"
new file mode 100644
index 00000000..a775f08f
--- /dev/null
+++ "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 1 303)
diff --git "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt" "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
index b9253ef1..f90a2039 100644
--- "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
+++ "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
@@ -1,10 +1,8 @@
11c5f751-bfaf-480a-92fe-7f30023f2e9a-->und\11c5f751-bfaf-480a-92fe-7f30023f2e9a
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
-4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->Form\Форма\Форма.txt
-4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a"
index 03187a6c..33571be4 100644
--- "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a"
+++ "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a"
@@ -4,9 +4,9 @@
{1,
{4,85629dd2-6be4-49c6-9a69-13411102aa57,3fdd55c8-e92e-4f99-8b28-3ba8957b50ab,
{0,
-{1,
+{0,
{0,0,908d0aaf-e4ec-4668-8d14-3e8075d222fd},"СтроковыеУтилиты",
-{1,"ru","Строковые утилиты"},"",0,0}
+{1,"ru","Строковые утилиты"},""}
},4e8e1a4a-a947-419b-95c8-58a411e3ffa4,"",00000000-0000-0000-0000-000000000000},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,0},
diff --git "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4"
index 554d4f73..e9f6cd91 100644
--- "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4"
+++ "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4"
@@ -1,15 +1,10 @@
{1,
{1,
{0,
-{12,
-{1,
+{9,
+{0,
{0,0,4e8e1a4a-a947-419b-95c8-58a411e3ffa4},"Форма",
-{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
-{2,
-{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
-{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
-}
-},
+{1,"ru","Форма"},""},0,1},
{0}
}
},0}
\ No newline at end of file
diff --git "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0"
index ab3661d1..4fd57611 100644
--- "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0"
+++ "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0"
@@ -1,9 +1,9 @@
-{3,
-{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{2,
+{28,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
-{0,0,0},
+{0},
{0},1,
-{21,
+{17,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -14,40 +14,19 @@
{3,4,
{0}
},
-{7,3,0,1,100},
+{6,3,0,1},
{0,0,0},1,
-{0,0,1},0,1,0,0,0,3,3},0,"","",1,
-{21,
+{0,0,1},0,1},0,"","",1,
+{17,
{0},0,0,0,7,"Navigator",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
-{7,3,0,1,100},
-{0,0,0},0,0,1,0,1,
-{10,
-{0},0,0,0,0,"NavigatorExtendedTooltip",
-{1,0},
-{1,0},1,0,0,2,2,
-{3,4,
-{0}
-},
-{7,3,0,1,100},
-{0,0,0},1,
-{5,0,0,3,0,
-{0,0,0},
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{3,0,
-{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
-},0,1,2,
-{1,
-{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",0,0,0,0,0,0,3,3,0,0,0},"
+{6,3,0,1},
+{0,0,0},0,0,1}
+},"
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
@@ -1080,16 +1059,18 @@
Для Каждого ЧастьСтроки Из СтрокиСоСсылками Цикл
Если ЧастьСтроки.Пометка Тогда
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение, Новый Шрифт(,,Истина)));
+ Выполнить(""МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение, Новый Шрифт(,,Истина)));"");
ИначеЕсли Не ПустаяСтрока(ЧастьСтроки.Представление) Тогда
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение,,,, ЧастьСтроки.Представление));
+ Выполнить(""МассивСтроки.Добавить(Новый ФорматированнаяСтрока(ЧастьСтроки.Значение,,,, ЧастьСтроки.Представление));"");
Иначе
МассивСтроки.Добавить(ЧастьСтроки.Значение);
КонецЕсли;
КонецЦикла;
- Возврат Новый ФорматированнаяСтрока(МассивСтроки);
+ Рез = Неопределено;
+ Выполнить(""Рез = Новый ФорматированнаяСтрока(МассивСтроки);"");
+ Возврат Рез;
КонецФункции
@@ -1356,4 +1337,5 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
{0,0},
{0,0},
{0,0},
-{0,0},0,0}
\ No newline at end of file
+{0,0}
+}
\ No newline at end of file
diff --git "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/versions" "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/versions"
index 2fd96752..52319eca 100644
--- "a/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/versions"
+++ "b/src/Plugins/\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/versions"
@@ -1 +1 @@
-{1,9,"",2bb85aa2-b9d6-442a-b041-af4070bcce8e,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",0b6fa390-54a7-4fa6-b65a-5022ed87963a,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",f8cffbbe-4b42-4791-97d4-69cd541cd25a,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",9f9ce21f-a341-4e8a-8a45-8ff147e5e135,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",db32dfb4-fff0-4b09-b130-9492c37d89e0,"copyinfo",8c513a87-62ad-4170-9f0c-30136484c90c,"root",58246038-cadc-4423-9568-798e1b1f1dab,"version",4248fa2d-bfe5-4676-8cf4-5600f33bf57a,"versions",43498145-0ad9-48f5-8c95-2f6f459ce857}
\ No newline at end of file
+{1,9,"",3ebcaa72-61c4-46de-8266-b33c509cf050,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",8df57634-d49d-45a7-875a-319f0f968671,"versions",c4ebc6a3-5a5d-4427-9ba3-13c1488d9be6,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",53363859-01be-436b-83db-802203b8954e,"root",cd3cad6d-3c2c-41b2-990c-9921028dd36c,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",07a248e5-efdd-400b-902c-81db9729a488,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",c22a57d4-972d-41d2-a07d-9b67fc7fe247,"version",75ada833-6944-48f6-ad28-1eba3858c509,"copyinfo",bd85c7cc-b28b-4937-84b0-c0a761819569}
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..e66f6773
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,208 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+&НаКлиенте
+Функция Что(Знач ПроверяемоеЗначениеПараметр, Знач Сообщение = "") Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Что", 2, ПроверяемоеЗначениеПараметр, Сообщение);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция Не_() Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Не_", 0);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоНе() Экспорт
+ Возврат Не_();
+КонецФункции
+
+&НаКлиенте
+Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Метод", 2, ИмяМетода, ПараметрыМетода);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоИстина() Экспорт
+ ВыполнитьМетодОбъектаНаСервере("ЭтоИстина", 0);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ЕстьИстина() Экспорт
+ Возврат ЭтоИстина();
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоЛожь() Экспорт
+ ВыполнитьМетодОбъектаНаСервере("ЭтоЛожь", 0);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ЕстьЛожь() Экспорт
+ Возврат ЭтоЛожь();
+КонецФункции
+
+&НаКлиенте
+Функция Равно(Знач ОжидаемоеЗначение) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Равно", 1, ОжидаемоеЗначение);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция Больше(Знач МеньшееЗначение) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Больше", 1, МеньшееЗначение);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("БольшеИлиРавно", 1, МеньшееИлиРавноеЗначение);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция Минимум(Знач МинимальноеЗначение) Экспорт
+ Возврат БольшеИлиРавно(МинимальноеЗначение);
+КонецФункции
+
+&НаКлиенте
+Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("МеньшеИлиРавно", 1, БольшееИлиРавноеЗначение);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция Максимум(Знач МаксимальноеЗначение) Экспорт
+ Возврат МеньшеИлиРавно(МаксимальноеЗначение);
+КонецФункции
+
+&НаКлиенте
+Функция Меньше(Знач БольшееЗначение) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Меньше", 1, БольшееЗначение);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция Заполнено() Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Заполнено", 0);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция Существует() Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Существует", 0);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоНеопределено() Экспорт
+ ВыполнитьМетодОбъектаНаСервере("ЭтоНеопределено", 0);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ЕстьНеопределено() Экспорт
+ Возврат ЭтоНеопределено();
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоNull() Экспорт
+ ВыполнитьМетодОбъектаНаСервере("ЭтоNull", 0);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ЕстьNull() Экспорт
+ Возврат ЭтоNull();
+КонецФункции
+
+&НаКлиенте
+Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("ИмеетТип", 1, ТипИлиИмяТипа);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Между", 2, НачальноеЗначение, КонечноеЗначение);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция Содержит(Знач ИскомоеЗначение) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("Содержит", 1, ИскомоеЗначение);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт
+ ВыполнитьМетодОбъектаНаСервере("ИмеетДлину", 1, ОжидаемаяДлина);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ВыбрасываетИсключение(Знач ФрагментИсключения = "") Экспорт
+ ВыполнитьМетодОбъектаНаСервере("ВыбрасываетИсключение", 1, ФрагментИсключения);
+
+ Возврат ЭтаФорма;
+КонецФункции
+
+// { Helpers
+&НаСервере
+Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено)
+ ОбъектНаСервере = ЭтотОбъектНаСервере();
+
+ СтрокаПараметры = "";
+ Если КоличествоПараметров = 1 Тогда
+ СтрокаПараметры = "Параметр1";
+ ИначеЕсли КоличествоПараметров = 2 Тогда
+ СтрокаПараметры = "Параметр1, Параметр2";
+ КонецЕсли;
+
+ Попытка
+ Выполнить("ОбъектНаСервере." + ИмяМетода + "(" + СтрокаПараметры + ")");
+ Исключение
+ ОписаниеОшибки = ОписаниеОшибки();
+ ВызватьИсключение "Вызов метода <" + ИмяМетода +">: " + ОписаниеОшибки;
+ КонецПопытки;
+
+ ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект");
+КонецПроцедуры
+
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index a64f6841..00000000
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
&НаКлиенте
Функция Что(Знач ПроверяемоеЗначениеПараметр, Знач Сообщение = "") Экспорт
ВыполнитьМетодОбъектаНаСервере("Что", 2, ПроверяемоеЗначениеПараметр, Сообщение);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция Не_() Экспорт
ВыполнитьМетодОбъектаНаСервере("Не_", 0);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ЭтоНе() Экспорт
Возврат Не_();
КонецФункции
&НаКлиенте
Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт
ВыполнитьМетодОбъектаНаСервере("Метод", 2, ИмяМетода, ПараметрыМетода);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ЭтоИстина() Экспорт
ВыполнитьМетодОбъектаНаСервере("ЭтоИстина", 0);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ЕстьИстина() Экспорт
Возврат ЭтоИстина();
КонецФункции
&НаКлиенте
Функция ЭтоЛожь() Экспорт
ВыполнитьМетодОбъектаНаСервере("ЭтоЛожь", 0);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ЕстьЛожь() Экспорт
Возврат ЭтоЛожь();
КонецФункции
&НаКлиенте
Функция Равно(Знач ОжидаемоеЗначение) Экспорт
ВыполнитьМетодОбъектаНаСервере("Равно", 1, ОжидаемоеЗначение);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция Больше(Знач МеньшееЗначение) Экспорт
ВыполнитьМетодОбъектаНаСервере("Больше", 1, МеньшееЗначение);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт
ВыполнитьМетодОбъектаНаСервере("БольшеИлиРавно", 1, МеньшееИлиРавноеЗначение);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция Минимум(Знач МинимальноеЗначение) Экспорт
Возврат БольшеИлиРавно(МинимальноеЗначение);
КонецФункции
&НаКлиенте
Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт
ВыполнитьМетодОбъектаНаСервере("МеньшеИлиРавно", 1, БольшееИлиРавноеЗначение);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция Максимум(Знач МаксимальноеЗначение) Экспорт
Возврат МеньшеИлиРавно(МаксимальноеЗначение);
КонецФункции
&НаКлиенте
Функция Меньше(Знач БольшееЗначение) Экспорт
ВыполнитьМетодОбъектаНаСервере("Меньше", 1, БольшееЗначение);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция Заполнено() Экспорт
ВыполнитьМетодОбъектаНаСервере("Заполнено", 0);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция Существует() Экспорт
ВыполнитьМетодОбъектаНаСервере("Существует", 0);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ЭтоНеопределено() Экспорт
ВыполнитьМетодОбъектаНаСервере("ЭтоНеопределено", 0);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ЕстьНеопределено() Экспорт
Возврат ЭтоНеопределено();
КонецФункции
&НаКлиенте
Функция ЭтоNull() Экспорт
ВыполнитьМетодОбъектаНаСервере("ЭтоNull", 0);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ЕстьNull() Экспорт
Возврат ЭтоNull();
КонецФункции
&НаКлиенте
Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт
ВыполнитьМетодОбъектаНаСервере("ИмеетТип", 1, ТипИлиИмяТипа);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт
ВыполнитьМетодОбъектаНаСервере("Между", 2, НачальноеЗначение, КонечноеЗначение);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция Содержит(Знач ИскомоеЗначение) Экспорт
ВыполнитьМетодОбъектаНаСервере("Содержит", 1, ИскомоеЗначение);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт
ВыполнитьМетодОбъектаНаСервере("ИмеетДлину", 1, ОжидаемаяДлина);
Возврат ЭтаФорма;
КонецФункции
&НаКлиенте
Функция ВыбрасываетИсключение(Знач ФрагментИсключения = "") Экспорт
ВыполнитьМетодОбъектаНаСервере("ВыбрасываетИсключение", 1, ФрагментИсключения);
Возврат ЭтаФорма;
КонецФункции
// { Helpers
&НаСервере
Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено)
ОбъектНаСервере = ЭтотОбъектНаСервере();
СтрокаПараметры = "";
Если КоличествоПараметров = 1 Тогда
СтрокаПараметры = "Параметр1";
ИначеЕсли КоличествоПараметров = 2 Тогда
СтрокаПараметры = "Параметр1, Параметр2";
КонецЕсли;
Попытка
Выполнить("ОбъектНаСервере." + ИмяМетода + "(" + СтрокаПараметры + ")");
Исключение
ОписаниеОшибки = ОписаниеОшибки();
ВызватьИсключение "Вызов метода <" + ИмяМетода +">: " + ОписаниеОшибки;
КонецПопытки;
ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект");
КонецПроцедуры
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.bsl"
similarity index 100%
rename from "src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.txt"
rename to "src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.bsl"
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt"
index 90373dda..51296dd6 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 237)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 237)
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
index 31723e1f..f90a2039 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..7a847029
--- /dev/null
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,30 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
+
+
+&НаКлиенте
+Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт
+ ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки);
+КонецПроцедуры
+
+&НаСервере
+Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт
+ ЭтотОбъектНаСервере().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки);
+КонецПроцедуры
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 45b386e4..00000000
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
&НаКлиенте
Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт
ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт
ЭтотОбъектНаСервере().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки);
КонецПроцедуры
\ No newline at end of file
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/ObjectModule.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/ObjectModule.bsl"
similarity index 100%
rename from "src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/ObjectModule.txt"
rename to "src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/ObjectModule.bsl"
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/maps.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/maps.txt"
index b05fa086..fc5589e5 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/maps.txt"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 59)
+Form\Форма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 59)
diff --git "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/renames.txt" "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/renames.txt"
index 3c0c8e26..4d07c6f4 100644
--- "a/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/renames.txt"
+++ "b/src/Plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/renames.txt"
@@ -3,7 +3,7 @@ copyinfo-->und\copyinfo
d75f146d-5027-4604-80fd-3b704ddd86a8-->und\d75f146d-5027-4604-80fd-3b704ddd86a8
d75f146d-5027-4604-80fd-3b704ddd86a8.0-->und\d75f146d-5027-4604-80fd-3b704ddd86a8.0
dfe532e1-d0ef-4008-afd4-214781ee4960.0\info-->und\dfe532e1-d0ef-4008-afd4-214781ee4960.0\info
-dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.txt
+dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..ded11c66
--- /dev/null
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,38 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Report generator interface
+&НаКлиенте
+Функция СоздатьОтчет(КонтекстЯдра, РезультатТестирования) Экспорт
+ Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
+ Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов;
+ ВызватьИсключение "Метод не реализован";
+КонецФункции
+
+&НаКлиенте
+Процедура Показать(Отчет) Экспорт
+ ВызватьИсключение "Метод не реализован";
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт
+ ВызватьИсключение "Метод не реализован";
+КонецПроцедуры
+// } Report generator interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index cd3ec4b6..00000000
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Report generator interface
&НаКлиенте
Функция СоздатьОтчет(КонтекстЯдра, РезультатТестирования) Экспорт
Объект.ТипыУзловДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
Объект.СостоянияТестов = КонтекстЯдра.Объект.СостоянияТестов;
ВызватьИсключение "Метод не реализован";
КонецФункции
&НаКлиенте
Процедура Показать(Отчет) Экспорт
ВызватьИсключение "Метод не реализован";
КонецПроцедуры
&НаКлиенте
Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт
ВызватьИсключение "Метод не реализован";
КонецПроцедуры
// } Report generator interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/ObjectModule.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/ObjectModule.bsl"
similarity index 100%
rename from "src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/ObjectModule.txt"
rename to "src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/ObjectModule.bsl"
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/maps.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/maps.txt"
index 26342bfa..c0220500 100644
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/maps.txt"
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 67)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 67)
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/renames.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/renames.txt"
index 31723e1f..f90a2039 100644
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/renames.txt"
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\260\320\236\321\202\321\207\320\265\321\202\320\260/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..92f5b726
--- /dev/null
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,51 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Loader interface
+&НаКлиенте
+Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
+ Перем ВыбранныйПуть;
+
+ ВызватьИсключение "Метод не реализован";
+
+ Возврат ВыбранныйПуть;
+КонецФункции
+
+&НаКлиенте
+Функция Загрузить(КонтекстЯдра, Путь) Экспорт
+ Перем ДеревоТестов;
+
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ ИконкиУзловДереваТестов = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов;
+
+ ВызватьИсключение "Метод не реализован";
+
+ Возврат ДеревоТестов;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
+ Перем Контекст;
+
+ ВызватьИсключение "Метод не реализован";
+
+ Возврат Контекст;
+КонецФункции
+// } Loader interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index dddb317a..00000000
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Loader interface
&НаКлиенте
Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт
Перем ВыбранныйПуть;
ВызватьИсключение "Метод не реализован";
Возврат ВыбранныйПуть;
КонецФункции
&НаКлиенте
Функция Загрузить(КонтекстЯдра, Путь) Экспорт
Перем ДеревоТестов;
ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
ИконкиУзловДереваТестов = ПостроительДереваТестов.Объект.ИконкиУзловДереваТестов;
ВызватьИсключение "Метод не реализован";
Возврат ДеревоТестов;
КонецФункции
&НаКлиенте
Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
Перем Контекст;
ВызватьИсключение "Метод не реализован";
Возврат Контекст;
КонецФункции
// } Loader interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/ObjectModule.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/ObjectModule.bsl"
similarity index 100%
rename from "src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/ObjectModule.txt"
rename to "src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/ObjectModule.bsl"
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/maps.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/maps.txt"
index 214f49a6..68f4806b 100644
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/maps.txt"
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 80)
+Form\Форма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 80)
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/renames.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/renames.txt"
index 3c0c8e26..4d07c6f4 100644
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/renames.txt"
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\260/renames.txt"
@@ -3,7 +3,7 @@ copyinfo-->und\copyinfo
d75f146d-5027-4604-80fd-3b704ddd86a8-->und\d75f146d-5027-4604-80fd-3b704ddd86a8
d75f146d-5027-4604-80fd-3b704ddd86a8.0-->und\d75f146d-5027-4604-80fd-3b704ddd86a8.0
dfe532e1-d0ef-4008-afd4-214781ee4960.0\info-->und\dfe532e1-d0ef-4008-afd4-214781ee4960.0\info
-dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.txt
+dfe532e1-d0ef-4008-afd4-214781ee4960.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..c8ecf289
--- /dev/null
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,19 @@
+
+// { Plugin interface
+&НаКлиенте
+Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
+ Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
+КонецФункции
+
+&НаСервере
+Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
+ Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
+КонецФункции
+// } Plugin interface
+
+// { Helpers
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+// } Helpers
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 9d226060..00000000
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
// { Plugin interface
&НаКлиенте
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов);
КонецФункции
&НаСервере
Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов)
Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов);
КонецФункции
// } Plugin interface
// { Helpers
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.bsl"
similarity index 100%
rename from "src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.txt"
rename to "src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.bsl"
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt"
index 4962a47e..4ba753df 100644
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt"
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt"
@@ -1 +1 @@
-Form\Форма\Форма.txt-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 48)
+Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 48)
diff --git "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt" "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
index 31723e1f..f90a2039 100644
--- "a/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
+++ "b/src/PluginsTemplates/\320\250\320\260\320\261\320\273\320\276\320\275\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
@@ -2,7 +2,7 @@
4e8e1a4a-a947-419b-95c8-58a411e3ffa4-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4
4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0-->und\4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0
908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info-->und\908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\info
-908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.txt
+908d0aaf-e4ec-4668-8d14-3e8075d222fd.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 98%
rename from "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index b50c80cc..8d5951d5 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -1,564 +1,564 @@
-&НаКлиенте
-Перем КонтекстЯдра;
-&НаКлиенте
-Перем Ожидаем;
-
-&НаКлиенте
-Перем ЭтоЗначениеЗаполняетсяПередЗапускомТеста;
-&НаКлиенте
-Перем ЭтоЗначениеЗаполняетсяПослеЗапускаТеста;
-&НаКлиенте
-Перем ТекстИсключенияПадающегоТеста;
-
-&НаКлиенте
-Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
- Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
- НаборТестов.НачатьГруппу("Выполнение тестов");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВызов_ПередЗапускомТеста");
- НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТестированияУспешныйМетода");
- НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТестированияПадающегоМетода");
- НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТестированияОтсутствующегоМетода");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВызов_ПослеЗапускаТеста");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВызов_ПослеЗапускаТеста_УПадающегоТеста");
- НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТеста_Когда_ПередЗапускаТеста_СОшибкой");
- НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТеста_Когда_ПослеЗапускаТеста_СОшибкой");
-
- НаборТестов.НачатьГруппу("Фильтрация");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВыборочныйЗапускТестов_ФильтрЭлементов");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВыборочныйЗапускТестов_ФильтрКонтейнеров");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВыборочныйЗапускТестов_СмешанныйФильтр");
-
- НаборТестов.НачатьГруппу("Статистика");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВРезультатеТестирования_ЗаполнениеСтатистики");
-
- НаборТестов.НачатьГруппу("Тесты с параметрами");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнениеТеста_ОдинПараметр");
- НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнениеТеста_НесколькоПараметров");
-
- НаборТестов.НачатьГруппу("Режимы выполнения тестов (случайный и строгий)");
- НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоПоУмолчанию_ТестыВыполняютсяВСлучайномПорядке");
- НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоТестыВыполняютсяСтрогоПоПорядку");
- НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоПадениеОдногоТестаВКонтейнереСоСтрогимПорядком_ПриводитКПропускуОставшихсяШагов");
- НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоПадениеОдногоТестаВКонтейнереСоСтрогимПорядком_ПриводитКПропускуДочернихКонтейнеров");
- НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоПадениеТестовВКонтейнереСоСлучайнымПорядком_НеВлияетНаДругиеТестовыеМетоды");
-
- НаборТестов.НачатьГруппу("Передача контекста");
- НаборТестов.Добавить("ТестДолжен_ПроверитьПередачуКонтекстаВЗависимыхТестах");
- НаборТестов.Добавить("ТестДолжен_ПроверитьЧтоСохранятьКонтекстМожноТолькоВРамкахКонтейнераСоСтрогимПорядкомВыполнения");
- НаборТестов.Добавить("ТестДолжен_ПроверитьЧтоПолучатьКонтекстМожноТолькоВРамкахКонтейнераСоСтрогимПорядкомВыполнения");
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПередЗапускомТеста() Экспорт
- ЭтоЗначениеЗаполняетсяПередЗапускомТеста = Истина;
- ЭтоЗначениеЗаполняетсяПослеЗапускаТеста = Неопределено;
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеЗапускаТеста() Экспорт
- ЭтоЗначениеЗаполняетсяПослеЗапускаТеста = Истина;
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПередЗапускомТеста_СОшибкой() Экспорт
- ВызватьИсключение "ПередЗапускомТеста_СОшибкой";
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеЗапускаТеста_СОшибкой() Экспорт
- ВызватьИсключение "ПослеЗапускаТеста_СОшибкой";
-КонецПроцедуры
-
-
-// { Выполнение тестов
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВызов_ПередЗапускомТеста() Экспорт
- Ожидаем.Что(ЭтоЗначениеЗаполняетсяПередЗапускомТеста).ЭтоИстина();
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьРезультатТестированияУспешныйМетода() Экспорт
- ДанныеУспешногоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеУспешногоТеста);
-
- Ожидаем.Что(РезультатТестирования, "РезультатТестирования").ИмеетТип("Структура");
- Ожидаем.Что(РезультатТестирования.Путь, "РезультатТестирования.Путь").Равно(ДанныеУспешногоТеста.Путь);
- Ожидаем.Что(РезультатТестирования.ИмяМетода, "РезультатТестирования.ИмяМетода").Равно(ДанныеУспешногоТеста.ИмяМетода);
- Ожидаем.Что(РезультатТестирования.Состояние, "РезультатТестирования.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТестирования.Сообщение, "РезультатТестирования.Сообщение").Равно("");
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьРезультатТестированияПадающегоМетода() Экспорт
- ТекстИсключенияПадающегоТеста = "КАБУМ!!!";
- ДанныеПадающегоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
- РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеПадающегоТеста);
-
- Ожидаем.Что(РезультатТестирования, "РезультатТестирования").ИмеетТип("Структура");
- Ожидаем.Что(РезультатТестирования.Путь, "РезультатТестирования.Путь").Равно(ДанныеПадающегоТеста.Путь);
- Ожидаем.Что(РезультатТестирования.ИмяМетода, "РезультатТестирования.ИмяМетода").Равно(ДанныеПадающегоТеста.ИмяМетода);
- Ожидаем.Что(РезультатТестирования.Состояние, "РезультатТестирования.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Сломан);
- Ожидаем.Что(РезультатТестирования.Сообщение, "РезультатТестирования.Сообщение").Содержит(ТекстИсключенияПадающегоТеста);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьРезультатТестированияОтсутствующегоМетода() Экспорт
- ДанныеОтсутствующегоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ОтсутствующийМетод");
- РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеОтсутствующегоТеста);
-
- Ожидаем.Что(РезультатТестирования, "РезультатТестирования").ИмеетТип("Структура");
- Ожидаем.Что(РезультатТестирования.Путь, "РезультатТестирования.Путь").Равно(ДанныеОтсутствующегоТеста.Путь);
- Ожидаем.Что(РезультатТестирования.ИмяМетода, "РезультатТестирования.ИмяМетода").Равно(ДанныеОтсутствующегоТеста.ИмяМетода);
- Ожидаем.Что(РезультатТестирования.Состояние, "РезультатТестирования.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.НеРеализован);
- Ожидаем.Что(РезультатТестирования.Сообщение, "РезультатТестирования.Сообщение").Содержит(ДанныеОтсутствующегоТеста.ИмяМетода);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВызов_ПослеЗапускаТеста() Экспорт
- ДанныеУспешногоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеУспешногоТеста);
-
- Ожидаем.Что(ЭтоЗначениеЗаполняетсяПослеЗапускаТеста).ЭтоИстина();
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВызов_ПослеЗапускаТеста_УПадающегоТеста() Экспорт
- ДанныеПадающегоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
- РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеПадающегоТеста);
-
- Ожидаем.Что(РезультатТестирования.Состояние).Равно(КонтекстЯдра.Объект.СостоянияТестов.Сломан);
- Ожидаем.Что(ЭтоЗначениеЗаполняетсяПослеЗапускаТеста).ЭтоИстина();
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьРезультатТеста_Когда_ПередЗапускаТеста_СОшибкой() Экспорт
- ДанныеУспешногоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- ДанныеУспешногоТеста.ПередЗапускомТеста = "ПередЗапускомТеста_СОшибкой";
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеУспешногоТеста);
-
- Ожидаем.Что(РезультатТестирования.Состояние).Равно(КонтекстЯдра.Объект.СостоянияТестов.НеизвестнаяОшибка);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьРезультатТеста_Когда_ПослеЗапускаТеста_СОшибкой() Экспорт
- ДанныеУспешногоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- ДанныеУспешногоТеста.ПослеЗапускаТеста = "ПослеЗапускаТеста_СОшибкой";
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеУспешногоТеста);
-
- Ожидаем.Что(РезультатТестирования.Состояние).Равно(КонтекстЯдра.Объект.СостоянияТестов.НеизвестнаяОшибка);
-КонецПроцедуры
-// } Выполнение тестов
-
-// { Фильтрация
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВыборочныйЗапускТестов_ФильтрЭлементов() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.Строки.Добавить(Элемент1);
- Контейнер.Строки.Добавить(Элемент2);
- Контейнер.Строки.Добавить(Элемент3);
-
- Фильтр = Новый Массив;
- Фильтр.Добавить(Элемент2.Ключ);
- Фильтр.Добавить(Элемент3.Ключ);
-
- Ожидаем.Что(КонтекстЯдра.ПолучитьКоличествоТестовыхМетодов(Контейнер, Фильтр), "Общее количество тестовых методов").Равно(Фильтр.Количество());
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер, Фильтр);
-
- Ожидаем.Что(РезультатТестирования.Состояние, "Контейнер").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТестирования.Строки.Количество(), "Количество тестовых методов").Равно(Фильтр.Количество());
-
- РезультатТеста_Элемент1 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Элемент1.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент1, "РезультатТеста_Элемент1").ЭтоНеопределено();
-
- РезультатТеста_Элемент2 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Элемент2.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент2.Ключ, "Тест2.Ключ").Равно(Элемент2.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент2.Состояние, "Тест2 Пройден").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
-
- РезультатТеста_Элемент3 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Элемент3.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент3.Ключ, "Тест3.Ключ").Равно(Элемент3.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент3.Состояние, "Тест3 Пройден").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВыборочныйЗапускТестов_ФильтрКонтейнеров() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
-
- Контейнер1 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер1");
- Контейнер1.Строки.Добавить(Элемент1);
-
- Контейнер2 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер2");
- Контейнер2.Строки.Добавить(Элемент2);
-
- Контейнер3 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер3");
- Контейнер3.Строки.Добавить(Элемент3);
-
- Корень = ПостроительДереваТестов.СоздатьКонтейнер("Корень");
- Корень.Строки.Добавить(Контейнер1);
- Корень.Строки.Добавить(Контейнер2);
- Корень.Строки.Добавить(Контейнер3);
-
- Фильтр = Новый Массив;
- Фильтр.Добавить(Контейнер2.Ключ);
- Фильтр.Добавить(Контейнер3.Ключ);
-
- Ожидаем.Что(КонтекстЯдра.ПолучитьКоличествоТестовыхМетодов(Корень, Фильтр), "Общее количество тестовых методов").Равно(2);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Корень, Фильтр);
-
- Ожидаем.Что(РезультатТестирования.Ключ, "Корень.Ключ").Равно(Корень.Ключ);
- Ожидаем.Что(РезультатТестирования.Состояние, "Корень.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТестирования.Строки.Количество(), "Количество дочерних узлов").Равно(Фильтр.Количество());
-
- РезультатТеста_Контейнер1 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер1.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер1, "РезультатТеста_Контейнер1").ЭтоНеопределено();
-
- РезультатТеста_Контейнер2 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер2.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер2.Ключ, "Контейнер2.Ключ").Равно(Контейнер2.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер2.Состояние, "Контейнер2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТеста_Контейнер2.Строки[0].Ключ, "Контейнер2.Элемент2.Ключ").Равно(Элемент2.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер2.Строки[0].Состояние, "Контейнер2.Элемент2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
-
- РезультатТеста_Контейнер3 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер3.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер3.Ключ, "Контейнер3.Ключ").Равно(Контейнер3.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер3.Состояние, "Контейнер2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТеста_Контейнер3.Строки[0].Ключ, "Контейнер3.Элемент3.Ключ").Равно(Элемент3.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер3.Строки[0].Состояние, "Контейнер3.Элемент3.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВыборочныйЗапускТестов_СмешанныйФильтр() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
-
- Контейнер1 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер1");
- Контейнер1.Строки.Добавить(Элемент1);
- Контейнер1.Строки.Добавить(Элемент2);
-
- Контейнер2 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер2");
- Контейнер2.Строки.Добавить(Элемент3);
-
- Корень = ПостроительДереваТестов.СоздатьКонтейнер("Корень");
- Корень.Строки.Добавить(Контейнер1);
- Корень.Строки.Добавить(Контейнер2);
-
- Фильтр = Новый Массив;
- Фильтр.Добавить(Элемент2.Ключ);
- Фильтр.Добавить(Контейнер2.Ключ);
-
- Ожидаем.Что(КонтекстЯдра.ПолучитьКоличествоТестовыхМетодов(Корень, Фильтр), "Общее количество тестовых методов").Равно(2);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Корень, Фильтр);
-
- Ожидаем.Что(РезультатТестирования.Ключ, "Корень.Ключ").Равно(Корень.Ключ);
- Ожидаем.Что(РезультатТестирования.Состояние, "Корень.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТестирования.Строки.Количество(), "Количество дочерних узлов").Равно(2);
-
- РезультатТеста_Контейнер1 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер1.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер1.Ключ, "Контейнер1.Ключ").Равно(Контейнер1.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер1.Состояние, "Контейнер1.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТеста_Контейнер1.Строки.Количество(), "Контейнер1 количество дочерних узлов").Равно(1);
- РезультатТеста_Элемент1 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТеста_Контейнер1, Элемент1.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент1, "РезультатТеста_Элемент1").ЭтоНеопределено();
- РезультатТеста_Элемент2 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТеста_Контейнер1, Элемент2.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент2.Ключ, "Контейнер1.Элемент2.Ключ").Равно(Элемент2.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент2.Состояние, "Контейнер1.Элемент2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
-
- РезультатТеста_Контейнер2 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер2.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер2.Ключ, "Контейнер2.Ключ").Равно(Контейнер2.Ключ);
- Ожидаем.Что(РезультатТеста_Контейнер2.Состояние, "Контейнер2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- РезультатТеста_Элемент3 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТеста_Контейнер2, Элемент3.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент3.Ключ, "Контейнер2.Элемент3.Ключ").Равно(Элемент3.Ключ);
- Ожидаем.Что(РезультатТеста_Элемент3.Состояние, "Контейнер2.Элемент3.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
-КонецПроцедуры
-// } Фильтрация
-
-// { Статистика
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВРезультатеТестирования_ЗаполнениеСтатистики() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- УспешныйЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- ПадающийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
- ОтсутствующийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ОтсутствующийМетод");
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.Строки.Добавить(УспешныйЭлемент);
- Контейнер.Строки.Добавить(ПадающийЭлемент);
- Контейнер.Строки.Добавить(ОтсутствующийЭлемент);
-
- Ожидаем.Что(КонтекстЯдра.ПолучитьКоличествоТестовыхМетодов(Контейнер), "Общее количество тестовых методов").Равно(Контейнер.Строки.Количество());
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
-
- Ожидаем.Что(РезультатТестирования.КоличествоТестов).Равно(Контейнер.Строки.Количество());
- Ожидаем.Что(РезультатТестирования.КоличествоСломанныхТестов).Равно(1);
- Ожидаем.Что(РезультатТестирования.КоличествоНеРеализованныхТестов).Равно(1);
- Ожидаем.Что(РезультатТестирования.ВремяВыполнения).Существует();
-КонецПроцедуры
-// } Статистика
-
-// { Тесты с параметрами
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВыполнениеТеста_ОдинПараметр() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
-
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСложенияСОднимПараметром");
- Элемент1.Параметры.Добавить(Новый Структура("Значение1, Значение2, Результат", 1, 5, 6));
-
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСложенияСОднимПараметром");
- Элемент2.Параметры.Добавить(Новый Структура("Значение1, Значение2, Результат", "Раз", "-Два", "Раз-Два"));
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.Строки.Добавить(Элемент1);
- Контейнер.Строки.Добавить(Элемент2);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
-
- Ожидаем.Что(РезультатТестирования.Состояние, "Состояние всех результатов тестирования").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТестирования.КоличествоТестов).Равно(Контейнер.Строки.Количество());
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВыполнениеТеста_НесколькоПараметров() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
-
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСложенияСНесколькимиПараметрами");
- Элемент1.Параметры.Добавить(1);
- Элемент1.Параметры.Добавить(5);
- Элемент1.Параметры.Добавить(6);
-
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСложенияСНесколькимиПараметрами");
- Элемент2.Параметры.Добавить("Раз");
- Элемент2.Параметры.Добавить("-Два");
- Элемент2.Параметры.Добавить("Раз-Два");
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.Строки.Добавить(Элемент1);
- Контейнер.Строки.Добавить(Элемент2);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
-
- Ожидаем.Что(РезультатТестирования.Состояние, "Состояние всех результатов тестирования").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТестирования.КоличествоТестов).Равно(Контейнер.Строки.Количество());
-КонецПроцедуры
-// } Тесты с параметрами
-
-// { Режимы выполнения тестов (случайный и строгий)
-&НаКлиенте
-Процедура ТестДолжен_Проверить_ЧтоПоУмолчанию_ТестыВыполняютсяВСлучайномПорядке() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.Строки.Добавить(Элемент1);
- Контейнер.Строки.Добавить(Элемент2);
- Контейнер.Строки.Добавить(Элемент3);
-
- МаксимальноеКоличествоПопыток = 100;
- Для Сч = 1 По МаксимальноеКоличествоПопыток Цикл
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
- Если РезультатТестирования.Строки[0].Ключ <> Элемент1.Ключ Тогда
- Прервать;
- КонецЕсли;
- КонецЦикла;
- Ожидаем.Что(Сч, "Порядок в результатах тестирования должен отличаться от порядка в дереве тестов").Меньше(МаксимальноеКоличествоПопыток);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_Проверить_ЧтоТестыВыполняютсяСтрогоПоПорядку() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.СлучайныйПорядокВыполнения = Ложь;
- Контейнер.Строки.Добавить(Элемент1);
- Контейнер.Строки.Добавить(Элемент2);
- Контейнер.Строки.Добавить(Элемент3);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
-
- Ожидаем.Что(РезультатТестирования.Строки[0].Ключ, "Элемент1").Равно(Элемент1.Ключ);
- Ожидаем.Что(РезультатТестирования.Строки[1].Ключ, "Элемент2").Равно(Элемент2.Ключ);
- Ожидаем.Что(РезультатТестирования.Строки[2].Ключ, "Элемент3").Равно(Элемент3.Ключ);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_Проверить_ЧтоПадениеОдногоТестаВКонтейнереСоСтрогимПорядком_ПриводитКПропускуОставшихсяШагов() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
- Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.СлучайныйПорядокВыполнения = Ложь;
- Контейнер.Строки.Добавить(Элемент1);
- Контейнер.Строки.Добавить(Элемент2);
- Контейнер.Строки.Добавить(Элемент3);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
-
- Ожидаем.Что(РезультатТестирования.Строки).ИмеетДлину(2);
- Ожидаем.Что(РезультатТестирования.Строки[1].Ключ, "Элемент2.Ключ").Равно(Элемент2.Ключ);
- Ожидаем.Что(РезультатТестирования.Строки[1].Состояние, "Элемент2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Сломан);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_Проверить_ЧтоПадениеОдногоТестаВКонтейнереСоСтрогимПорядком_ПриводитКПропускуДочернихКонтейнеров() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
- Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
-
- ДочернийКонтейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- ДочернийКонтейнер.Строки.Добавить(Элемент3);
-
- Корень = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Корень.СлучайныйПорядокВыполнения = Ложь;
- Корень.Строки.Добавить(Элемент1);
- Корень.Строки.Добавить(Элемент2);
- Корень.Строки.Добавить(ДочернийКонтейнер);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Корень);
-
- Ожидаем.Что(РезультатТестирования.Строки).ИмеетДлину(2);
- Ожидаем.Что(РезультатТестирования.Строки[1].Ключ, "Элемент2.Ключ").Равно(Элемент2.Ключ);
- Ожидаем.Что(РезультатТестирования.Строки[1].Состояние, "Элемент2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Сломан);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_Проверить_ЧтоПадениеТестовВКонтейнереСоСлучайнымПорядком_НеВлияетНаДругиеТестовыеМетоды() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
- Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.Строки.Добавить(Элемент1);
- Контейнер.Строки.Добавить(Элемент2);
- Контейнер.Строки.Добавить(Элемент3);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
-
- Ожидаем.Что(РезультатТестирования.Строки).ИмеетДлину(3);
-КонецПроцедуры
-// } Режимы выполнения тестов (случайный и строгий)
-
-// { Передача контекста
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьПередачуКонтекстаВЗависимыхТестах() Экспорт
- ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
-
- Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСохраняющийКонтекст_ПервоеЗначение");
- Элемент1.Параметры.Добавить(5);
-
- Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестИспользующийКонтекст_СуммируетПервоеЗначениеВтороеЗначениеИПроверяетРезультат");
- Элемент2.Параметры.Добавить(7);
- Элемент2.Параметры.Добавить(12);
-
- Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
- Контейнер.СлучайныйПорядокВыполнения = Ложь;
- Контейнер.Строки.Добавить(Элемент1);
- Контейнер.Строки.Добавить(Элемент2);
-
- РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
-
- Ожидаем.Что(РезультатТестирования.Состояние, "Состояние всех результатов тестирования").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
- Ожидаем.Что(РезультатТестирования.КоличествоТестов).Равно(Контейнер.Строки.Количество());
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьЧтоСохранятьКонтекстМожноТолькоВРамкахКонтейнераСоСтрогимПорядкомВыполнения() Экспорт
- // Ожидаем, что этот контейнер со случайным порядком выполнения
- ОписаниеОшибки = "";
- Попытка
- КонтекстЯдра.СохранитьКонтекст(Истина);
- Исключение
- ОписаниеОшибки = ОписаниеОшибки();
- КонецПопытки;
- Ожидаем.Что(ОписаниеОшибки).Заполнено().Содержит(КонтекстЯдра.Объект.ВозможныеИсключения.СохранятьКонтекстТолькоВСтрогомРежиме);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьЧтоПолучатьКонтекстМожноТолькоВРамкахКонтейнераСоСтрогимПорядкомВыполнения() Экспорт
- // Ожидаем, что этот контейнер со случайным порядком выполнения
- ОписаниеОшибки = "";
- Попытка
- КонтекстЯдра.ПолучитьКонтекст();
- Исключение
- ОписаниеОшибки = ОписаниеОшибки();
- КонецПопытки;
- Ожидаем.Что(ОписаниеОшибки).Заполнено().Содержит(КонтекстЯдра.Объект.ВозможныеИсключения.ПолучатьКонтекстТолькоВСтрогомРежиме);
-КонецПроцедуры
-// } Передача контекста
-
-// Методы нужные для тестов
-&НаКлиенте
-Функция ЗагрузчикЗаглушка()
- Возврат ЭтаФорма;
-КонецФункции
-
-&НаКлиенте
-Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
- Возврат ЭтаФорма;
-КонецФункции
-
-&НаКлиенте
-Процедура УспешныйМетод() Экспорт
-КонецПроцедуры
-
-&НаКлиенте
-Процедура МетодПадающийПоУтверждению() Экспорт
- КонтекстЯдра.ВызватьОшибкуПроверки(ТекстИсключенияПадающегоТеста);
- //ВызватьИсключение ТекстИсключенияПадающегоТеста;
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестСложенияСОднимПараметром(Параметры) Экспорт
- Ожидаем.Что(Параметры.Значение1 + Параметры.Значение2).Равно(Параметры.Результат);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестСложенияСНесколькимиПараметрами(Слагаемое1, Слагаемое2, Результат) Экспорт
- Ожидаем.Что(Слагаемое1 + Слагаемое2).Равно(Результат);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестСохраняющийКонтекст_ПервоеЗначение(ПервоеЗначение) Экспорт
- КонтекстЯдра.СохранитьКонтекст(ПервоеЗначение);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестИспользующийКонтекст_СуммируетПервоеЗначениеВтороеЗначениеИПроверяетРезультат(ВтороеЗначение, Результат) Экспорт
- ПервоеЗначение = КонтекстЯдра.ПолучитьКонтекст();
- Ожидаем.Что(ПервоеЗначение + ВтороеЗначение).Равно(Результат);
-КонецПроцедуры
-
-// { Helpers
-&НаСервере
-Функция ПолучитьИспользуемоеИмяФайла()
- ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
-
- Возврат ОбъектНаСервере.ИспользуемоеИмяФайла;
-КонецФункции
-// } Helpers
+&НаКлиенте
+Перем КонтекстЯдра;
+&НаКлиенте
+Перем Ожидаем;
+
+&НаКлиенте
+Перем ЭтоЗначениеЗаполняетсяПередЗапускомТеста;
+&НаКлиенте
+Перем ЭтоЗначениеЗаполняетсяПослеЗапускаТеста;
+&НаКлиенте
+Перем ТекстИсключенияПадающегоТеста;
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+ НаборТестов.НачатьГруппу("Выполнение тестов");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВызов_ПередЗапускомТеста");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТестированияУспешныйМетода");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТестированияПадающегоМетода");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТестированияОтсутствующегоМетода");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВызов_ПослеЗапускаТеста");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВызов_ПослеЗапускаТеста_УПадающегоТеста");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТеста_Когда_ПередЗапускаТеста_СОшибкой");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьРезультатТеста_Когда_ПослеЗапускаТеста_СОшибкой");
+
+ НаборТестов.НачатьГруппу("Фильтрация");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВыборочныйЗапускТестов_ФильтрЭлементов");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВыборочныйЗапускТестов_ФильтрКонтейнеров");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВыборочныйЗапускТестов_СмешанныйФильтр");
+
+ НаборТестов.НачатьГруппу("Статистика");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВРезультатеТестирования_ЗаполнениеСтатистики");
+
+ НаборТестов.НачатьГруппу("Тесты с параметрами");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнениеТеста_ОдинПараметр");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьВыполнениеТеста_НесколькоПараметров");
+
+ НаборТестов.НачатьГруппу("Режимы выполнения тестов (случайный и строгий)");
+ НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоПоУмолчанию_ТестыВыполняютсяВСлучайномПорядке");
+ НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоТестыВыполняютсяСтрогоПоПорядку");
+ НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоПадениеОдногоТестаВКонтейнереСоСтрогимПорядком_ПриводитКПропускуОставшихсяШагов");
+ НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоПадениеОдногоТестаВКонтейнереСоСтрогимПорядком_ПриводитКПропускуДочернихКонтейнеров");
+ НаборТестов.Добавить("ТестДолжен_Проверить_ЧтоПадениеТестовВКонтейнереСоСлучайнымПорядком_НеВлияетНаДругиеТестовыеМетоды");
+
+ НаборТестов.НачатьГруппу("Передача контекста");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьПередачуКонтекстаВЗависимыхТестах");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьЧтоСохранятьКонтекстМожноТолькоВРамкахКонтейнераСоСтрогимПорядкомВыполнения");
+ НаборТестов.Добавить("ТестДолжен_ПроверитьЧтоПолучатьКонтекстМожноТолькоВРамкахКонтейнераСоСтрогимПорядкомВыполнения");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+ ЭтоЗначениеЗаполняетсяПередЗапускомТеста = Истина;
+ ЭтоЗначениеЗаполняетсяПослеЗапускаТеста = Неопределено;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+ ЭтоЗначениеЗаполняетсяПослеЗапускаТеста = Истина;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПередЗапускомТеста_СОшибкой() Экспорт
+ ВызватьИсключение "ПередЗапускомТеста_СОшибкой";
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста_СОшибкой() Экспорт
+ ВызватьИсключение "ПослеЗапускаТеста_СОшибкой";
+КонецПроцедуры
+
+
+// { Выполнение тестов
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВызов_ПередЗапускомТеста() Экспорт
+ Ожидаем.Что(ЭтоЗначениеЗаполняетсяПередЗапускомТеста).ЭтоИстина();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьРезультатТестированияУспешныйМетода() Экспорт
+ ДанныеУспешногоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеУспешногоТеста);
+
+ Ожидаем.Что(РезультатТестирования, "РезультатТестирования").ИмеетТип("Структура");
+ Ожидаем.Что(РезультатТестирования.Путь, "РезультатТестирования.Путь").Равно(ДанныеУспешногоТеста.Путь);
+ Ожидаем.Что(РезультатТестирования.ИмяМетода, "РезультатТестирования.ИмяМетода").Равно(ДанныеУспешногоТеста.ИмяМетода);
+ Ожидаем.Что(РезультатТестирования.Состояние, "РезультатТестирования.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТестирования.Сообщение, "РезультатТестирования.Сообщение").Равно("");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьРезультатТестированияПадающегоМетода() Экспорт
+ ТекстИсключенияПадающегоТеста = "КАБУМ!!!";
+ ДанныеПадающегоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеПадающегоТеста);
+
+ Ожидаем.Что(РезультатТестирования, "РезультатТестирования").ИмеетТип("Структура");
+ Ожидаем.Что(РезультатТестирования.Путь, "РезультатТестирования.Путь").Равно(ДанныеПадающегоТеста.Путь);
+ Ожидаем.Что(РезультатТестирования.ИмяМетода, "РезультатТестирования.ИмяМетода").Равно(ДанныеПадающегоТеста.ИмяМетода);
+ Ожидаем.Что(РезультатТестирования.Состояние, "РезультатТестирования.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Сломан);
+ Ожидаем.Что(РезультатТестирования.Сообщение, "РезультатТестирования.Сообщение").Содержит(ТекстИсключенияПадающегоТеста);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьРезультатТестированияОтсутствующегоМетода() Экспорт
+ ДанныеОтсутствующегоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ОтсутствующийМетод");
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеОтсутствующегоТеста);
+
+ Ожидаем.Что(РезультатТестирования, "РезультатТестирования").ИмеетТип("Структура");
+ Ожидаем.Что(РезультатТестирования.Путь, "РезультатТестирования.Путь").Равно(ДанныеОтсутствующегоТеста.Путь);
+ Ожидаем.Что(РезультатТестирования.ИмяМетода, "РезультатТестирования.ИмяМетода").Равно(ДанныеОтсутствующегоТеста.ИмяМетода);
+ Ожидаем.Что(РезультатТестирования.Состояние, "РезультатТестирования.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.НеРеализован);
+ Ожидаем.Что(РезультатТестирования.Сообщение, "РезультатТестирования.Сообщение").Содержит(ДанныеОтсутствующегоТеста.ИмяМетода);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВызов_ПослеЗапускаТеста() Экспорт
+ ДанныеУспешногоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеУспешногоТеста);
+
+ Ожидаем.Что(ЭтоЗначениеЗаполняетсяПослеЗапускаТеста).ЭтоИстина();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВызов_ПослеЗапускаТеста_УПадающегоТеста() Экспорт
+ ДанныеПадающегоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеПадающегоТеста);
+
+ Ожидаем.Что(РезультатТестирования.Состояние).Равно(КонтекстЯдра.Объект.СостоянияТестов.Сломан);
+ Ожидаем.Что(ЭтоЗначениеЗаполняетсяПослеЗапускаТеста).ЭтоИстина();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьРезультатТеста_Когда_ПередЗапускаТеста_СОшибкой() Экспорт
+ ДанныеУспешногоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ ДанныеУспешногоТеста.ПередЗапускомТеста = "ПередЗапускомТеста_СОшибкой";
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеУспешногоТеста);
+
+ Ожидаем.Что(РезультатТестирования.Состояние).Равно(КонтекстЯдра.Объект.СостоянияТестов.НеизвестнаяОшибка);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьРезультатТеста_Когда_ПослеЗапускаТеста_СОшибкой() Экспорт
+ ДанныеУспешногоТеста = КонтекстЯдра.Плагин("ПостроительДереваТестов").СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ ДанныеУспешногоТеста.ПослеЗапускаТеста = "ПослеЗапускаТеста_СОшибкой";
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТестовыйМетодНаКлиенте(ЭтаФорма, ДанныеУспешногоТеста);
+
+ Ожидаем.Что(РезультатТестирования.Состояние).Равно(КонтекстЯдра.Объект.СостоянияТестов.НеизвестнаяОшибка);
+КонецПроцедуры
+// } Выполнение тестов
+
+// { Фильтрация
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВыборочныйЗапускТестов_ФильтрЭлементов() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.Строки.Добавить(Элемент1);
+ Контейнер.Строки.Добавить(Элемент2);
+ Контейнер.Строки.Добавить(Элемент3);
+
+ Фильтр = Новый Массив;
+ Фильтр.Добавить(Элемент2.Ключ);
+ Фильтр.Добавить(Элемент3.Ключ);
+
+ Ожидаем.Что(КонтекстЯдра.ПолучитьКоличествоТестовыхМетодов(Контейнер, Фильтр), "Общее количество тестовых методов").Равно(Фильтр.Количество());
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер, Фильтр);
+
+ Ожидаем.Что(РезультатТестирования.Состояние, "Контейнер").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТестирования.Строки.Количество(), "Количество тестовых методов").Равно(Фильтр.Количество());
+
+ РезультатТеста_Элемент1 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Элемент1.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент1, "РезультатТеста_Элемент1").ЭтоНеопределено();
+
+ РезультатТеста_Элемент2 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Элемент2.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент2.Ключ, "Тест2.Ключ").Равно(Элемент2.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент2.Состояние, "Тест2 Пройден").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+
+ РезультатТеста_Элемент3 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Элемент3.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент3.Ключ, "Тест3.Ключ").Равно(Элемент3.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент3.Состояние, "Тест3 Пройден").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВыборочныйЗапускТестов_ФильтрКонтейнеров() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+
+ Контейнер1 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер1");
+ Контейнер1.Строки.Добавить(Элемент1);
+
+ Контейнер2 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер2");
+ Контейнер2.Строки.Добавить(Элемент2);
+
+ Контейнер3 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер3");
+ Контейнер3.Строки.Добавить(Элемент3);
+
+ Корень = ПостроительДереваТестов.СоздатьКонтейнер("Корень");
+ Корень.Строки.Добавить(Контейнер1);
+ Корень.Строки.Добавить(Контейнер2);
+ Корень.Строки.Добавить(Контейнер3);
+
+ Фильтр = Новый Массив;
+ Фильтр.Добавить(Контейнер2.Ключ);
+ Фильтр.Добавить(Контейнер3.Ключ);
+
+ Ожидаем.Что(КонтекстЯдра.ПолучитьКоличествоТестовыхМетодов(Корень, Фильтр), "Общее количество тестовых методов").Равно(2);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Корень, Фильтр);
+
+ Ожидаем.Что(РезультатТестирования.Ключ, "Корень.Ключ").Равно(Корень.Ключ);
+ Ожидаем.Что(РезультатТестирования.Состояние, "Корень.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТестирования.Строки.Количество(), "Количество дочерних узлов").Равно(Фильтр.Количество());
+
+ РезультатТеста_Контейнер1 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер1.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер1, "РезультатТеста_Контейнер1").ЭтоНеопределено();
+
+ РезультатТеста_Контейнер2 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер2.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер2.Ключ, "Контейнер2.Ключ").Равно(Контейнер2.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер2.Состояние, "Контейнер2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТеста_Контейнер2.Строки[0].Ключ, "Контейнер2.Элемент2.Ключ").Равно(Элемент2.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер2.Строки[0].Состояние, "Контейнер2.Элемент2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+
+ РезультатТеста_Контейнер3 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер3.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер3.Ключ, "Контейнер3.Ключ").Равно(Контейнер3.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер3.Состояние, "Контейнер2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТеста_Контейнер3.Строки[0].Ключ, "Контейнер3.Элемент3.Ключ").Равно(Элемент3.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер3.Строки[0].Состояние, "Контейнер3.Элемент3.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВыборочныйЗапускТестов_СмешанныйФильтр() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+
+ Контейнер1 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер1");
+ Контейнер1.Строки.Добавить(Элемент1);
+ Контейнер1.Строки.Добавить(Элемент2);
+
+ Контейнер2 = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер2");
+ Контейнер2.Строки.Добавить(Элемент3);
+
+ Корень = ПостроительДереваТестов.СоздатьКонтейнер("Корень");
+ Корень.Строки.Добавить(Контейнер1);
+ Корень.Строки.Добавить(Контейнер2);
+
+ Фильтр = Новый Массив;
+ Фильтр.Добавить(Элемент2.Ключ);
+ Фильтр.Добавить(Контейнер2.Ключ);
+
+ Ожидаем.Что(КонтекстЯдра.ПолучитьКоличествоТестовыхМетодов(Корень, Фильтр), "Общее количество тестовых методов").Равно(2);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Корень, Фильтр);
+
+ Ожидаем.Что(РезультатТестирования.Ключ, "Корень.Ключ").Равно(Корень.Ключ);
+ Ожидаем.Что(РезультатТестирования.Состояние, "Корень.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТестирования.Строки.Количество(), "Количество дочерних узлов").Равно(2);
+
+ РезультатТеста_Контейнер1 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер1.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер1.Ключ, "Контейнер1.Ключ").Равно(Контейнер1.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер1.Состояние, "Контейнер1.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТеста_Контейнер1.Строки.Количество(), "Контейнер1 количество дочерних узлов").Равно(1);
+ РезультатТеста_Элемент1 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТеста_Контейнер1, Элемент1.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент1, "РезультатТеста_Элемент1").ЭтоНеопределено();
+ РезультатТеста_Элемент2 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТеста_Контейнер1, Элемент2.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент2.Ключ, "Контейнер1.Элемент2.Ключ").Равно(Элемент2.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент2.Состояние, "Контейнер1.Элемент2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+
+ РезультатТеста_Контейнер2 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТестирования, Контейнер2.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер2.Ключ, "Контейнер2.Ключ").Равно(Контейнер2.Ключ);
+ Ожидаем.Что(РезультатТеста_Контейнер2.Состояние, "Контейнер2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ РезультатТеста_Элемент3 = КонтекстЯдра.НайтиРезультатТестированияПоИдентификатору(РезультатТеста_Контейнер2, Элемент3.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент3.Ключ, "Контейнер2.Элемент3.Ключ").Равно(Элемент3.Ключ);
+ Ожидаем.Что(РезультатТеста_Элемент3.Состояние, "Контейнер2.Элемент3.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+КонецПроцедуры
+// } Фильтрация
+
+// { Статистика
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВРезультатеТестирования_ЗаполнениеСтатистики() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ УспешныйЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ ПадающийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
+ ОтсутствующийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ОтсутствующийМетод");
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.Строки.Добавить(УспешныйЭлемент);
+ Контейнер.Строки.Добавить(ПадающийЭлемент);
+ Контейнер.Строки.Добавить(ОтсутствующийЭлемент);
+
+ Ожидаем.Что(КонтекстЯдра.ПолучитьКоличествоТестовыхМетодов(Контейнер), "Общее количество тестовых методов").Равно(Контейнер.Строки.Количество());
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
+
+ Ожидаем.Что(РезультатТестирования.КоличествоТестов).Равно(Контейнер.Строки.Количество());
+ Ожидаем.Что(РезультатТестирования.КоличествоСломанныхТестов).Равно(1);
+ Ожидаем.Что(РезультатТестирования.КоличествоНеРеализованныхТестов).Равно(1);
+ Ожидаем.Что(РезультатТестирования.ВремяВыполнения).Существует();
+КонецПроцедуры
+// } Статистика
+
+// { Тесты с параметрами
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВыполнениеТеста_ОдинПараметр() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСложенияСОднимПараметром");
+ Элемент1.Параметры.Добавить(Новый Структура("Значение1, Значение2, Результат", 1, 5, 6));
+
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСложенияСОднимПараметром");
+ Элемент2.Параметры.Добавить(Новый Структура("Значение1, Значение2, Результат", "Раз", "-Два", "Раз-Два"));
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.Строки.Добавить(Элемент1);
+ Контейнер.Строки.Добавить(Элемент2);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
+
+ Ожидаем.Что(РезультатТестирования.Состояние, "Состояние всех результатов тестирования").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТестирования.КоличествоТестов).Равно(Контейнер.Строки.Количество());
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьВыполнениеТеста_НесколькоПараметров() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСложенияСНесколькимиПараметрами");
+ Элемент1.Параметры.Добавить(1);
+ Элемент1.Параметры.Добавить(5);
+ Элемент1.Параметры.Добавить(6);
+
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСложенияСНесколькимиПараметрами");
+ Элемент2.Параметры.Добавить("Раз");
+ Элемент2.Параметры.Добавить("-Два");
+ Элемент2.Параметры.Добавить("Раз-Два");
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.Строки.Добавить(Элемент1);
+ Контейнер.Строки.Добавить(Элемент2);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
+
+ Ожидаем.Что(РезультатТестирования.Состояние, "Состояние всех результатов тестирования").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТестирования.КоличествоТестов).Равно(Контейнер.Строки.Количество());
+КонецПроцедуры
+// } Тесты с параметрами
+
+// { Режимы выполнения тестов (случайный и строгий)
+&НаКлиенте
+Процедура ТестДолжен_Проверить_ЧтоПоУмолчанию_ТестыВыполняютсяВСлучайномПорядке() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.Строки.Добавить(Элемент1);
+ Контейнер.Строки.Добавить(Элемент2);
+ Контейнер.Строки.Добавить(Элемент3);
+
+ МаксимальноеКоличествоПопыток = 100;
+ Для Сч = 1 По МаксимальноеКоличествоПопыток Цикл
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
+ Если РезультатТестирования.Строки[0].Ключ <> Элемент1.Ключ Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ Ожидаем.Что(Сч, "Порядок в результатах тестирования должен отличаться от порядка в дереве тестов").Меньше(МаксимальноеКоличествоПопыток);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_Проверить_ЧтоТестыВыполняютсяСтрогоПоПорядку() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.СлучайныйПорядокВыполнения = Ложь;
+ Контейнер.Строки.Добавить(Элемент1);
+ Контейнер.Строки.Добавить(Элемент2);
+ Контейнер.Строки.Добавить(Элемент3);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
+
+ Ожидаем.Что(РезультатТестирования.Строки[0].Ключ, "Элемент1").Равно(Элемент1.Ключ);
+ Ожидаем.Что(РезультатТестирования.Строки[1].Ключ, "Элемент2").Равно(Элемент2.Ключ);
+ Ожидаем.Что(РезультатТестирования.Строки[2].Ключ, "Элемент3").Равно(Элемент3.Ключ);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_Проверить_ЧтоПадениеОдногоТестаВКонтейнереСоСтрогимПорядком_ПриводитКПропускуОставшихсяШагов() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
+ Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.СлучайныйПорядокВыполнения = Ложь;
+ Контейнер.Строки.Добавить(Элемент1);
+ Контейнер.Строки.Добавить(Элемент2);
+ Контейнер.Строки.Добавить(Элемент3);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
+
+ Ожидаем.Что(РезультатТестирования.Строки).ИмеетДлину(2);
+ Ожидаем.Что(РезультатТестирования.Строки[1].Ключ, "Элемент2.Ключ").Равно(Элемент2.Ключ);
+ Ожидаем.Что(РезультатТестирования.Строки[1].Состояние, "Элемент2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Сломан);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_Проверить_ЧтоПадениеОдногоТестаВКонтейнереСоСтрогимПорядком_ПриводитКПропускуДочернихКонтейнеров() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
+ Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+
+ ДочернийКонтейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ ДочернийКонтейнер.Строки.Добавить(Элемент3);
+
+ Корень = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Корень.СлучайныйПорядокВыполнения = Ложь;
+ Корень.Строки.Добавить(Элемент1);
+ Корень.Строки.Добавить(Элемент2);
+ Корень.Строки.Добавить(ДочернийКонтейнер);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Корень);
+
+ Ожидаем.Что(РезультатТестирования.Строки).ИмеетДлину(2);
+ Ожидаем.Что(РезультатТестирования.Строки[1].Ключ, "Элемент2.Ключ").Равно(Элемент2.Ключ);
+ Ожидаем.Что(РезультатТестирования.Строки[1].Состояние, "Элемент2.Состояние").Равно(КонтекстЯдра.Объект.СостоянияТестов.Сломан);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_Проверить_ЧтоПадениеТестовВКонтейнереСоСлучайнымПорядком_НеВлияетНаДругиеТестовыеМетоды() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "МетодПадающийПоУтверждению");
+ Элемент3 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "УспешныйМетод");
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.Строки.Добавить(Элемент1);
+ Контейнер.Строки.Добавить(Элемент2);
+ Контейнер.Строки.Добавить(Элемент3);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
+
+ Ожидаем.Что(РезультатТестирования.Строки).ИмеетДлину(3);
+КонецПроцедуры
+// } Режимы выполнения тестов (случайный и строгий)
+
+// { Передача контекста
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьПередачуКонтекстаВЗависимыхТестах() Экспорт
+ ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
+
+ Элемент1 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестСохраняющийКонтекст_ПервоеЗначение");
+ Элемент1.Параметры.Добавить(5);
+
+ Элемент2 = ПостроительДереваТестов.СоздатьЭлемент(ПолучитьИспользуемоеИмяФайла(), "ТестИспользующийКонтекст_СуммируетПервоеЗначениеВтороеЗначениеИПроверяетРезультат");
+ Элемент2.Параметры.Добавить(7);
+ Элемент2.Параметры.Добавить(12);
+
+ Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
+ Контейнер.СлучайныйПорядокВыполнения = Ложь;
+ Контейнер.Строки.Добавить(Элемент1);
+ Контейнер.Строки.Добавить(Элемент2);
+
+ РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикЗаглушка(), Контейнер);
+
+ Ожидаем.Что(РезультатТестирования.Состояние, "Состояние всех результатов тестирования").Равно(КонтекстЯдра.Объект.СостоянияТестов.Пройден);
+ Ожидаем.Что(РезультатТестирования.КоличествоТестов).Равно(Контейнер.Строки.Количество());
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьЧтоСохранятьКонтекстМожноТолькоВРамкахКонтейнераСоСтрогимПорядкомВыполнения() Экспорт
+ // Ожидаем, что этот контейнер со случайным порядком выполнения
+ ОписаниеОшибки = "";
+ Попытка
+ КонтекстЯдра.СохранитьКонтекст(Истина);
+ Исключение
+ ОписаниеОшибки = ОписаниеОшибки();
+ КонецПопытки;
+ Ожидаем.Что(ОписаниеОшибки).Заполнено().Содержит(КонтекстЯдра.Объект.ВозможныеИсключения.СохранятьКонтекстТолькоВСтрогомРежиме);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьЧтоПолучатьКонтекстМожноТолькоВРамкахКонтейнераСоСтрогимПорядкомВыполнения() Экспорт
+ // Ожидаем, что этот контейнер со случайным порядком выполнения
+ ОписаниеОшибки = "";
+ Попытка
+ КонтекстЯдра.ПолучитьКонтекст();
+ Исключение
+ ОписаниеОшибки = ОписаниеОшибки();
+ КонецПопытки;
+ Ожидаем.Что(ОписаниеОшибки).Заполнено().Содержит(КонтекстЯдра.Объект.ВозможныеИсключения.ПолучатьКонтекстТолькоВСтрогомРежиме);
+КонецПроцедуры
+// } Передача контекста
+
+// Методы нужные для тестов
+&НаКлиенте
+Функция ЗагрузчикЗаглушка()
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт
+ Возврат ЭтаФорма;
+КонецФункции
+
+&НаКлиенте
+Процедура УспешныйМетод() Экспорт
+КонецПроцедуры
+
+&НаКлиенте
+Процедура МетодПадающийПоУтверждению() Экспорт
+ КонтекстЯдра.ВызватьОшибкуПроверки(ТекстИсключенияПадающегоТеста);
+ //ВызватьИсключение ТекстИсключенияПадающегоТеста;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестСложенияСОднимПараметром(Параметры) Экспорт
+ Ожидаем.Что(Параметры.Значение1 + Параметры.Значение2).Равно(Параметры.Результат);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестСложенияСНесколькимиПараметрами(Слагаемое1, Слагаемое2, Результат) Экспорт
+ Ожидаем.Что(Слагаемое1 + Слагаемое2).Равно(Результат);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестСохраняющийКонтекст_ПервоеЗначение(ПервоеЗначение) Экспорт
+ КонтекстЯдра.СохранитьКонтекст(ПервоеЗначение);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестИспользующийКонтекст_СуммируетПервоеЗначениеВтороеЗначениеИПроверяетРезультат(ВтороеЗначение, Результат) Экспорт
+ ПервоеЗначение = КонтекстЯдра.ПолучитьКонтекст();
+ Ожидаем.Что(ПервоеЗначение + ВтороеЗначение).Равно(Результат);
+КонецПроцедуры
+
+// { Helpers
+&НаСервере
+Функция ПолучитьИспользуемоеИмяФайла()
+ ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
+
+ Возврат ОбъектНаСервере.ИспользуемоеИмяФайла;
+КонецФункции
+// } Helpers
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.txt"
rename to "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.bsl"
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt"
new file mode 100644
index 00000000..8457fa4c
--- /dev/null
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->e5fbc1d4-eed7-46d9-a13c-452a58fe1608.0 (29, 593)
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
index ffe7d44e..76239310 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
@@ -1,10 +1,8 @@
a31e3430-60a3-4301-a1fd-1f37bd23d7a2.0\info-->und\a31e3430-60a3-4301-a1fd-1f37bd23d7a2.0\info
-a31e3430-60a3-4301-a1fd-1f37bd23d7a2.0\text-->ObjectModule.txt
+a31e3430-60a3-4301-a1fd-1f37bd23d7a2.0\text-->ObjectModule.bsl
b414f1d2-8dfc-4870-bc3d-6ba92ce89edc-->und\b414f1d2-8dfc-4870-bc3d-6ba92ce89edc
copyinfo-->und\copyinfo
e5fbc1d4-eed7-46d9-a13c-452a58fe1608-->und\e5fbc1d4-eed7-46d9-a13c-452a58fe1608
-e5fbc1d4-eed7-46d9-a13c-452a58fe1608.0-->C:\Projects\GitHub\xUnitFor1C\src\Tests\Core\Тесты_ВыполнениеТестов\Form\Форма\Форма.txt
-e5fbc1d4-eed7-46d9-a13c-452a58fe1608.0-->und\e5fbc1d4-eed7-46d9-a13c-452a58fe1608.0
e5fbc1d4-eed7-46d9-a13c-452a58fe1608.0-->und\e5fbc1d4-eed7-46d9-a13c-452a58fe1608.0
root-->und\root
version-->und\version
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/ObjectModule.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/ObjectModule.bsl"
similarity index 85%
rename from "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/ObjectModule.txt"
rename to "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/ObjectModule.bsl"
index 55184723..e87e4380 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/ObjectModule.txt"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/ObjectModule.bsl"
@@ -6,6 +6,11 @@
Перем ФайлЛогаUI;
Перем ФайлСОтчетомОТестировании;
+// Переменная с путем к обработке в файловой системы
+// Используется в случаях, когда обработка запущена из встроенного в конфигурацию браузера тестов,
+// т.к. в этом случае в свойстве ИспользуемоеИмяФайла содержится адрес временного хранилища, а не непосредственный путь
+Перем ПутьКФайлуПолный Экспорт;
+
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
@@ -14,6 +19,15 @@
Функция ПолучитьСписокТестов() Экспорт
ВсеТесты = Новый Массив;
+
+ // Для встроенной в состав конфигурации подсистемы xUnitFor1C тесты еще не адаптированы
+ Попытка // На случай, если контекст не определен на момент получения тестов
+ Если КонтекстЯдра.ЭтоВстроеннаяОбработка Тогда
+ Возврат ВсеТесты;
+ КонецЕсли;
+ Исключение
+ КонецПопытки;
+
// Позитивные
ВсеТесты.Добавить("ТестДолжен_ПроверитьЗапускВПакетномРежиме_ТолстыйКлиент");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЗапускВПакетномРежиме_ТонкийКлиент");
@@ -27,6 +41,10 @@
КонецФункции
Процедура ПередЗапускомТеста() Экспорт
+ Если КонтекстЯдра.ЭтоВстроеннаяОбработка Тогда
+ ВызватьИсключение "[Pending] Тестирование пакетного запуска не реализовано для встроенной в конфигурацию подсистемы";
+ КонецЕсли;
+
ИмяКаталогаВременныхФайлов = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ИмяКаталогаВременныхФайлов);
@@ -35,7 +53,11 @@
КонецПроцедуры
Процедура ПослеЗапускаТеста() Экспорт
- УдалитьФайлы(ИмяКаталогаВременныхФайлов);
+ Попытка
+ УдалитьФайлы(ИмяКаталогаВременныхФайлов);
+ Исключение
+ // При ошибке удаления временного файла не считаем тест проваленым
+ КонецПопытки;
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЗапускВПакетномРежиме_ТолстыйКлиент() Экспорт
@@ -49,8 +71,14 @@
КонецПроцедуры
Функция ПолучитьФайлСТестами(ОтносительныйПуть)
- ФайлЯдра = Новый Файл(КонтекстЯдра.ИспользуемоеИмяФайла);
- ФайлСТестами = Новый Файл(ФайлЯдра.Путь + ОтносительныйПуть);
+
+ Если КонтекстЯдра.ЭтоВстроеннаяОбработка Тогда
+ ФайлЯдра = Новый Файл(ПутьКФайлуПолный);
+ ФайлСТестами = Новый Файл(ФайлЯдра.Путь + ОтносительныйПуть);
+ Иначе
+ ФайлЯдра = Новый Файл(КонтекстЯдра["ИспользуемоеИмяФайла"]);
+ ФайлСТестами = Новый Файл(ФайлЯдра.Путь + ОтносительныйПуть);
+ КонецЕсли;
Возврат ФайлСТестами;
КонецФункции
@@ -75,7 +103,7 @@
СтрокаКоманды = СтрокаКоманды + ВсякиеКлючи;
СтрокаКоманды = СтрокаКоманды + СтрокаРежимЗапуска;
СтрокаКоманды = СтрокаКоманды + СтрокаСоединения;
- СтрокаКоманды = СтрокаКоманды + " /Execute " + КонтекстЯдра.ИспользуемоеИмяФайла;
+ СтрокаКоманды = СтрокаКоманды + " /Execute " + КонтекстЯдра["ИспользуемоеИмяФайла"];
СтрокаКоманды = СтрокаКоманды + СтрокаЛогированияUI;
СтрокаКоманды = СтрокаКоманды + СтрокаПараметров;
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/renames.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/renames.txt"
index 05014afd..e990286d 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/renames.txt"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/renames.txt"
@@ -1,6 +1,6 @@
0782d8f3-61cb-4919-b6a8-2392febc953a-->und\0782d8f3-61cb-4919-b6a8-2392febc953a
7ecade93-aad4-4a6e-bf69-9254664a2793.0\info-->und\7ecade93-aad4-4a6e-bf69-9254664a2793.0\info
-7ecade93-aad4-4a6e-bf69-9254664a2793.0\text-->ObjectModule.txt
+7ecade93-aad4-4a6e-bf69-9254664a2793.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/und/versions" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/und/versions"
index 6be3caa2..4d046c33 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/und/versions"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\277\321\203\321\201\320\272\320\222\320\237\320\260\320\272\320\265\321\202\320\275\320\276\320\274\320\240\320\265\320\266\320\270\320\274\320\265/und/versions"
@@ -1 +1 @@
-{1,7,"",7de5a137-6c6b-4346-80a4-53917bdf4fcb,"root",6afa99fe-ba97-4549-88a0-25eb1510ea51,"copyinfo",b3fa4c0f-be15-4ff3-baa7-996a52055595,"0782d8f3-61cb-4919-b6a8-2392febc953a",873f8382-f1f8-41de-a15f-bf49a951da0b,"versions",ef7098d1-36e6-4c9c-99d4-ee71b795b77d,"7ecade93-aad4-4a6e-bf69-9254664a2793.0",498e511b-420d-429f-b4c3-0ee82a0a9d71,"version",87b2c642-8586-4c40-a71d-7dd59f351fbe}
\ No newline at end of file
+{1,7,"",bb4911e9-a04d-44c8-80c6-1bdba815f2ce,"root",b8cb2700-e017-4204-82cf-8efab1ec31c5,"0782d8f3-61cb-4919-b6a8-2392febc953a",91a1227d-b27b-40f0-a20b-eb1ea2edf988,"versions",9ad141c0-311e-472b-bc9b-c789c6d3ab3d,"copyinfo",97643ec1-b58a-4bc6-bfd3-4a3967ef35ee,"7ecade93-aad4-4a6e-bf69-9254664a2793.0",d3b6aca5-d66a-4335-8558-aa198a3d1387,"version",04e19041-babb-4756-b302-bfd4f3c1fe08}
\ No newline at end of file
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 78%
rename from "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index 7b63dbf4..756da626 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -29,8 +29,12 @@
ЗагрузчикТестов = КонтекстЯдра.ЗагрузчикПоУмолчанию();
ВозможныеТипыПлагинов = КонтекстЯдра.Объект.ТипыПлагинов;
ОписаниеПлагина = ЗагрузчикТестов.ОписаниеПлагина(ВозможныеТипыПлагинов);
+
+ // Убираем из идентификатора префикс подсистемы
+ ИдентификаторПлагинаБезПрефикса = КонтекстЯдра.ПолучитьИдентификаторБезПрефиксаПодсистемы(ОписаниеПлагина.Идентификатор, КонтекстЯдра.Объект.ИспользуемыйПрефиксПодсистемы);
+
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Тип, ВозможныеТипыПлагинов.Загрузчик, "ОписаниеПлагина.Тип, юТест.ТипыПлагинов().Загрузчик");
- Утверждения.ПроверитьРавенство(ОписаниеПлагина.Идентификатор, "ЗагрузчикКаталога", "ОписаниеПлагина.Идентификатор");
+ Утверждения.ПроверитьРавенство(ИдентификаторПлагинаБезПрефикса, "ЗагрузчикКаталога", "ОписаниеПлагина.Идентификатор");
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Представление, "Загрузить тесты из каталога файловой системы", "ОписаниеПлагина.Представление");
КонецПроцедуры
// } Plugin interface
@@ -41,8 +45,12 @@
ЗагрузчикТестов = КонтекстЯдра.Плагин("ЗагрузчикФайла");
ВозможныеТипыПлагинов = КонтекстЯдра.Объект.ТипыПлагинов;
ОписаниеПлагина = ЗагрузчикТестов.ОписаниеПлагина(ВозможныеТипыПлагинов);
+
+ // Убираем из идентификатора префикс подсистемы
+ ИдентификаторПлагинаБезПрефикса = КонтекстЯдра.ПолучитьИдентификаторБезПрефиксаПодсистемы(ОписаниеПлагина.Идентификатор, КонтекстЯдра.Объект.ИспользуемыйПрефиксПодсистемы);
+
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Тип, ВозможныеТипыПлагинов.Загрузчик, "ОписаниеПлагина.Тип, юТест.ТипыПлагинов().Загрузчик");
- Утверждения.ПроверитьРавенство(ОписаниеПлагина.Идентификатор, "ЗагрузчикФайла", "ОписаниеПлагина.Идентификатор");
+ Утверждения.ПроверитьРавенство(ИдентификаторПлагинаБезПрефикса, "ЗагрузчикФайла", "ОписаниеПлагина.Идентификатор");
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Представление, "Загрузить тесты из файлов", "ОписаниеПлагина.Представление");
КонецПроцедуры
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/ObjectModule.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/ObjectModule.bsl"
similarity index 89%
rename from "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/ObjectModule.txt"
rename to "src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/ObjectModule.bsl"
index 625368d2..3eab7b07 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/ObjectModule.txt"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/ObjectModule.bsl"
@@ -21,8 +21,12 @@
Процедура ТестДолжен_ПроверитьПолучениеПлагинаПоИдентификатору() Экспорт
ЗагрузчикТестов = КонтекстЯдра.Плагин("ЗагрузчикФайла");
ОписаниеПлагина = ЗагрузчикТестов.ОписаниеПлагина(КонтекстЯдра.ТипыПлагинов);
+
+ // Убираем из идентификатора префикс подсистемы
+ ИдентификаторПлагинаБезПрефикса = КонтекстЯдра.ПолучитьИдентификаторБезПрефиксаПодсистемы(ОписаниеПлагина.Идентификатор);
+
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Тип, КонтекстЯдра.ТипыПлагинов.Загрузчик, "ОписаниеПлагина.Тип, КонтекстЯдра.ТипыПлагинов.Загрузчик");
- Утверждения.ПроверитьРавенство(ОписаниеПлагина.Идентификатор, "ЗагрузчикФайла", "ОписаниеПлагина.Идентификатор");
+ Утверждения.ПроверитьРавенство(ИдентификаторПлагинаБезПрефикса, "ЗагрузчикФайла", "ОписаниеПлагина.Идентификатор");
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Представление, "Загрузить тесты из файлов", "ОписаниеПлагина.Представление");
КонецПроцедуры
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/maps.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/maps.txt"
new file mode 100644
index 00000000..99f223b8
--- /dev/null
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->4d520461-35ba-47cf-9306-350af5d1d5d8.0 (50, 120)
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/renames.txt" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/renames.txt"
index 10d67c5a..0608696b 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/renames.txt"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/renames.txt"
@@ -1,11 +1,9 @@
421a27d5-c2f1-4844-86c0-c04fb5a1001f-->und\421a27d5-c2f1-4844-86c0-c04fb5a1001f
4d520461-35ba-47cf-9306-350af5d1d5d8-->und\4d520461-35ba-47cf-9306-350af5d1d5d8
-4d520461-35ba-47cf-9306-350af5d1d5d8.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Core\Тесты_СистемаПлагинов\Form\Форма\Форма.txt
-4d520461-35ba-47cf-9306-350af5d1d5d8.0-->und\4d520461-35ba-47cf-9306-350af5d1d5d8.0
4d520461-35ba-47cf-9306-350af5d1d5d8.0-->und\4d520461-35ba-47cf-9306-350af5d1d5d8.0
copyinfo-->und\copyinfo
ee4ff151-9500-4966-9c18-8499b60534d0.0\info-->und\ee4ff151-9500-4966-9c18-8499b60534d0.0\info
-ee4ff151-9500-4966-9c18-8499b60534d0.0\text-->ObjectModule.txt
+ee4ff151-9500-4966-9c18-8499b60534d0.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/421a27d5-c2f1-4844-86c0-c04fb5a1001f" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/421a27d5-c2f1-4844-86c0-c04fb5a1001f"
index 051766b0..0b6ac8ea 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/421a27d5-c2f1-4844-86c0-c04fb5a1001f"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/421a27d5-c2f1-4844-86c0-c04fb5a1001f"
@@ -4,9 +4,9 @@
{1,
{4,cd570446-fb13-4855-bb0e-5695a8e88940,7153cfd0-e9c6-4a51-b1f3-0db42c9f1c9a,
{0,
-{0,
+{1,
{0,0,ee4ff151-9500-4966-9c18-8499b60534d0},"Тесты_СистемаПлагинов",
-{1,"ru","Тесты система плагинов"},""}
+{1,"ru","Тесты система плагинов"},"",0,0}
},4d520461-35ba-47cf-9306-350af5d1d5d8,"",00000000-0000-0000-0000-000000000000},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,0},
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/4d520461-35ba-47cf-9306-350af5d1d5d8" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/4d520461-35ba-47cf-9306-350af5d1d5d8"
index d5d2147d..1185bbd7 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/4d520461-35ba-47cf-9306-350af5d1d5d8"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/4d520461-35ba-47cf-9306-350af5d1d5d8"
@@ -2,9 +2,9 @@
{1,
{0,
{12,
-{0,
+{1,
{0,0,4d520461-35ba-47cf-9306-350af5d1d5d8},"Форма",
-{1,"ru","Форма"},""},0,1,
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
{2,
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/4d520461-35ba-47cf-9306-350af5d1d5d8.0" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/4d520461-35ba-47cf-9306-350af5d1d5d8.0"
index 776e467c..44559f98 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/4d520461-35ba-47cf-9306-350af5d1d5d8.0"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/4d520461-35ba-47cf-9306-350af5d1d5d8.0"
@@ -1,9 +1,9 @@
-{2,
-{36,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{3,
+{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
-{0},
+{0,0,0},
{0},1,
-{19,
+{21,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -16,8 +16,8 @@
},
{7,3,0,1,100},
{0,0,0},1,
-{0,0,1},0,1,0,0},0,"","",1,
-{19,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
{0},0,0,0,7,"Navigator",
{1,0},
{1,0},0,1,0,0,0,2,2,
@@ -26,7 +26,7 @@
},
{7,3,0,1,100},
{0,0,0},0,0,1,0,1,
-{8,
+{10,
{0},0,0,0,0,"NavigatorExtendedTooltip",
{1,0},
{1,0},1,0,0,2,2,
@@ -36,7 +36,7 @@
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
-{0},
+{0,0,0},
{3,4,
{0}
},
@@ -47,8 +47,7 @@
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
-{1,0},0},0,0}
-},1,"",2,0},"&НаКлиенте
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2},"&НаКлиенте
Перем КонтекстЯдра;
&НаКлиенте
Перем Утверждения;
@@ -79,8 +78,12 @@
ЗагрузчикТестов = КонтекстЯдра.ЗагрузчикПоУмолчанию();
ВозможныеТипыПлагинов = КонтекстЯдра.Объект.ТипыПлагинов;
ОписаниеПлагина = ЗагрузчикТестов.ОписаниеПлагина(ВозможныеТипыПлагинов);
+
+ // Убираем из идентификатора префикс подсистемы
+ ИдентификаторПлагинаБезПрефикса = КонтекстЯдра.ПолучитьИдентификаторБезПрефиксаПодсистемы(ОписаниеПлагина.Идентификатор, КонтекстЯдра.Объект.ИспользуемыйПрефиксПодсистемы);
+
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Тип, ВозможныеТипыПлагинов.Загрузчик, ""ОписаниеПлагина.Тип, юТест.ТипыПлагинов().Загрузчик"");
- Утверждения.ПроверитьРавенство(ОписаниеПлагина.Идентификатор, ""ЗагрузчикКаталога"", ""ОписаниеПлагина.Идентификатор"");
+ Утверждения.ПроверитьРавенство(ИдентификаторПлагинаБезПрефикса, ""ЗагрузчикКаталога"", ""ОписаниеПлагина.Идентификатор"");
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Представление, ""Загрузить тесты из каталога файловой системы"", ""ОписаниеПлагина.Представление"");
КонецПроцедуры
// } Plugin interface
@@ -91,8 +94,12 @@
ЗагрузчикТестов = КонтекстЯдра.Плагин(""ЗагрузчикФайла"");
ВозможныеТипыПлагинов = КонтекстЯдра.Объект.ТипыПлагинов;
ОписаниеПлагина = ЗагрузчикТестов.ОписаниеПлагина(ВозможныеТипыПлагинов);
+
+ // Убираем из идентификатора префикс подсистемы
+ ИдентификаторПлагинаБезПрефикса = КонтекстЯдра.ПолучитьИдентификаторБезПрефиксаПодсистемы(ОписаниеПлагина.Идентификатор, КонтекстЯдра.Объект.ИспользуемыйПрефиксПодсистемы);
+
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Тип, ВозможныеТипыПлагинов.Загрузчик, ""ОписаниеПлагина.Тип, юТест.ТипыПлагинов().Загрузчик"");
- Утверждения.ПроверитьРавенство(ОписаниеПлагина.Идентификатор, ""ЗагрузчикФайла"", ""ОписаниеПлагина.Идентификатор"");
+ Утверждения.ПроверитьРавенство(ИдентификаторПлагинаБезПрефикса, ""ЗагрузчикФайла"", ""ОписаниеПлагина.Идентификатор"");
Утверждения.ПроверитьРавенство(ОписаниеПлагина.Представление, ""Загрузить тесты из файлов"", ""ОписаниеПлагина.Представление"");
КонецПроцедуры
@@ -147,5 +154,4 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
{0,0},
{0,0},
{0,0},
-{0,0}
-}
\ No newline at end of file
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/versions" "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/versions"
index 8ed681ab..48388f9a 100644
--- "a/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/versions"
+++ "b/src/Tests/Core/\320\242\320\265\321\201\321\202\321\213_\320\241\320\270\321\201\321\202\320\265\320\274\320\260\320\237\320\273\320\260\320\263\320\270\320\275\320\276\320\262/und/versions"
@@ -1 +1 @@
-{1,9,"",26fa2f71-d060-451c-89f7-d0023148c1ca,"4d520461-35ba-47cf-9306-350af5d1d5d8",52dde3c3-257a-4c77-a993-67d063d0f7ac,"versions",43c84ba7-35cf-4980-8ccf-6b7cd88abb94,"root",70dc190c-94d2-404e-a7f3-910a493c14a6,"421a27d5-c2f1-4844-86c0-c04fb5a1001f",a313d493-2895-43cf-be18-2f3c9de6c607,"version",0e83fddd-86bd-49ec-a46d-15366de48e6e,"4d520461-35ba-47cf-9306-350af5d1d5d8.0",a8271d03-9340-4108-9cc0-4524d1c09157,"ee4ff151-9500-4966-9c18-8499b60534d0.0",b8ce5f40-8ad6-41d4-b7ec-e71630334270,"copyinfo",c55fdf7b-d68a-4452-9220-a011e1f14d92}
\ No newline at end of file
+{1,9,"",d490f71d-a653-4fc8-99f6-430829750e0a,"421a27d5-c2f1-4844-86c0-c04fb5a1001f",34a9be0f-717c-47a8-829d-64ebc8cf2fbd,"4d520461-35ba-47cf-9306-350af5d1d5d8",a90eb58f-c6a2-48f4-8a7a-820879081b8e,"4d520461-35ba-47cf-9306-350af5d1d5d8.0",21a61edf-ff80-4e03-9a06-acf2ffa131b9,"copyinfo",2a9f5624-70e8-41c4-910a-e86317701d05,"ee4ff151-9500-4966-9c18-8499b60534d0.0",b7e664fc-b597-4d7a-a397-89e2e4e94731,"root",dce9343e-1754-4543-a6c0-25b222412547,"version",70e53f4a-8cd0-4d84-b18f-9f023d71beb1,"versions",de4bd742-056c-490a-92ef-d6fb74d79598}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..2c684be3
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,416 @@
+#Если Не ВебКлиент Тогда
+
+
+&НаКлиенте
+Перем КонтекстЯдра;
+&НаКлиенте
+Перем Ожидаем;
+&НаКлиенте
+Перем Утверждения;
+&НаКлиенте
+Перем ГенераторТестовыхДанных;
+&НаКлиенте
+Перем ЗапросыИзБД;
+&НаКлиенте
+Перем УтвержденияПроверкаТаблиц;
+
+&НаКлиенте
+Перем массивТестовыхПриложений;
+
+&НаКлиенте
+Перем ЮнитТестированиеИмя;
+
+&НаКлиенте
+
+//Перем юТест;
+//Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
+// ЮнитТестированиеИмя = ЮнитТестирование.МетаданныеИмя();
+//
+// СисИнфо = Новый СистемнаяИнформация;
+//
+// юТест = ЮнитТестирование;
+//
+// ВсеТесты = Новый Массив;
+//
+// Если СисИнфо.ВерсияПриложения < "8.3.0.0" Тогда
+// Возврат ВсеТесты;
+// КонецЕсли;
+//
+// ВсеТесты.Добавить("Тест_ГУИ_83");
+// ВсеТесты.Добавить("Тест_ГУИ_83_ДваПриложения");
+//
+// Возврат ВсеТесты;
+//
+//КонецФункции
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+
+ // Служебные переменные
+ ВстроенаВКонфигурацию = КонтекстЯдра.Объект.ЭтоВстроеннаяОбработка;
+ ИспользуемыйПрефиксПодсистемы = КонтекстЯдра.Объект.ИспользуемыйПрефиксПодсистемы;
+
+ Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
+ Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
+ ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL");
+ ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД");
+ УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+ НаборТестов.Добавить("Тест_ГУИ_83");
+ НаборТестов.Добавить("Тест_ГУИ_83_ДваПриложения");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+ ИмяПеременнойПользователь = "Пользователь12";
+ ПользовательИмя = "ТестИмя12";
+ ОбновитьПовторноИспользуемыеЗначения();
+
+ КонтекстЯдра.ВывестиСообщение("Перед запуском теста");
+ массивТестовыхПриложений = Новый Массив;
+
+ СоздатьТестовыеДанныеСервер(ЮнитТестированиеИмя);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+
+ КонтекстЯдра.ВывестиСообщение("После запуска теста");
+ УдалитьТестовыеДанныеСервер(ЮнитТестированиеИмя);
+
+ ЗавершитьВсеСеансыРаботыСТестовымиПриложениями();
+КонецПроцедуры
+
+&НаСервере
+Процедура СоздатьТестовыеДанныеСервер(Знач ЮТестПуть)
+
+ ГенераторТестовыхДанных = ГенераторТестовыхДанных();
+
+ ИмяМакета = "СозданиеОдногоПользователяИБ";
+ //ИмяМакета = "СозданиеОдногоПользователяИБ_УФ";
+
+ ОсновнойОбъект = Объект();
+ МассивИменПользователей = МассивИменПользователейПоУмолчанию();
+ Для каждого ИмяПользователя Из МассивИменПользователей Цикл
+ УдалитьПользователяИБ_ЕслиОнСуществует(ИмяПользователя);
+ КонецЦикла;
+
+ КоллекцияПараметров = Новый Структура("ИмяПеременнойПользователь, ПользовательИмя", ИмяПеременнойПользователь, ПользовательИмя);
+ НовыйТабДок = ПолучитьМакетДанныхДоступа(ИмяМакета, КоллекцияПараметров);
+
+ МассивМакетов = Новый Массив;
+ МассивМакетов.Добавить(НовыйТабДок);
+
+ ТестовыеДанные = ГенераторТестовыхДанных.СоздатьДанныеПоТабличномуДокументу(МассивМакетов);
+
+ ТестовыеДанныеУФ.Очистить();
+
+ ТестовыеДанныеДляУФ = Новый ТаблицаЗначений;
+ Колонка = ТестовыеДанныеДляУФ.Колонки.Добавить("Ключ");
+ Колонка = ТестовыеДанныеДляУФ.Колонки.Добавить("Значение");
+
+ Для каждого ключЗначение Из ТестовыеДанные Цикл
+ СписокВрем = Новый СписокЗначений;
+ Строка = ТестовыеДанныеДляУФ.Добавить();
+ Если ТипЗнч(ключЗначение.Значение) = Тип("ПользовательИнформационнойБазы") Тогда
+ СписокВрем.Добавить(ключЗначение.Значение.Имя, ключЗначение.Ключ);
+ Строка.Ключ = "ПользовательИнформационнойБазы";
+ Иначе
+ Строка.Ключ = ключЗначение.Ключ;
+ СписокВрем.Добавить(ключЗначение.Значение);
+ КонецЕсли;
+ Строка.Значение = СписокВрем;
+ КонецЦикла;
+
+ ЗначениеВДанныеФормы(ТестовыеДанныеДляУФ, ТестовыеДанныеУФ);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьТестовыеДанныеСервер(Знач ЮТестПуть)
+
+ Если ТестовыеДанныеУФ.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ ГенераторТестовыхДанных = ГенераторТестовыхДанных();
+
+ ТестовыеДанные = Новый Структура;
+ Для каждого Строка Из ТестовыеДанныеУФ Цикл
+ Если Строка.Ключ = "ПользовательИнформационнойБазы" Тогда
+ ЭлементСпискаЗначений = Строка.Значение[0];
+ лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(ЭлементСпискаЗначений.Значение));
+ ТестовыеДанные.Вставить(ЭлементСпискаЗначений.Представление, лПользователь);
+ Иначе
+ ТестовыеДанные.Вставить(Строка.Ключ, Строка.Значение[0].Значение);
+ КонецЕсли;
+ КонецЦикла;
+
+ ГенераторТестовыхДанных.УдалитьСозданныеДанные(ТестовыеДанные);
+
+ ТестовыеДанныеУФ.Очистить();
+КонецПроцедуры
+
+&НаСервере
+Функция ГенераторТестовыхДанных()
+ Если ВстроенаВКонфигурацию Тогда
+ Возврат Обработки[ИспользуемыйПрефиксПодсистемы+"СериализаторMXL"].Создать();
+ Иначе
+ Возврат ВнешниеОбработки.Создать("СериализаторMXL");
+ КонецЕсли;
+КонецФункции
+
+Функция МассивИменПользователейПоУмолчанию()
+ Рез = Новый Массив();
+ Рез.Добавить(ПользовательИмя);
+ Возврат Рез;
+КонецФункции
+
+&НаСервере
+Функция Объект()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+Функция ПолучитьМакетДанныхДоступа(ИмяМакета, КоллекцияПараметров) Экспорт
+
+ Макет = Объект().ПолучитьМакет(ИмяМакета);
+ ЗаполнитьЗначенияСвойств(Макет.Параметры, КоллекцияПараметров);
+
+ НовыйТабДок = Новый ТабличныйДокумент;
+ НовыйТабДок.Вывести(Макет);
+
+ Возврат НовыйТабДок;
+КонецФункции
+
+Процедура УдалитьПользователяИБ_ЕслиОнСуществует(лИмяПользователя) Экспорт
+
+ лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(лИмяПользователя);
+ Если лПользователь <> Неопределено Тогда
+ лПользователь.Удалить();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ГУИ_83() Экспорт
+ имяПользователя = ПользовательИмя;
+ Пароль = "";
+ Порт = 1577;
+ ТаймаутОжиданияПриложенияВСекундах = 60;
+
+ тестовоеПриложение = ЗапуститьТестовоеПриложение(имяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах);
+
+ ТестовыйСценарий_25_09_2013(тестовоеПриложение);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ГУИ_83_ДваПриложения() Экспорт
+ имяПользователя = ПользовательИмя;
+ Пароль = "";
+ Порт = 1577;
+ ТаймаутОжиданияПриложенияВСекундах = 20;
+
+ Порт2 = Порт + 1;
+
+ тестовоеПриложение = ЗапуститьТестовоеПриложение(имяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах);
+ тестовоеПриложение2 = ЗапуститьТестовоеПриложение(имяПользователя, Пароль, Порт2, ТаймаутОжиданияПриложенияВСекундах);
+
+ ТестовыйСценарий_25_09_2013(тестовоеПриложение);
+ ТестовыйСценарий_25_09_2013(тестовоеПриложение2);
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ЗапуститьТестовоеПриложение(ИмяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах)
+ Перем тестовоеПриложение;
+ строкаЗапуска = ПолучитьСтрокуЗапуска(ИмяПользователя, Пароль, Порт);
+
+ ЗапуститьПриложение(строкаЗапуска);
+ тестовоеПриложение = Неопределено;
+ Попытка
+ Выполнить("тестовоеПриложение = Новый ТестируемоеПриложение(, XMLСтрока(Порт));");
+ Исключение
+ тестовоеПриложение = Неопределено;
+ КонецПопытки;
+ Если тестовоеПриложение = Неопределено Тогда
+ ВызватьИсключение "Не удалось создать объект ТестируемоеПриложение."+Символы.ПС+
+ "Возможно, что 1С:Предприятие 8 не было запущено в режиме Менеджера тестирования (ключ командной строки /TESTMANAGER)"+Символы.ПС+
+ "При запуске Предприятия через Конфигуратор можно включить этот режим в параметрах конфигуратора Сервис -> Параметры -> Запуск 1С:Предприятия -> Дополнительные -> Автоматизированное тестирование -> пункт ""Запускать как менеджер тестирования"".";
+ КонецЕсли;
+
+ Подключен = Ложь;
+ ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутОжиданияПриложенияВСекундах; //60;
+ ОписаниеОшибкиСоединения = "";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ тестовоеПриложение.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+
+ сообщениеОшибки = "Не смогли установить соединение с тестовым приложением для пользователя "+ИмяПользователя+" !" + Символы.ПС + ОписаниеОшибкиСоединения;
+ Если Не Подключен Тогда
+ тестовоеПриложение = Неопределено;
+ ВызватьИсключение сообщениеОшибки;
+ КонецЕсли;
+
+ массивТестовыхПриложений.Добавить(тестовоеПриложение);
+
+ Возврат тестовоеПриложение;
+КонецФункции
+
+&НаКлиенте
+Процедура ЗавершитьВсеСеансыРаботыСТестовымиПриложениями()
+ Если массивТестовыхПриложений.Количество() <> 0 Тогда
+ Для Каждого Подопытный Из массивТестовыхПриложений Цикл
+ Подопытный.РазорватьСоединение();
+ КонецЦикла;
+
+ ЗавершитьВсеТестовыеПриложенияПринудительно();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗавершитьВсеТестовыеПриложенияПринудительно()
+
+ Утверждения.ПроверитьЗаполненность(массивТестовыхПриложений.Количество(), "массивТестовыхПриложений.Количество()");
+
+ Если ЭтоLinux = Ложь Тогда
+
+ Scr = Новый COMОбъект("MSScriptControl.ScriptControl");
+ Scr.Language = "vbscript";
+ Scr.AddCode("
+ |Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next
+ |");
+ Иначе
+ СтрокаЗапуска = "kill -9 `ps aux | grep -ie TESTCLIENT | grep -ie 1cv8c | awk '{print $2}'`";
+ ЗапуститьПриложение(СтрокаЗапуска);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПолучитьСтрокуЗапуска(ИмяПользователя = "", Пароль = "", Порт = "")
+ //Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
+ // ИмяПользователя = "Администратор";
+ //КонецЕсли;
+
+ ЭтоLinux = Ложь;
+ СисИнфо = Новый СистемнаяИнформация;
+ ВерсияПриложения = СисИнфо.ВерсияПриложения;
+
+ Если Найти(Строка(СисИнфо.ТипПлатформы), "Linux")>0 Тогда
+ ЭтоLinux = Истина;
+ КонецЕсли;
+
+ СтрокаЗапуска1с = КаталогПрограммы() + "1cv8c";
+ Если ЭтоLinux = Ложь Тогда
+ СтрокаЗапуска1с = СтрокаЗапуска1с + ".exe";
+ КонецЕсли;
+
+
+
+ Результат = СтрокаЗапуска1с + " ENTERPRISE " +
+ "/IBConnectionString""" + СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """""") + """" +
+ " /N""" + ИмяПользователя + """" + ?(ПустаяСтрока(Пароль), ""," /P""" + Пароль + """") +
+ " /TESTCLIENT -TPort" + XMLСтрока(Порт);
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Процедура ТестовыйСценарий_25_09_2013(ТестовоеПриложение)
+
+ ОкноПриложенияОсновноеВыполнитьКоманду(ТестовоеПриложение);
+ ОкноПриложенияПоказатьГУИДЗакрыть(ТестовоеПриложение);
+ ОкноПриложенияОсновноеВыполнитьКоманду1(ТестовоеПриложение);
+ ОкноПриложенияПоказатьГУИДЗакрыть1(ТестовоеПриложение);
+ ОкноПриложенияОсновноеФормаПростойСправочникАктивизировать(ТестовоеПриложение);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияОсновноеВыполнитьКоманду(ТестовоеПриложение)
+
+ ОкноПриложенияОсновное = Неопределено;
+ КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
+ Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
+ Если ТестируемоеОкно.Основное Тогда
+ ОкноПриложенияОсновное = ТестируемоеОкно;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ ОкноПриложенияОсновное.ВыполнитьКоманду("e1cib/command/Обработка.xddGuidShow.Команда.Открыть");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияПоказатьГУИДЗакрыть(ТестовоеПриложение)
+
+ ОкноПриложенияПоказатьГУИД = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Показать ГУИД", , 30);
+ ОкноПриложенияПоказатьГУИД.Закрыть();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияОсновноеВыполнитьКоманду1(ТестовоеПриложение)
+
+
+ ОкноПриложенияОсновное = Неопределено;
+ КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
+ Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
+ Если ТестируемоеОкно.Основное Тогда
+ ОкноПриложенияОсновное = ТестируемоеОкно;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ ОкноПриложенияОсновное.ВыполнитьКоманду("e1cib/command/Справочник.ПростойСправочник.Команда.ОткрытьСписок");
+
+ ОкноПриложенияОсновное.ВыполнитьКоманду("e1cib/command/Обработка.xddGuidShow.Команда.Открыть");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияПоказатьГУИДЗакрыть1(ТестовоеПриложение)
+
+ ОкноПриложенияПоказатьГУИД = ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "Показать ГУИД", , 30);
+ ОкноПриложенияПоказатьГУИД.Закрыть();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияОсновноеФормаПростойСправочникАктивизировать(ТестовоеПриложение)
+
+
+ ОкноПриложенияОсновное = Неопределено;
+ КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
+ Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
+ Если ТестируемоеОкно.Основное Тогда
+ ОкноПриложенияОсновное = ТестируемоеОкно;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ ОкноПриложенияОсновноеФормаПростойСправочник = ОкноПриложенияОсновное.НайтиОбъект(Тип("ТестируемаяФорма"), "Простой справочник");
+ ОкноПриложенияОсновноеФормаПростойСправочник.Активизировать();
+
+КонецПроцедуры
+
+#КонецЕсли
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/maps.txt" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/maps.txt"
new file mode 100644
index 00000000..6abb2256
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/maps.txt"
@@ -0,0 +1,3 @@
+Form\Форма\Форма.bsl-->8401ee62-68b8-43ea-8738-0c08cbc8c901.0 (50, 466)
+Макеты\Макет.txt-->1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0
+Макеты\СозданиеОдногоПользователяИБ.mxl-->94428d21-9dd3-40d7-84be-7cee6ba1b8eb.0
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/renames.txt" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/renames.txt"
new file mode 100644
index 00000000..733c2aa6
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/renames.txt"
@@ -0,0 +1,11 @@
+1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4-->und\1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4
+1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0-->und\1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0
+4e93fd08-5eda-44dd-92ef-b84867283b1e-->und\4e93fd08-5eda-44dd-92ef-b84867283b1e
+8401ee62-68b8-43ea-8738-0c08cbc8c901-->und\8401ee62-68b8-43ea-8738-0c08cbc8c901
+8401ee62-68b8-43ea-8738-0c08cbc8c901.0-->und\8401ee62-68b8-43ea-8738-0c08cbc8c901.0
+94428d21-9dd3-40d7-84be-7cee6ba1b8eb-->und\94428d21-9dd3-40d7-84be-7cee6ba1b8eb
+94428d21-9dd3-40d7-84be-7cee6ba1b8eb.0-->und\94428d21-9dd3-40d7-84be-7cee6ba1b8eb.0
+copyinfo-->und\copyinfo
+root-->und\root
+version-->und\version
+versions-->und\versions
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4"
new file mode 100644
index 00000000..7eda6574
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4"
@@ -0,0 +1,6 @@
+{1,
+{2,4,
+{0,
+{0,0,1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4},"Макет",
+{1,"ru","Макет"},""}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0"
new file mode 100644
index 00000000..9f800b01
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0"
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/4e93fd08-5eda-44dd-92ef-b84867283b1e" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/4e93fd08-5eda-44dd-92ef-b84867283b1e"
new file mode 100644
index 00000000..eb6ecead
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/4e93fd08-5eda-44dd-92ef-b84867283b1e"
@@ -0,0 +1,17 @@
+{1,
+{4e93fd08-5eda-44dd-92ef-b84867283b1e},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,d4e55e33-fb7f-484e-bcf7-2a6d67753130,1112057b-82cb-47fc-b1bf-ac4d51be8b0b,
+{0,
+{1,
+{0,0,84c18118-7744-4171-b86f-e605494b2083},"юнитТест_UI_83",
+{1,"ru","Юнит-тест UI 8.3"},"Автор - Артур Аюханов aka artbear 2013",0,0}
+},8401ee62-68b8-43ea-8738-0c08cbc8c901,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,2,1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4,94428d21-9dd3-40d7-84be-7cee6ba1b8eb},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,8401ee62-68b8-43ea-8738-0c08cbc8c901},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/8401ee62-68b8-43ea-8738-0c08cbc8c901" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/8401ee62-68b8-43ea-8738-0c08cbc8c901"
new file mode 100644
index 00000000..20d6a58d
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/8401ee62-68b8-43ea-8738-0c08cbc8c901"
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,8401ee62-68b8-43ea-8738-0c08cbc8c901},"Форма",
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0"
new file mode 100644
index 00000000..983fd337
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/8401ee62-68b8-43ea-8738-0c08cbc8c901.0"
@@ -0,0 +1,661 @@
+{3,
+{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{0,0,0},
+{0},1,
+{21,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},9,"ФормаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2},"#Если Не ВебКлиент Тогда
+
+
+&НаКлиенте
+Перем КонтекстЯдра;
+&НаКлиенте
+Перем Ожидаем;
+&НаКлиенте
+Перем Утверждения;
+&НаКлиенте
+Перем ГенераторТестовыхДанных;
+&НаКлиенте
+Перем ЗапросыИзБД;
+&НаКлиенте
+Перем УтвержденияПроверкаТаблиц;
+
+&НаКлиенте
+Перем массивТестовыхПриложений;
+
+&НаКлиенте
+Перем ЮнитТестированиеИмя;
+
+&НаКлиенте
+
+//Перем юТест;
+//Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
+// ЮнитТестированиеИмя = ЮнитТестирование.МетаданныеИмя();
+//
+// СисИнфо = Новый СистемнаяИнформация;
+//
+// юТест = ЮнитТестирование;
+//
+// ВсеТесты = Новый Массив;
+//
+// Если СисИнфо.ВерсияПриложения < ""8.3.0.0"" Тогда
+// Возврат ВсеТесты;
+// КонецЕсли;
+//
+// ВсеТесты.Добавить(""Тест_ГУИ_83"");
+// ВсеТесты.Добавить(""Тест_ГУИ_83_ДваПриложения"");
+//
+// Возврат ВсеТесты;
+//
+//КонецФункции
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+
+ // Служебные переменные
+ ВстроенаВКонфигурацию = КонтекстЯдра.Объект.ЭтоВстроеннаяОбработка;
+ ИспользуемыйПрефиксПодсистемы = КонтекстЯдра.Объект.ИспользуемыйПрефиксПодсистемы;
+
+ Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD"");
+ Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения"");
+ ГенераторТестовыхДанных = КонтекстЯдра.Плагин(""СериализаторMXL"");
+ ЗапросыИзБД = КонтекстЯдра.Плагин(""ЗапросыИзБД"");
+ УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин(""УтвержденияПроверкаТаблиц"");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+ НаборТестов.Добавить(""Тест_ГУИ_83"");
+ НаборТестов.Добавить(""Тест_ГУИ_83_ДваПриложения"");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+ ИмяПеременнойПользователь = ""Пользователь12"";
+ ПользовательИмя = ""ТестИмя12"";
+ ОбновитьПовторноИспользуемыеЗначения();
+
+ КонтекстЯдра.ВывестиСообщение(""Перед запуском теста"");
+ массивТестовыхПриложений = Новый Массив;
+
+ СоздатьТестовыеДанныеСервер(ЮнитТестированиеИмя);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+
+ КонтекстЯдра.ВывестиСообщение(""После запуска теста"");
+ УдалитьТестовыеДанныеСервер(ЮнитТестированиеИмя);
+
+ ЗавершитьВсеСеансыРаботыСТестовымиПриложениями();
+КонецПроцедуры
+
+&НаСервере
+Процедура СоздатьТестовыеДанныеСервер(Знач ЮТестПуть)
+
+ ГенераторТестовыхДанных = ГенераторТестовыхДанных();
+
+ ИмяМакета = ""СозданиеОдногоПользователяИБ"";
+ //ИмяМакета = ""СозданиеОдногоПользователяИБ_УФ"";
+
+ ОсновнойОбъект = Объект();
+ МассивИменПользователей = МассивИменПользователейПоУмолчанию();
+ Для каждого ИмяПользователя Из МассивИменПользователей Цикл
+ УдалитьПользователяИБ_ЕслиОнСуществует(ИмяПользователя);
+ КонецЦикла;
+
+ КоллекцияПараметров = Новый Структура(""ИмяПеременнойПользователь, ПользовательИмя"", ИмяПеременнойПользователь, ПользовательИмя);
+ НовыйТабДок = ПолучитьМакетДанныхДоступа(ИмяМакета, КоллекцияПараметров);
+
+ МассивМакетов = Новый Массив;
+ МассивМакетов.Добавить(НовыйТабДок);
+
+ ТестовыеДанные = ГенераторТестовыхДанных.СоздатьДанныеПоТабличномуДокументу(МассивМакетов);
+
+ ТестовыеДанныеУФ.Очистить();
+
+ ТестовыеДанныеДляУФ = Новый ТаблицаЗначений;
+ Колонка = ТестовыеДанныеДляУФ.Колонки.Добавить(""Ключ"");
+ Колонка = ТестовыеДанныеДляУФ.Колонки.Добавить(""Значение"");
+
+ Для каждого ключЗначение Из ТестовыеДанные Цикл
+ СписокВрем = Новый СписокЗначений;
+ Строка = ТестовыеДанныеДляУФ.Добавить();
+ Если ТипЗнч(ключЗначение.Значение) = Тип(""ПользовательИнформационнойБазы"") Тогда
+ СписокВрем.Добавить(ключЗначение.Значение.Имя, ключЗначение.Ключ);
+ Строка.Ключ = ""ПользовательИнформационнойБазы"";
+ Иначе
+ Строка.Ключ = ключЗначение.Ключ;
+ СписокВрем.Добавить(ключЗначение.Значение);
+ КонецЕсли;
+ Строка.Значение = СписокВрем;
+ КонецЦикла;
+
+ ЗначениеВДанныеФормы(ТестовыеДанныеДляУФ, ТестовыеДанныеУФ);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьТестовыеДанныеСервер(Знач ЮТестПуть)
+
+ Если ТестовыеДанныеУФ.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ ГенераторТестовыхДанных = ГенераторТестовыхДанных();
+
+ ТестовыеДанные = Новый Структура;
+ Для каждого Строка Из ТестовыеДанныеУФ Цикл
+ Если Строка.Ключ = ""ПользовательИнформационнойБазы"" Тогда
+ ЭлементСпискаЗначений = Строка.Значение[0];
+ лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(ЭлементСпискаЗначений.Значение));
+ ТестовыеДанные.Вставить(ЭлементСпискаЗначений.Представление, лПользователь);
+ Иначе
+ ТестовыеДанные.Вставить(Строка.Ключ, Строка.Значение[0].Значение);
+ КонецЕсли;
+ КонецЦикла;
+
+ ГенераторТестовыхДанных.УдалитьСозданныеДанные(ТестовыеДанные);
+
+ ТестовыеДанныеУФ.Очистить();
+КонецПроцедуры
+
+&НаСервере
+Функция ГенераторТестовыхДанных()
+ Если ВстроенаВКонфигурацию Тогда
+ Возврат Обработки[ИспользуемыйПрефиксПодсистемы+""СериализаторMXL""].Создать();
+ Иначе
+ Возврат ВнешниеОбработки.Создать(""СериализаторMXL"");
+ КонецЕсли;
+КонецФункции
+
+Функция МассивИменПользователейПоУмолчанию()
+ Рез = Новый Массив();
+ Рез.Добавить(ПользовательИмя);
+ Возврат Рез;
+КонецФункции
+
+&НаСервере
+Функция Объект()
+ Возврат РеквизитФормыВЗначение(""Объект"");
+КонецФункции
+
+Функция ПолучитьМакетДанныхДоступа(ИмяМакета, КоллекцияПараметров) Экспорт
+
+ Макет = Объект().ПолучитьМакет(ИмяМакета);
+ ЗаполнитьЗначенияСвойств(Макет.Параметры, КоллекцияПараметров);
+
+ НовыйТабДок = Новый ТабличныйДокумент;
+ НовыйТабДок.Вывести(Макет);
+
+ Возврат НовыйТабДок;
+КонецФункции
+
+Процедура УдалитьПользователяИБ_ЕслиОнСуществует(лИмяПользователя) Экспорт
+
+ лПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(лИмяПользователя);
+ Если лПользователь <> Неопределено Тогда
+ лПользователь.Удалить();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ГУИ_83() Экспорт
+ имяПользователя = ПользовательИмя;
+ Пароль = """";
+ Порт = 1577;
+ ТаймаутОжиданияПриложенияВСекундах = 60;
+
+ тестовоеПриложение = ЗапуститьТестовоеПриложение(имяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах);
+
+ ТестовыйСценарий_25_09_2013(тестовоеПриложение);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ГУИ_83_ДваПриложения() Экспорт
+ имяПользователя = ПользовательИмя;
+ Пароль = """";
+ Порт = 1577;
+ ТаймаутОжиданияПриложенияВСекундах = 20;
+
+ Порт2 = Порт + 1;
+
+ тестовоеПриложение = ЗапуститьТестовоеПриложение(имяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах);
+ тестовоеПриложение2 = ЗапуститьТестовоеПриложение(имяПользователя, Пароль, Порт2, ТаймаутОжиданияПриложенияВСекундах);
+
+ ТестовыйСценарий_25_09_2013(тестовоеПриложение);
+ ТестовыйСценарий_25_09_2013(тестовоеПриложение2);
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ЗапуститьТестовоеПриложение(ИмяПользователя, Пароль, Порт, ТаймаутОжиданияПриложенияВСекундах)
+ Перем тестовоеПриложение;
+ строкаЗапуска = ПолучитьСтрокуЗапуска(ИмяПользователя, Пароль, Порт);
+
+ ЗапуститьПриложение(строкаЗапуска);
+ тестовоеПриложение = Неопределено;
+ Попытка
+ Выполнить(""тестовоеПриложение = Новый ТестируемоеПриложение(, XMLСтрока(Порт));"");
+ Исключение
+ тестовоеПриложение = Неопределено;
+ КонецПопытки;
+ Если тестовоеПриложение = Неопределено Тогда
+ ВызватьИсключение ""Не удалось создать объект ТестируемоеПриложение.""+Символы.ПС+
+ ""Возможно, что 1С:Предприятие 8 не было запущено в режиме Менеджера тестирования (ключ командной строки /TESTMANAGER)""+Символы.ПС+
+ ""При запуске Предприятия через Конфигуратор можно включить этот режим в параметрах конфигуратора Сервис -> Параметры -> Запуск 1С:Предприятия -> Дополнительные -> Автоматизированное тестирование -> пункт """"Запускать как менеджер тестирования""""."";
+ КонецЕсли;
+
+ Подключен = Ложь;
+ ВремяОкончанияОжидания = ТекущаяДата() + ТаймаутОжиданияПриложенияВСекундах; //60;
+ ОписаниеОшибкиСоединения = """";
+ Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл
+ Попытка
+ тестовоеПриложение.УстановитьСоединение();
+ Подключен = Истина;
+ Прервать;
+ Исключение
+ ОписаниеОшибкиСоединения = ОписаниеОшибки();
+ КонецПопытки;
+ КонецЦикла;
+
+ сообщениеОшибки = ""Не смогли установить соединение с тестовым приложением для пользователя ""+ИмяПользователя+"" !"" + Символы.ПС + ОписаниеОшибкиСоединения;
+ Если Не Подключен Тогда
+ тестовоеПриложение = Неопределено;
+ ВызватьИсключение сообщениеОшибки;
+ КонецЕсли;
+
+ массивТестовыхПриложений.Добавить(тестовоеПриложение);
+
+ Возврат тестовоеПриложение;
+КонецФункции
+
+&НаКлиенте
+Процедура ЗавершитьВсеСеансыРаботыСТестовымиПриложениями()
+ Если массивТестовыхПриложений.Количество() <> 0 Тогда
+ Для Каждого Подопытный Из массивТестовыхПриложений Цикл
+ Подопытный.РазорватьСоединение();
+ КонецЦикла;
+
+ ЗавершитьВсеТестовыеПриложенияПринудительно();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗавершитьВсеТестовыеПриложенияПринудительно()
+
+ Утверждения.ПроверитьЗаполненность(массивТестовыхПриложений.Количество(), ""массивТестовыхПриложений.Количество()"");
+
+ Если ЭтоLinux = Ложь Тогда
+
+ Scr = Новый COMОбъект(""MSScriptControl.ScriptControl"");
+ Scr.Language = ""vbscript"";
+ Scr.AddCode(""
+ |Option Explicit
+ |
+ |Dim objWMIService, objProcess, colProcess
+ |
+ |Set objWMIService = GetObject(""""winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"""")
+ |
+ |Set colProcess = objWMIService.ExecQuery(""""Select * from Win32_Process Where (CommandLine Like '%/TESTCLIENT%' And ExecutablePath Like '%1cv8c%')"""")
+ |
+ |For Each objProcess in colProcess
+ | objProcess.Terminate()
+ |Next
+ |"");
+ Иначе
+ СтрокаЗапуска = ""kill -9 `ps aux | grep -ie TESTCLIENT | grep -ie 1cv8c | awk '{print $2}'`"";
+ ЗапуститьПриложение(СтрокаЗапуска);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПолучитьСтрокуЗапуска(ИмяПользователя = """", Пароль = """", Порт = """")
+ //Если Не ЗначениеЗаполнено(ИмяПользователя) Тогда
+ // ИмяПользователя = ""Администратор"";
+ //КонецЕсли;
+
+ ЭтоLinux = Ложь;
+ СисИнфо = Новый СистемнаяИнформация;
+ ВерсияПриложения = СисИнфо.ВерсияПриложения;
+
+ Если Найти(Строка(СисИнфо.ТипПлатформы), ""Linux"")>0 Тогда
+ ЭтоLinux = Истина;
+ КонецЕсли;
+
+ СтрокаЗапуска1с = КаталогПрограммы() + ""1cv8c"";
+ Если ЭтоLinux = Ложь Тогда
+ СтрокаЗапуска1с = СтрокаЗапуска1с + "".exe"";
+ КонецЕсли;
+
+
+
+ Результат = СтрокаЗапуска1с + "" ENTERPRISE "" +
+ ""/IBConnectionString"""""" + СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """""""", """""""""""") + """""""" +
+ "" /N"""""" + ИмяПользователя + """""""" + ?(ПустаяСтрока(Пароль), """","" /P"""""" + Пароль + """""""") +
+ "" /TESTCLIENT -TPort"" + XMLСтрока(Порт);
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Процедура ТестовыйСценарий_25_09_2013(ТестовоеПриложение)
+
+ ОкноПриложенияОсновноеВыполнитьКоманду(ТестовоеПриложение);
+ ОкноПриложенияПоказатьГУИДЗакрыть(ТестовоеПриложение);
+ ОкноПриложенияОсновноеВыполнитьКоманду1(ТестовоеПриложение);
+ ОкноПриложенияПоказатьГУИДЗакрыть1(ТестовоеПриложение);
+ ОкноПриложенияОсновноеФормаПростойСправочникАктивизировать(ТестовоеПриложение);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияОсновноеВыполнитьКоманду(ТестовоеПриложение)
+
+ ОкноПриложенияОсновное = Неопределено;
+ КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
+ Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
+ Если ТестируемоеОкно.Основное Тогда
+ ОкноПриложенияОсновное = ТестируемоеОкно;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ ОкноПриложенияОсновное.ВыполнитьКоманду(""e1cib/command/Обработка.xddGuidShow.Команда.Открыть"");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияПоказатьГУИДЗакрыть(ТестовоеПриложение)
+
+ ОкноПриложенияПоказатьГУИД = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ""Показать ГУИД"", , 30);
+ ОкноПриложенияПоказатьГУИД.Закрыть();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияОсновноеВыполнитьКоманду1(ТестовоеПриложение)
+
+
+ ОкноПриложенияОсновное = Неопределено;
+ КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
+ Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
+ Если ТестируемоеОкно.Основное Тогда
+ ОкноПриложенияОсновное = ТестируемоеОкно;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ ОкноПриложенияОсновное.ВыполнитьКоманду(""e1cib/command/Справочник.ПростойСправочник.Команда.ОткрытьСписок"");
+
+ ОкноПриложенияОсновное.ВыполнитьКоманду(""e1cib/command/Обработка.xddGuidShow.Команда.Открыть"");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияПоказатьГУИДЗакрыть1(ТестовоеПриложение)
+
+ ОкноПриложенияПоказатьГУИД = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), ""Показать ГУИД"", , 30);
+ ОкноПриложенияПоказатьГУИД.Закрыть();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОкноПриложенияОсновноеФормаПростойСправочникАктивизировать(ТестовоеПриложение)
+
+
+ ОкноПриложенияОсновное = Неопределено;
+ КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();
+ Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл
+ Если ТестируемоеОкно.Основное Тогда
+ ОкноПриложенияОсновное = ТестируемоеОкно;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ ОкноПриложенияОсновноеФормаПростойСправочник = ОкноПриложенияОсновное.НайтиОбъект(Тип(""ТестируемаяФорма""), ""Простой справочник"");
+ ОкноПриложенияОсновноеФормаПростойСправочник.Активизировать();
+
+КонецПроцедуры
+
+#КонецЕсли
+",
+{4,7,
+{9,
+{1},0,"Объект",
+{1,0},
+{"Pattern",
+{"#",d4e55e33-fb7f-484e-bcf7-2a6d67753130}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},1,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{2},0,"ИмяПеременнойПользователь",
+{1,1,
+{"ru","Имя переменной пользователь"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{3},0,"ПользовательИмя",
+{1,1,
+{"ru","Пользователь имя"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{4},0,"ТестовыеДанныеУФ",
+{1,1,
+{"ru","Тестовые данные УФ"}
+},
+{"Pattern",
+{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,2,
+{5,1,0,"Ключ",
+{1,1,
+{"ru","Ключ"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{5,2,0,"Значение",
+{1,1,
+{"ru","Значение"}
+},
+{"Pattern",
+{"#",4772b3b4-f4a3-49c0-a1a5-8cb5961511a3}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},0},
+{0,0},
+{0,0}
+},
+{9,
+{5},0,"ЭтоLinux",
+{1,1,
+{"ru","Это linux"}
+},
+{"Pattern",
+{"B"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{6},0,"ВстроенаВКонфигурацию",
+{1,1,
+{"ru","Встроена в конфигурацию"}
+},
+{"Pattern",
+{"B"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{7},0,"ИспользуемыйПрефиксПодсистемы",
+{1,1,
+{"ru","Используемый префикс подсистемы"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
+},
+{0,0},
+{0,0},
+{0,0},
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/94428d21-9dd3-40d7-84be-7cee6ba1b8eb" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/94428d21-9dd3-40d7-84be-7cee6ba1b8eb"
new file mode 100644
index 00000000..846a102f
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/94428d21-9dd3-40d7-84be-7cee6ba1b8eb"
@@ -0,0 +1,6 @@
+{1,
+{2,0,
+{1,
+{0,0,94428d21-9dd3-40d7-84be-7cee6ba1b8eb},"СозданиеОдногоПользователяИБ",
+{1,"ru","Создание одного пользователя ИБ"},"",0,0}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/94428d21-9dd3-40d7-84be-7cee6ba1b8eb.0" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/94428d21-9dd3-40d7-84be-7cee6ba1b8eb.0"
new file mode 100644
index 00000000..c299327e
Binary files /dev/null and "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/94428d21-9dd3-40d7-84be-7cee6ba1b8eb.0" differ
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/copyinfo" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/copyinfo"
new file mode 100644
index 00000000..aa01503e
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/copyinfo"
@@ -0,0 +1,16 @@
+{4,
+{2,
+{8401ee62-68b8-43ea-8738-0c08cbc8c901,8401ee62-68b8-43ea-8738-0c08cbc8c901,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
+},
+{84c18118-7744-4171-b86f-e605494b2083,84c18118-7744-4171-b86f-e605494b2083,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"юнитТест_UI_83"}
+}
+},
+{1,
+{d4e55e33-fb7f-484e-bcf7-2a6d67753130,84c18118-7744-4171-b86f-e605494b2083,0}
+},
+{0},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/root" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/root"
new file mode 100644
index 00000000..0c48dcf2
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/root"
@@ -0,0 +1 @@
+{2,4e93fd08-5eda-44dd-92ef-b84867283b1e,}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/version" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/version"
new file mode 100644
index 00000000..c23bfe28
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/version"
@@ -0,0 +1,3 @@
+{
+{216,0}
+}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/versions" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/versions"
new file mode 100644
index 00000000..e031e562
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/und/versions"
@@ -0,0 +1 @@
+{1,10,"",fc236657-1410-4c6b-91c8-a2e93215b016,"4e93fd08-5eda-44dd-92ef-b84867283b1e",f203edc3-bc6e-4f3e-9b7e-d9e1fa9afc87,"8401ee62-68b8-43ea-8738-0c08cbc8c901",87e8c7a3-f3d3-4a67-b6e6-d322c23939df,"8401ee62-68b8-43ea-8738-0c08cbc8c901.0",99871846-be00-4d79-b3e8-d7ba5d2a5ff3,"94428d21-9dd3-40d7-84be-7cee6ba1b8eb",43343ed3-9d98-49c2-a18b-0b8b816ee953,"94428d21-9dd3-40d7-84be-7cee6ba1b8eb.0",18fa2bff-aa03-43ad-bdb5-6a5841d1e96e,"copyinfo",fba2b46a-91be-4805-98b9-0dced74c2282,"root",fdc525a7-e4d1-46f8-9e8e-377cd1b7ca74,"version",6ed12471-0a8f-4871-bb6e-1841cb0be8bb,"versions",2ece8525-000e-45d2-8ea3-a75bf3459def}
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\234\320\260\320\272\320\265\321\202.txt" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\234\320\260\320\272\320\265\321\202.txt"
new file mode 100644
index 00000000..9f800b01
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\234\320\260\320\272\320\265\321\202.txt"
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl"
new file mode 100644
index 00000000..c299327e
Binary files /dev/null and "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl" differ
diff --git "a/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt" "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt"
new file mode 100644
index 00000000..ce32a163
--- /dev/null
+++ "b/src/Tests/Gui83/\321\216\320\275\320\270\321\202\320\242\320\265\321\201\321\202_UI_83/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt"
@@ -0,0 +1,9 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+ПользовательИБ ИмяПеременнойПользователь
+ Имя ПользовательИмя
+ ОсновнойИнтерфейс
+ Пароль
+ РежимЗапуска Управляемое приложение
+ Роли
+ Роль Роль1
+ Роль ПраваНеобходимыеДляТестирования
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214_\320\242\320\276\321\207\320\272\321\203\320\234\320\260\321\200\321\210\321\200\321\203\321\202\320\260/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214_\320\242\320\276\321\207\320\272\321\203\320\234\320\260\321\200\321\210\321\200\321\203\321\202\320\260/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214_\320\242\320\276\321\207\320\272\321\203\320\234\320\260\321\200\321\210\321\200\321\203\321\202\320\260/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214_\320\242\320\276\321\207\320\272\321\203\320\234\320\260\321\200\321\210\321\200\321\203\321\202\320\260/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214_\320\242\320\276\321\207\320\272\321\203\320\234\320\260\321\200\321\210\321\200\321\203\321\202\320\260/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214_\320\242\320\276\321\207\320\272\321\203\320\234\320\260\321\200\321\210\321\200\321\203\321\202\320\260/renames.txt"
index bc5e054d..9cbd2136 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214_\320\242\320\276\321\207\320\272\321\203\320\234\320\260\321\200\321\210\321\200\321\203\321\202\320\260/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214_\320\242\320\276\321\207\320\272\321\203\320\234\320\260\321\200\321\210\321\200\321\203\321\202\320\260/renames.txt"
@@ -1,5 +1,5 @@
7fb0f271-ff7c-46cc-a4c6-061237913139.0\info-->und\7fb0f271-ff7c-46cc-a4c6-061237913139.0\info
-7fb0f271-ff7c-46cc-a4c6-061237913139.0\text-->ObjectModule.txt
+7fb0f271-ff7c-46cc-a4c6-061237913139.0\text-->ObjectModule.bsl
8509f5aa-e002-42bd-ace1-1478593bba7c-->und\8509f5aa-e002-42bd-ace1-1478593bba7c
8509f5aa-e002-42bd-ace1-1478593bba7c.0-->und\8509f5aa-e002-42bd-ace1-1478593bba7c.0
copyinfo-->und\copyinfo
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\236\321\202\321\207\320\265\321\202\320\235\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\255\321\202\320\260\320\273\320\276\320\275\321\203/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\236\321\202\321\207\320\265\321\202\320\235\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\255\321\202\320\260\320\273\320\276\320\275\321\203/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\236\321\202\321\207\320\265\321\202\320\235\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\255\321\202\320\260\320\273\320\276\320\275\321\203/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\236\321\202\321\207\320\265\321\202\320\235\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\255\321\202\320\260\320\273\320\276\320\275\321\203/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\236\321\202\321\207\320\265\321\202\320\235\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\255\321\202\320\260\320\273\320\276\320\275\321\203/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\236\321\202\321\207\320\265\321\202\320\235\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\255\321\202\320\260\320\273\320\276\320\275\321\203/renames.txt"
index f7f2e1c3..b60f68ce 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\236\321\202\321\207\320\265\321\202\320\235\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\255\321\202\320\260\320\273\320\276\320\275\321\203/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202_\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\236\321\202\321\207\320\265\321\202\320\235\320\260\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\255\321\202\320\260\320\273\320\276\320\275\321\203/renames.txt"
@@ -5,7 +5,7 @@
915c368c-cc97-4756-8944-36659b177d1e-->und\915c368c-cc97-4756-8944-36659b177d1e
copyinfo-->und\copyinfo
f2d2060c-a875-4798-8c3a-7e5b14081428.0\info-->und\f2d2060c-a875-4798-8c3a-7e5b14081428.0\info
-f2d2060c-a875-4798-8c3a-7e5b14081428.0\text-->ObjectModule.txt
+f2d2060c-a875-4798-8c3a-7e5b14081428.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl"
similarity index 99%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl"
index 55f76d58..a5cb2763 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl"
@@ -46,7 +46,7 @@
УспешныйЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "УспешныйМетод");
ЭлементПадающийПоУтверждению = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "МетодПадающийПоУтверждению");
ЭлементПадающийПоНеизвестнойОшибке = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "МетодПадающийПоНеизвестнойОшибке");
- ОтсутствующийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "ОтсутствующийМетод");
+ ОтсутствующийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "ОтсутствующийМетод", "Отсутствующий метод");
Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
Контейнер.Строки.Добавить(УспешныйЭлемент);
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/renames.txt"
index b8035533..975d0238 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/renames.txt"
@@ -3,7 +3,7 @@ copyinfo-->und\copyinfo
d1b9a471-687e-4a8d-a08e-27df388fd7cd-->und\d1b9a471-687e-4a8d-a08e-27df388fd7cd
d1b9a471-687e-4a8d-a08e-27df388fd7cd.0-->und\d1b9a471-687e-4a8d-a08e-27df388fd7cd.0
ea75be97-b437-4750-a79f-478ea2e60f75.0\info-->und\ea75be97-b437-4750-a79f-478ea2e60f75.0\info
-ea75be97-b437-4750-a79f-478ea2e60f75.0\text-->ObjectModule.txt
+ea75be97-b437-4750-a79f-478ea2e60f75.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/d1b9a471-687e-4a8d-a08e-27df388fd7cd.0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/d1b9a471-687e-4a8d-a08e-27df388fd7cd.0"
index 3dedf658..48b674c0 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/d1b9a471-687e-4a8d-a08e-27df388fd7cd.0"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/d1b9a471-687e-4a8d-a08e-27df388fd7cd.0"
@@ -9,7 +9,7 @@
-
+
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions"
index 1393f9de..83a424ea 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions"
@@ -1 +1 @@
-{1,11,"",47c296fa-615a-4aa2-85dc-b37e5129881a,"d1b9a471-687e-4a8d-a08e-27df388fd7cd.0",7a750443-b28c-4d37-8035-7d41c6eab836,"versions",76f01569-f690-4db2-a9db-0556804b77f4,"ea75be97-b437-4750-a79f-478ea2e60f75.0",5392ad51-1958-4506-aef3-6585184e06b0,"root",bf34f7c1-098d-4736-a028-7ff4b89790a2,"d277cc43-f0a9-4723-8f31-1184414687cb",d0fb0ba0-ca22-4fd0-ac62-fbde0d40e179,"aa3398ee-6203-44e1-9810-a0737f241f75",ec3dad7d-5b4b-444c-8012-1eb744b90ce7,"cc3dbe26-3080-4bf0-9ab1-ee85f142f7bc",398e9380-50e9-46e0-8c61-15026bb86cf2,"d1b9a471-687e-4a8d-a08e-27df388fd7cd",fff862e9-1349-4991-94bc-b1ff90d36882,"version",5930e94a-b972-4e9d-99c7-e1cec60de88c,"copyinfo",b69b4d78-1a4f-4b62-8e73-3028aa4dc077}
\ No newline at end of file
+{1,11,"",1363081a-99a1-4bb1-b1c4-139f1cb59429,"versions",22795326-defc-4270-a74e-c513c9cb3d4b,"d1b9a471-687e-4a8d-a08e-27df388fd7cd.0",d6a7512a-64d2-4765-bf91-6badc09f4ca3,"ea75be97-b437-4750-a79f-478ea2e60f75.0",42d9d79a-594c-4b09-9de4-881d73003c23,"root",8b934366-c546-486e-a509-5e5c1ce07e1f,"aa3398ee-6203-44e1-9810-a0737f241f75",681c3b1a-1ec0-4910-841e-f24e500d8b38,"d277cc43-f0a9-4723-8f31-1184414687cb",d0fb0ba0-ca22-4fd0-ac62-fbde0d40e179,"cc3dbe26-3080-4bf0-9ab1-ee85f142f7bc",398e9380-50e9-46e0-8c61-15026bb86cf2,"d1b9a471-687e-4a8d-a08e-27df388fd7cd",cd9c6ef3-2b67-430f-9eee-e3aff710e867,"version",708f35f4-1359-49dd-8971-aab765d61c34,"copyinfo",edfc2229-406f-4748-a65a-95bd279cb32e}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275_\320\236\321\202\321\207\320\265\321\202\320\236\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275_\320\236\321\202\321\207\320\265\321\202\320\236\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.txt"
index 3dedf658..48b674c0 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275_\320\236\321\202\321\207\320\265\321\202\320\236\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/\320\234\320\260\320\272\320\265\321\202\321\213/\320\255\321\202\320\260\320\273\320\276\320\275_\320\236\321\202\321\207\320\265\321\202\320\236\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.txt"
@@ -9,7 +9,7 @@
-
+
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.bsl"
similarity index 91%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.bsl"
index c97714a7..15bdcb09 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/ObjectModule.bsl"
@@ -25,7 +25,7 @@
ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов");
УспешныйЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "УспешныйМетод");
ПадающийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "ПадающийМетод");
- ОтсутствующийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "ОтсутствующийМетод");
+ ОтсутствующийЭлемент = ПостроительДереваТестов.СоздатьЭлемент(ЭтотОбъект.ИспользуемоеИмяФайла, "ОтсутствующийМетод", "Отсутствующий метод");
Контейнер = ПостроительДереваТестов.СоздатьКонтейнер("Контейнер");
Контейнер.Строки.Добавить(УспешныйЭлемент);
@@ -48,8 +48,8 @@
// Тесты
Ожидаем.Что(Отчет.НайтиТекст(УспешныйЭлемент.ИмяМетода), "УспешныйЭлемент").Не_().Существует();
Ожидаем.Что(Отчет.НайтиТекст(ПадающийЭлемент.ИмяМетода), "ПадающийЭлемент").Существует();
- Ожидаем.Что(Отчет.НайтиТекст(ОтсутствующийЭлемент.ИмяМетода), "ОтсутствующийЭлемент").Существует();
- //Ожидаем.Что(Отчет.НайтиТекст(ОтсутствующийЭлемент.ИмяМетода), "ОтсутствующийЭлемент").Не_().Существует();
+ Ожидаем.Что(Отчет.НайтиТекст(ОтсутствующийЭлемент.ИмяМетода+", путь"), "ОтсутствующийЭлемент").Не_().Существует();
+ Ожидаем.Что(Отчет.НайтиТекст(ОтсутствующийЭлемент.Представление), "Отсутствующий элемент").Существует();
КонецПроцедуры
// Методы нужные для тестов
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/renames.txt"
index 86a3b021..d5dd87ab 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/renames.txt"
@@ -1,7 +1,7 @@
aa3398ee-6203-44e1-9810-a0737f241f75-->und\aa3398ee-6203-44e1-9810-a0737f241f75
copyinfo-->und\copyinfo
ea75be97-b437-4750-a79f-478ea2e60f75.0\info-->und\ea75be97-b437-4750-a79f-478ea2e60f75.0\info
-ea75be97-b437-4750-a79f-478ea2e60f75.0\text-->ObjectModule.txt
+ea75be97-b437-4750-a79f-478ea2e60f75.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions"
index 8f9cc14a..da4c0018 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/versions"
@@ -1 +1 @@
-{1,8,"",bba77ce2-d9af-443c-bdb0-c1f56f8d7dbc,"versions",2686611b-a2e8-4023-95e3-dafa2e3393bf,"ea75be97-b437-4750-a79f-478ea2e60f75.0",a47d2c35-d98c-47a7-86d8-37d5b639c920,"root",b78ffa50-5004-414a-8102-a8552f70e735,"aa3398ee-6203-44e1-9810-a0737f241f75",6fbfcef9-df7a-443f-be77-a4d193aee075,"cc3dbe26-3080-4bf0-9ab1-ee85f142f7bc",398e9380-50e9-46e0-8c61-15026bb86cf2,"version",9f291d6f-b7a9-4b02-90b2-33bb2c01df8a,"copyinfo",1e85fddb-16d6-4ba8-bc59-60f6da3f3f78}
\ No newline at end of file
+{1,8,"",8c0cace3-afdf-42a0-927a-48bb86f3c731,"versions",43a44752-6c20-4934-95b0-570345cfa4b7,"ea75be97-b437-4750-a79f-478ea2e60f75.0",c1be0768-c841-44f0-b8c4-89117840a25e,"root",e8b0addf-573f-49ee-a3b1-a2f7ab6cb08b,"aa3398ee-6203-44e1-9810-a0737f241f75",e7f4e76a-121e-4726-91ad-8a52d247b422,"cc3dbe26-3080-4bf0-9ab1-ee85f142f7bc",398e9380-50e9-46e0-8c61-15026bb86cf2,"version",ff8431ac-f215-49ee-bbcb-3c8f4f6a30ba,"copyinfo",69f0ade6-dd2c-4718-aa2b-f63c24ccae69}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 99%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index 679c8264..95ebafba 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -41,7 +41,7 @@
Ожидаем.Что(ДеревоТестов.Имя).Равно(ИмяПодсистемы);
Ожидаем.Что(ДеревоТестов.Тип).Равно(ТипыУзловДереваТестов.Контейнер);
- Ожидаем.Что(ДеревоТестов.Строки).ИмеетДлину(3);
+ Ожидаем.Что(ДеревоТестов.Строки).ИмеетДлину(4);
КонецПроцедуры
&НаКлиенте
@@ -51,7 +51,7 @@
РезультатыТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикИзПодсистемКонфигурации, ДеревоТестов);
- Ожидаем.Что(РезультатыТестирования.КоличествоТестов, "КоличествоТестов").Равно(18);
+ Ожидаем.Что(РезультатыТестирования.КоличествоТестов, "КоличествоТестов").Равно(20);
Ожидаем.Что(РезультатыТестирования.КоличествоСломанныхТестов, "КоличествоСломанныхТестов").Равно(0);
Ожидаем.Что(РезультатыТестирования.КоличествоНеРеализованныхТестов, "КоличествоНеРеализованныхТестов").Равно(0);
КонецПроцедуры
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl"
similarity index 99%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl"
index 4d85c539..f2b441c8 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl"
@@ -34,7 +34,7 @@
Ожидаем.Что(ДеревоТестов.Имя).Равно(ИмяПодсистемы);
Ожидаем.Что(ДеревоТестов.Тип).Равно(ТипыУзловДереваТестов.Контейнер);
- Ожидаем.Что(ДеревоТестов.Строки).ИмеетДлину(3);
+ Ожидаем.Что(ДеревоТестов.Строки).ИмеетДлину(4);
КонецПроцедуры
Процедура ТестДолжен_ВыполнитьТесты_Подсистемы_Тестовая() Экспорт
@@ -43,7 +43,7 @@
РезультатыТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикИзПодсистемКонфигурации, ДеревоТестов);
- Ожидаем.Что(РезультатыТестирования.КоличествоТестов, "КоличествоТестов").Равно(9);
+ Ожидаем.Что(РезультатыТестирования.КоличествоТестов, "КоличествоТестов").Равно(11);
Ожидаем.Что(РезультатыТестирования.КоличествоСломанныхТестов, "КоличествоСломанныхТестов").Равно(0);
Ожидаем.Что(РезультатыТестирования.КоличествоНеРеализованныхТестов, "КоличествоНеРеализованныхТестов").Равно(0);
КонецПроцедуры
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt"
new file mode 100644
index 00000000..79a47c28
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0 (50, 185)
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt"
index 3f678554..ad97d8fa 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt"
@@ -1,8 +1,6 @@
3ff08944-a004-49a6-bc1f-2c332c3d8712.0\info-->und\3ff08944-a004-49a6-bc1f-2c332c3d8712.0\info
-3ff08944-a004-49a6-bc1f-2c332c3d8712.0\text-->ObjectModule.txt
+3ff08944-a004-49a6-bc1f-2c332c3d8712.0\text-->ObjectModule.bsl
6722f33c-a0c0-4fd3-a14e-3cb09ea508e0-->und\6722f33c-a0c0-4fd3-a14e-3cb09ea508e0
-6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0-->C:\Projects\GitHub\xUnitFor1C\src\Tests\Plugins\Тесты_ЗагрузчикИзПодсистемКонфигурации\Form\Форма\Форма.txt
-6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0-->und\6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0
6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0-->und\6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0
90851520-10fe-4eef-9409-585f8222427b-->und\90851520-10fe-4eef-9409-585f8222427b
copyinfo-->und\copyinfo
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/6722f33c-a0c0-4fd3-a14e-3cb09ea508e0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/6722f33c-a0c0-4fd3-a14e-3cb09ea508e0"
index 06d36831..d5bc8cd5 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/6722f33c-a0c0-4fd3-a14e-3cb09ea508e0"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/6722f33c-a0c0-4fd3-a14e-3cb09ea508e0"
@@ -1,10 +1,15 @@
{1,
{1,
{0,
-{9,
-{0,
+{12,
+{1,
{0,0,6722f33c-a0c0-4fd3-a14e-3cb09ea508e0},"Форма",
-{1,"ru","Форма"},""},0,1},
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
{0}
}
},0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0"
index ee35a00c..c19af64a 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0"
@@ -1,9 +1,9 @@
-{2,
-{28,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{3,
+{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
-{0},
+{0,0,0},
{0},1,
-{17,
+{21,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -14,19 +14,40 @@
{3,4,
{0}
},
-{6,3,0,1},
+{7,3,0,1,100},
{0,0,0},1,
-{0,0,1},0,1},0,"","",1,
-{17,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
{0},0,0,0,7,"Navigator",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
-{6,3,0,1},
-{0,0,0},0,0,1}
-},"&НаКлиенте
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2},"&НаКлиенте
Перем КонтекстЯдра;
&НаКлиенте
Перем Ожидаем;
@@ -69,7 +90,7 @@
Ожидаем.Что(ДеревоТестов.Имя).Равно(ИмяПодсистемы);
Ожидаем.Что(ДеревоТестов.Тип).Равно(ТипыУзловДереваТестов.Контейнер);
- Ожидаем.Что(ДеревоТестов.Строки).ИмеетДлину(3);
+ Ожидаем.Что(ДеревоТестов.Строки).ИмеетДлину(4);
КонецПроцедуры
&НаКлиенте
@@ -79,7 +100,7 @@
РезультатыТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикИзПодсистемКонфигурации, ДеревоТестов);
- Ожидаем.Что(РезультатыТестирования.КоличествоТестов, ""КоличествоТестов"").Равно(18);
+ Ожидаем.Что(РезультатыТестирования.КоличествоТестов, ""КоличествоТестов"").Равно(20);
Ожидаем.Что(РезультатыТестирования.КоличествоСломанныхТестов, ""КоличествоСломанныхТестов"").Равно(0);
Ожидаем.Что(РезультатыТестирования.КоличествоНеРеализованныхТестов, ""КоличествоНеРеализованныхТестов"").Равно(0);
КонецПроцедуры
@@ -198,5 +219,4 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
{0,0},
{0,0},
{0,0},
-{0,0}
-}
\ No newline at end of file
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/90851520-10fe-4eef-9409-585f8222427b" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/90851520-10fe-4eef-9409-585f8222427b"
index fbb0bf84..4eff4a4a 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/90851520-10fe-4eef-9409-585f8222427b"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/90851520-10fe-4eef-9409-585f8222427b"
@@ -4,9 +4,9 @@
{1,
{4,7784af5c-5725-445b-85cc-f9c2719ae216,0d8ed39a-8b21-4059-992c-4765be14b5ab,
{0,
-{0,
+{1,
{0,0,3ff08944-a004-49a6-bc1f-2c332c3d8712},"Тесты_ЗагрузчикИзПодсистемКонфигурации",
-{1,"ru","Тесты загрузчик из подсистем конфигурации"},""}
+{1,"ru","Тесты загрузчик из подсистем конфигурации"},"",0,0}
},6722f33c-a0c0-4fd3-a14e-3cb09ea508e0,"",00000000-0000-0000-0000-000000000000},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,0},
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions"
index 027723b5..e453d5b0 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\230\320\267\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions"
@@ -1 +1 @@
-{1,9,"",5d2cc332-c4e8-43b6-99f4-69aae06e3592,"versions",2947b7a7-911c-4d2c-a182-3d8e11205bff,"root",599b9b09-5e27-41cc-a39d-99a4c8172191,"6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0",bca19527-bf4d-4843-a5ba-29d5ac679268,"3ff08944-a004-49a6-bc1f-2c332c3d8712.0",bbe44565-cd64-4e04-a66a-96e1fa0a7475,"6722f33c-a0c0-4fd3-a14e-3cb09ea508e0",4dc03a00-e5e4-4ae3-b48c-9b2db59485cf,"version",433c8417-a1da-4870-aea8-f28691fbc111,"90851520-10fe-4eef-9409-585f8222427b",460dd851-cd4e-42a5-9c11-4617bd586d70,"copyinfo",d08f7c6a-008d-47c5-bc23-5413ee24741e}
\ No newline at end of file
+{1,9,"",17cd3dd9-c2c5-463b-84a2-76fbf571a419,"3ff08944-a004-49a6-bc1f-2c332c3d8712.0",fefd406b-a0af-49c7-a93f-f885e2794e63,"6722f33c-a0c0-4fd3-a14e-3cb09ea508e0",62943d39-1983-40ac-9356-dc434086b346,"6722f33c-a0c0-4fd3-a14e-3cb09ea508e0.0",d0bd2907-6a18-4d7c-a076-49331995a249,"90851520-10fe-4eef-9409-585f8222427b",89859fe7-a58e-49ac-bda4-19330e9d2e82,"copyinfo",bac1d790-322f-4c12-b3b9-c3ba7c6f3023,"root",ed2316a9-ec5c-4eb8-a7c1-69044b49a96f,"version",c1e6d37f-9ef9-4d9d-b8ee-03ef8932c928,"versions",0f817b82-c216-44f6-8a05-215c079f5524}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt"
new file mode 100644
index 00000000..c560e6ba
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt"
@@ -0,0 +1 @@
+Макеты\ТестовыйНаборДляЗагрузчикаФС.txt-->aa665d3a-fc64-4191-a6c3-74c56963f0b8.0
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/renames.txt"
index 2213782e..55be6836 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/renames.txt"
@@ -1,8 +1,7 @@
68b835e4-e814-43b4-8a63-236ef399bcee-->und\68b835e4-e814-43b4-8a63-236ef399bcee
9d8959d3-fadc-451f-b28a-b1a2e1a6ad96.0\info-->und\9d8959d3-fadc-451f-b28a-b1a2e1a6ad96.0\info
-9d8959d3-fadc-451f-b28a-b1a2e1a6ad96.0\text-->ObjectModule.txt
+9d8959d3-fadc-451f-b28a-b1a2e1a6ad96.0\text-->ObjectModule.bsl
aa665d3a-fc64-4191-a6c3-74c56963f0b8-->und\aa665d3a-fc64-4191-a6c3-74c56963f0b8
-aa665d3a-fc64-4191-a6c3-74c56963f0b8.0-->Макеты\ТестовыйНаборДляЗагрузчикаФС.txt
aa665d3a-fc64-4191-a6c3-74c56963f0b8.0-->und\aa665d3a-fc64-4191-a6c3-74c56963f0b8.0
copyinfo-->und\copyinfo
root-->und\root
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 96%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index 417eb2ed..c7f65e85 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -6,6 +6,8 @@
Перем ВременныеФайлы;
&НаКлиенте
Перем Ожидаем;
+&НаКлиенте
+Перем ПутьКФайлуПолный Экспорт;
&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
@@ -206,8 +208,15 @@
// { Проверка загрузки тестовых обработок с новым API
&НаКлиенте
Процедура ТестДолжен_Загрузить_ОбработкуСНовымAPI() Экспорт
- ФайлКонтекстаЯдра = Новый Файл(КонтекстЯдра.ИспользуемоеИмяФайла);
- ФайлОбработкиСНовымAPI = Новый Файл(ФайлКонтекстаЯдра.Путь + "\Tests\Plugins\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf");
+
+ Если ЗначениеЗаполнено(ПутьКФайлуПолный) Тогда
+ ФайлКонтекстаЯдра = Новый Файл(ПутьКФайлуПолный);
+ ФайлОбработкиСНовымAPI = Новый Файл(ФайлКонтекстаЯдра.Путь + "\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf");
+ Иначе
+ ФайлКонтекстаЯдра = Новый Файл(КонтекстЯдра["ИспользуемоеИмяФайла"]);
+ ФайлОбработкиСНовымAPI = Новый Файл(ФайлКонтекстаЯдра.Путь + "\Tests\Plugins\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf");
+ КонецЕсли;
+
ДеревоТестов = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработкиСНовымAPI.ПолноеИмя);
ТестыОбработкиСНовымAPI = ДеревоТестов.Строки[0];
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.bsl"
similarity index 94%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.bsl"
index 584cd643..fe9de935 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/ObjectModule.bsl"
@@ -4,6 +4,11 @@
Перем ЗагрузчикФайла;
Перем ВременныеФайлы;
+// Переменная с путем к обработке в файловой системы
+// Используется в случаях, когда обработка запущена из встроенного в конфигурацию браузера тестов,
+// т.к. в этом случае в свойстве ИспользуемоеИмяФайла содержится адрес временного хранилища, а не непосредственный путь
+Перем ПутьКФайлуПолный Экспорт;
+
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
@@ -164,8 +169,14 @@
// { Проверка загрузки тестовых обработок с новым API
Процедура ТестДолжен_Загрузить_ОбработкуСНовымAPI() Экспорт
- ФайлКонтекстаЯдра = Новый Файл(КонтекстЯдра.ИспользуемоеИмяФайла);
- ФайлОбработкиСНовымAPI = Новый Файл(ФайлКонтекстаЯдра.Путь + "\Tests\Plugins\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf");
+
+ Если ЗначениеЗаполнено(ПутьКФайлуПолный) Тогда
+ ФайлКонтекстаЯдра = Новый Файл(ПутьКФайлуПолный);
+ Иначе
+ ФайлКонтекстаЯдра = Новый Файл(КонтекстЯдра.ИспользуемоеИмяФайла);
+ КонецЕсли;
+ ФайлОбработкиСНовымAPI = Новый Файл(ФайлКонтекстаЯдра.Путь + "Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf"); // "\Tests\Plugins\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf");
+
ДеревоТестов = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработкиСНовымAPI.ПолноеИмя);
ТестыОбработкиСНовымAPI = ДеревоТестов.Строки[0];
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt"
new file mode 100644
index 00000000..2f69d607
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt"
@@ -0,0 +1,3 @@
+Form\Форма\Форма.bsl-->7df6502f-da6a-49fb-9624-65420db40a03.0 (50, 355)
+Макеты\ТестовыйНаборДляЗагрузчикаФС.txt-->fd4bd0af-2a9a-4445-8a21-dfb7acb16080.0
+Макеты\ТестовыйНаборСоСтрогимПорядкомВыполнения.txt-->794aea94-ea53-446d-8477-ce17f50c6825.0
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
index 241bc63a..53b448bb 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/renames.txt"
@@ -1,16 +1,12 @@
421a27d5-c2f1-4844-86c0-c04fb5a1001f-->und\421a27d5-c2f1-4844-86c0-c04fb5a1001f
794aea94-ea53-446d-8477-ce17f50c6825-->und\794aea94-ea53-446d-8477-ce17f50c6825
-794aea94-ea53-446d-8477-ce17f50c6825.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_ЗагрузчикФайла\Макеты\ТестовыйНаборСоСтрогимПорядкомВыполнения.txt
794aea94-ea53-446d-8477-ce17f50c6825.0-->und\794aea94-ea53-446d-8477-ce17f50c6825.0
7df6502f-da6a-49fb-9624-65420db40a03-->und\7df6502f-da6a-49fb-9624-65420db40a03
-7df6502f-da6a-49fb-9624-65420db40a03.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_ЗагрузчикФайла\Form\Форма\Форма.txt
-7df6502f-da6a-49fb-9624-65420db40a03.0-->und\7df6502f-da6a-49fb-9624-65420db40a03.0
7df6502f-da6a-49fb-9624-65420db40a03.0-->und\7df6502f-da6a-49fb-9624-65420db40a03.0
copyinfo-->und\copyinfo
ee4ff151-9500-4966-9c18-8499b60534d0.0\info-->und\ee4ff151-9500-4966-9c18-8499b60534d0.0\info
-ee4ff151-9500-4966-9c18-8499b60534d0.0\text-->ObjectModule.txt
+ee4ff151-9500-4966-9c18-8499b60534d0.0\text-->ObjectModule.bsl
fd4bd0af-2a9a-4445-8a21-dfb7acb16080-->und\fd4bd0af-2a9a-4445-8a21-dfb7acb16080
-fd4bd0af-2a9a-4445-8a21-dfb7acb16080.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_ЗагрузчикФайла\Макеты\ТестовыйНаборДляЗагрузчикаФС.txt
fd4bd0af-2a9a-4445-8a21-dfb7acb16080.0-->und\fd4bd0af-2a9a-4445-8a21-dfb7acb16080.0
root-->und\root
version-->und\version
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/421a27d5-c2f1-4844-86c0-c04fb5a1001f" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/421a27d5-c2f1-4844-86c0-c04fb5a1001f"
index 8d24ab8d..cd9e086f 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/421a27d5-c2f1-4844-86c0-c04fb5a1001f"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/421a27d5-c2f1-4844-86c0-c04fb5a1001f"
@@ -4,9 +4,9 @@
{1,
{4,cd570446-fb13-4855-bb0e-5695a8e88940,7153cfd0-e9c6-4a51-b1f3-0db42c9f1c9a,
{0,
-{0,
+{1,
{0,0,ee4ff151-9500-4966-9c18-8499b60534d0},"Тесты_ЗагрузчикФайла",
-{1,"ru","Тесты загрузчик файла"},""}
+{1,"ru","Тесты загрузчик файла"},"",0,0}
},7df6502f-da6a-49fb-9624-65420db40a03,"",00000000-0000-0000-0000-000000000000},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,2,fd4bd0af-2a9a-4445-8a21-dfb7acb16080,794aea94-ea53-446d-8477-ce17f50c6825},
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/7df6502f-da6a-49fb-9624-65420db40a03" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/7df6502f-da6a-49fb-9624-65420db40a03"
index 2ff0686d..16337716 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/7df6502f-da6a-49fb-9624-65420db40a03"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/7df6502f-da6a-49fb-9624-65420db40a03"
@@ -2,9 +2,9 @@
{1,
{0,
{12,
-{0,
+{1,
{0,0,7df6502f-da6a-49fb-9624-65420db40a03},"Форма",
-{1,"ru","Форма"},""},0,1,
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
{2,
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/7df6502f-da6a-49fb-9624-65420db40a03.0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/7df6502f-da6a-49fb-9624-65420db40a03.0"
index bc309d2a..4b4eed90 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/7df6502f-da6a-49fb-9624-65420db40a03.0"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/7df6502f-da6a-49fb-9624-65420db40a03.0"
@@ -1,9 +1,9 @@
-{2,
-{36,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{3,
+{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
-{0},
+{0,0,0},
{0},1,
-{19,
+{21,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -16,8 +16,8 @@
},
{7,3,0,1,100},
{0,0,0},1,
-{0,0,1},0,1,0,0},0,"","",1,
-{19,
+{0,0,1},0,1,0,0,0,3,3},0,"","",1,
+{21,
{0},0,0,0,7,"Navigator",
{1,0},
{1,0},0,1,0,0,0,2,2,
@@ -26,7 +26,7 @@
},
{7,3,0,1,100},
{0,0,0},0,0,1,0,1,
-{8,
+{10,
{0},0,0,0,0,"NavigatorExtendedTooltip",
{1,0},
{1,0},1,0,0,2,2,
@@ -36,7 +36,7 @@
{7,3,0,1,100},
{0,0,0},1,
{5,0,0,3,0,
-{0},
+{0,0,0},
{3,4,
{0}
},
@@ -47,8 +47,7 @@
{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},0,1,2,
{1,
-{1,0},0},0,0}
-},1,"",2,0},"&НаКлиенте
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2},"&НаКлиенте
Перем КонтекстЯдра;
&НаКлиенте
Перем ЗагрузчикФайла;
@@ -56,6 +55,8 @@
Перем ВременныеФайлы;
&НаКлиенте
Перем Ожидаем;
+&НаКлиенте
+Перем ПутьКФайлуПолный Экспорт;
&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
@@ -256,8 +257,15 @@
// { Проверка загрузки тестовых обработок с новым API
&НаКлиенте
Процедура ТестДолжен_Загрузить_ОбработкуСНовымAPI() Экспорт
- ФайлКонтекстаЯдра = Новый Файл(КонтекстЯдра.ИспользуемоеИмяФайла);
- ФайлОбработкиСНовымAPI = Новый Файл(ФайлКонтекстаЯдра.Путь + ""\Tests\Plugins\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf"");
+
+ Если ЗначениеЗаполнено(ПутьКФайлуПолный) Тогда
+ ФайлКонтекстаЯдра = Новый Файл(ПутьКФайлуПолный);
+ ФайлОбработкиСНовымAPI = Новый Файл(ФайлКонтекстаЯдра.Путь + ""\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf"");
+ Иначе
+ ФайлКонтекстаЯдра = Новый Файл(КонтекстЯдра[""ИспользуемоеИмяФайла""]);
+ ФайлОбработкиСНовымAPI = Новый Файл(ФайлКонтекстаЯдра.Путь + ""\Tests\Plugins\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов.epf"");
+ КонецЕсли;
+
ДеревоТестов = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработкиСНовымAPI.ПолноеИмя);
ТестыОбработкиСНовымAPI = ДеревоТестов.Строки[0];
@@ -381,5 +389,4 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
{0,0},
{0,0},
{0,0},
-{0,0}
-}
\ No newline at end of file
+{0,0},0,0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
index 2a23c996..f30642be 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions"
@@ -1 +1 @@
-{1,13,"",2ac0017a-4858-4a00-aebf-4236420eaba5,"794aea94-ea53-446d-8477-ce17f50c6825.0",ba34d1db-8e84-4aca-a7e6-90a05bf803e8,"versions",27b8a56b-40f9-4ef0-906e-f8091c2045ef,"794aea94-ea53-446d-8477-ce17f50c6825",967b5f60-9706-460d-ad5e-6ae2ce8f0f48,"root",945e044b-e043-43b5-a0c6-a7a5c54ae2ba,"421a27d5-c2f1-4844-86c0-c04fb5a1001f",416eb34a-cd2f-4689-a35b-7570de3a1453,"7df6502f-da6a-49fb-9624-65420db40a03",fa682bc6-d32a-46d5-bde7-92c2b3ade1b6,"version",7008de8b-68a5-4388-a2a0-761af815047c,"7df6502f-da6a-49fb-9624-65420db40a03.0",aa2453de-6755-447c-acde-c6480fbf78e5,"fd4bd0af-2a9a-4445-8a21-dfb7acb16080.0",11a9cd85-334b-49a7-b276-e2a44deb8216,"ee4ff151-9500-4966-9c18-8499b60534d0.0",7ce1a6ee-4d04-4d96-859c-de026e75f6ee,"fd4bd0af-2a9a-4445-8a21-dfb7acb16080",8b261f73-f22d-4e2f-ad11-fbc297aed233,"copyinfo",1989114a-504b-4482-9e8e-c7fe467fef76}
\ No newline at end of file
+{1,13,"",c2025435-8f28-47ac-9bd0-4983ca0d504d,"421a27d5-c2f1-4844-86c0-c04fb5a1001f",cd145580-8a65-427a-b724-1aaad5085823,"794aea94-ea53-446d-8477-ce17f50c6825",967b5f60-9706-460d-ad5e-6ae2ce8f0f48,"794aea94-ea53-446d-8477-ce17f50c6825.0",ba34d1db-8e84-4aca-a7e6-90a05bf803e8,"7df6502f-da6a-49fb-9624-65420db40a03",79cecf5b-fd16-41a9-ab0f-749c37bfff82,"7df6502f-da6a-49fb-9624-65420db40a03.0",fe77c0b6-443f-4717-be20-1efa390debdc,"copyinfo",f7b94ea5-f82a-401f-b849-786dc2822a1c,"ee4ff151-9500-4966-9c18-8499b60534d0.0",cbe3caf5-f3df-4f06-9758-9e384812618a,"fd4bd0af-2a9a-4445-8a21-dfb7acb16080",8b261f73-f22d-4e2f-ad11-fbc297aed233,"fd4bd0af-2a9a-4445-8a21-dfb7acb16080.0",11a9cd85-334b-49a7-b276-e2a44deb8216,"root",53b35b7b-b213-4d32-9809-cccc8582e1ec,"version",55bb2a29-7679-4d03-9004-f03ff21ce1e6,"versions",7e34aed9-26da-4f99-a7cc-78889af5768e}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt"
new file mode 100644
index 00000000..c9ebaf7f
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->3ed246cc-b126-4dd4-b414-004043927717.0 (51, 124)
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
index 1bc2b905..45433117 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260_\320\235\320\276\320\262\321\213\320\271API\320\236\320\261\321\212\321\217\320\262\320\273\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262/renames.txt"
@@ -1,9 +1,7 @@
3ed246cc-b126-4dd4-b414-004043927717-->und\3ed246cc-b126-4dd4-b414-004043927717
-3ed246cc-b126-4dd4-b414-004043927717.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_ЗагрузчикФайла_НовыйAPIОбъявленияТестов\Form\Форма\Форма.txt
-3ed246cc-b126-4dd4-b414-004043927717.0-->und\3ed246cc-b126-4dd4-b414-004043927717.0
3ed246cc-b126-4dd4-b414-004043927717.0-->und\3ed246cc-b126-4dd4-b414-004043927717.0
4a17bf09-a240-4cec-b0b0-8d45028bd3c0.0\info-->und\4a17bf09-a240-4cec-b0b0-8d45028bd3c0.0\info
-4a17bf09-a240-4cec-b0b0-8d45028bd3c0.0\text-->ObjectModule.txt
+4a17bf09-a240-4cec-b0b0-8d45028bd3c0.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
e55ff8fe-4c3c-46ec-af12-821e21292f5e-->und\e55ff8fe-4c3c-46ec-af12-821e21292f5e
root-->und\root
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/maps.txt"
new file mode 100644
index 00000000..110965ed
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->a72de6ff-3337-4e2c-a61c-6d0f3ff8b0fe.0 (51, 138)
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/renames.txt"
index 6f8c8587..ece553fd 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270/renames.txt"
@@ -1,8 +1,6 @@
2258d8fc-7195-4b5f-8a75-d8246742a221.0\info-->und\2258d8fc-7195-4b5f-8a75-d8246742a221.0\info
-2258d8fc-7195-4b5f-8a75-d8246742a221.0\text-->ObjectModule.txt
+2258d8fc-7195-4b5f-8a75-d8246742a221.0\text-->ObjectModule.bsl
a72de6ff-3337-4e2c-a61c-6d0f3ff8b0fe-->und\a72de6ff-3337-4e2c-a61c-6d0f3ff8b0fe
-a72de6ff-3337-4e2c-a61c-6d0f3ff8b0fe.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_ПарсерКоманднойСтроки\Form\Форма\Форма.txt
-a72de6ff-3337-4e2c-a61c-6d0f3ff8b0fe.0-->und\a72de6ff-3337-4e2c-a61c-6d0f3ff8b0fe.0
a72de6ff-3337-4e2c-a61c-6d0f3ff8b0fe.0-->und\a72de6ff-3337-4e2c-a61c-6d0f3ff8b0fe.0
copyinfo-->und\copyinfo
eff959e6-4f20-4a2b-b413-7cbed1281eae-->und\eff959e6-4f20-4a2b-b413-7cbed1281eae
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/maps.txt"
new file mode 100644
index 00000000..d5c32cfd
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/maps.txt"
@@ -0,0 +1,56 @@
+Макеты\ИзменениеПредопределенногоСправочника.mxl-->bdaf3325-bb9b-4677-ba6e-56a642df2687.0
+Макеты\ИзменениеПредопределенногоСправочникаПоГуид.mxl-->e27b2c46-7b76-4b8d-a3e8-e1b0562943ca.0
+Макеты\НайтиИПерезаполнитьПростойСправочникПоГуидСсылки.mxl-->b0adb70d-1e31-4637-8c1d-7f6f33baaa7b.0
+Макеты\Пример.mxl-->7af53c68-a0ad-4144-85f4-d11d73853384.0
+Макеты\РегистрНакопления_ПоискРегистратора.mxl-->8cda2b2d-c64b-4e21-9de6-dd49a12576e0.0
+Макеты\СозданиеГруппыСправочникаИДочернегоЭлемента.mxl-->9cdde6cb-0ea6-4850-ba3c-c7872ceaf52e.0
+Макеты\СозданиеГруппыСЭлементамиТолькоДляГруппы.mxl-->80a98912-c1e3-43b2-ae00-21118328107f.0
+Макеты\СозданиеДвухЗаписейВРегистреБухгалтерии.mxl-->714a1e77-6f6d-4a2f-9881-9dbb862d24a0.0
+Макеты\СозданиеДвухЗаписейВРегистреНакопления.mxl-->4be1f7e9-0ba6-478f-88e1-190254fe6c6b.0
+Макеты\СозданиеДвухЗаписейВРегистреНакопленияУКоторыхЯвноЗаданВидДвижения.mxl-->53c26b45-95ee-49f0-b946-d7b3e4fb2ff8.0
+Макеты\СозданиеДвухЗаписейВРегистреСведений_ПоискЭлементаПоНаименованию.mxl-->509a10d9-9207-4066-a28d-978c04e34376.0
+Макеты\СозданиеДвухЗаписейВРегистреСведений.mxl-->214520bb-70cc-4e3a-a1be-4c6a0f5d9c73.0
+Макеты\СозданиеДвухЗаписейВРегистреСведенийПодчиненномРегистратору.mxl-->165eaf09-2e00-4e46-be94-35f3b4ede990.0
+Макеты\СозданиеДвухЗаписейВРегистреСведенийЧерезНаборЗаписей.mxl-->8c5a9e9d-a3b1-4e65-ac06-1b4ae36468d1.0
+Макеты\СозданиеДвухНаборовЗаписейВРегистреСведений.mxl-->c698bb5e-86eb-40ec-96d7-b8badc816715.0
+Макеты\СозданиеДвухПростыхСправочников_с_ОдинаковымИменемПеременной.mxl-->fca00537-610e-40cf-aaf4-fb5faab4fda1.0
+Макеты\СозданиеДвухПростыхСправочников.mxl-->d28a1211-a8c4-425c-87f2-c429f96d426f.0
+Макеты\СозданиеДокумента_РежимЗаписи_Проведение.mxl-->2b4cbacc-14fa-4e57-bfab-9e9af6028901.0
+Макеты\СозданиеДокументаНаТекущуюДату.mxl-->91470bcf-5031-4550-8470-113df7855131.0
+Макеты\СозданиеДокументаСДвумяСтрокамиВТабличнойЧасти.mxl-->e893fd06-6ba8-4dd4-93be-d0810d679876.0
+Макеты\СозданиеЕщеНеЗаписанногоОбъектаПростогоСправочника.mxl-->8b1a6140-f7e3-4151-adce-db0a2046364e.0
+Макеты\СозданиеОбъектаСДвумяСтрокамиВТабличнойЧасти.mxl-->f175b23c-5152-4613-96dd-f6623676046d.0
+Макеты\СозданиеОбъектаСЗаполненнымРеквизитомИзПредопределенныхЗначенийСправочника.mxl-->451b28be-4cf6-4356-8c46-ad5cbc0deed0.0
+Макеты\СозданиеОбъектаСЗаполненымРеквизитомТипаПеречисление.mxl-->2bf29867-3e26-4d83-8667-da5f11442794.0
+Макеты\СозданиеОдногоПользователяИБ.mxl-->68803c49-0345-4f51-9184-079744379408.0
+Макеты\СозданиеОдногоСправочникаВладельцаБезПодчиненногоСправочника.mxl-->c0731e2c-fd73-4143-8a60-52e72c809569.0
+Макеты\СозданиеОднойЗаписиВРегистреБухгалтерии.mxl-->7617c188-4e70-484e-816e-20eda5229667.0
+Макеты\СозданиеОднойЗаписиВРегистреНакопления.mxl-->fc5337e1-f68d-4b0c-82d4-2eedfe89178c.0
+Макеты\СозданиеПростогоБизнесПроцесса.mxl-->c7efc6f1-5a5e-4278-9b62-9cf796fb363e.0
+Макеты\СозданиеПростогоСправочника_Параметры.mxl-->4a875fe8-d6dd-4488-ab26-9f1d41d624bb.0
+Макеты\СозданиеПростогоСправочника_ПустыеСтроки.mxl-->dac1badd-b7ee-41a1-ab54-f227e08f2cb8.0
+Макеты\СозданиеПростогоСправочника_РежимВыражение.mxl-->c1e853ea-3959-486e-aff1-5ccaf10f6c48.0
+Макеты\СозданиеПростогоСправочника.mxl-->60c6634b-14aa-466f-a884-82ed4cb98d0f.0
+Макеты\СозданиеПростогоСправочника2.mxl-->a5026b9b-d215-4c30-9de1-c54424949e4a.0
+Макеты\СозданиеПростогоСправочникаПоГуид.mxl-->51a2c526-5e41-417b-a82e-0dd289a7974c.0
+Макеты\СозданиеПростогоСправочникаПоГуидСсылки.mxl-->1d971496-56ca-48b0-a34e-b5359e900090.0
+Макеты\СозданиеСвязанныхСправочников.mxl-->fb359264-55de-49ae-ae08-ff3931a4ec2f.0
+Макеты\СозданиеСправочника2_с_РеквизитомСоставногоТипа_и_ПустойСсылкой.mxl-->96faf09e-5646-4b0f-8601-e72057dbe7f7.0
+Макеты\СозданиеСправочника2_с_РеквизитомСоставногоТипа_и_ПустойСсылкойПеречисление.mxl-->4fd62a2d-c8b6-4576-aa63-50cc023990e1.0
+Макеты\СозданиеСправочника2_с_РеквизитомСоставногоТипа.mxl-->a1a3092f-ed45-44ca-9854-834abd352cd4.0
+Макеты\СозданиеСправочникаПослеДокументаСДвумяСтрокамиВТабличнойЧасти.mxl-->d764edfb-6285-4f77-ba58-4f8321a489a4.0
+Макеты\СозданиеСправочникаСоСсылкойНаСамогоСебя.mxl-->924914a6-730c-45fb-838b-ce5d93b80394.0
+Макеты\СозданиеСправочникаСПомощьюДополнительныхСвойств.mxl-->f7694620-94c9-4acf-9617-83108e92a57e.0
+Макеты\СозданиеСправочникаСПомощьюДополнительныхСвойствПоНаименованию.mxl-->d2e225b3-d6f9-485c-9304-31c9c31fa8f7.0
+Макеты\СозданиеСправочникаСПомощьюОбменДаннымиЗагрузка.mxl-->902d78a5-fdd6-4652-9714-414d8ad6ece3.0
+Макеты\СозданиеСправочникаСПомощьюТЧ_ОбменДаннымиЗагрузка.mxl-->834d10a6-75f9-4eac-ae53-66a3704bddbc.0
+Макеты\СозданиеСправочникаСРеквизитом_ПланСчетов.mxl-->9d5cc378-50c8-49c6-a45d-fceefcc4a5c5.0
+Макеты\СозданиеСправочникаСРеквизитомПустаяСсылка.mxl-->eec85b86-f35e-4612-83c9-7b4ba86f7cb0.0
+Макеты\СозданиеСправочниковОбразующихЦиклическуюЗависимость.mxl-->f7717042-aa60-4d5f-b166-8403fa143e74.0
+Макеты\СозданиеУзлаПланаОбмена.mxl-->1e918707-941f-4288-9af0-070c155a8173.0
+Макеты\СозданиеЭлементаИЗаполнениеРеквизитаПоискомПоГУИДу.mxl-->2e398c8a-da05-4e85-9d97-c9680b935568.0
+Макеты\СозданиеЭлементаИЗаполнениеРеквизитаПоискомПоКоду.mxl-->7a41e200-05d3-4267-a721-5dbe73bf545e.0
+Макеты\СозданиеЭлементаИЗаполнениеРеквизитаПоискомПоНаименованию.mxl-->d7807508-2ab6-4c4d-bc1c-d30f8932565f.0
+Макеты\ТестДолжен_ПолучитьИсключениеНеверныйРежимПоиска.mxl-->8e915235-e32d-4205-bb26-918ba63bb0f5.0
+Макеты\ТестДолжен_ПолучитьИсключениеПриПопыткеСоздатьЭлементИЗаполнитьРеквизитПоНеверномуКоду.mxl-->0afb6777-fe50-4b9c-b180-77d1ee3a3d54.0
+Макеты\ТестДолжен_ПолучитьИсключениеПриПопыткеСоздатьЭлементИЗаполнитьРеквизитПоНеверномуНаименованию.mxl-->f519cbc0-1404-4ef3-9377-16955dc46254.0
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/renames.txt"
index 10a71700..657e6c8f 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/renames.txt"
@@ -1,174 +1,118 @@
0afb6777-fe50-4b9c-b180-77d1ee3a3d54-->und\0afb6777-fe50-4b9c-b180-77d1ee3a3d54
-0afb6777-fe50-4b9c-b180-77d1ee3a3d54.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\ТестДолжен_ПолучитьИсключениеПриПопыткеСоздатьЭлементИЗаполнитьРеквизитПоНеверномуКоду.mxl
0afb6777-fe50-4b9c-b180-77d1ee3a3d54.0-->und\0afb6777-fe50-4b9c-b180-77d1ee3a3d54.0
165eaf09-2e00-4e46-be94-35f3b4ede990-->und\165eaf09-2e00-4e46-be94-35f3b4ede990
-165eaf09-2e00-4e46-be94-35f3b4ede990.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухЗаписейВРегистреСведенийПодчиненномРегистратору.mxl
165eaf09-2e00-4e46-be94-35f3b4ede990.0-->und\165eaf09-2e00-4e46-be94-35f3b4ede990.0
1d971496-56ca-48b0-a34e-b5359e900090-->und\1d971496-56ca-48b0-a34e-b5359e900090
-1d971496-56ca-48b0-a34e-b5359e900090.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеПростогоСправочникаПоГуидСсылки.mxl
1d971496-56ca-48b0-a34e-b5359e900090.0-->und\1d971496-56ca-48b0-a34e-b5359e900090.0
1e918707-941f-4288-9af0-070c155a8173-->und\1e918707-941f-4288-9af0-070c155a8173
1e918707-941f-4288-9af0-070c155a8173.0-->und\1e918707-941f-4288-9af0-070c155a8173.0
-1e918707-941f-4288-9af0-070c155a8173.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеУзлаПланаОбмена.mxl
214520bb-70cc-4e3a-a1be-4c6a0f5d9c73-->und\214520bb-70cc-4e3a-a1be-4c6a0f5d9c73
-214520bb-70cc-4e3a-a1be-4c6a0f5d9c73.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухЗаписейВРегистреСведений.mxl
214520bb-70cc-4e3a-a1be-4c6a0f5d9c73.0-->und\214520bb-70cc-4e3a-a1be-4c6a0f5d9c73.0
2b4cbacc-14fa-4e57-bfab-9e9af6028901-->und\2b4cbacc-14fa-4e57-bfab-9e9af6028901
-2b4cbacc-14fa-4e57-bfab-9e9af6028901.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДокумента_РежимЗаписи_Проведение.mxl
2b4cbacc-14fa-4e57-bfab-9e9af6028901.0-->und\2b4cbacc-14fa-4e57-bfab-9e9af6028901.0
2bf29867-3e26-4d83-8667-da5f11442794-->und\2bf29867-3e26-4d83-8667-da5f11442794
-2bf29867-3e26-4d83-8667-da5f11442794.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеОбъектаСЗаполненымРеквизитомТипаПеречисление.mxl
2bf29867-3e26-4d83-8667-da5f11442794.0-->und\2bf29867-3e26-4d83-8667-da5f11442794.0
2e398c8a-da05-4e85-9d97-c9680b935568-->und\2e398c8a-da05-4e85-9d97-c9680b935568
2e398c8a-da05-4e85-9d97-c9680b935568.0-->und\2e398c8a-da05-4e85-9d97-c9680b935568.0
-2e398c8a-da05-4e85-9d97-c9680b935568.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеЭлементаИЗаполнениеРеквизитаПоискомПоГУИДу.mxl
451b28be-4cf6-4356-8c46-ad5cbc0deed0-->und\451b28be-4cf6-4356-8c46-ad5cbc0deed0
-451b28be-4cf6-4356-8c46-ad5cbc0deed0.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеОбъектаСЗаполненнымРеквизитомИзПредопределенныхЗначенийСправочника.mxl
451b28be-4cf6-4356-8c46-ad5cbc0deed0.0-->und\451b28be-4cf6-4356-8c46-ad5cbc0deed0.0
4a875fe8-d6dd-4488-ab26-9f1d41d624bb-->und\4a875fe8-d6dd-4488-ab26-9f1d41d624bb
-4a875fe8-d6dd-4488-ab26-9f1d41d624bb.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеПростогоСправочника_Параметры.mxl
4a875fe8-d6dd-4488-ab26-9f1d41d624bb.0-->und\4a875fe8-d6dd-4488-ab26-9f1d41d624bb.0
4b3c529a-00d8-4aee-95a4-f20938cdebdd.0\info-->und\4b3c529a-00d8-4aee-95a4-f20938cdebdd.0\info
-4b3c529a-00d8-4aee-95a4-f20938cdebdd.0\text-->ObjectModule.txt
+4b3c529a-00d8-4aee-95a4-f20938cdebdd.0\text-->ObjectModule.bsl
4be1f7e9-0ba6-478f-88e1-190254fe6c6b-->und\4be1f7e9-0ba6-478f-88e1-190254fe6c6b
-4be1f7e9-0ba6-478f-88e1-190254fe6c6b.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухЗаписейВРегистреНакопления.mxl
4be1f7e9-0ba6-478f-88e1-190254fe6c6b.0-->und\4be1f7e9-0ba6-478f-88e1-190254fe6c6b.0
4fd62a2d-c8b6-4576-aa63-50cc023990e1-->und\4fd62a2d-c8b6-4576-aa63-50cc023990e1
-4fd62a2d-c8b6-4576-aa63-50cc023990e1.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочника2_с_РеквизитомСоставногоТипа_и_ПустойСсылкойПеречисление.mxl
4fd62a2d-c8b6-4576-aa63-50cc023990e1.0-->und\4fd62a2d-c8b6-4576-aa63-50cc023990e1.0
509a10d9-9207-4066-a28d-978c04e34376-->und\509a10d9-9207-4066-a28d-978c04e34376
-509a10d9-9207-4066-a28d-978c04e34376.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухЗаписейВРегистреСведений_ПоискЭлементаПоНаименованию.mxl
509a10d9-9207-4066-a28d-978c04e34376.0-->und\509a10d9-9207-4066-a28d-978c04e34376.0
51a2c526-5e41-417b-a82e-0dd289a7974c-->und\51a2c526-5e41-417b-a82e-0dd289a7974c
51a2c526-5e41-417b-a82e-0dd289a7974c.0-->und\51a2c526-5e41-417b-a82e-0dd289a7974c.0
-51a2c526-5e41-417b-a82e-0dd289a7974c.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеПростогоСправочникаПоГуид.mxl
53c26b45-95ee-49f0-b946-d7b3e4fb2ff8-->und\53c26b45-95ee-49f0-b946-d7b3e4fb2ff8
-53c26b45-95ee-49f0-b946-d7b3e4fb2ff8.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухЗаписейВРегистреНакопленияУКоторыхЯвноЗаданВидДвижения.mxl
53c26b45-95ee-49f0-b946-d7b3e4fb2ff8.0-->und\53c26b45-95ee-49f0-b946-d7b3e4fb2ff8.0
60c6634b-14aa-466f-a884-82ed4cb98d0f-->und\60c6634b-14aa-466f-a884-82ed4cb98d0f
-60c6634b-14aa-466f-a884-82ed4cb98d0f.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеПростогоСправочника.mxl
60c6634b-14aa-466f-a884-82ed4cb98d0f.0-->und\60c6634b-14aa-466f-a884-82ed4cb98d0f.0
68803c49-0345-4f51-9184-079744379408-->und\68803c49-0345-4f51-9184-079744379408
-68803c49-0345-4f51-9184-079744379408.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеОдногоПользователяИБ.mxl
68803c49-0345-4f51-9184-079744379408.0-->und\68803c49-0345-4f51-9184-079744379408.0
714a1e77-6f6d-4a2f-9881-9dbb862d24a0-->und\714a1e77-6f6d-4a2f-9881-9dbb862d24a0
714a1e77-6f6d-4a2f-9881-9dbb862d24a0.0-->und\714a1e77-6f6d-4a2f-9881-9dbb862d24a0.0
-714a1e77-6f6d-4a2f-9881-9dbb862d24a0.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухЗаписейВРегистреБухгалтерии.mxl
7617c188-4e70-484e-816e-20eda5229667-->und\7617c188-4e70-484e-816e-20eda5229667
-7617c188-4e70-484e-816e-20eda5229667.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеОднойЗаписиВРегистреБухгалтерии.mxl
7617c188-4e70-484e-816e-20eda5229667.0-->und\7617c188-4e70-484e-816e-20eda5229667.0
7a41e200-05d3-4267-a721-5dbe73bf545e-->und\7a41e200-05d3-4267-a721-5dbe73bf545e
-7a41e200-05d3-4267-a721-5dbe73bf545e.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеЭлементаИЗаполнениеРеквизитаПоискомПоКоду.mxl
7a41e200-05d3-4267-a721-5dbe73bf545e.0-->und\7a41e200-05d3-4267-a721-5dbe73bf545e.0
7af53c68-a0ad-4144-85f4-d11d73853384-->und\7af53c68-a0ad-4144-85f4-d11d73853384
-7af53c68-a0ad-4144-85f4-d11d73853384.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\Пример.mxl
7af53c68-a0ad-4144-85f4-d11d73853384.0-->und\7af53c68-a0ad-4144-85f4-d11d73853384.0
80a98912-c1e3-43b2-ae00-21118328107f-->und\80a98912-c1e3-43b2-ae00-21118328107f
80a98912-c1e3-43b2-ae00-21118328107f.0-->und\80a98912-c1e3-43b2-ae00-21118328107f.0
-80a98912-c1e3-43b2-ae00-21118328107f.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеГруппыСЭлементамиТолькоДляГруппы.mxl
834d10a6-75f9-4eac-ae53-66a3704bddbc-->und\834d10a6-75f9-4eac-ae53-66a3704bddbc
-834d10a6-75f9-4eac-ae53-66a3704bddbc.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочникаСПомощьюТЧ_ОбменДаннымиЗагрузка.mxl
834d10a6-75f9-4eac-ae53-66a3704bddbc.0-->und\834d10a6-75f9-4eac-ae53-66a3704bddbc.0
8b1a6140-f7e3-4151-adce-db0a2046364e-->und\8b1a6140-f7e3-4151-adce-db0a2046364e
-8b1a6140-f7e3-4151-adce-db0a2046364e.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеЕщеНеЗаписанногоОбъектаПростогоСправочника.mxl
8b1a6140-f7e3-4151-adce-db0a2046364e.0-->und\8b1a6140-f7e3-4151-adce-db0a2046364e.0
8c5a9e9d-a3b1-4e65-ac06-1b4ae36468d1-->und\8c5a9e9d-a3b1-4e65-ac06-1b4ae36468d1
-8c5a9e9d-a3b1-4e65-ac06-1b4ae36468d1.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухЗаписейВРегистреСведенийЧерезНаборЗаписей.mxl
8c5a9e9d-a3b1-4e65-ac06-1b4ae36468d1.0-->und\8c5a9e9d-a3b1-4e65-ac06-1b4ae36468d1.0
8cda2b2d-c64b-4e21-9de6-dd49a12576e0-->und\8cda2b2d-c64b-4e21-9de6-dd49a12576e0
8cda2b2d-c64b-4e21-9de6-dd49a12576e0.0-->und\8cda2b2d-c64b-4e21-9de6-dd49a12576e0.0
-8cda2b2d-c64b-4e21-9de6-dd49a12576e0.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\РегистрНакопления_ПоискРегистратора.mxl
8e915235-e32d-4205-bb26-918ba63bb0f5-->und\8e915235-e32d-4205-bb26-918ba63bb0f5
-8e915235-e32d-4205-bb26-918ba63bb0f5.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\ТестДолжен_ПолучитьИсключениеНеверныйРежимПоиска.mxl
8e915235-e32d-4205-bb26-918ba63bb0f5.0-->und\8e915235-e32d-4205-bb26-918ba63bb0f5.0
902d78a5-fdd6-4652-9714-414d8ad6ece3-->und\902d78a5-fdd6-4652-9714-414d8ad6ece3
-902d78a5-fdd6-4652-9714-414d8ad6ece3.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочникаСПомощьюОбменДаннымиЗагрузка.mxl
902d78a5-fdd6-4652-9714-414d8ad6ece3.0-->und\902d78a5-fdd6-4652-9714-414d8ad6ece3.0
91470bcf-5031-4550-8470-113df7855131-->und\91470bcf-5031-4550-8470-113df7855131
-91470bcf-5031-4550-8470-113df7855131.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДокументаНаТекущуюДату.mxl
91470bcf-5031-4550-8470-113df7855131.0-->und\91470bcf-5031-4550-8470-113df7855131.0
924914a6-730c-45fb-838b-ce5d93b80394-->und\924914a6-730c-45fb-838b-ce5d93b80394
-924914a6-730c-45fb-838b-ce5d93b80394.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочникаСоСсылкойНаСамогоСебя.mxl
924914a6-730c-45fb-838b-ce5d93b80394.0-->und\924914a6-730c-45fb-838b-ce5d93b80394.0
96faf09e-5646-4b0f-8601-e72057dbe7f7-->und\96faf09e-5646-4b0f-8601-e72057dbe7f7
-96faf09e-5646-4b0f-8601-e72057dbe7f7.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочника2_с_РеквизитомСоставногоТипа_и_ПустойСсылкой.mxl
96faf09e-5646-4b0f-8601-e72057dbe7f7.0-->und\96faf09e-5646-4b0f-8601-e72057dbe7f7.0
9cdde6cb-0ea6-4850-ba3c-c7872ceaf52e-->und\9cdde6cb-0ea6-4850-ba3c-c7872ceaf52e
-9cdde6cb-0ea6-4850-ba3c-c7872ceaf52e.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеГруппыСправочникаИДочернегоЭлемента.mxl
9cdde6cb-0ea6-4850-ba3c-c7872ceaf52e.0-->und\9cdde6cb-0ea6-4850-ba3c-c7872ceaf52e.0
9d5cc378-50c8-49c6-a45d-fceefcc4a5c5-->und\9d5cc378-50c8-49c6-a45d-fceefcc4a5c5
9d5cc378-50c8-49c6-a45d-fceefcc4a5c5.0-->und\9d5cc378-50c8-49c6-a45d-fceefcc4a5c5.0
-9d5cc378-50c8-49c6-a45d-fceefcc4a5c5.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочникаСРеквизитом_ПланСчетов.mxl
a1a3092f-ed45-44ca-9854-834abd352cd4-->und\a1a3092f-ed45-44ca-9854-834abd352cd4
-a1a3092f-ed45-44ca-9854-834abd352cd4.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочника2_с_РеквизитомСоставногоТипа.mxl
a1a3092f-ed45-44ca-9854-834abd352cd4.0-->und\a1a3092f-ed45-44ca-9854-834abd352cd4.0
a5026b9b-d215-4c30-9de1-c54424949e4a-->und\a5026b9b-d215-4c30-9de1-c54424949e4a
-a5026b9b-d215-4c30-9de1-c54424949e4a.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеПростогоСправочника2.mxl
a5026b9b-d215-4c30-9de1-c54424949e4a.0-->und\a5026b9b-d215-4c30-9de1-c54424949e4a.0
b0adb70d-1e31-4637-8c1d-7f6f33baaa7b-->und\b0adb70d-1e31-4637-8c1d-7f6f33baaa7b
b0adb70d-1e31-4637-8c1d-7f6f33baaa7b.0-->und\b0adb70d-1e31-4637-8c1d-7f6f33baaa7b.0
-b0adb70d-1e31-4637-8c1d-7f6f33baaa7b.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\НайтиИПерезаполнитьПростойСправочникПоГуидСсылки.mxl
bdaf3325-bb9b-4677-ba6e-56a642df2687-->und\bdaf3325-bb9b-4677-ba6e-56a642df2687
-bdaf3325-bb9b-4677-ba6e-56a642df2687.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\ИзменениеПредопределенногоСправочника.mxl
bdaf3325-bb9b-4677-ba6e-56a642df2687.0-->und\bdaf3325-bb9b-4677-ba6e-56a642df2687.0
c0731e2c-fd73-4143-8a60-52e72c809569-->und\c0731e2c-fd73-4143-8a60-52e72c809569
-c0731e2c-fd73-4143-8a60-52e72c809569.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеОдногоСправочникаВладельцаБезПодчиненногоСправочника.mxl
c0731e2c-fd73-4143-8a60-52e72c809569.0-->und\c0731e2c-fd73-4143-8a60-52e72c809569.0
c1e853ea-3959-486e-aff1-5ccaf10f6c48-->und\c1e853ea-3959-486e-aff1-5ccaf10f6c48
-c1e853ea-3959-486e-aff1-5ccaf10f6c48.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеПростогоСправочника_РежимВыражение.mxl
c1e853ea-3959-486e-aff1-5ccaf10f6c48.0-->und\c1e853ea-3959-486e-aff1-5ccaf10f6c48.0
c698bb5e-86eb-40ec-96d7-b8badc816715-->und\c698bb5e-86eb-40ec-96d7-b8badc816715
-c698bb5e-86eb-40ec-96d7-b8badc816715.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухНаборовЗаписейВРегистреСведений.mxl
c698bb5e-86eb-40ec-96d7-b8badc816715.0-->und\c698bb5e-86eb-40ec-96d7-b8badc816715.0
c7efc6f1-5a5e-4278-9b62-9cf796fb363e-->und\c7efc6f1-5a5e-4278-9b62-9cf796fb363e
-c7efc6f1-5a5e-4278-9b62-9cf796fb363e.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеПростогоБизнесПроцесса.mxl
c7efc6f1-5a5e-4278-9b62-9cf796fb363e.0-->und\c7efc6f1-5a5e-4278-9b62-9cf796fb363e.0
copyinfo-->und\copyinfo
d28a1211-a8c4-425c-87f2-c429f96d426f-->und\d28a1211-a8c4-425c-87f2-c429f96d426f
-d28a1211-a8c4-425c-87f2-c429f96d426f.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухПростыхСправочников.mxl
d28a1211-a8c4-425c-87f2-c429f96d426f.0-->und\d28a1211-a8c4-425c-87f2-c429f96d426f.0
d2e225b3-d6f9-485c-9304-31c9c31fa8f7-->und\d2e225b3-d6f9-485c-9304-31c9c31fa8f7
d2e225b3-d6f9-485c-9304-31c9c31fa8f7.0-->und\d2e225b3-d6f9-485c-9304-31c9c31fa8f7.0
-d2e225b3-d6f9-485c-9304-31c9c31fa8f7.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочникаСПомощьюДополнительныхСвойствПоНаименованию.mxl
d51f673a-a707-44d6-9610-d58ad958de44-->und\d51f673a-a707-44d6-9610-d58ad958de44
d764edfb-6285-4f77-ba58-4f8321a489a4-->und\d764edfb-6285-4f77-ba58-4f8321a489a4
-d764edfb-6285-4f77-ba58-4f8321a489a4.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочникаПослеДокументаСДвумяСтрокамиВТабличнойЧасти.mxl
d764edfb-6285-4f77-ba58-4f8321a489a4.0-->und\d764edfb-6285-4f77-ba58-4f8321a489a4.0
d7807508-2ab6-4c4d-bc1c-d30f8932565f-->und\d7807508-2ab6-4c4d-bc1c-d30f8932565f
-d7807508-2ab6-4c4d-bc1c-d30f8932565f.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеЭлементаИЗаполнениеРеквизитаПоискомПоНаименованию.mxl
d7807508-2ab6-4c4d-bc1c-d30f8932565f.0-->und\d7807508-2ab6-4c4d-bc1c-d30f8932565f.0
dac1badd-b7ee-41a1-ab54-f227e08f2cb8-->und\dac1badd-b7ee-41a1-ab54-f227e08f2cb8
-dac1badd-b7ee-41a1-ab54-f227e08f2cb8.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеПростогоСправочника_ПустыеСтроки.mxl
dac1badd-b7ee-41a1-ab54-f227e08f2cb8.0-->und\dac1badd-b7ee-41a1-ab54-f227e08f2cb8.0
e27b2c46-7b76-4b8d-a3e8-e1b0562943ca-->und\e27b2c46-7b76-4b8d-a3e8-e1b0562943ca
e27b2c46-7b76-4b8d-a3e8-e1b0562943ca.0-->und\e27b2c46-7b76-4b8d-a3e8-e1b0562943ca.0
-e27b2c46-7b76-4b8d-a3e8-e1b0562943ca.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\ИзменениеПредопределенногоСправочникаПоГуид.mxl
e893fd06-6ba8-4dd4-93be-d0810d679876-->und\e893fd06-6ba8-4dd4-93be-d0810d679876
-e893fd06-6ba8-4dd4-93be-d0810d679876.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДокументаСДвумяСтрокамиВТабличнойЧасти.mxl
e893fd06-6ba8-4dd4-93be-d0810d679876.0-->und\e893fd06-6ba8-4dd4-93be-d0810d679876.0
eec85b86-f35e-4612-83c9-7b4ba86f7cb0-->und\eec85b86-f35e-4612-83c9-7b4ba86f7cb0
-eec85b86-f35e-4612-83c9-7b4ba86f7cb0.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочникаСРеквизитомПустаяСсылка.mxl
eec85b86-f35e-4612-83c9-7b4ba86f7cb0.0-->und\eec85b86-f35e-4612-83c9-7b4ba86f7cb0.0
f175b23c-5152-4613-96dd-f6623676046d-->und\f175b23c-5152-4613-96dd-f6623676046d
f175b23c-5152-4613-96dd-f6623676046d.0-->und\f175b23c-5152-4613-96dd-f6623676046d.0
-f175b23c-5152-4613-96dd-f6623676046d.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеОбъектаСДвумяСтрокамиВТабличнойЧасти.mxl
f519cbc0-1404-4ef3-9377-16955dc46254-->und\f519cbc0-1404-4ef3-9377-16955dc46254
-f519cbc0-1404-4ef3-9377-16955dc46254.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\ТестДолжен_ПолучитьИсключениеПриПопыткеСоздатьЭлементИЗаполнитьРеквизитПоНеверномуНаименованию.mxl
f519cbc0-1404-4ef3-9377-16955dc46254.0-->und\f519cbc0-1404-4ef3-9377-16955dc46254.0
f7694620-94c9-4acf-9617-83108e92a57e-->und\f7694620-94c9-4acf-9617-83108e92a57e
-f7694620-94c9-4acf-9617-83108e92a57e.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочникаСПомощьюДополнительныхСвойств.mxl
f7694620-94c9-4acf-9617-83108e92a57e.0-->und\f7694620-94c9-4acf-9617-83108e92a57e.0
f7717042-aa60-4d5f-b166-8403fa143e74-->und\f7717042-aa60-4d5f-b166-8403fa143e74
-f7717042-aa60-4d5f-b166-8403fa143e74.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСправочниковОбразующихЦиклическуюЗависимость.mxl
f7717042-aa60-4d5f-b166-8403fa143e74.0-->und\f7717042-aa60-4d5f-b166-8403fa143e74.0
fb359264-55de-49ae-ae08-ff3931a4ec2f-->und\fb359264-55de-49ae-ae08-ff3931a4ec2f
-fb359264-55de-49ae-ae08-ff3931a4ec2f.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеСвязанныхСправочников.mxl
fb359264-55de-49ae-ae08-ff3931a4ec2f.0-->und\fb359264-55de-49ae-ae08-ff3931a4ec2f.0
fc5337e1-f68d-4b0c-82d4-2eedfe89178c-->und\fc5337e1-f68d-4b0c-82d4-2eedfe89178c
-fc5337e1-f68d-4b0c-82d4-2eedfe89178c.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеОднойЗаписиВРегистреНакопления.mxl
fc5337e1-f68d-4b0c-82d4-2eedfe89178c.0-->und\fc5337e1-f68d-4b0c-82d4-2eedfe89178c.0
fca00537-610e-40cf-aaf4-fb5faab4fda1-->und\fca00537-610e-40cf-aaf4-fb5faab4fda1
-fca00537-610e-40cf-aaf4-fb5faab4fda1.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_СериализаторMXL\Макеты\СозданиеДвухПростыхСправочников_с_ОдинаковымИменемПеременной.mxl
fca00537-610e-40cf-aaf4-fb5faab4fda1.0-->und\fca00537-610e-40cf-aaf4-fb5faab4fda1.0
root-->und\root
version-->und\version
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\230\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\230\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..1879c153
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\230\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
@@ -0,0 +1,3 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник ПростойСправочник ПредопределенноеЗначение1 Предопределенный
+ Наименование Новое значение
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\230\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\230\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264_mxl.txt"
new file mode 100644
index 00000000..2eea05ae
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\230\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264_mxl.txt"
@@ -0,0 +1,3 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник ПростойСправочник 634e552d-b43a-4bc8-a150-d009f83269e1 СоздатьПоГуид
+ Наименование Новое значение
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\235\320\260\320\271\321\202\320\270\320\230\320\237\320\265\321\200\320\265\320\267\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\237\320\276\320\223\321\203\320\270\320\264\320\241\321\201\321\213\320\273\320\272\320\270_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\235\320\260\320\271\321\202\320\270\320\230\320\237\320\265\321\200\320\265\320\267\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\237\320\276\320\223\321\203\320\270\320\264\320\241\321\201\321\213\320\273\320\272\320\270_mxl.txt"
new file mode 100644
index 00000000..42d5cadf
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\235\320\260\320\271\321\202\320\270\320\230\320\237\320\265\321\200\320\265\320\267\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\237\321\200\320\276\321\201\321\202\320\276\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\237\320\276\320\223\321\203\320\270\320\264\320\241\321\201\321\213\320\273\320\272\320\270_mxl.txt"
@@ -0,0 +1,5 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Ссылка a72ec81b-d17d-4d2f-9a47-2ffb2e3234c4 СоздатьПоГуид
+ РеквизитБулево Ложь
+ РеквизитПеречисление ЗначениеПеречисления2 Предопределенный
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\237\321\200\320\270\320\274\320\265\321\200_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\237\321\200\320\270\320\274\320\265\321\200_mxl.txt"
new file mode 100644
index 00000000..357ae25f
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\237\321\200\320\270\320\274\320\265\321\200_mxl.txt"
@@ -0,0 +1,62 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ГруппаТоваров ГТ1
+ Наименование test GSM
+Справочник ГруппаТоваров ГТ2 Объект
+ Наименование test GSM
+Справочник ПростойСправочник ПредопределенноеЗначение1 ПредопределенноеЗначение1 Предопределенный
+ Наименование Новое значение
+Справочник Номенклатура ГрНом1 Группа
+ Код 1
+ Наименование Тестовая группа
+Справочник Номенклатура Ном1 ОбменДанными
+ Код 2
+ Наименование Тестовая ном
+ Родитель ГрНом1 Перем
+ ГруппаТоваров ГТ1 Перем
+ ВидНоменкатуры 0000-00000-00000000 ГУИД
+Справочник Номенклатура Ном2
+ Код 2
+ Наименование Тестовая ном 2
+ ГруппаТоваров ГТ1 Перем
+ ВидНоменкатуры НекийВид Предопределенный
+ РеквизитСоставногоТипа Тест345 Наименование СправочникСсылка.ПростойСправочник
+ ДополнительныеСвойства
+ СвойствоГруппа Тестовая группа Наименование СправочникСсылка.Номенклатура
+ ОбменДанными
+ Загрузка Истина Булево
+Документ Продажи ДП1
+ Дата 20130801
+ ДругаяДата ТекущаяДата
+ Номер 105
+ ГруппаТоваров ГТ2 Перем
+ ТЧ_Товары
+ Номенклатура 2 Код
+ Количество 50
+ ТЧ_Товары
+ Номенклатура Тестовая ном 2 Наименование
+ Количество 30
+Документ Продажи ДП2 Проведение
+ Дата ТекущаяДата
+РегистрСведений ИсторияНоменклатуры РС_Набор
+ Период 20130101
+ Номенклатура Ном1 Перем
+ ГруппаТоваров ГТ1 Перем
+Справочник ПростойСправочник ПростойСправочник
+ Ссылка a72ec81b-d17d-4d2f-9a47-2ffb2e3234c4 СоздатьПоГуид
+ РеквизитБулево Ложь
+ РеквизитПеречисление ЗначениеПеречисления2 Предопределенный
+РегистрНакопления РегистрНакопления2 ЗаписьРегистра1
+ Запись
+ Регистратор ДП2 Перем
+ Период
+ ПростойСправочник ПростойСправочник Перем
+ ГруппаТоваров ГТ2 Перем
+ РесурсЧисло 150
+ РеквизитБулево Ложь
+ Запись
+ Регистратор 176 Номер ДокументСсылка.Документ2
+ Период
+ ПростойСправочник ПростойСправочник Перем
+ ГруппаТоваров ГТ2 Перем
+ РесурсЧисло 0
+ РеквизитБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_\320\237\320\276\320\270\321\201\320\272\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_\320\237\320\276\320\270\321\201\320\272\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260_mxl.txt"
new file mode 100644
index 00000000..20d0a0bc
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_\320\237\320\276\320\270\321\201\320\272\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260_mxl.txt"
@@ -0,0 +1,12 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Документ Документ2 Документ
+ Дата ТекущаяДата
+ Номер 176
+ Состав
+ РеквизитЧисло 150
+ РеквизитБулево Ложь
+РегистрНакопления РегистрНакопления2 РегистрНакопления2
+ Запись
+ Активность Истина
+ Регистратор 176 Номер ДокументСсылка.Документ2
+ Период ТекущаяДата
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\223\321\200\321\203\320\277\320\277\321\213\320\241\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\274\320\270\320\242\320\276\320\273\321\214\320\272\320\276\320\224\320\273\321\217\320\223\321\200\321\203\320\277\320\277\321\213_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\223\321\200\321\203\320\277\320\277\321\213\320\241\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\274\320\270\320\242\320\276\320\273\321\214\320\272\320\276\320\224\320\273\321\217\320\223\321\200\321\203\320\277\320\277\321\213_mxl.txt"
new file mode 100644
index 00000000..2047a675
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\223\321\200\321\203\320\277\320\277\321\213\320\241\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\274\320\270\320\242\320\276\320\273\321\214\320\272\320\276\320\224\320\273\321\217\320\223\321\200\321\203\320\277\320\277\321\213_mxl.txt"
@@ -0,0 +1,15 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник2 Интерактив1
+ Наименование Интерактив169
+ РеквизитБулево Истина
+ Счет Счет01 Предопределенный
+Справочник ПростойСправочник ПредопределенноеЗначение СоздатьПоГуид
+ Ссылка 634e552d-b43a-4bc8-a150-d009f83269e1 Гуид
+ Наименование Предопределенное значение
+Справочник ИерархическийСправочник Группа Группа
+ Наименование Группа25
+ ПростойСправочник2ДляГруппы Интерактив1 Перем
+ ТабличнаяЧастьДляГруппы
+ ПростойСправочник ПредопределенноеЗначение Перем
+ xddMods
+ Режим Группа
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\223\321\200\321\203\320\277\320\277\321\213\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\230\320\224\320\276\321\207\320\265\321\200\320\275\320\265\320\263\320\276\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\223\321\200\321\203\320\277\320\277\321\213\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\230\320\224\320\276\321\207\320\265\321\200\320\275\320\265\320\263\320\276\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260_mxl.txt"
new file mode 100644
index 00000000..17ce47b1
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\223\321\200\321\203\320\277\320\277\321\213\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\230\320\224\320\276\321\207\320\265\321\200\320\275\320\265\320\263\320\276\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ИерархическийСправочник Группа Группа
+ Наименование Тест
+ Код 5
+Справочник ИерархическийСправочник Элемент
+ Наименование Тест
+ Родитель Группа Перем
+ Код 6
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270_mxl.txt"
new file mode 100644
index 00000000..5c73cfb1
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270_mxl.txt"
@@ -0,0 +1,47 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник ПростойСправочник0
+ Наименование Тест0
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+Документ Документ2 Документ
+ Дата ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
+ Состав
+ РеквизитЧисло 150
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РеквизитБулево Ложь
+ Состав
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РеквизитЧисло 0
+ РеквизитБулево Истина
+РегистрБухгалтерии РегистрБухгалтерии1 ЗаписьРегистра1
+ Запись
+ Регистратор Документ Перем
+ Период
+ СчетДт Счет01 Предопределенный ПланСчетовСсылка.ПланСчетов1
+ СчетКт Счет02 Предопределенный ПланСчетовСсылка.ПланСчетов1
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2Дт ПростойСправочник21 Перем
+ РесурсЧисло 150
+ РесурсЧисло1Дт 10
+ РеквизитБулево Ложь
+ СубконтоДт1 ПростойСправочник Перем
+ СубконтоКт1 ПростойСправочник21 Перем
+ СубконтоКт2 ПростойСправочник Перем
+ Запись
+ Регистратор Документ Перем
+ Период ТекущаяДата
+ СчетДт Счет02 Наименование
+ СчетКт Счет01 Наименование
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2Кт ПростойСправочник22 Перем
+ РесурсЧисло 0
+ РесурсЧисло1Кт 20
+ РеквизитБулево Истина
+ СубконтоДт1 ПростойСправочник21 Перем
+ СубконтоДт2 ПростойСправочник0 Перем
+ СубконтоКт1 ПростойСправочник Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_mxl.txt"
new file mode 100644
index 00000000..2a88891c
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_mxl.txt"
@@ -0,0 +1,33 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+Документ Документ2 Документ
+ Дата ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
+ Состав
+ РеквизитЧисло 150
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РеквизитБулево Ложь
+ Состав
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РеквизитЧисло 0
+ РеквизитБулево Истина
+РегистрНакопления РегистрНакопления2 ЗаписьРегистра1
+ Запись
+ Регистратор Документ Перем
+ Период
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РесурсЧисло 150
+ РеквизитБулево Ложь
+ Запись
+ Регистратор Документ Перем
+ Период ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РесурсЧисло 0
+ РеквизитБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217\320\243\320\232\320\276\321\202\320\276\321\200\321\213\321\205\320\257\320\262\320\275\320\276\320\227\320\260\320\264\320\260\320\275\320\222\320\270\320\264\320\224\320\262\320\270\320\266\320\265\320\275\320\270\321\217_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217\320\243\320\232\320\276\321\202\320\276\321\200\321\213\321\205\320\257\320\262\320\275\320\276\320\227\320\260\320\264\320\260\320\275\320\222\320\270\320\264\320\224\320\262\320\270\320\266\320\265\320\275\320\270\321\217_mxl.txt"
new file mode 100644
index 00000000..1e33e0ea
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217\320\243\320\232\320\276\321\202\320\276\321\200\321\213\321\205\320\257\320\262\320\275\320\276\320\227\320\260\320\264\320\260\320\275\320\222\320\270\320\264\320\224\320\262\320\270\320\266\320\265\320\275\320\270\321\217_mxl.txt"
@@ -0,0 +1,35 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+Документ Документ2 Документ
+ Дата ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
+ Состав
+ РеквизитЧисло 150
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РеквизитБулево Ложь
+ Состав
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РеквизитЧисло 0
+ РеквизитБулево Истина
+РегистрНакопления РегистрНакопления2 ЗаписьРегистра1
+ Запись
+ Регистратор Документ Перем
+ Период
+ ВидДвижения Расход ПРЕДОПРЕДЕЛЕННЫЙ
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РесурсЧисло 150
+ РеквизитБулево Ложь
+ Запись
+ Регистратор Документ Перем
+ Период ТекущаяДата
+ ВидДвижения Приход ПРЕДОПРЕДЕЛЕННЫЙ
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РесурсЧисло 0
+ РеквизитБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_mxl.txt"
new file mode 100644
index 00000000..7f456598
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_mxl.txt"
@@ -0,0 +1,17 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+РегистрСведений РегистрСведений1 ЗаписьРегистра1
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РесурсЧисло 300
+ РесурсБулево Ложь
+РегистрСведений РегистрСведений1 ЗаписьРегистра2
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РесурсЧисло 400
+ РесурсБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_\320\237\320\276\320\270\321\201\320\272\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_\320\237\320\276\320\270\321\201\320\272\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt"
new file mode 100644
index 00000000..6904c466
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_\320\237\320\276\320\270\321\201\320\272\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt"
@@ -0,0 +1,17 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+РегистрСведений РегистрСведений1 ЗаписьРегистра1
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 Тест1 Наименование
+ РесурсЧисло 300
+ РесурсБулево Ложь
+РегистрСведений РегистрСведений1 ЗаписьРегистра2
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РесурсЧисло 400
+ РесурсБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\274\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\203_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\274\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\203_mxl.txt"
new file mode 100644
index 00000000..54e4950d
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\274\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\203_mxl.txt"
@@ -0,0 +1,33 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+Документ Документ2 Документ
+ Дата ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
+ Состав
+ РеквизитЧисло 150
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РеквизитБулево Ложь
+ Состав
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РеквизитЧисло 0
+ РеквизитБулево Истина
+РегистрСведений РСПодчиненныйРегистратору ЗаписьРегистра1
+ Запись
+ Регистратор Документ Перем
+ Период
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РесурсЧисло 150
+ РеквизитБулево Ложь
+ Запись
+ Регистратор Документ Перем
+ Период ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РесурсЧисло 0
+ РеквизитБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\247\320\265\321\200\320\265\320\267\320\235\320\260\320\261\320\276\321\200\320\227\320\260\320\277\320\270\321\201\320\265\320\271_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\247\320\265\321\200\320\265\320\267\320\235\320\260\320\261\320\276\321\200\320\227\320\260\320\277\320\270\321\201\320\265\320\271_mxl.txt"
new file mode 100644
index 00000000..fca3dc92
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271\320\247\320\265\321\200\320\265\320\267\320\235\320\260\320\261\320\276\321\200\320\227\320\260\320\277\320\270\321\201\320\265\320\271_mxl.txt"
@@ -0,0 +1,18 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+РегистрСведений РегистрСведений1 ЗаписьРегистра1
+ Запись
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РесурсЧисло 300
+ РесурсБулево Ложь
+ Запись
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РесурсЧисло 400
+ РесурсБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\235\320\260\320\261\320\276\321\200\320\276\320\262\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\235\320\260\320\261\320\276\321\200\320\276\320\262\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_mxl.txt"
new file mode 100644
index 00000000..d880d626
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\235\320\260\320\261\320\276\321\200\320\276\320\262\320\227\320\260\320\277\320\270\321\201\320\265\320\271\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\241\320\262\320\265\320\264\320\265\320\275\320\270\320\271_mxl.txt"
@@ -0,0 +1,19 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+РегистрСведений РегистрСведений1 ЗаписьРегистра1
+ Запись
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РесурсЧисло 300
+ РесурсБулево Ложь
+РегистрСведений РегистрСведений1 ЗаписьРегистра2
+ Запись
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РесурсЧисло 400
+ РесурсБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_mxl.txt"
new file mode 100644
index 00000000..a91f1c80
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_mxl.txt"
@@ -0,0 +1,6 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тестовая группа товаров
+ РеквизитБулево Ложь
+Справочник ПростойСправочник2 ПростойСправочник2
+ Наименование Тест
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_\321\201_\320\236\320\264\320\270\320\275\320\260\320\272\320\276\320\262\321\213\320\274\320\230\320\274\320\265\320\275\320\265\320\274\320\237\320\265\321\200\320\265\320\274\320\265\320\275\320\275\320\276\320\271_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_\321\201_\320\236\320\264\320\270\320\275\320\260\320\272\320\276\320\262\321\213\320\274\320\230\320\274\320\265\320\275\320\265\320\274\320\237\320\265\321\200\320\265\320\274\320\265\320\275\320\275\320\276\320\271_mxl.txt"
new file mode 100644
index 00000000..4859aeab
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\262\321\203\321\205\320\237\321\200\320\276\321\201\321\202\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_\321\201_\320\236\320\264\320\270\320\275\320\260\320\272\320\276\320\262\321\213\320\274\320\230\320\274\320\265\320\275\320\265\320\274\320\237\320\265\321\200\320\265\320\274\320\265\320\275\320\275\320\276\320\271_mxl.txt"
@@ -0,0 +1,6 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник1
+ Наименование Тестовая группа товаров
+ РеквизитБулево Ложь
+Справочник ПростойСправочник2 ПростойСправочник1
+ Наименование Тест
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260_\320\240\320\265\320\266\320\270\320\274\320\227\320\260\320\277\320\270\321\201\320\270_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260_\320\240\320\265\320\266\320\270\320\274\320\227\320\260\320\277\320\270\321\201\320\270_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265_mxl.txt"
new file mode 100644
index 00000000..2eea0271
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260_\320\240\320\265\320\266\320\270\320\274\320\227\320\260\320\277\320\270\321\201\320\270_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265_mxl.txt"
@@ -0,0 +1,9 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Документ Документ1 Документ Проведение
+ Дата ТекущаяДата
+ Проведен Ложь
+ Номер 3
+Документ Документ1 Документ2
+ Дата ТекущаяДата
+ Проведен Истина
+ Номер 4
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\235\320\260\320\242\320\265\320\272\321\203\321\211\321\203\321\216\320\224\320\260\321\202\321\203_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\235\320\260\320\242\320\265\320\272\321\203\321\211\321\203\321\216\320\224\320\260\321\202\321\203_mxl.txt"
new file mode 100644
index 00000000..313adc39
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\235\320\260\320\242\320\265\320\272\321\203\321\211\321\203\321\216\320\224\320\260\321\202\321\203_mxl.txt"
@@ -0,0 +1,6 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Документ Документ1 Документ
+ Дата ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt"
new file mode 100644
index 00000000..e5fcdf04
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt"
@@ -0,0 +1,18 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+Документ Документ1 Документ
+ Дата 20130801
+ ПростойСправочник ПростойСправочник Перем
+ Состав
+ РеквизитЧисло 150
+ ПростойСправочник2 Тест1 Наименование
+ РеквизитБулево Ложь
+ Состав
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РеквизитЧисло 0
+ РеквизитБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\225\321\211\320\265\320\235\320\265\320\227\320\260\320\277\320\270\321\201\320\260\320\275\320\275\320\276\320\263\320\276\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\225\321\211\320\265\320\235\320\265\320\227\320\260\320\277\320\270\321\201\320\260\320\275\320\275\320\276\320\263\320\276\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..a9adb36a
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\225\321\211\320\265\320\235\320\265\320\227\320\260\320\277\320\270\321\201\320\260\320\275\320\275\320\276\320\263\320\276\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник Объект
+ Наименование Тестовое наименование
+ РеквизитБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt"
new file mode 100644
index 00000000..c8c7f489
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt"
@@ -0,0 +1,17 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник2_1
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник2_2
+ Наименование Тест
+Справочник СправочникСТабЧастью СправочникСТабЧастью
+ Наименование Тест
+ Состав
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник2_1 Перем
+ РеквизитБулево Истина
+ Состав
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник2_2 Перем
+ РеквизитБулево Ложь
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\230\320\267\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\230\320\267\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..e26fdf7a
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\230\320\267\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ИерархическийСправочник Элемент
+ Наименование Тест
+ ПростойСправочник ПредопределенноеЗначение1 Предопределенный
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265_mxl.txt"
new file mode 100644
index 00000000..dabdec79
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\260\320\241\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\321\213\320\274\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\242\320\270\320\277\320\260\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+ РеквизитПеречисление ЗначениеПеречисления1 Предопределенный
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt"
new file mode 100644
index 00000000..21d4aa77
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt"
@@ -0,0 +1,9 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+ПользовательИБ ИмяПеременнойПользователь
+ Имя ПользовательИмя
+ ОсновнойИнтерфейс
+ Пароль
+ РежимЗапуска Управляемое приложение
+ Роли
+ Роль Роль1
+ Роль ПолныеПрава
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\221\320\265\320\267\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\221\320\265\320\267\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..2571ef06
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\222\320\273\320\260\320\264\320\265\320\273\321\214\321\206\320\260\320\221\320\265\320\267\320\237\320\276\320\264\321\207\320\270\320\275\320\265\320\275\320\275\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник ПростойСправочник Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\271\320\227\320\260\320\277\320\270\321\201\320\270\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\271\320\227\320\260\320\277\320\270\321\201\320\270\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270_mxl.txt"
new file mode 100644
index 00000000..75c32871
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\271\320\227\320\260\320\277\320\270\321\201\320\270\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\320\270_mxl.txt"
@@ -0,0 +1,27 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Документ Документ2 Документ
+ Дата ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
+ Состав
+ РеквизитЧисло 150
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РеквизитБулево Ложь
+РегистрБухгалтерии РегистрБухгалтерии1 ЗаписьРегистра1
+ Запись
+ Регистратор Документ Перем
+ Период
+ СчетДт Счет01 Наименование
+ СчетКт Счет02 Наименование
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2Дт ПростойСправочник21 Перем
+ ПростойСправочник2Кт ПростойСправочник21 Перем
+ РесурсЧисло 150
+ РесурсЧисло1Дт 10
+ РеквизитБулево Ложь
+ СубконтоДт1 ПростойСправочник Перем
+ СубконтоКт1 ПростойСправочник21 Перем
+ СубконтоКт2 ПростойСправочник Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\271\320\227\320\260\320\277\320\270\321\201\320\270\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\271\320\227\320\260\320\277\320\270\321\201\320\270\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_mxl.txt"
new file mode 100644
index 00000000..437754ec
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\271\320\227\320\260\320\277\320\270\321\201\320\270\320\222\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\265\320\235\320\260\320\272\320\276\320\277\320\273\320\265\320\275\320\270\321\217_mxl.txt"
@@ -0,0 +1,20 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Документ Документ2 Документ
+ Дата ТекущаяДата
+ ПростойСправочник ПростойСправочник Перем
+ Состав
+ РеквизитЧисло 150
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РеквизитБулево Ложь
+РегистрНакопления РегистрНакопления2 ЗаписьРегистра1
+ Запись
+ Регистратор Документ Перем
+ Период
+ ПростойСправочник ПростойСправочник Перем
+ ПростойСправочник2 ПростойСправочник21 Перем
+ РесурсЧисло 150
+ РеквизитБулево Ложь
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\201\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\201\320\260_mxl.txt"
new file mode 100644
index 00000000..9dbf438a
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\221\320\270\320\267\320\275\320\265\321\201\320\237\321\200\320\276\321\206\320\265\321\201\321\201\320\260_mxl.txt"
@@ -0,0 +1,14 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тестовое наименование
+ РеквизитБулево Истина
+БизнесПроцесс БизнесПроцесс1 ПростойБП
+ ПростойСправочник ПростойСправочник Перем
+ ТабличнаяЧасть1
+ Реквизит1 Значение1
+ ТабличнаяЧасть1
+ Реквизит1 Значение2
+Задача Задача1 Действие1
+ Наименование Действие1
+ ТочкаМаршрута Действие1 Предопределенный
+ БизнесПроцесс ПростойБП Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_mxl.txt"
new file mode 100644
index 00000000..50bd15e9
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_mxl.txt"
@@ -0,0 +1,3 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник2 ПростойСправочник2
+ Наименование Наименование
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..71ce9e38
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тестовое наименование
+ РеквизитБулево Истина
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213_mxl.txt"
new file mode 100644
index 00000000..3ff9b098
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213_mxl.txt"
@@ -0,0 +1,5 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим Ключ
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Наименование Ключ
+ РеквизитБулево Истина
+ РеквизитПеречисление РеквизитПеречисление Предопределенный
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\203\321\201\321\202\321\213\320\265\320\241\321\202\321\200\320\276\320\272\320\270_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\203\321\201\321\202\321\213\320\265\320\241\321\202\321\200\320\276\320\272\320\270_mxl.txt"
new file mode 100644
index 00000000..90301ebc
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\237\321\203\321\201\321\202\321\213\320\265\320\241\321\202\321\200\320\276\320\272\320\270_mxl.txt"
@@ -0,0 +1,7 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+
+Справочник ПростойСправочник ПростойСправочник
+
+ Наименование Тестовое наименование
+
+ РеквизитБулево Истина
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\320\265_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\320\265_mxl.txt"
new file mode 100644
index 00000000..322cb09c
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260_\320\240\320\265\320\266\320\270\320\274\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\320\265_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование "Тестовое"+" наименование" Выражение
+ РеквизитБулево Не Ложь Выражение
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264_mxl.txt"
new file mode 100644
index 00000000..cf231e32
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264_mxl.txt"
@@ -0,0 +1,5 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Ссылка a72ec81b-d17d-4d2f-9a47-2ffb2e3234c4 Гуид
+ РеквизитБулево Истина
+ РеквизитПеречисление ЗначениеПеречисления1 Предопределенный
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264\320\241\321\201\321\213\320\273\320\272\320\270_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264\320\241\321\201\321\213\320\273\320\272\320\270_mxl.txt"
new file mode 100644
index 00000000..d5d3ca06
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\237\321\200\320\276\321\201\321\202\320\276\320\263\320\276\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\320\223\321\203\320\270\320\264\320\241\321\201\321\213\320\273\320\272\320\270_mxl.txt"
@@ -0,0 +1,5 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Ссылка a72ec81b-d17d-4d2f-9a47-2ffb2e3234c4 СоздатьПоГуид
+ РеквизитБулево Истина
+ РеквизитПеречисление ЗначениеПеречисления1 Предопределенный
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_mxl.txt"
new file mode 100644
index 00000000..bc206aa6
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\262\321\217\320\267\320\260\320\275\320\275\321\213\321\205\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262_mxl.txt"
@@ -0,0 +1,7 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тестовая группа товаров
+ РеквизитБулево Ложь
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник ПростойСправочник Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_mxl.txt"
new file mode 100644
index 00000000..c0a7c6ac
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_mxl.txt"
@@ -0,0 +1,6 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест345
+Справочник СправочникСТабЧастью СправочникСТабЧастью
+ Наименование Тест
+ РеквизитСоставногоТипа Тест345 Наименование СправочникСсылка.ПростойСправочник
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_\320\270_\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_\320\270_\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271_mxl.txt"
new file mode 100644
index 00000000..2d39e076
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_\320\270_\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник СправочникСТабЧастью СправочникСТабЧастью
+ Наименование Тест
+ РеквизитСоставногоТипа СправочникСсылка.ПростойСправочник
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_\320\270_\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_\320\270_\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265_mxl.txt"
new file mode 100644
index 00000000..5c8c9e49
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2602_\321\201_\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\241\320\276\321\201\321\202\320\260\320\262\320\275\320\276\320\263\320\276\320\242\320\270\320\277\320\260_\320\270_\320\237\321\203\321\201\321\202\320\276\320\271\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\237\320\265\321\200\320\265\321\207\320\270\321\201\320\273\320\265\320\275\320\270\320\265_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник СправочникСТабЧастью СправочникСТабЧастью
+ Наименование Тест
+ РеквизитСоставногоТипа ПеречислениеСсылка.Перечисление1
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\321\201\320\273\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\321\201\320\273\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt"
new file mode 100644
index 00000000..641ff891
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\237\320\276\321\201\320\273\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260\320\241\320\224\320\262\321\203\320\274\321\217\320\241\321\202\321\200\320\276\320\272\320\260\320\274\320\270\320\222\320\242\320\260\320\261\320\273\320\270\321\207\320\275\320\276\320\271\320\247\320\260\321\201\321\202\320\270_mxl.txt"
@@ -0,0 +1,20 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тест
+Справочник ПростойСправочник2 ПростойСправочник21
+ Наименование Тест1
+Справочник ПростойСправочник2 ПростойСправочник22
+ Наименование Тест2
+Документ Документ1 Документ
+ Дата 20130801
+ ПростойСправочник ПростойСправочник Перем
+ Состав
+ РеквизитЧисло 150
+ ПростойСправочник2 Тест1 Наименование
+ РеквизитБулево Ложь
+ Состав
+ ПростойСправочник2 ПростойСправочник22 Перем
+ РеквизитЧисло 0
+ РеквизитБулево Истина
+Справочник ПростойСправочник2 ПростойСправочник23
+ Наименование Тест3
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\321\205\320\241\320\262\320\276\320\271\321\201\321\202\320\262_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\321\205\320\241\320\262\320\276\320\271\321\201\321\202\320\262_mxl.txt"
new file mode 100644
index 00000000..eb66cecb
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\321\205\320\241\320\262\320\276\320\271\321\201\321\202\320\262_mxl.txt"
@@ -0,0 +1,9 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тестовое наименование
+ РеквизитБулево Истина
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест1
+ ПростойСправочник
+ ДополнительныеСвойства
+ СвойствоПростойСправочник ПростойСправочник Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\321\205\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\321\205\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt"
new file mode 100644
index 00000000..e26ca460
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\321\205\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Тестовое наименование 357
+ РеквизитБулево Истина
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест1
+ ДополнительныеСвойства
+ СвойствоПростойСправочник Тестовое наименование 357 Наименование СправочникСсылка.ПростойСправочник
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..b8357be3
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260_mxl.txt"
@@ -0,0 +1,3 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник ПростойСправочник ОбменДанными
+ Наименование Наименование
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\242\320\247_\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\242\320\247_\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..8fa38c46
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\237\320\276\320\274\320\276\321\211\321\214\321\216\320\242\320\247_\320\236\320\261\320\274\320\265\320\275\320\224\320\260\320\275\320\275\321\213\320\274\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260_mxl.txt"
@@ -0,0 +1,5 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник ПростойСправочник ПростойСправочник
+ Наименование Наименование
+ ОбменДанными
+ Загрузка Истина Булево
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274_\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\262_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274_\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\262_mxl.txt"
new file mode 100644
index 00000000..17863210
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274_\320\237\320\273\320\260\320\275\320\241\321\207\320\265\321\202\320\276\320\262_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник2 ПростойСправочник2
+ Наименование Тест
+ Счет Счет01 Наименование
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\237\321\203\321\201\321\202\320\260\321\217\320\241\321\201\321\213\320\273\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\237\321\203\321\201\321\202\320\260\321\217\320\241\321\201\321\213\320\273\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..71abe88c
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\276\320\274\320\237\321\203\321\201\321\202\320\260\321\217\320\241\321\201\321\213\320\273\320\272\320\260_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217_mxl.txt"
new file mode 100644
index 00000000..1dfd27ee
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\260\320\241\320\276\320\241\321\201\321\213\320\273\320\272\320\276\320\271\320\235\320\260\320\241\320\260\320\274\320\276\320\263\320\276\320\241\320\265\320\261\321\217_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник СправочникСоСсылкойНаСамогоСебя ЭлементСоСсылкой
+ Наименование Элемент со ссылкой
+ СправочникСоСсылкойНаСамогоСебя ЭлементСоСсылкой Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\236\320\261\321\200\320\260\320\267\321\203\321\216\321\211\320\270\321\205\320\246\320\270\320\272\320\273\320\270\321\207\320\265\321\201\320\272\321\203\321\216\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\236\320\261\321\200\320\260\320\267\321\203\321\216\321\211\320\270\321\205\320\246\320\270\320\272\320\273\320\270\321\207\320\265\321\201\320\272\321\203\321\216\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214_mxl.txt"
new file mode 100644
index 00000000..8710675f
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\236\320\261\321\200\320\260\320\267\321\203\321\216\321\211\320\270\321\205\320\246\320\270\320\272\320\273\320\270\321\207\320\265\321\201\320\272\321\203\321\216\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\321\214_mxl.txt"
@@ -0,0 +1,10 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим ДополнительныйТипЗначения
+Справочник СправочникСоСсылкойНаСамогоСебя ЭлементСоСсылкой1
+ Наименование Элемент со ссылкой 1
+ СправочникСоСсылкойНаСамогоСебя ЭлементСоСсылкой2 Перем
+Справочник СправочникСоСсылкойНаСамогоСебя ЭлементСоСсылкой2
+ Наименование Элемент со ссылкой 2
+ СправочникСоСсылкойНаСамогоСебя ЭлементСоСсылкой3 Перем
+Справочник СправочникСоСсылкойНаСамогоСебя ЭлементСоСсылкой3
+ Наименование Элемент со ссылкой 3
+ СправочникСоСсылкойНаСамогоСебя ЭлементСоСсылкой1 Перем
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\243\320\267\320\273\320\260\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\243\320\267\320\273\320\260\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260_mxl.txt"
new file mode 100644
index 00000000..c4a81549
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\243\320\267\320\273\320\260\320\237\320\273\320\260\320\275\320\260\320\236\320\261\320\274\320\265\320\275\320\260_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+ПланОбмена ПланОбмена1 УзелЭтойИБ ЭтотУзел
+ Код 000000001
+ Наименование Эта информационная база
+ПланОбмена ПланОбмена1 Узел1
+ Наименование Узел обмена 1
+ РеквизитБулево Истина
+ РеквизитПеречисление РеквизитПеречисление Предопределенный
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\223\320\243\320\230\320\224\321\203_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\223\320\243\320\230\320\224\321\203_mxl.txt"
new file mode 100644
index 00000000..5df437c2
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\223\320\243\320\230\320\224\321\203_mxl.txt"
@@ -0,0 +1,4 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник 634e552d-b43a-4bc8-a150-d009f83269e1 ГУИД
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\232\320\276\320\264\321\203_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\232\320\276\320\264\321\203_mxl.txt"
new file mode 100644
index 00000000..9d5163ad
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\232\320\276\320\264\321\203_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Код 6541
+ Наименование Тестовая группа товаров
+ РеквизитБулево Ложь
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник 6541 Код
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt"
new file mode 100644
index 00000000..901ec2eb
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\260\320\237\320\276\320\270\321\201\320\272\320\276\320\274\320\237\320\276\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Код 6541
+ Наименование Тестовый элемент
+ РеквизитБулево Ложь
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник Тестовый элемент Наименование
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\235\320\265\320\262\320\265\321\200\320\275\321\213\320\271\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\235\320\265\320\262\320\265\321\200\320\275\321\213\320\271\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260_mxl.txt"
new file mode 100644
index 00000000..eab23d6b
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\235\320\265\320\262\320\265\321\200\320\275\321\213\320\271\320\240\320\265\320\266\320\270\320\274\320\237\320\276\320\270\321\201\320\272\320\260_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Код 6541
+ Наименование Тестовая группа товаров
+ РеквизитБулево Ложь
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник 6543 Неверный режим!
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\237\320\276\320\277\321\213\321\202\320\272\320\265\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\237\320\276\320\235\320\265\320\262\320\265\321\200\320\275\320\276\320\274\321\203\320\232\320\276\320\264\321\203_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\237\320\276\320\277\321\213\321\202\320\272\320\265\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\237\320\276\320\235\320\265\320\262\320\265\321\200\320\275\320\276\320\274\321\203\320\232\320\276\320\264\321\203_mxl.txt"
new file mode 100644
index 00000000..ce324a65
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\237\320\276\320\277\321\213\321\202\320\272\320\265\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\237\320\276\320\235\320\265\320\262\320\265\321\200\320\275\320\276\320\274\321\203\320\232\320\276\320\264\321\203_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Код 4841
+ Наименование Тестовая группа товаров
+ РеквизитБулево Ложь
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник 4943 Код
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\237\320\276\320\277\321\213\321\202\320\272\320\265\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\237\320\276\320\235\320\265\320\262\320\265\321\200\320\275\320\276\320\274\321\203\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\237\320\276\320\277\321\213\321\202\320\272\320\265\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\237\320\276\320\235\320\265\320\262\320\265\321\200\320\275\320\276\320\274\321\203\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt"
new file mode 100644
index 00000000..9949ab59
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\265\321\201\321\202\320\224\320\276\320\273\320\266\320\265\320\275_\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\237\320\276\320\277\321\213\321\202\320\272\320\265\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\230\320\227\320\260\320\277\320\276\320\273\320\275\320\270\321\202\321\214\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\320\237\320\276\320\235\320\265\320\262\320\265\321\200\320\275\320\276\320\274\321\203\320\235\320\260\320\270\320\274\320\265\320\275\320\276\320\262\320\260\320\275\320\270\321\216_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+Справочник ПростойСправочник ПростойСправочник
+ Код 6541
+ Наименование Тестовая группа товаров
+ РеквизитБулево Ложь
+Справочник ИерархическийСправочник ИерархическийСправочник
+ Наименование Тест
+ ПростойСправочник 6543 Наименование
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 97%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
index feb78342..f66e5931 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -3,6 +3,8 @@
&НаКлиенте
Перем Ожидаем;
&НаКлиенте
+Перем Утверждения;
+&НаКлиенте
Перем СтроковыеУтилиты;
// { интерфейс тестирования
@@ -10,6 +12,7 @@
&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
+ Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты");
КонецПроцедуры
@@ -320,14 +323,21 @@
&НаКлиенте
Процедура ТестДолжен_ПроверитьРаботуФункции_ФорматированнаяСтрока() Экспорт
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ ВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
+
+ Если ВерсияПриложения < "8.3.3" Тогда
+ Возврат;
+ КонецЕсли;
+
МассивСтроки = Новый Массив;
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока("1.1", Новый Шрифт(,,Истина)));
+ Выполнить("МассивСтроки.Добавить(Новый ФорматированнаяСтрока(""1.1"", Новый Шрифт(,,Истина)));");
МассивСтроки.Добавить(". ");
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока("Обновите",,,, "Обновление"));
+ Выполнить("МассивСтроки.Добавить(Новый ФорматированнаяСтрока(""Обновите"",,,, ""Обновление""));");
МассивСтроки.Добавить(" программу.");
РезультатПреобразования = СтроковыеУтилиты.ФорматированнаяСтрока("1.1. Обновите программу.");
- Ожидаем.Что(РезультатПреобразования).Равно(Новый ФорматированнаяСтрока(МассивСтроки));
+ Выполнить("Ожидаем.Что(РезультатПреобразования).Равно(Новый ФорматированнаяСтрока(МассивСтроки));");
КонецПроцедуры
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.bsl"
similarity index 97%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.bsl"
index f668fb9d..24a2af5b 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/ObjectModule.bsl"
@@ -1,11 +1,13 @@
Перем КонтекстЯдра;
Перем Ожидаем;
+Перем Утверждения;
Перем СтроковыеУтилиты;
// { интерфейс тестирования
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
+ Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты");
КонецПроцедуры
@@ -294,14 +296,21 @@
Процедура ТестДолжен_ПроверитьРаботуФункции_ФорматированнаяСтрока() Экспорт
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ ВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
+
+ Если ВерсияПриложения < "8.3.3" Тогда
+ Возврат;
+ КонецЕсли;
+
МассивСтроки = Новый Массив;
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока("1.1", Новый Шрифт(,,Истина)));
+ Выполнить("МассивСтроки.Добавить(Новый ФорматированнаяСтрока(""1.1"", Новый Шрифт(,,Истина)));");
МассивСтроки.Добавить(". ");
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока("Обновите",,,, "Обновление"));
+ Выполнить("МассивСтроки.Добавить(Новый ФорматированнаяСтрока(""Обновите"",,,, ""Обновление""));");
МассивСтроки.Добавить(" программу.");
РезультатПреобразования = СтроковыеУтилиты.ФорматированнаяСтрока("1.1. Обновите программу.");
- Ожидаем.Что(РезультатПреобразования).Равно(Новый ФорматированнаяСтрока(МассивСтроки));
+ Выполнить("Ожидаем.Что(РезультатПреобразования).Равно(Новый ФорматированнаяСтрока(МассивСтроки));");
КонецПроцедуры
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt"
new file mode 100644
index 00000000..ec9166bf
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->c1213115-2d8e-4dbf-9687-e353391331cc.0 (29, 454)
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
index 26d35e1b..a31b9512 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/renames.txt"
@@ -1,11 +1,9 @@
aa3398ee-6203-44e1-9810-a0737f241f75-->und\aa3398ee-6203-44e1-9810-a0737f241f75
c1213115-2d8e-4dbf-9687-e353391331cc-->und\c1213115-2d8e-4dbf-9687-e353391331cc
-c1213115-2d8e-4dbf-9687-e353391331cc.0-->Form\Форма\Форма.txt
-c1213115-2d8e-4dbf-9687-e353391331cc.0-->und\c1213115-2d8e-4dbf-9687-e353391331cc.0
c1213115-2d8e-4dbf-9687-e353391331cc.0-->und\c1213115-2d8e-4dbf-9687-e353391331cc.0
copyinfo-->und\copyinfo
ea75be97-b437-4750-a79f-478ea2e60f75.0\info-->und\ea75be97-b437-4750-a79f-478ea2e60f75.0\info
-ea75be97-b437-4750-a79f-478ea2e60f75.0\text-->ObjectModule.txt
+ea75be97-b437-4750-a79f-478ea2e60f75.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/aa3398ee-6203-44e1-9810-a0737f241f75" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/aa3398ee-6203-44e1-9810-a0737f241f75"
index fac22080..0acc20d4 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/aa3398ee-6203-44e1-9810-a0737f241f75"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/aa3398ee-6203-44e1-9810-a0737f241f75"
@@ -4,9 +4,9 @@
{1,
{4,6fd23cfa-0426-4dc3-9927-aedb28bf29ae,0ff7877a-1835-4e16-a06f-627983be2f35,
{0,
-{1,
+{0,
{0,0,ea75be97-b437-4750-a79f-478ea2e60f75},"Тесты_СтроковыеУтилиты",
-{1,"ru","Тесты строковые утилиты"},"",0,0}
+{1,"ru","Тесты строковые утилиты"},""}
},00000000-0000-0000-0000-000000000000,"",00000000-0000-0000-0000-000000000000},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,0},
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/c1213115-2d8e-4dbf-9687-e353391331cc" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/c1213115-2d8e-4dbf-9687-e353391331cc"
index dd61f920..0efc58cb 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/c1213115-2d8e-4dbf-9687-e353391331cc"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/c1213115-2d8e-4dbf-9687-e353391331cc"
@@ -1,15 +1,10 @@
{1,
{1,
{0,
-{12,
-{1,
+{9,
+{0,
{0,0,c1213115-2d8e-4dbf-9687-e353391331cc},"Форма",
-{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
-{2,
-{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
-{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
-}
-},
+{1,"ru","Форма"},""},0,1},
{0}
}
},0}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/c1213115-2d8e-4dbf-9687-e353391331cc.0" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/c1213115-2d8e-4dbf-9687-e353391331cc.0"
index 7b270a48..7b7c3152 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/c1213115-2d8e-4dbf-9687-e353391331cc.0"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/c1213115-2d8e-4dbf-9687-e353391331cc.0"
@@ -1,9 +1,9 @@
-{3,
-{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{2,
+{28,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
-{0,0,0},
+{0},
{0},1,
-{21,
+{17,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -14,44 +14,25 @@
{3,4,
{0}
},
-{7,3,0,1,100},
+{6,3,0,1},
{0,0,0},1,
-{0,0,1},0,1,0,0,0,3,3},0,"","",1,
-{21,
+{0,0,1},0,1},0,"","",1,
+{17,
{0},0,0,0,7,"Navigator",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
-{7,3,0,1,100},
-{0,0,0},0,0,1,0,1,
-{10,
-{0},0,0,0,0,"NavigatorExtendedTooltip",
-{1,0},
-{1,0},1,0,0,2,2,
-{3,4,
-{0}
-},
-{7,3,0,1,100},
-{0,0,0},1,
-{5,0,0,3,0,
-{0,0,0},
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{3,0,
-{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
-},0,1,2,
-{1,
-{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",0,0,0,0,0,0,3,3,0,0,0},"&НаКлиенте
+{6,3,0,1},
+{0,0,0},0,0,1}
+},"&НаКлиенте
Перем КонтекстЯдра;
&НаКлиенте
Перем Ожидаем;
&НаКлиенте
+Перем Утверждения;
+&НаКлиенте
Перем СтроковыеУтилиты;
// { интерфейс тестирования
@@ -59,6 +40,7 @@
&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
+ Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения"");
Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD"");
СтроковыеУтилиты = КонтекстЯдра.Плагин(""СтроковыеУтилиты"");
КонецПроцедуры
@@ -369,14 +351,21 @@
&НаКлиенте
Процедура ТестДолжен_ПроверитьРаботуФункции_ФорматированнаяСтрока() Экспорт
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ ВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
+
+ Если ВерсияПриложения < ""8.3.3"" Тогда
+ Возврат;
+ КонецЕсли;
+
МассивСтроки = Новый Массив;
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока(""1.1"", Новый Шрифт(,,Истина)));
+ Выполнить(""МассивСтроки.Добавить(Новый ФорматированнаяСтрока(""""1.1"""", Новый Шрифт(,,Истина)));"");
МассивСтроки.Добавить("". "");
- МассивСтроки.Добавить(Новый ФорматированнаяСтрока(""Обновите"",,,, ""Обновление""));
+ Выполнить(""МассивСтроки.Добавить(Новый ФорматированнаяСтрока(""""Обновите"""",,,, """"Обновление""""));"");
МассивСтроки.Добавить("" программу."");
РезультатПреобразования = СтроковыеУтилиты.ФорматированнаяСтрока(""1.1. Обновите программу."");
- Ожидаем.Что(РезультатПреобразования).Равно(Новый ФорматированнаяСтрока(МассивСтроки));
+ Выполнить(""Ожидаем.Что(РезультатПреобразования).Равно(Новый ФорматированнаяСтрока(МассивСтроки));"");
КонецПроцедуры
@@ -499,4 +488,5 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
{0,0},
{0,0},
{0,0},
-{0,0},0,0}
\ No newline at end of file
+{0,0}
+}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/versions" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/versions"
index ef8899cf..40525d2d 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/versions"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\243\321\202\320\270\320\273\320\270\321\202\321\213/und/versions"
@@ -1 +1 @@
-{1,11,"",0d25f772-63fa-437b-ac02-3d43b13cee3d,"aa3398ee-6203-44e1-9810-a0737f241f75",1899f848-0944-4b68-b2c8-a47841ce2382,"c1213115-2d8e-4dbf-9687-e353391331cc",3ca1ba3c-df24-44c7-9a26-b1f622814a1e,"c1213115-2d8e-4dbf-9687-e353391331cc.0",761125f9-a4c5-4175-826f-bba1092e3f4b,"c1213115-2d8e-4dbf-9687-e353391331cc.1",6ea21ecc-ca53-4a7b-902f-46566bfc3216,"cc3dbe26-3080-4bf0-9ab1-ee85f142f7bc",398e9380-50e9-46e0-8c61-15026bb86cf2,"copyinfo",faa5343c-fd44-4000-9eea-6506a2d2631b,"ea75be97-b437-4750-a79f-478ea2e60f75.0",f0c188f8-0a93-4e66-99d9-1b973981ff63,"root",f29f977f-5b78-4505-bdbd-60f7d4b55c0a,"version",64ea2a59-dc17-431f-8cf7-05ce604da109,"versions",10708b6f-1152-4e10-9fb1-0273c72d6427}
\ No newline at end of file
+{1,11,"",7465f13f-b014-4052-b7b1-b3e97d9705cd,"versions",ef5da00f-57a7-4014-bca2-18668d7ccdbf,"ea75be97-b437-4750-a79f-478ea2e60f75.0",9a7bff2a-3ddf-42a2-95e2-af2008fd2ec6,"root",2d0550e1-6732-464f-9104-9f66772f03c7,"aa3398ee-6203-44e1-9810-a0737f241f75",2ee5f045-8f5c-4b36-8b68-6f944f895339,"cc3dbe26-3080-4bf0-9ab1-ee85f142f7bc",398e9380-50e9-46e0-8c61-15026bb86cf2,"c1213115-2d8e-4dbf-9687-e353391331cc.1",6ea21ecc-ca53-4a7b-902f-46566bfc3216,"version",cfbcfdff-535c-4c86-935a-a82ecb665abb,"c1213115-2d8e-4dbf-9687-e353391331cc.0",67fcb750-a9ca-4bf1-8bf8-2fa2c539ed8c,"c1213115-2d8e-4dbf-9687-e353391331cc",cc19dd82-fc74-4720-9ccf-0b868361a7bd,"copyinfo",4fbe9860-35a5-4a5e-a3d1-dcb9b3c685f3}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt"
new file mode 100644
index 00000000..d92ef5a4
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/maps.txt"
@@ -0,0 +1 @@
+Form\Форма\Форма.bsl-->53e66096-e66b-4bde-869e-c750bc34751b.0 (51, 138)
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
index 63314c4d..7ec1ebbf 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213_\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/renames.txt"
@@ -1,10 +1,8 @@
53e66096-e66b-4bde-869e-c750bc34751b-->und\53e66096-e66b-4bde-869e-c750bc34751b
-53e66096-e66b-4bde-869e-c750bc34751b.0-->C:\Projects\xUnitFor1C_plugins\src\Tests\Plugins\Тесты_УтвержденияBDD\Form\Форма\Форма.txt
-53e66096-e66b-4bde-869e-c750bc34751b.0-->und\53e66096-e66b-4bde-869e-c750bc34751b.0
53e66096-e66b-4bde-869e-c750bc34751b.0-->und\53e66096-e66b-4bde-869e-c750bc34751b.0
9cb5b204-7281-47bd-aa1c-5f9a6a950513-->und\9cb5b204-7281-47bd-aa1c-5f9a6a950513
b9fd794e-c598-414d-9858-603393d7d912.0\info-->und\b9fd794e-c598-414d-9858-603393d7d912.0\info
-b9fd794e-c598-414d-9858-603393d7d912.0\text-->ObjectModule.txt
+b9fd794e-c598-414d-9858-603393d7d912.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
root-->und\root
version-->und\version
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..53467b3a
--- /dev/null
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,126 @@
+
+//{ основная процедура для юнит-тестирования xUnitFor1C
+
+&НаКлиенте
+Перем КонтекстЯдра;
+&НаКлиенте
+Перем Ожидаем;
+&НаКлиенте
+Перем Утверждения;
+&НаКлиенте
+Перем УтвержденияПроверкаТаблиц;
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
+ Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
+ УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+ НаборТестов.Добавить("Тест_ДолженПроверитьНеРавенствоТабличныхДокументов");
+ НаборТестов.Добавить("Тест_ДолженПроверитьРавенствоТабличныхДокументов");
+ НаборТестов.Добавить("Тест_ДолженПроверитьРавенствоТабличныхДокументовСоСкрытымиКолонками");
+ НаборТестов.Добавить("Тест_ДолженПроверитьРавенствоТабличныхДокументовСоСкрытымиСтроками");
+КонецПроцедуры
+
+//}
+
+//{ блок юнит-тестов - сами тесты
+&НаКлиенте
+Процедура Тест_ДолженПроверитьНеРавенствоТабличныхДокументов() Экспорт
+ Макет1 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
+ Макет2 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
+
+ БылоИсключение = Ложь;
+ Попытка
+ УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет2, "Таблицы 1 и 2 не должны совпадать, а они одинаковы!");
+ Исключение
+ Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ БылоИсключение = Истина;
+ КонецПопытки;
+ Утверждения.Проверить(БылоИсключение, "Должны были получить исключение из-за неравенства таблиц, а его не было");
+
+ СтрокаОшибки =
+ "Таблицы должны совпадать, а они различны
+ |Различия в таблицах:
+ |Ожидали статус <ТаблицыСовпадают>, а получили <НеСовпадаютЗначенияВЯчейкеТаблицы>
+ |Значение [К6:6]. Ожидали <Обычное приложение>, а получили <Управляемое приложение>
+ |
+ |Таблицы 1 и 2 не должны совпадать, а они одинаковы!";
+
+ Утверждения.ПроверитьВхождение(Ошибка, СтрокаОшибки, "Должны были получить исключение из-за неравенства таблиц, а его не было");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ДолженПроверитьРавенствоТабличныхДокументов() Экспорт
+ Макет1 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
+ Макет2 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
+
+ УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет2, "Таблицы 1 и 2 должны совпадать, а они различны!");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ДолженПроверитьРавенствоТабличныхДокументовСоСкрытымиКолонками() Экспорт
+
+ Макет1 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
+ Макет2 = ПолучитьМакет("СозданиеОдногоПользователяИБ_СоСкрытойКолонкой");
+
+ УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет2, Истина, "Таблицы 1 и 2 должны совпадать, а они различны!");
+
+ Макет3 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
+ Макет3.Область(0, 1, 1, 1).Видимость = Ложь;
+
+ УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет3, "Таблицы 1 и 3 должны совпадать, а они различны!");
+
+ Макет4 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
+ Макет4.Область(0, 6, 1, 6).Видимость = Ложь;
+ Макет5 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
+ Макет5.Область(0, 6, 1, 6).Видимость = Ложь;
+
+ УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет4, Макет5, Истина, "Таблицы 4 и 5 должны совпадать, а они различны!");
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Тест_ДолженПроверитьРавенствоТабличныхДокументовСоСкрытымиСтроками() Экспорт
+
+ Макет1 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
+ Макет2 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
+
+ Макет1.Область(6,, 6).Видимость = Ложь;
+ Макет2.Область(6,, 6).Видимость = Ложь;
+
+ УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет2,, Истина, "Таблицы 1 и 2 должны совпадать, а они различны!");
+
+ //Макет3 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
+ //Макет3.ВставитьОбласть(Макет2.Область(2,, 2), Макет3.Область(1,, 1), ТипСмещенияТабличногоДокумента.ПоВертикали);
+ //Макет3.Область(1,, 1).Видимость = Ложь;
+ //
+ //УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет3,, Истина, "Таблицы 1 и 3 должны совпадать, а они различны!");
+
+ Макет4 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
+ Макет4.Область(1,, 1).Видимость = Ложь;
+
+ УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет4, "Таблицы 1 и 4 должны совпадать, а они различны!");
+
+КонецПроцедуры
+
+&НаСервере
+Функция ПолучитьМакет(ИмяМакета)
+ ОсновнойОбъект = ОсновнойОбъект();
+ Макет = ОсновнойОбъект.ПолучитьМакет(ИмяМакета);
+
+ Макет2 = Новый ТабличныйДокумент;
+ Макет2.Вывести(Макет);
+ Возврат Макет2;
+КонецФункции
+
+&НаСервере
+Функция ОсновнойОбъект()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+//}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index 19a259f2..00000000
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-
//{ основная процедура для юнит-тестирования xUnitFor1C
&НаКлиенте
Перем КонтекстЯдра;
&НаКлиенте
Перем Ожидаем;
&НаКлиенте
Перем Утверждения;
&НаКлиенте
Перем УтвержденияПроверкаТаблиц;
&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц");
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
НаборТестов.Добавить("Тест_ДолженПроверитьНеРавенствоТабличныхДокументов");
НаборТестов.Добавить("Тест_ДолженПроверитьРавенствоТабличныхДокументов");
НаборТестов.Добавить("Тест_ДолженПроверитьРавенствоТабличныхДокументовСоСкрытымиКолонками");
НаборТестов.Добавить("Тест_ДолженПроверитьРавенствоТабличныхДокументовСоСкрытымиСтроками");
КонецПроцедуры
//}
//{ блок юнит-тестов - сами тесты
&НаКлиенте
Процедура Тест_ДолженПроверитьНеРавенствоТабличныхДокументов() Экспорт
Макет1 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
Макет2 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
БылоИсключение = Ложь;
Попытка
УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет2, "Таблицы 1 и 2 не должны совпадать, а они одинаковы!");
Исключение
Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
БылоИсключение = Истина;
КонецПопытки;
Утверждения.Проверить(БылоИсключение, "Должны были получить исключение из-за неравенства таблиц, а его не было");
СтрокаОшибки =
"Таблицы должны совпадать, а они различны
|Различия в таблицах:
|Ожидали статус <ТаблицыСовпадают>, а получили <НеСовпадаютЗначенияВЯчейкеТаблицы>
|Значение [К6:6]. Ожидали <Обычное приложение>, а получили <Управляемое приложение>
|
|Таблицы 1 и 2 не должны совпадать, а они одинаковы!";
Утверждения.ПроверитьВхождение(Ошибка, СтрокаОшибки, "Должны были получить исключение из-за неравенства таблиц, а его не было");
КонецПроцедуры
&НаКлиенте
Процедура Тест_ДолженПроверитьРавенствоТабличныхДокументов() Экспорт
Макет1 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
Макет2 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет2, "Таблицы 1 и 2 должны совпадать, а они различны!");
КонецПроцедуры
&НаКлиенте
Процедура Тест_ДолженПроверитьРавенствоТабличныхДокументовСоСкрытымиКолонками() Экспорт
Макет1 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
Макет2 = ПолучитьМакет("СозданиеОдногоПользователяИБ_СоСкрытойКолонкой");
УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет2, Истина, "Таблицы 1 и 2 должны совпадать, а они различны!");
Макет3 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
Макет3.Область(0, 1, 1, 1).Видимость = Ложь;
УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет3, "Таблицы 1 и 3 должны совпадать, а они различны!");
Макет4 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
Макет4.Область(0, 6, 1, 6).Видимость = Ложь;
Макет5 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
Макет5.Область(0, 6, 1, 6).Видимость = Ложь;
УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет4, Макет5, Истина, "Таблицы 4 и 5 должны совпадать, а они различны!");
КонецПроцедуры
&НаКлиенте
Процедура Тест_ДолженПроверитьРавенствоТабличныхДокументовСоСкрытымиСтроками() Экспорт
Макет1 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
Макет2 = ПолучитьМакет("СозданиеОдногоПользователяИБ_УФ");
Макет1.Область(6,, 6).Видимость = Ложь;
Макет2.Область(6,, 6).Видимость = Ложь;
УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет2,, Истина, "Таблицы 1 и 2 должны совпадать, а они различны!");
//Макет3 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
//Макет3.ВставитьОбласть(Макет2.Область(2,, 2), Макет3.Область(1,, 1), ТипСмещенияТабличногоДокумента.ПоВертикали);
//Макет3.Область(1,, 1).Видимость = Ложь;
//
//УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет3,, Истина, "Таблицы 1 и 3 должны совпадать, а они различны!");
Макет4 = ПолучитьМакет("СозданиеОдногоПользователяИБ");
Макет4.Область(1,, 1).Видимость = Ложь;
УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Макет1, Макет4, "Таблицы 1 и 4 должны совпадать, а они различны!");
КонецПроцедуры
&НаСервере
Функция ПолучитьМакет(ИмяМакета)
ОсновнойОбъект = ОсновнойОбъект();
Макет = ОсновнойОбъект.ПолучитьМакет(ИмяМакета);
Макет2 = Новый ТабличныйДокумент;
Макет2.Вывести(Макет);
Возврат Макет2;
КонецФункции
&НаСервере
Функция ОсновнойОбъект()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
//}
\ No newline at end of file
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/maps.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/maps.txt"
index 49648942..5977a928 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/maps.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/maps.txt"
@@ -1,4 +1,4 @@
-Form\Форма\Форма.txt-->fde46a88-2879-4ff4-b1eb-6a5e7c2cbafa.0 (29, 154)
+Form\Форма\Форма.bsl-->fde46a88-2879-4ff4-b1eb-6a5e7c2cbafa.0 (29, 154)
Макеты\СозданиеОдногоПользователяИБ_СоСкрытойКолонкой.mxl-->e91aafdf-ef58-4ed3-b426-4baf984d368e.0
Макеты\СозданиеОдногоПользователяИБ_УФ.mxl-->21e58e83-24b5-4a1b-81aa-940391b10b11.0
Макеты\СозданиеОдногоПользователяИБ.mxl-->6baf118e-696d-404d-9ad0-3b66c2730177.0
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/renames.txt"
index 168bc9c0..e19b5d50 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\242\320\260\320\261\320\273\320\270\321\206/renames.txt"
@@ -4,7 +4,7 @@
6baf118e-696d-404d-9ad0-3b66c2730177.0-->und\6baf118e-696d-404d-9ad0-3b66c2730177.0
7fee0032-60d2-407f-8cb4-61ed1c95ba08-->und\7fee0032-60d2-407f-8cb4-61ed1c95ba08
81c30b94-2b30-4e2d-b046-69aa3fc912ab.0\info-->und\81c30b94-2b30-4e2d-b046-69aa3fc912ab.0\info
-81c30b94-2b30-4e2d-b046-69aa3fc912ab.0\text-->ObjectModule.txt
+81c30b94-2b30-4e2d-b046-69aa3fc912ab.0\text-->ObjectModule.bsl
copyinfo-->und\copyinfo
e91aafdf-ef58-4ed3-b426-4baf984d368e-->und\e91aafdf-ef58-4ed3-b426-4baf984d368e
e91aafdf-ef58-4ed3-b426-4baf984d368e.0-->und\e91aafdf-ef58-4ed3-b426-4baf984d368e.0
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\244\320\260\320\271\320\273\320\276\320\262/ObjectModule.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\244\320\260\320\271\320\273\320\276\320\262/ObjectModule.bsl"
similarity index 100%
rename from "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\244\320\260\320\271\320\273\320\276\320\262/ObjectModule.txt"
rename to "src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\244\320\260\320\271\320\273\320\276\320\262/ObjectModule.bsl"
diff --git "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\244\320\260\320\271\320\273\320\276\320\262/renames.txt" "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\244\320\260\320\271\320\273\320\276\320\262/renames.txt"
index f7d9d03e..011740a3 100644
--- "a/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\244\320\260\320\271\320\273\320\276\320\262/renames.txt"
+++ "b/src/Tests/Plugins/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\276\320\262\320\265\321\200\320\270\321\202\321\214\320\240\320\260\320\262\320\265\320\275\321\201\321\202\320\262\320\276\320\244\320\260\320\271\320\273\320\276\320\262/renames.txt"
@@ -1,5 +1,5 @@
14b97335-3f44-42ce-84bd-44eecba0fb30.0\info-->und\14b97335-3f44-42ce-84bd-44eecba0fb30.0\info
-14b97335-3f44-42ce-84bd-44eecba0fb30.0\text-->ObjectModule.txt
+14b97335-3f44-42ce-84bd-44eecba0fb30.0\text-->ObjectModule.bsl
ce88669a-4b6f-4a4b-89c6-bd7db1a4961b-->und\ce88669a-4b6f-4a4b-89c6-bd7db1a4961b
copyinfo-->und\copyinfo
root-->und\root
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/form" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/form"
new file mode 100644
index 00000000..2ccd38e5
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/form"
@@ -0,0 +1,90 @@
+{27,
+{16,
+{
+{1,1,
+{"ru","Получение формы"}
+},3,4294967295},
+{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
+{1,
+{
+{10,1,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{6,3,0,1},0,
+{3,3,
+{-22}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,3,
+{-7}
+},
+{3,3,
+{-21}
+},
+{3,0,
+{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
+{1,0}
+},21,0,0,0,0,0,0,
+{3,1,
+{3,0,
+{0},"",-1,-1,1,0}
+},0,1,
+{1,1,
+{3,
+{1,1,
+{"ru","Страница1"}
+},
+{3,0,
+{3,0,
+{0},"",-1,-1,1,0}
+},-1,1,1,"Страница1",1}
+},1,1,0,4,
+{2,8,1,1,1,0,0,0,0},
+{2,8,0,1,2,0,0,0,0},
+{2,258,1,1,3,0,0,8,0},
+{2,126,0,1,4,0,0,8,0},0,4294967295,5,64,0},
+{0}
+},
+{0}
+},266,134,1,0,1,4,4,39},
+{
+{-1},1,
+{0},
+{0}
+},
+{00000000-0000-0000-0000-000000000000,0},
+{1,
+{70000,e1692cc2-605b-4535-84dd-28440238746c,
+{3,"ПередОткрытием",
+{1,"ПередОткрытием",
+{1,1,
+{"ru","Перед открытием"}
+},
+{1,1,
+{"ru","Перед открытием"}
+},
+{1,1,
+{"ru","Перед открытием"}
+},
+{3,0,
+{0},"",-1,-1,1,0},
+{0,0,0}
+}
+}
+}
+},1,4,1,0,0,0,
+{0},
+{0},
+{3,0,
+{3,0,
+{0},"",-1,-1,1,0}
+},1,2,0,0,1,1}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/module.bsl" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/module.bsl"
new file mode 100644
index 00000000..1567d067
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/module.bsl"
@@ -0,0 +1,12 @@
+
+Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
+ Отказ = Истина;
+КонецПроцедуры
+
+Функция ПолучитьФормуЛкс(ИмяФормы, Параметры = Неопределено, Владелец = Неопределено, Уникальность = Неопределено, Окно = Неопределено) Экспорт
+
+ Результат = ПолучитьФорму(ИмяФормы, Параметры, Владелец, Уникальность, Окно);
+ Возврат Результат;
+
+КонецФункции
+
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..993935ea
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,448 @@
+&НаКлиенте
+Перем КонтекстЯдра;
+&НаКлиенте
+Перем Ожидаем;
+&НаКлиенте
+Перем Утверждения;
+
+&НаКлиенте
+Перем ТестируемаяФорма;
+
+// { интерфейс тестирования
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
+ Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+ ОписанияТестов = Новый Массив;
+
+ НужноИсключениеЕслиНеНайденоДокументов = Ложь;
+
+ СоздатьИменаОсновныхФорм();
+
+ ТолькоУправляемыеФормы = Истина;
+ //#Если ТонкийКлиент или ВебКлиент Тогда
+ #Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда
+ ТолькоУправляемыеФормы = Ложь;
+ #КонецЕсли
+
+ Если Не ИспользоватьОбычныеФормыВТолстомКлиентеВУправляемомРежимеСервер() Тогда
+ ТолькоУправляемыеФормы = Истина;
+ КонецЕсли;
+
+ Объект.ВыводитьСообщенияВЖурналРегистрации = Истина;
+
+ ИменаОсновныхФорм_Объекты_Сервер = ИменаОсновныхФорм_Объекты_Сервер();
+ мИменаОсновныхФорм_Списки_Сервер = мИменаОсновныхФорм_Списки_Сервер();
+
+ ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер);
+ ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер);
+
+ ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы);
+
+ ОписанияТестов.Добавить("ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение");
+
+ ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов);
+КонецПроцедуры
+
+// } интерфейс тестирования
+
+//{ блок юнит-тестов - САМИ ТЕСТЫ
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+ //Предупреждение("Спец.окно для для показа сообщений из тестов. Таймаут 1 секунда",1); // нужно для показа сообщений из теста, иначе не будут показаны
+
+ ВыводитьСообщенияВЖурналРегистрации = Истина;
+ Объект.ВыводитьСообщенияВЖурналРегистрации = Истина;
+
+ CоздаваемыйЭлемент = Неопределено;
+
+ ОбновитьПовторноИспользуемыеЗначения();
+
+ НужноИсключениеЕслиНеНайденоДокументов = Ложь;
+
+ СоздатьИменаОсновныхФорм();
+
+ //НачатьТранзакциюСервер();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+ //ОтменитьТранзакциюСервер();
+
+ ЗакрытьФорму();
+ УдалитьСозданныйОбъект();
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьСозданныйОбъект()
+ Если ЗначениеЗаполнено(CоздаваемыйЭлемент) Тогда
+ CозданныйОбъект = CоздаваемыйЭлемент.ПолучитьОбъект();
+ CозданныйОбъект.Удалить();
+ КонецЕсли;
+ CоздаваемыйЭлемент = Неопределено;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗакрытьФорму()
+ //Если ТипЗнч(ТестируемаяФорма) <> Тип("Форма") и ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда
+ Если ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда
+ Возврат;
+ КонецЕсли;
+ ТестируемаяФорма.Модифицированность = Ложь;
+ Если ТестируемаяФорма.Открыта() Тогда
+ ТестируемаяФорма.Модифицированность = Ложь;
+ //Попытка
+ ТестируемаяФорма.Закрыть();
+ //Исключение
+ // Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ // ЗакрытьФормуБезусловноСОтменойТранзакции(ТестируемаяФорма);
+ // //Если ТранзакцияАктивна() Тогда
+ // // ОтменитьТранзакцию();
+ // //КонецЕсли;
+ // // //ДобавитьСтрокуРезультата(ИмяОперации, ИнформацияОбОшибке());
+ // //НачатьТранзакцию();
+ // //ТестируемаяФорма.УстановитьДействие("ПередЗакрытием", Неопределено);
+ // //ТестируемаяФорма.УстановитьДействие("ПриЗакрытии", Неопределено);
+ // //ТестируемаяФорма.Закрыть();
+ // ВызватьИсключение Ошибка;
+ //КонецПопытки;
+ Иначе
+ Попытка
+ ТестируемаяФорма.Закрыть();
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+ ТестируемаяФорма = "";
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов)
+ Для Каждого Описание Из ОписанияТестов Цикл
+ Если ТипЗнч(Описание) = Тип("Строка") Тогда
+ НаборТестов.Добавить(Описание);
+ Иначе
+ НаборТестов.Добавить(Описание.ИмяТеста, НаборТестов.ПараметрыТеста(Описание.Параметр), Описание.ПредставлениеТеста);
+ КонецЕсли;
+ КонецЦикла;
+КонецПроцедуры
+
+&НаСервере
+Функция ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер)
+ ОсновнойОбъект = Объект();
+ СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Существующие();
+ СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Новые();
+ СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Списки();
+
+ менеджерМетаданного = Метаданные.Справочники;
+ Для Каждого МетаОбъект Из менеджерМетаданного Цикл
+
+ Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
+ имяТеста = "ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника";
+ ПрефиксПредставленияТеста = "Новые";
+ СписокИсключений = СписокИсключений_Новые;
+ ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЕсли;
+
+ имяТеста = "ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника";
+ ПрефиксПредставленияТеста = "Существующие";
+ СписокИсключений = СписокИсключений_Существующие;
+ ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+
+ имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы";
+ ПрефиксПредставленияТеста = "Списки";
+ СписокИсключений = СписокИсключений_Списки;
+ ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЦикла;
+КонецФункции
+
+&НаСервере
+Функция ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер)
+ ОсновнойОбъект = Объект();
+ СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Существующие();
+ СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Новые();
+ СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Списки();
+
+ менеджерМетаданного = Метаданные.Документы;
+ Для Каждого МетаОбъект Из менеджерМетаданного Цикл
+
+ Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
+ имяТеста = "ТестДолжен_ОткрытьФормуНовогоДокумента";
+ ПрефиксПредставленияТеста = "Новые";
+ СписокИсключений = СписокИсключений_Новые;
+ ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
+ ПроверяемоеПравоДоступа = "ИнтерактивноеДобавление";
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЕсли;
+
+ имяТеста = "ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента";
+ ПрефиксПредставленияТеста = "Существующие";
+ СписокИсключений = СписокИсключений_Существующие;
+ ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+
+ имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы";
+ ПрефиксПредставленияТеста = "Списки";
+ СписокИсключений = СписокИсключений_Списки;
+ ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЦикла;
+КонецФункции
+
+&НаСервере
+Функция ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы)
+ ОсновнойОбъект = Объект();
+
+ ИменаОсновныхФорм = мИменаОсновныхФорм_Сервер();
+ СписокИсключений_Отчеты = ОсновнойОбъект.ПолучитьСписокИсключений_Отчеты();
+ СписокИсключений_Обработки = ОсновнойОбъект.ПолучитьСписокИсключений_Обработки();
+
+ имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы";
+ ПрефиксПредставленияТеста = "";
+
+ ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, Метаданные.Обработки, ТолькоУправляемыеФормы, СписокИсключений_Обработки, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, Метаданные.Отчеты, ТолькоУправляемыеФормы, СписокИсключений_Отчеты, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+КонецФункции
+
+Процедура ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, менеджерМетаданного, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста)
+ Для Каждого МетаОбъект Из менеджерМетаданного Цикл
+ Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
+ Возврат;
+ КонецЕсли;
+ Если Лев(МетаОбъект.Имя, СтрДлина("xddTestRunner")) = "xddTestRunner" Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект,
+ ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста)
+
+ Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
+ Возврат;
+ КонецЕсли;
+
+ CписокИменМетаФорм = Новый СписокЗначений;
+ ДобавитьИменаМетаФормДляОдногоОбъектаМетаданного(CписокИменМетаФорм, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм);
+ ДобавитьТестПоПереданнымМетаФормамСсылочногоОбъектаСервер(ОписанияТестов, CписокИменМетаФорм, имяТеста, ПрефиксПредставленияТеста);
+КонецПроцедуры
+
+Процедура ДобавитьТестМетаФормыСервер(ОписанияТестов, CписокИменМетаФорм, имяТеста)
+ Для каждого Элемент Из CписокИменМетаФорм Цикл
+ МетаФорма_ПолноеИмя = Элемент.Значение;
+ ПредставлениеТеста = МетаФорма_ПолноеИмя;
+ лПараметры = Новый Структура("ПредставлениеТеста,ИмяТеста,Транзакция,Параметр", ПредставлениеТеста, имяТеста, Истина, МетаФорма_ПолноеИмя);
+ ОписанияТестов.Добавить(лПараметры);
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ДобавитьТестПоПереданнымМетаФормамСсылочногоОбъектаСервер(ОписанияТестов, CписокИменМетаФорм, имяТеста, ПрефиксПредставленияТеста)
+ Для каждого Элемент Из CписокИменМетаФорм Цикл
+ МетаФорма_ПолноеИмя = Элемент.Значение;
+ ПредставлениеТеста = МетаФорма_ПолноеИмя;
+ Если НЕ ПустаяСтрока(ПрефиксПредставленияТеста) Тогда
+ ПредставлениеТеста = ПрефиксПредставленияТеста + " : " + МетаФорма_ПолноеИмя;
+ КонецЕсли;
+
+ //Структура = Новый Структура("МетаФорма_ПолноеИмя", МетаФорма_ПолноеИмя);
+ ////Структура = Новый Структура("МетаИмя,МетаФорма_ПолноеИмя", МетаОбъект.Имя, МетаФорма_ПолноеИмя);
+ //лПараметры = Новый Структура("ПредставлениеТеста,ИмяТеста,Транзакция,Параметр", ПредставлениеТеста, имяТеста, Истина, Структура);
+ лПараметры = Новый Структура("ПредставлениеТеста,ИмяТеста,Транзакция,Параметр", ПредставлениеТеста, имяТеста, Истина, МетаФорма_ПолноеИмя);
+ ОписанияТестов.Добавить(лПараметры);
+ КонецЦикла;
+КонецПроцедуры
+
+Функция ИспользоватьОбычныеФормыВТолстомКлиентеВУправляемомРежимеСервер()
+ Возврат Метаданные.ИспользоватьОбычныеФормыВУправляемомПриложении;
+КонецФункции
+
+&НаКлиенте
+Процедура ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы) Экспорт
+//Процедура ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы, Модально = Ложь) Экспорт
+ Если Объект.ВыводитьСообщенияВЖурналРегистрации Тогда
+ ВыполнитьЗаписьВЖурналРегистрации(ПолноеИмяФормы);
+ КонецЕсли;
+
+ КлючВременнойФормы = "908насмь9ыв3245";
+ //Если Модально Тогда
+ // ТестируемаяФорма = ОткрытьФормуМодально(ПолноеИмяФормы, ПараметрыФормы);
+ //Иначе
+ //ошибка ="";
+ //Попытка
+
+ // К сожалению здесь исключения не ловятся https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154
+ ТестируемаяФорма = ОткрытьФорму(ПолноеИмяФормы, ПараметрыФормы,, КлючВременнойФормы);
+
+ //Исключение
+ // ошибка = ОписаниеОшибки();
+ // Предупреждение(" поймали исключение 20" + ошибка);
+ //КонецПопытки;
+ //КонецЕсли;
+ Если ТестируемаяФорма = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ //ТестируемаяФорма.Открыть(); // К сожалению здесь исключения не ловятся http://partners.v8.1c.ru/forum/thread.jsp?id=1080350#1080350
+ Утверждения.Проверить(ТестируемаяФорма.Открыта(), "ТестируемаяФорма """+ПолноеИмяФормы+""" не открылась, а должна была открыться");
+
+ Если ТипЗнч(ТестируемаяФорма) = Тип("УправляемаяФорма") Тогда
+ ТестируемаяФорма.ОбновитьОтображениеДанных();
+ Иначе
+ //Если ЭтоОбычнаяФорма(ТестируемаяФорма) Тогда
+ ТестируемаяФорма.Обновить();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, СсылочныйОбъект)
+ ПараметрыФормы = Новый Структура("Ключ", СсылочныйОбъект);
+ ТестироватьФорму(Мета_ПолноеИмя, ПараметрыФормы);
+КонецПроцедуры
+
+&НаСервере
+Процедура ВыполнитьЗаписьВЖурналРегистрации(ПолноеИмяФормы)
+ ЗаписьЖурналаРегистрации(Объект().Метаданные().Синоним, УровеньЖурналаРегистрации.Информация, , , "Операция: " + ПолноеИмяФормы);
+КонецПроцедуры
+
+Процедура СоздатьИменаОсновныхФорм()
+ ОсновнойОбъект = Объект();
+ ОсновнойОбъект.СоздатьИменаОсновныхФорм();
+ ЗначениеВРеквизитФормы(ОсновнойОбъект, "Объект");
+КонецПроцедуры
+
+&НаСервере
+Функция ИменаОсновныхФорм_Объекты_Сервер()
+ Возврат Объект().мИменаОсновныхФорм_Объекты;
+КонецФункции
+
+&НаСервере
+Функция мИменаОсновныхФорм_Списки_Сервер()
+ Возврат Объект().мИменаОсновныхФорм_Списки;
+КонецФункции
+
+&НаСервере
+Функция мИменаОсновныхФорм_Сервер()
+ Возврат Объект().мИменаОсновныхФорм;
+КонецФункции
+
+&НаСервереБезКонтекста
+Процедура ДобавитьИменаМетаФормДляОдногоОбъектаМетаданного(CписокИменМетаФорм, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, списокИсключений, ИменаОсновныхФорм)
+ Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ Если ПравоДоступа("Просмотр", МетаОбъект) Тогда
+ МетаФормы = ОсновнойОбъект.ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм);
+
+ Для каждого МетаФорма Из МетаФормы Цикл
+ МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя();
+ //Сообщить("МетаФорма_ПолноеИмя <"+МетаФорма_ПолноеИмя+"> ");
+
+ Если ТолькоУправляемыеФормы Тогда
+ //Сообщить("МетаФорма.ТипФормы <"+МетаФорма.ТипФормы+"> ");
+ Если Не ЭтоУправляемаяФорма(МетаФорма) Тогда
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+
+ CписокИменМетаФорм.Добавить(МетаФорма_ПолноеИмя);
+ //ПредставлениеТеста = МетаФорма_ПолноеИмя;
+ //лПараметры = Новый Структура("ПредставлениеТеста,ИмяТеста,Транзакция,Параметр", ПредставлениеТеста, имяТеста, Истина, МетаФорма_ПолноеИмя);
+ //ОписанияТестов.Добавить(лПараметры);
+ КонецЦикла;
+ КонецЕсли;
+КонецПроцедуры
+
+&НаСервереБезКонтекста
+Функция ЭтоУправляемаяФорма(МетаФорма)
+ Возврат МетаФорма <> Неопределено И МетаФорма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая;
+КонецФункции
+
+Функция Объект()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+Функция ПолучитьВидМетаданного(Мета_ПолноеИмя)
+ ИД = Лев(Мета_ПолноеИмя, Найти(Мета_ПолноеИмя, ".Форма.")-1);
+ ИД = Сред(ИД, Найти(ИД, ".") + 1);
+ Возврат ИД;
+КонецФункции
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуПоПолномуИмениФормы(ПолноеИмяФормы) Экспорт
+ ТестироватьФорму(ПолноеИмяФормы, Неопределено);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника(Мета_ПолноеИмя) Экспорт
+ ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочникаСервер(Мета_ПолноеИмя);
+ ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, CоздаваемыйЭлемент);
+КонецПроцедуры
+
+&НаСервере
+Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочникаСервер(Мета_ПолноеИмя)
+ ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
+
+ ОсновнойОбъект = Объект();
+ CоздаваемыйЭлемент = ОсновнойОбъект.СоздатьЭлементИВернутьСсылку(ИД, "существующий");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника(Мета_ПолноеИмя) Экспорт
+ ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуНовогоДокумента(Мета_ПолноеИмя) Экспорт
+ ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента(Мета_ПолноеИмя) Экспорт
+ Док = ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокументаСервер(Мета_ПолноеИмя);
+ Если Док <> Неопределено Тогда
+ ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Док);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаСервере
+Функция ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокументаСервер(Мета_ПолноеИмя)
+ ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
+
+ ОсновнойОбъект = Объект();
+ Док = ОсновнойОбъект.ПолучитьСуществующийДокументОбъектИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоДокументов, "ТестДолжен_ОткрытьФормуСуществующегоДокумента");
+ Возврат Док;
+КонецФункции
+
+// проверка бага https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение() Экспорт
+ Мета_ПолноеИмя = "Обработка.ТестОбработка_Форма_ИсключениеПриОткрытии.Форма.УправляемаяФорма";
+ ошибка ="";
+ Попытка
+ ОткрытьФорму(Мета_ПолноеИмя);
+ Исключение
+ ошибка = ОписаниеОшибки();
+ //Предупреждение("поймали исключение 20"+ ошибка);
+ КонецПопытки;
+ Утверждения.ПроверитьЗаполненность(ошибка, "Ошибка");
+КонецПроцедуры
+
+//}
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl"
new file mode 100644
index 00000000..7c7b557a
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl"
@@ -0,0 +1,587 @@
+Перем КонтекстЯдра;
+Перем Ожидаем;
+Перем Утверждения;
+
+Перем ТестируемаяФорма;
+Перем НужноИсключениеЕслиНеНайденоДокументов;
+
+//{ интерфейс тестирования
+
+// директива препроцессора нужна для исключения ошибки загрузки в толстом клиенте управляемого приложения
+#Если ТолстыйКлиентОбычноеПриложение Тогда
+
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
+ Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
+КонецПроцедуры
+
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+
+ НужноИсключениеЕслиНеНайденоДокументов = Ложь;
+
+ Если НЕ СоздатьФорму_ПолучениеФорм() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СоздатьИменаОсновныхФорм();
+
+ ВыводитьСообщенияВЖурналРегистрации = Истина;
+
+ Для Каждого МетаОбъект Из Метаданные.Справочники Цикл
+ Если ПравоДоступа("Редактирование", МетаОбъект) Тогда
+ ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуСуществующегоЭлементаСправочника", ПолучитьСписокИсключений_Справочники_Существующие(),
+ мИменаОсновныхФорм_Объекты, "Существующие элементы");
+ КонецЕсли;
+
+ Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
+ ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуНовогоЭлементаСправочника", ПолучитьСписокИсключений_Справочники_Новые(),
+ мИменаОсновныхФорм_Объекты, "Новые элементы");
+ КонецЕсли;
+
+ Если ПравоДоступа("Добавление", МетаОбъект) Тогда
+ ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуНовогоЭлементаСправочникаСоздаваемогоКопированием", ПолучитьСписокИсключений_Справочники_Новые(),
+ мИменаОсновныхФорм_Объекты, "Новые через копирование элементы");
+ КонецЕсли;
+
+ ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, "ТестДолжен_ОткрытьФорму_ПоМетаФорме", ПолучитьСписокИсключений_Справочники_Списки(), мИменаОсновныхФорм_Списки);
+ КонецЦикла;
+
+ Для Каждого МетаОбъект Из Метаданные.Документы Цикл
+ Если ПравоДоступа("Редактирование", МетаОбъект) Тогда
+ ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуСуществующегоДокумента", ПолучитьСписокИсключений_Документы_Существующие(),
+ мИменаОсновныхФорм_Объекты, "Существующие документы");
+
+ ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму", ПолучитьСписокИсключений_Документы_ПеренестиДату(),
+ мИменаОсновныхФорм_Объекты, "Перенос документа на текущий день");
+ КонецЕсли;
+
+ Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
+ ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуНовогоДокумента", ПолучитьСписокИсключений_Документы_Новые(),
+ мИменаОсновныхФорм_Объекты, "Новые документы");
+ КонецЕсли;
+
+ ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, "ТестДолжен_ОткрытьФорму_ПоМетаФорме", ПолучитьСписокИсключений_Документы_Списки(), мИменаОсновныхФорм_Списки);
+ КонецЦикла;
+
+ ДобавитьТестПоМенеджеруМетаданных(НаборТестов, Метаданные.Отчеты, "ТестДолжен_ОткрытьФорму_ПоМетаФорме", ПолучитьСписокИсключений_Отчеты(), мИменаОсновныхФорм);
+ ДобавитьТестПоМенеджеруМетаданных(НаборТестов, Метаданные.Обработки, "ТестДолжен_ОткрытьФорму_ПоМетаФорме", ПолучитьСписокИсключений_Обработки(), мИменаОсновныхФорм);
+
+КонецПроцедуры
+
+#КонецЕсли
+
+//}
+
+Процедура ПередЗапускомТеста() Экспорт
+ ВыводитьСообщенияВЖурналРегистрации = Истина;
+
+ НужноИсключениеЕслиНеНайденоДокументов = Ложь;
+
+ СоздатьФорму_ПолучениеФорм();
+
+ НачатьТранзакцию();
+КонецПроцедуры
+
+Процедура ПослеЗапускаТеста() Экспорт
+
+ ЗакрытьФорму();
+
+ Если ТранзакцияАктивна() Тогда
+ ОтменитьТранзакцию();
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ЗакрытьФорму()
+ Если ТипЗнч(ТестируемаяФорма) <> Тип("Форма") и ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда
+ Возврат;
+ КонецЕсли;
+ ТестируемаяФорма.Модифицированность = Ложь;
+ Если ТестируемаяФорма.Открыта() Тогда
+ ТестируемаяФорма.Модифицированность = Ложь;
+ Попытка
+ ТестируемаяФорма.Закрыть();
+ Исключение
+ Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Если ТранзакцияАктивна() Тогда
+ ОтменитьТранзакцию();
+ КонецЕсли;
+
+ НачатьТранзакцию();
+ ТестируемаяФорма.УстановитьДействие("ПередЗакрытием", Неопределено);
+ ТестируемаяФорма.УстановитьДействие("ПриЗакрытии", Неопределено);
+ ТестируемаяФорма.Закрыть();
+ ВызватьИсключение Ошибка;
+ КонецПопытки;
+ Иначе
+ Попытка
+ ТестируемаяФорма.Закрыть();
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+ ТестируемаяФорма = "";
+
+КонецПроцедуры
+
+//{ блок работы с обычными и управляемыми формами - портирован из "Инструменты разработчика"
+Процедура ТестДолжен_ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, ЕстьТранзакция) Экспорт
+ //Если ЕстьТранзакция Тогда
+ // НачатьТранзакцию();
+ //КонецЕсли;
+
+ ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя);
+
+ //Если ЕстьТранзакция Тогда
+ // Если ТранзакцияАктивна() Тогда
+ // ОтменитьТранзакцию();
+ // КонецЕсли;
+ //КонецЕсли;
+КонецПроцедуры
+
+Процедура ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма_Имя = "", СсылкаОбъектаИлиСамОбъект = Неопределено, СоздаватьОбъект = Ложь) Экспорт
+
+ ВыводитьСообщения = Ложь;
+ ВнешнийОбъект = Неопределено;
+ КлючВременнойФормы = "908насмь9ыв";
+
+ ИмяОперации = МетаФорма_ПолноеИмя;
+ Если ВыводитьСообщения Тогда
+ Сообщить(ИмяОперации);
+ КонецЕсли;
+ Если ВыводитьСообщенияВЖурналРегистрации Тогда
+ ЗаписьЖурналаРегистрации(Метаданные().Синоним, УровеньЖурналаРегистрации.Информация, , , "Операция: " + ИмяОперации);
+ КонецЕсли;
+
+ Форма = ПолучитьНовуюФорму(МетаФорма_ПолноеИмя, ВнешнийОбъект, КлючВременнойФормы);
+ Если Форма = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ ЭтоФормаСсылочногоОбъекта = Ложь;
+ Если СсылкаОбъектаИлиСамОбъект <> Неопределено Тогда
+ ЭтоФормаСсылочногоОбъекта = Истина;
+ Иначе
+ Если ЭтоОбычнаяФорма(Форма) Тогда
+ Попытка
+ Пустышка = Форма.ЭтотОбъект.ЭтоНовый();
+ ЭтоФормаСсылочногоОбъекта = Истина;
+ Исключение
+ КонецПопытки;
+ Иначе
+ Если Форма.Параметры.Свойство("Ключ") Тогда
+ Попытка
+ Пустышка = Форма.Параметры.Ключ.Ссылка;
+ ЭтоФормаСсылочногоОбъекта = Истина;
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+ КонецЕсли;
+ Если ЭтоФормаСсылочногоОбъекта Тогда
+ Если ЭтоОбычнаяФорма(Форма) Тогда
+ СсылкаОбъектаИлиСамОбъект = Форма.Ссылка;
+ Иначе
+ СсылкаОбъектаИлиСамОбъект = Форма.Параметры.Ключ;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
+ Если ЭтоФормаСсылочногоОбъекта Тогда
+ Если ЭтоОбычнаяФорма(Форма) Тогда
+ Если СоздаватьОбъект Тогда
+ Если СсылкаОбъектаИлиСамОбъект <> Неопределено Тогда
+ СсылочныйОбъект = СсылкаОбъектаИлиСамОбъект.Скопировать();
+ //Иначе
+ // СсылочныйОбъект = СсылкаОбъектаИлиСамОбъект.Метаданные;
+ КонецЕсли;
+ Иначе
+ СсылочныйОбъект = СсылкаОбъектаИлиСамОбъект;
+ КонецЕсли;
+ Форма = СсылочныйОбъект.ПолучитьФорму(МетаФорма_Имя, , КлючВременнойФормы);
+ Иначе
+ ПараметрыФормы = Новый Структура;
+ ЭтоОбъект = Ложь;
+ Попытка
+ Пустышка = СсылкаОбъектаИлиСамОбъект.ЭтотОбъект;
+ ЭтоОбъект = Истина;
+ Исключение
+ КонецПопытки;
+ Если СоздаватьОбъект Тогда
+ Если Не ЭтоОбъект Тогда
+ ПараметрыФормы.Вставить("ЗначениеКопирования", СсылкаОбъектаИлиСамОбъект);
+ КонецЕсли;
+ ИначеЕсли Не ЭтоОбъект Тогда
+ ПараметрыФормы.Вставить("Ключ", СсылкаОбъектаИлиСамОбъект);
+ КонецЕсли;
+ Форма = ПолучитьФормуЛкс(МетаФорма_ПолноеИмя, ПараметрыФормы, , КлючВременнойФормы);
+ КонецЕсли;
+ КонецЕсли;
+ ТестироватьФорму(Форма, ИмяОперации);
+КонецПроцедуры
+
+Процедура СоздатьИменаОсновныхФорм() Экспорт
+ Если Не ЗначениеЗаполнено(мИменаОсновныхФорм) Тогда
+ мИменаОсновныхФорм = Новый Массив();
+ КонецЕсли;
+ СоздатьИменаОсновныхФорм_Объекты();
+ СоздатьИменаОсновныхФормСписка();
+ Для каждого эл Из мИменаОсновныхФорм_Объекты Цикл
+ мИменаОсновныхФорм.Добавить(эл);
+ КонецЦикла;
+ Для каждого эл Из мИменаОсновныхФорм_Списки Цикл
+ мИменаОсновныхФорм.Добавить(эл);
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура СоздатьИменаОсновныхФорм_Объекты()
+ Если Не ЗначениеЗаполнено(мИменаОсновныхФорм_Объекты) Тогда
+ мИменаОсновныхФорм_Объекты = Новый Массив();
+ КонецЕсли;
+ мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФорма");
+ мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаОбъекта");
+ мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаГруппы");
+ мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаЗаписи");
+ мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаНастроек");
+ мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаСохранения");
+ мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаЗагрузки");
+
+ мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФорма");
+ мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаОбъекта");
+ мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаГруппы");
+ мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаЗаписи");
+ мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаНастроек");
+ мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаСохранения");
+ мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаЗагрузки");
+КонецПроцедуры
+
+Процедура СоздатьИменаОсновныхФормСписка()
+ Если Не ЗначениеЗаполнено(мИменаОсновныхФорм_Списки) Тогда
+ мИменаОсновныхФорм_Списки = Новый Массив();
+ КонецЕсли;
+ мИменаОсновныхФорм_Списки.Добавить("ОсновнаяФормаСписка");
+ мИменаОсновныхФорм_Списки.Добавить("ОсновнаяФормаДляВыбора");
+ мИменаОсновныхФорм_Списки.Добавить("ОсновнаяФормаДляВыбораГруппы");
+ мИменаОсновныхФорм_Списки.Добавить("ОсновнаяФормаКонстант");
+
+ мИменаОсновныхФорм_Списки.Добавить("ДополнительнаяФормаСписка");
+ мИменаОсновныхФорм_Списки.Добавить("ДополнительнаяФормаДляВыбора");
+ мИменаОсновныхФорм_Списки.Добавить("ДополнительнаяФормаДляВыбораГруппы");
+ мИменаОсновныхФорм_Списки.Добавить("ДополнительнаяФормаКонстант");
+КонецПроцедуры
+
+Функция СоздатьФорму_ПолучениеФорм()
+ Попытка
+ мПолучениеФорм = ПолучитьФорму("ПолучениеФорм"); // в управляемом режиме здесь будет ошибка выполнения
+ Возврат Истина;
+ Исключение
+ КонецПопытки;
+ Возврат Ложь;
+КонецФункции
+
+Функция ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм) Экспорт
+
+ ИспользоватьУФ = Метаданные.ИспользоватьУправляемыеФормыВОбычномПриложении;
+ МетаФормы = Новый Массив();
+ Для Каждого ИмяОсновнойФормы Из ИменаОсновныхФорм Цикл
+ Попытка
+ МетаФорма = МетаОбъект[ИмяОсновнойФормы];
+ Исключение
+ Продолжить;
+ КонецПопытки;
+ Если МетаФорма = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+ Если МетаФормы.Найти(МетаФорма) <> Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+ Если НЕ ИспользоватьУФ И МетаФорма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая Тогда
+ Продолжить;
+ КонецЕсли;
+ МетаФормы.Добавить(МетаФорма);
+ КонецЦикла;
+ Возврат МетаФормы;
+
+КонецФункции
+
+Функция ПолучитьФормуЛкс(ИмяФормы, Параметры = Неопределено, Владелец = Неопределено, Уникальность = Неопределено, Окно = Неопределено) Экспорт
+
+ Возврат мПолучениеФорм.ПолучитьФормуЛкс(ИмяФормы, Параметры, Владелец, Уникальность, Окно);
+
+КонецФункции
+
+Функция ПолучитьНовуюФорму(МетаФорма, ВнешнийОбъект = Неопределено, КлючВременнойФормы = Неопределено)
+
+ Форма = ПолучитьФормуЛкс(МетаФорма, , , КлючВременнойФормы); //ирНеглобальный.
+ Возврат Форма;
+
+КонецФункции
+
+Процедура ТестироватьФорму(Форма, ИмяОперации = "") Экспорт
+ ТестируемаяФорма = Форма;
+ Форма.Открыть(); // К сожалению здесь исключения не ловятся http://partners.v8.1c.ru/forum/thread.jsp?id=1080350#1080350
+ Утверждения.Проверить(ТестируемаяФорма.Открыта(), "ТестируемаяФорма """+ИмяОперации+""" не открылась, а должна была открыться");
+
+ // Артур - мой код для доп.проверки формы
+ Если ЭтоОбычнаяФорма(ТестируемаяФорма) Тогда
+ ТестируемаяФорма.Обновить();
+ Иначе
+ ТестируемаяФорма.ОбновитьОтображениеДанных();
+ КонецЕсли;
+
+КонецПроцедуры
+
+//} конец блока работы с управляемыми формами - из "Инструменты разработчика"
+
+Функция ЭтоОбычнаяФорма(Форма)
+ Возврат ТипЗнч(Форма) = Тип("Форма");
+КонецФункции
+
+Процедура ДобавитьТестПоМенеджеруМетаданных(НаборТестов, менеджерМетаданного, имяТеста, списокИсключений, ИменаОсновныхФорм)
+ Для Каждого МетаОбъект Из менеджерМетаданного Цикл
+ ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, имяТеста, списокИсключений, ИменаОсновныхФорм);
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, имяТеста, списокИсключений, ИменаОсновныхФорм)
+ Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ Если ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
+ Возврат;
+ КонецЕсли;
+ Если ПравоДоступа("Просмотр", МетаОбъект) Тогда
+ МетаФормы = ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм);
+
+ Для каждого МетаФорма Из МетаФормы Цикл
+ МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя();
+
+ Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда
+ МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма";
+ КонецЕсли;
+
+ ПредставлениеТеста = МетаФорма_ПолноеИмя;
+ //лПараметры = Новый Структура("ПредставлениеТеста,ИмяТеста,Транзакция,Параметр", ПредставлениеТеста, имяТеста, Истина, МетаФорма_ПолноеИмя);
+ //НаборТестов.Добавить(лПараметры);
+ ЕстьТранзакция = Истина;
+ НаборТестов.Добавить(имяТеста, НаборТестов.ПараметрыТеста(МетаФорма_ПолноеИмя, ЕстьТранзакция), ПредставлениеТеста);
+ КонецЦикла;
+ КонецЕсли;
+КонецПроцедуры
+
+Процедура ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, имяТеста, списокИсключений, ИменаОсновныхФорм, ПрефиксПредставленияТеста)
+ Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ Если ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
+ Возврат;
+ КонецЕсли;
+ Если ПравоДоступа("Просмотр", МетаОбъект) и ПравоДоступа("Добавление", МетаОбъект)
+ Тогда
+ МетаФормы = ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм);
+ Для каждого МетаФорма Из МетаФормы Цикл
+ МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя();
+ ПредставлениеТеста = ПрефиксПредставленияТеста + " : " + МетаФорма_ПолноеИмя;
+ //Структура = Новый Структура("МетаИмя,МетаФорма_ПолноеИмя,МетаФорма", МетаОбъект.Имя, МетаФорма_ПолноеИмя, МетаФорма);
+ //лПараметры = Новый Структура("ПредставлениеТеста,ИмяТеста,Транзакция,Параметр", ПредставлениеТеста, имяТеста, Истина, Структура);
+ //НаборТестов.Добавить(лПараметры);
+ ЕстьТранзакция = Истина;
+ НаборТестов.Добавить(имяТеста, НаборТестов.ПараметрыТеста(МетаОбъект.Имя, МетаФорма_ПолноеИмя, МетаФорма, ЕстьТранзакция), ПредставлениеТеста);
+ КонецЦикла;
+ КонецЕсли;
+КонецПроцедуры
+
+Функция ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Экспорт
+ Возврат Найти(НРег(МетаОбъект.Имя), НРег("Удалить")) = 1;
+КонецФункции
+
+Процедура Тест_ОткрытьФормуСуществующегоДокумента(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
+ ИД = МетаИмя;
+ Док = ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, "Тест_ОткрытьФормуСуществующегоДокумента");
+
+ Если Док <> Неопределено Тогда
+ ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док.Ссылка);
+ КонецЕсли;
+КонецПроцедуры
+
+Процедура Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
+ ИД = МетаИмя;
+ Док = ПолучитьСуществующийДокументОбъект(ИД, Ложь, "Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму");
+ Если Док = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Док.Дата = ТекущаяДата();
+ Док.ОбменДанными.Загрузка = Истина;
+ Док.Записать();
+
+ ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док.Ссылка);
+КонецПроцедуры
+
+Процедура Тест_ОткрытьФормуНовогоДокумента(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
+ ИД = МетаИмя;
+ Док = Документы[ИД].СоздатьДокумент();
+ Мета = Док.Метаданные();
+ Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Мета) Тогда
+ Возврат;
+ КонецЕсли;
+ Если Мета.ДлинаНомера <> 0 Тогда
+ Попытка
+ Док.УстановитьНовыйНомер();
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+
+ ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док, Ложь);
+КонецПроцедуры
+
+Функция ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения)
+ выборка = Документы[ИД].Выбрать(,,, "Дата Убыв");
+ уcпешно = выборка.Следующий();
+ Если Не уcпешно Тогда
+ Если НужноИсключениеЕслиНеНайденоДокументов Тогда
+ ВызватьИсключение ДопОписаниеДляИсключения + ": выборка.Следующий() - не найдено существующих документов! ";
+ Иначе
+ Возврат Неопределено;
+ КонецЕсли;
+ КонецЕсли;
+ Док = выборка.ПолучитьОбъект();
+ Возврат Док;
+КонецФункции
+
+Функция ПолучитьСуществующийДокументОбъектИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения) Экспорт
+ Док = ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения);
+ Возврат ?(Док = Неопределено, Неопределено, Док.Ссылка);
+КонецФункции
+
+Процедура Тест_ОткрытьФормуСуществующегоЭлементаСправочника(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
+ ИД = МетаИмя;
+ Элем = СоздатьЭлемент(ИД, "существующий");
+ ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем.Ссылка);
+КонецПроцедуры
+
+Процедура Тест_ОткрытьФормуНовогоЭлементаСправочника(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
+ ИД = МетаИмя;
+ Элем = Справочники[ИД].СоздатьЭлемент();
+ Мета = Элем.Метаданные();
+ Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Мета) Тогда
+ Возврат;
+ КонецЕсли;
+ Если Мета.ДлинаНаименования <> 0 Тогда
+ Попытка
+ Элем.Наименование = "новый";
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+
+ ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем, Ложь);
+КонецПроцедуры
+
+Процедура Тест_ОткрытьФормуНовогоЭлементаСправочникаСоздаваемогоКопированием(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
+ ИД = МетаИмя;
+ Элем = СоздатьЭлемент(ИД, "копирование", "ИнтерактивноеДобавление");
+ Если Элем = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем.Ссылка, Истина);
+КонецПроцедуры
+
+Функция СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено)
+ Элем = Справочники[ИД].СоздатьЭлемент();
+ Мета = Элем.Метаданные();
+ Если ПроверяемоеПравоДоступа <> Неопределено И НЕ ПравоДоступа(ПроверяемоеПравоДоступа, Мета) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Если Мета.ДлинаНаименования <> 0 Тогда
+ Попытка
+ Элем.Наименование = Наименование;
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+
+ Если Мета.ДлинаКода <> 0 Тогда
+ Элем.УстановитьНовыйКод();
+ КонецЕсли;
+ Элем.ОбменДанными.Загрузка = Истина;
+ Элем.Записать();
+ Возврат Элем;
+КонецФункции
+
+Функция СоздатьЭлементИВернутьСсылку(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено) Экспорт
+ Элем = СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа);
+ Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
+КонецФункции
+
+Функция ПолучитьСписокИсключений_Справочники_Списки() Экспорт
+ Результат = Новый СписокЗначений;
+
+ Результат.Добавить("ирАлгоритмы");
+
+ Возврат Результат;
+КонецФункции
+
+//{ блок переопределения исключений, чтобы не открывать формы
+Функция ПолучитьСписокИсключений_Справочники_Существующие() Экспорт
+ Результат = Новый СписокЗначений;
+
+ Результат.Добавить("ирАлгоритмы");
+
+ Возврат Результат;
+КонецФункции
+
+Функция ПолучитьСписокИсключений_Справочники_Новые() Экспорт
+ Результат = Новый СписокЗначений;
+
+ Результат.Добавить("ирАлгоритмы");
+
+ Возврат Результат;
+КонецФункции
+
+Функция ПолучитьСписокИсключений_Документы_Списки() Экспорт
+ Результат = Новый СписокЗначений;
+
+ //Результат.Добавить("Штрафы");
+
+ Возврат Результат;
+КонецФункции
+
+Функция ПолучитьСписокИсключений_Документы_Существующие() Экспорт
+ Результат = Новый СписокЗначений;
+
+ //Результат.Добавить("Штрафы");
+
+ Возврат Результат;
+КонецФункции
+
+Функция ПолучитьСписокИсключений_Документы_ПеренестиДату() Экспорт
+ Результат = Новый СписокЗначений;
+
+ //Результат.Добавить("Штрафы");
+
+ Возврат Результат;
+КонецФункции
+
+Функция ПолучитьСписокИсключений_Документы_Новые() Экспорт
+ Результат = Новый СписокЗначений;
+
+ Результат.Добавить("Штрафы");
+
+ Возврат Результат;
+КонецФункции
+
+Функция ПолучитьСписокИсключений_Отчеты() Экспорт
+ Результат = Новый СписокЗначений;
+
+ //Результат.Добавить("Цены");
+
+ Возврат Результат;
+КонецФункции
+
+Функция ПолучитьСписокИсключений_Обработки() Экспорт
+ Результат = Новый СписокЗначений;
+
+ Результат.Добавить("ТестОбработка_Форма_ИсключениеПриОткрытии");
+
+ Возврат Результат;
+КонецФункции
+//} конец блока
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt"
new file mode 100644
index 00000000..4beb40fd
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/maps.txt"
@@ -0,0 +1,2 @@
+Form\УправляемаяФорма\Форма.bsl-->45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0 (29, 477)
+Макеты\СозданиеОдногоПользователяИБ.mxl-->724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt"
new file mode 100644
index 00000000..7adcba61
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/renames.txt"
@@ -0,0 +1,13 @@
+45cb56ba-09f2-4931-88c4-1e63a1a8f37c-->und\45cb56ba-09f2-4931-88c4-1e63a1a8f37c
+45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0-->und\45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0
+724d5548-5d6b-4e19-98cf-0ea3ae12c0a7-->und\724d5548-5d6b-4e19-98cf-0ea3ae12c0a7
+724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0-->und\724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0
+be1492ab-bedd-4e13-8827-ed025cda688a-->und\be1492ab-bedd-4e13-8827-ed025cda688a
+be1492ab-bedd-4e13-8827-ed025cda688a.0-->Form\ПолучениеФорм
+copyinfo-->und\copyinfo
+df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0\info-->und\df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0\info
+df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0\text-->ObjectModule.bsl
+eb6420d9-ff9e-4c68-b025-2c1608cec69f-->und\eb6420d9-ff9e-4c68-b025-2c1608cec69f
+root-->und\root
+version-->und\version
+versions-->und\versions
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/45cb56ba-09f2-4931-88c4-1e63a1a8f37c" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/45cb56ba-09f2-4931-88c4-1e63a1a8f37c"
new file mode 100644
index 00000000..c0c30adc
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/45cb56ba-09f2-4931-88c4-1e63a1a8f37c"
@@ -0,0 +1,10 @@
+{1,
+{1,
+{0,
+{9,
+{0,
+{0,0,45cb56ba-09f2-4931-88c4-1e63a1a8f37c},"УправляемаяФорма",
+{1,"ru","Управляемая форма"},""},0,1},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0"
new file mode 100644
index 00000000..2a53f92e
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0"
@@ -0,0 +1,557 @@
+{2,
+{28,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{0},
+{0},1,
+{17,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},9,"ФормаКоманднаяПанель",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{6,3,0,1},
+{0,0,0},1,
+{0,0,1},0,1},0,"","",1,
+{17,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{6,3,0,1},
+{0,0,0},0,0,1}
+},"&НаКлиенте
+Перем КонтекстЯдра;
+&НаКлиенте
+Перем Ожидаем;
+&НаКлиенте
+Перем Утверждения;
+
+&НаКлиенте
+Перем ТестируемаяФорма;
+
+// { интерфейс тестирования
+
+&НаКлиенте
+Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
+ КонтекстЯдра = КонтекстЯдраПараметр;
+ Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения"");
+ Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD"");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
+ ОписанияТестов = Новый Массив;
+
+ НужноИсключениеЕслиНеНайденоДокументов = Ложь;
+
+ СоздатьИменаОсновныхФорм();
+
+ ТолькоУправляемыеФормы = Истина;
+ //#Если ТонкийКлиент или ВебКлиент Тогда
+ #Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда
+ ТолькоУправляемыеФормы = Ложь;
+ #КонецЕсли
+
+ Если Не ИспользоватьОбычныеФормыВТолстомКлиентеВУправляемомРежимеСервер() Тогда
+ ТолькоУправляемыеФормы = Истина;
+ КонецЕсли;
+
+ Объект.ВыводитьСообщенияВЖурналРегистрации = Истина;
+
+ ИменаОсновныхФорм_Объекты_Сервер = ИменаОсновныхФорм_Объекты_Сервер();
+ мИменаОсновныхФорм_Списки_Сервер = мИменаОсновныхФорм_Списки_Сервер();
+
+ ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер);
+ ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер);
+
+ ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы);
+
+ ОписанияТестов.Добавить(""ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение"");
+
+ ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов);
+КонецПроцедуры
+
+// } интерфейс тестирования
+
+//{ блок юнит-тестов - САМИ ТЕСТЫ
+
+&НаКлиенте
+Процедура ПередЗапускомТеста() Экспорт
+ //Предупреждение(""Спец.окно для для показа сообщений из тестов. Таймаут 1 секунда"",1); // нужно для показа сообщений из теста, иначе не будут показаны
+
+ ВыводитьСообщенияВЖурналРегистрации = Истина;
+ Объект.ВыводитьСообщенияВЖурналРегистрации = Истина;
+
+ CоздаваемыйЭлемент = Неопределено;
+
+ ОбновитьПовторноИспользуемыеЗначения();
+
+ НужноИсключениеЕслиНеНайденоДокументов = Ложь;
+
+ СоздатьИменаОсновныхФорм();
+
+ //НачатьТранзакциюСервер();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗапускаТеста() Экспорт
+ //ОтменитьТранзакциюСервер();
+
+ ЗакрытьФорму();
+ УдалитьСозданныйОбъект();
+КонецПроцедуры
+
+&НаСервере
+Процедура УдалитьСозданныйОбъект()
+ Если ЗначениеЗаполнено(CоздаваемыйЭлемент) Тогда
+ CозданныйОбъект = CоздаваемыйЭлемент.ПолучитьОбъект();
+ CозданныйОбъект.Удалить();
+ КонецЕсли;
+ CоздаваемыйЭлемент = Неопределено;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗакрытьФорму()
+ //Если ТипЗнч(ТестируемаяФорма) <> Тип(""Форма"") и ТипЗнч(ТестируемаяФорма) <> Тип(""УправляемаяФорма"") Тогда
+ Если ТипЗнч(ТестируемаяФорма) <> Тип(""УправляемаяФорма"") Тогда
+ Возврат;
+ КонецЕсли;
+ ТестируемаяФорма.Модифицированность = Ложь;
+ Если ТестируемаяФорма.Открыта() Тогда
+ ТестируемаяФорма.Модифицированность = Ложь;
+ //Попытка
+ ТестируемаяФорма.Закрыть();
+ //Исключение
+ // Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ // ЗакрытьФормуБезусловноСОтменойТранзакции(ТестируемаяФорма);
+ // //Если ТранзакцияАктивна() Тогда
+ // // ОтменитьТранзакцию();
+ // //КонецЕсли;
+ // // //ДобавитьСтрокуРезультата(ИмяОперации, ИнформацияОбОшибке());
+ // //НачатьТранзакцию();
+ // //ТестируемаяФорма.УстановитьДействие(""ПередЗакрытием"", Неопределено);
+ // //ТестируемаяФорма.УстановитьДействие(""ПриЗакрытии"", Неопределено);
+ // //ТестируемаяФорма.Закрыть();
+ // ВызватьИсключение Ошибка;
+ //КонецПопытки;
+ Иначе
+ Попытка
+ ТестируемаяФорма.Закрыть();
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+ ТестируемаяФорма = """";
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов)
+ Для Каждого Описание Из ОписанияТестов Цикл
+ Если ТипЗнч(Описание) = Тип(""Строка"") Тогда
+ НаборТестов.Добавить(Описание);
+ Иначе
+ НаборТестов.Добавить(Описание.ИмяТеста, НаборТестов.ПараметрыТеста(Описание.Параметр), Описание.ПредставлениеТеста);
+ КонецЕсли;
+ КонецЦикла;
+КонецПроцедуры
+
+&НаСервере
+Функция ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер)
+ ОсновнойОбъект = Объект();
+ СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Существующие();
+ СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Новые();
+ СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Списки();
+
+ менеджерМетаданного = Метаданные.Справочники;
+ Для Каждого МетаОбъект Из менеджерМетаданного Цикл
+
+ Если ПравоДоступа(""ИнтерактивноеДобавление"", МетаОбъект) Тогда
+ имяТеста = ""ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника"";
+ ПрефиксПредставленияТеста = ""Новые"";
+ СписокИсключений = СписокИсключений_Новые;
+ ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЕсли;
+
+ имяТеста = ""ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника"";
+ ПрефиксПредставленияТеста = ""Существующие"";
+ СписокИсключений = СписокИсключений_Существующие;
+ ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+
+ имяТеста = ""ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"";
+ ПрефиксПредставленияТеста = ""Списки"";
+ СписокИсключений = СписокИсключений_Списки;
+ ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЦикла;
+КонецФункции
+
+&НаСервере
+Функция ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер)
+ ОсновнойОбъект = Объект();
+ СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Существующие();
+ СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Новые();
+ СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Списки();
+
+ менеджерМетаданного = Метаданные.Документы;
+ Для Каждого МетаОбъект Из менеджерМетаданного Цикл
+
+ Если ПравоДоступа(""ИнтерактивноеДобавление"", МетаОбъект) Тогда
+ имяТеста = ""ТестДолжен_ОткрытьФормуНовогоДокумента"";
+ ПрефиксПредставленияТеста = ""Новые"";
+ СписокИсключений = СписокИсключений_Новые;
+ ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
+ ПроверяемоеПравоДоступа = ""ИнтерактивноеДобавление"";
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЕсли;
+
+ имяТеста = ""ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента"";
+ ПрефиксПредставленияТеста = ""Существующие"";
+ СписокИсключений = СписокИсключений_Существующие;
+ ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+
+ имяТеста = ""ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"";
+ ПрефиксПредставленияТеста = ""Списки"";
+ СписокИсключений = СписокИсключений_Списки;
+ ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЦикла;
+КонецФункции
+
+&НаСервере
+Функция ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы)
+ ОсновнойОбъект = Объект();
+
+ ИменаОсновныхФорм = мИменаОсновныхФорм_Сервер();
+ СписокИсключений_Отчеты = ОсновнойОбъект.ПолучитьСписокИсключений_Отчеты();
+ СписокИсключений_Обработки = ОсновнойОбъект.ПолучитьСписокИсключений_Обработки();
+
+ имяТеста = ""ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"";
+ ПрефиксПредставленияТеста = """";
+
+ ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, Метаданные.Обработки, ТолькоУправляемыеФормы, СписокИсключений_Обработки, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, Метаданные.Отчеты, ТолькоУправляемыеФормы, СписокИсключений_Отчеты, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+КонецФункции
+
+Процедура ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, менеджерМетаданного, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста)
+ Для Каждого МетаОбъект Из менеджерМетаданного Цикл
+ Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
+ Возврат;
+ КонецЕсли;
+ Если Лев(МетаОбъект.Имя, СтрДлина(""xddTestRunner"")) = ""xddTestRunner"" Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект,
+ ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста)
+
+ Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
+ Возврат;
+ КонецЕсли;
+
+ CписокИменМетаФорм = Новый СписокЗначений;
+ ДобавитьИменаМетаФормДляОдногоОбъектаМетаданного(CписокИменМетаФорм, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм);
+ ДобавитьТестПоПереданнымМетаФормамСсылочногоОбъектаСервер(ОписанияТестов, CписокИменМетаФорм, имяТеста, ПрефиксПредставленияТеста);
+КонецПроцедуры
+
+Процедура ДобавитьТестМетаФормыСервер(ОписанияТестов, CписокИменМетаФорм, имяТеста)
+ Для каждого Элемент Из CписокИменМетаФорм Цикл
+ МетаФорма_ПолноеИмя = Элемент.Значение;
+ ПредставлениеТеста = МетаФорма_ПолноеИмя;
+ лПараметры = Новый Структура(""ПредставлениеТеста,ИмяТеста,Транзакция,Параметр"", ПредставлениеТеста, имяТеста, Истина, МетаФорма_ПолноеИмя);
+ ОписанияТестов.Добавить(лПараметры);
+ КонецЦикла;
+КонецПроцедуры
+
+Процедура ДобавитьТестПоПереданнымМетаФормамСсылочногоОбъектаСервер(ОписанияТестов, CписокИменМетаФорм, имяТеста, ПрефиксПредставленияТеста)
+ Для каждого Элемент Из CписокИменМетаФорм Цикл
+ МетаФорма_ПолноеИмя = Элемент.Значение;
+ ПредставлениеТеста = МетаФорма_ПолноеИмя;
+ Если НЕ ПустаяСтрока(ПрефиксПредставленияТеста) Тогда
+ ПредставлениеТеста = ПрефиксПредставленияТеста + "" : "" + МетаФорма_ПолноеИмя;
+ КонецЕсли;
+
+ //Структура = Новый Структура(""МетаФорма_ПолноеИмя"", МетаФорма_ПолноеИмя);
+ ////Структура = Новый Структура(""МетаИмя,МетаФорма_ПолноеИмя"", МетаОбъект.Имя, МетаФорма_ПолноеИмя);
+ //лПараметры = Новый Структура(""ПредставлениеТеста,ИмяТеста,Транзакция,Параметр"", ПредставлениеТеста, имяТеста, Истина, Структура);
+ лПараметры = Новый Структура(""ПредставлениеТеста,ИмяТеста,Транзакция,Параметр"", ПредставлениеТеста, имяТеста, Истина, МетаФорма_ПолноеИмя);
+ ОписанияТестов.Добавить(лПараметры);
+ КонецЦикла;
+КонецПроцедуры
+
+Функция ИспользоватьОбычныеФормыВТолстомКлиентеВУправляемомРежимеСервер()
+ Возврат Метаданные.ИспользоватьОбычныеФормыВУправляемомПриложении;
+КонецФункции
+
+&НаКлиенте
+Процедура ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы) Экспорт
+//Процедура ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы, Модально = Ложь) Экспорт
+ Если Объект.ВыводитьСообщенияВЖурналРегистрации Тогда
+ ВыполнитьЗаписьВЖурналРегистрации(ПолноеИмяФормы);
+ КонецЕсли;
+
+ КлючВременнойФормы = ""908насмь9ыв3245"";
+ //Если Модально Тогда
+ // ТестируемаяФорма = ОткрытьФормуМодально(ПолноеИмяФормы, ПараметрыФормы);
+ //Иначе
+ //ошибка ="""";
+ //Попытка
+
+ // К сожалению здесь исключения не ловятся https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154
+ ТестируемаяФорма = ОткрытьФорму(ПолноеИмяФормы, ПараметрыФормы,, КлючВременнойФормы);
+
+ //Исключение
+ // ошибка = ОписаниеОшибки();
+ // Предупреждение("" поймали исключение 20"" + ошибка);
+ //КонецПопытки;
+ //КонецЕсли;
+ Если ТестируемаяФорма = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ //ТестируемаяФорма.Открыть(); // К сожалению здесь исключения не ловятся http://partners.v8.1c.ru/forum/thread.jsp?id=1080350#1080350
+ Утверждения.Проверить(ТестируемаяФорма.Открыта(), ""ТестируемаяФорма """"""+ПолноеИмяФормы+"""""" не открылась, а должна была открыться"");
+
+ Если ТипЗнч(ТестируемаяФорма) = Тип(""УправляемаяФорма"") Тогда
+ ТестируемаяФорма.ОбновитьОтображениеДанных();
+ Иначе
+ //Если ЭтоОбычнаяФорма(ТестируемаяФорма) Тогда
+ ТестируемаяФорма.Обновить();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, СсылочныйОбъект)
+ ПараметрыФормы = Новый Структура(""Ключ"", СсылочныйОбъект);
+ ТестироватьФорму(Мета_ПолноеИмя, ПараметрыФормы);
+КонецПроцедуры
+
+&НаСервере
+Процедура ВыполнитьЗаписьВЖурналРегистрации(ПолноеИмяФормы)
+ ЗаписьЖурналаРегистрации(Объект().Метаданные().Синоним, УровеньЖурналаРегистрации.Информация, , , ""Операция: "" + ПолноеИмяФормы);
+КонецПроцедуры
+
+Процедура СоздатьИменаОсновныхФорм()
+ ОсновнойОбъект = Объект();
+ ОсновнойОбъект.СоздатьИменаОсновныхФорм();
+ ЗначениеВРеквизитФормы(ОсновнойОбъект, ""Объект"");
+КонецПроцедуры
+
+&НаСервере
+Функция ИменаОсновныхФорм_Объекты_Сервер()
+ Возврат Объект().мИменаОсновныхФорм_Объекты;
+КонецФункции
+
+&НаСервере
+Функция мИменаОсновныхФорм_Списки_Сервер()
+ Возврат Объект().мИменаОсновныхФорм_Списки;
+КонецФункции
+
+&НаСервере
+Функция мИменаОсновныхФорм_Сервер()
+ Возврат Объект().мИменаОсновныхФорм;
+КонецФункции
+
+&НаСервереБезКонтекста
+Процедура ДобавитьИменаМетаФормДляОдногоОбъектаМетаданного(CписокИменМетаФорм, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, списокИсключений, ИменаОсновныхФорм)
+ Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ Если ПравоДоступа(""Просмотр"", МетаОбъект) Тогда
+ МетаФормы = ОсновнойОбъект.ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм);
+
+ Для каждого МетаФорма Из МетаФормы Цикл
+ МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя();
+ //Сообщить(""МетаФорма_ПолноеИмя <""+МетаФорма_ПолноеИмя+""> "");
+
+ Если ТолькоУправляемыеФормы Тогда
+ //Сообщить(""МетаФорма.ТипФормы <""+МетаФорма.ТипФормы+""> "");
+ Если Не ЭтоУправляемаяФорма(МетаФорма) Тогда
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+
+ CписокИменМетаФорм.Добавить(МетаФорма_ПолноеИмя);
+ //ПредставлениеТеста = МетаФорма_ПолноеИмя;
+ //лПараметры = Новый Структура(""ПредставлениеТеста,ИмяТеста,Транзакция,Параметр"", ПредставлениеТеста, имяТеста, Истина, МетаФорма_ПолноеИмя);
+ //ОписанияТестов.Добавить(лПараметры);
+ КонецЦикла;
+ КонецЕсли;
+КонецПроцедуры
+
+&НаСервереБезКонтекста
+Функция ЭтоУправляемаяФорма(МетаФорма)
+ Возврат МетаФорма <> Неопределено И МетаФорма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая;
+КонецФункции
+
+Функция Объект()
+ Возврат РеквизитФормыВЗначение(""Объект"");
+КонецФункции
+
+Функция ПолучитьВидМетаданного(Мета_ПолноеИмя)
+ ИД = Лев(Мета_ПолноеИмя, Найти(Мета_ПолноеИмя, "".Форма."")-1);
+ ИД = Сред(ИД, Найти(ИД, ""."") + 1);
+ Возврат ИД;
+КонецФункции
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуПоПолномуИмениФормы(ПолноеИмяФормы) Экспорт
+ ТестироватьФорму(ПолноеИмяФормы, Неопределено);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника(Мета_ПолноеИмя) Экспорт
+ ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочникаСервер(Мета_ПолноеИмя);
+ ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, CоздаваемыйЭлемент);
+КонецПроцедуры
+
+&НаСервере
+Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочникаСервер(Мета_ПолноеИмя)
+ ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
+
+ ОсновнойОбъект = Объект();
+ CоздаваемыйЭлемент = ОсновнойОбъект.СоздатьЭлементИВернутьСсылку(ИД, ""существующий"");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника(Мета_ПолноеИмя) Экспорт
+ ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуНовогоДокумента(Мета_ПолноеИмя) Экспорт
+ ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента(Мета_ПолноеИмя) Экспорт
+ Док = ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокументаСервер(Мета_ПолноеИмя);
+ Если Док <> Неопределено Тогда
+ ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Док);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаСервере
+Функция ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокументаСервер(Мета_ПолноеИмя)
+ ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
+
+ ОсновнойОбъект = Объект();
+ Док = ОсновнойОбъект.ПолучитьСуществующийДокументОбъектИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоДокументов, ""ТестДолжен_ОткрытьФормуСуществующегоДокумента"");
+ Возврат Док;
+КонецФункции
+
+// проверка бага https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154
+&НаКлиенте
+Процедура ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение() Экспорт
+ Мета_ПолноеИмя = ""Обработка.ТестОбработка_Форма_ИсключениеПриОткрытии.Форма.УправляемаяФорма"";
+ ошибка ="""";
+ Попытка
+ ОткрытьФорму(Мета_ПолноеИмя);
+ Исключение
+ ошибка = ОписаниеОшибки();
+ //Предупреждение(""поймали исключение 20""+ ошибка);
+ КонецПопытки;
+ Утверждения.ПроверитьЗаполненность(ошибка, ""Ошибка"");
+КонецПроцедуры
+
+//}
+",
+{4,3,
+{9,
+{1},0,"Объект",
+{1,0},
+{"Pattern",
+{"#",d7763d54-e3e8-4427-b006-786d44023817}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},1,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{2},0,"CоздаваемыйЭлемент",
+{1,1,
+{"ru","Cоздаваемый элемент"}
+},
+{"Pattern",
+{"#",280f5f0e-9c8a-49cc-bf6d-4d296cc17a63}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{3},0,"НужноИсключениеЕслиНеНайденоДокументов",
+{1,1,
+{"ru","Нужно исключение если не найдено документов"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
+},
+{0,0},
+{0,0},
+{0,0},
+{0,0}
+}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/724d5548-5d6b-4e19-98cf-0ea3ae12c0a7" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/724d5548-5d6b-4e19-98cf-0ea3ae12c0a7"
new file mode 100644
index 00000000..6650d9e6
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/724d5548-5d6b-4e19-98cf-0ea3ae12c0a7"
@@ -0,0 +1,6 @@
+{1,
+{2,0,
+{0,
+{0,0,724d5548-5d6b-4e19-98cf-0ea3ae12c0a7},"СозданиеОдногоПользователяИБ",
+{1,"ru","Создание одного пользователя ИБ"},""}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0"
new file mode 100644
index 00000000..eec1bc63
Binary files /dev/null and "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0" differ
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/be1492ab-bedd-4e13-8827-ed025cda688a" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/be1492ab-bedd-4e13-8827-ed025cda688a"
new file mode 100644
index 00000000..d24d3482
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/be1492ab-bedd-4e13-8827-ed025cda688a"
@@ -0,0 +1,10 @@
+{1,
+{1,
+{0,
+{9,
+{0,
+{0,0,be1492ab-bedd-4e13-8827-ed025cda688a},"ПолучениеФорм",
+{1,"ru","Получение форм"},""},0,0},
+{0}
+}
+},0}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/copyinfo" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/copyinfo"
new file mode 100644
index 00000000..161ac217
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/copyinfo"
@@ -0,0 +1,20 @@
+{4,
+{3,
+{45cb56ba-09f2-4931-88c4-1e63a1a8f37c,45cb56ba-09f2-4931-88c4-1e63a1a8f37c,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"УправляемаяФорма"}
+},
+{5fafd470-b0a2-485b-b255-a3b8faa26fb7,5fafd470-b0a2-485b-b255-a3b8faa26fb7,1,
+{9cd510cd-abfc-11d4-9434-004095e12fc7,"xUnitFor1C"}
+},
+{df099fc3-03ed-44c9-a8dd-e95a1e8978ff,df099fc3-03ed-44c9-a8dd-e95a1e8978ff,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"Тесты_ОткрытиеФормКонфигурации"}
+}
+},
+{2,
+{280f5f0e-9c8a-49cc-bf6d-4d296cc17a63,5fafd470-b0a2-485b-b255-a3b8faa26fb7,0},
+{d7763d54-e3e8-4427-b006-786d44023817,df099fc3-03ed-44c9-a8dd-e95a1e8978ff,0}
+},
+{0},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0/info" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0/info"
new file mode 100644
index 00000000..c70b5f39
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0/info"
@@ -0,0 +1 @@
+{3,1,0,"",0}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/eb6420d9-ff9e-4c68-b025-2c1608cec69f" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/eb6420d9-ff9e-4c68-b025-2c1608cec69f"
new file mode 100644
index 00000000..1719521f
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/eb6420d9-ff9e-4c68-b025-2c1608cec69f"
@@ -0,0 +1,115 @@
+{1,
+{eb6420d9-ff9e-4c68-b025-2c1608cec69f},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,d7763d54-e3e8-4427-b006-786d44023817,4eac2e4e-b966-477c-8f8b-b4f3c988a024,
+{0,
+{0,
+{0,0,df099fc3-03ed-44c9-a8dd-e95a1e8978ff},"Тесты_ОткрытиеФормКонфигурации",
+{1,"ru","Тесты ""Открытие форм конфигурации"""},""}
+},00000000-0000-0000-0000-000000000000,"",45cb56ba-09f2-4931-88c4-1e63a1a8f37c},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,1,724d5548-5d6b-4e19-98cf-0ea3ae12c0a7},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,be1492ab-bedd-4e13-8827-ed025cda688a,45cb56ba-09f2-4931-88c4-1e63a1a8f37c},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,5,
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,0d576d83-e0f1-4407-8839-678e97084eb9},"мИменаОсновныхФорм",
+{1,"ru","Имена основных форм"},""},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,f465a06e-6fbe-4913-a502-3efe7fde4644},"мИменаОсновныхФорм_Списки",
+{1,"ru","М имена основных форм списки"},""},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,c4204ca8-31c8-4d16-b26c-bb95f5a4346a},"мИменаОсновныхФорм_Объекты",
+{1,"ru","М имена основных форм объекты"},""},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,bcb9322e-f0c7-41a1-94cc-2d93e673140e},"мПолучениеФорм",
+{1,"ru","М получение форм"},""},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,585b82f6-6309-4ef7-bada-4bca196ee5a4},"ВыводитьСообщенияВЖурналРегистрации",
+{1,"ru","Выводить сообщения в журнал регистрации"},""},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
+},0}
+}
+}
+}
+}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/root" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/root"
new file mode 100644
index 00000000..647bb3c0
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/root"
@@ -0,0 +1 @@
+{2,eb6420d9-ff9e-4c68-b025-2c1608cec69f,}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/version" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/version"
new file mode 100644
index 00000000..c23bfe28
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/version"
@@ -0,0 +1,3 @@
+{
+{216,0}
+}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions"
new file mode 100644
index 00000000..80cb9dad
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/und/versions"
@@ -0,0 +1 @@
+{1,15,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7",8cde62c4-4f58-49e3-b280-bde8636b9f52,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0",5c5f49aa-474a-436e-9326-367bad966277,"",2aae372a-3b67-4ed4-a917-49e1a8bd72a5,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff",950cbccd-96c4-452a-960d-5052c58af474,"versions",85112c73-1e71-4f93-83a4-f258600df1f1,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0",77fc7aa8-0e17-4380-8282-310d64571436,"root",c6b06d22-296c-45e7-8ccb-15f1bdd63047,"be1492ab-bedd-4e13-8827-ed025cda688a.0",b1dc867f-6a17-40d7-9b62-fec5d5c2f358,"be1492ab-bedd-4e13-8827-ed025cda688a.1",0e88792e-dd94-4a89-986a-1d559f2cafdc,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c",16b57beb-8e9a-48a4-9ab1-07bd3be8fd4d,"be1492ab-bedd-4e13-8827-ed025cda688a",4f96211e-8187-4752-aceb-3c7fdb224139,"version",fd18a8b2-d488-467e-a3b8-0e2ebcde5a14,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0",f3890c2f-e0f7-4750-8761-aa2c872d5be3,"eb6420d9-ff9e-4c68-b025-2c1608cec69f",c0c2bfbe-f553-453c-9839-3218801ba9ca,"copyinfo",9fe49b4b-c4df-431c-b5d6-aa2440a632fa}
\ No newline at end of file
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl"
new file mode 100644
index 00000000..eec1bc63
Binary files /dev/null and "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.mxl" differ
diff --git "a/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt" "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt"
new file mode 100644
index 00000000..bb520624
--- /dev/null
+++ "b/src/Tests/Smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\234\320\260\320\272\320\265\321\202\321\213/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221_mxl.txt"
@@ -0,0 +1,8 @@
+Тип Вид ИмяПеременной ТЧ Реквизит Значение Режим
+ПользовательИБ Пользователь1
+ Имя ТестИмя
+ ОсновнойИнтерфейс СтаршийРегион
+ Пароль
+ Роли
+ Роль тестДоступКВнешнимОбработкам
+ Роль СтаршийРегион
\ No newline at end of file
diff --git "a/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/ObjectModule.txt" "b/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/ObjectModule.bsl"
similarity index 85%
rename from "src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/ObjectModule.txt"
rename to "src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/ObjectModule.bsl"
index 7666ecd1..c91b7e35 100644
--- "a/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/ObjectModule.txt"
+++ "b/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/ObjectModule.bsl"
@@ -5,6 +5,11 @@
Перем Конвертер;
+// Переменная с путем к обработке в файловой системы
+// Используется в случаях, когда обработка запущена из встроенного в конфигурацию браузера тестов,
+// т.к. в этом случае в свойстве ИспользуемоеИмяФайла содержится адрес временного хранилища, а не непосредственный путь
+Перем ПутьКФайлуПолный Экспорт;
+
//{ интерфейс тестирования
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
@@ -89,8 +94,21 @@
//{ блок юнит-тестов - сами тесты
Процедура ПередЗапускомТеста() Экспорт
- Конвертер = ВнешниеОбработки.Создать(ПутьКонвертера(), Ложь);
- Конвертер.Инициализация();
+ Если КонтекстЯдра <> Неопределено
+ И КонтекстЯдра.ЭтоВстроеннаяОбработка Тогда
+ ИдентификаторКонвертераСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы("xddTestsConvertIntoRebornFormat", КонтекстЯдра.ИспользуемыйПрефиксПодсистемы);
+ Конвертер = Обработки[ИдентификаторКонвертераСПрефиксомПодсистемы].Создать();
+ Если ПеременнаяСодержитСвойство(Конвертер, "ИспользуемыйПрефиксПодсистемы") Тогда
+ Конвертер.ИспользуемыйПрефиксПодсистемы = КонтекстЯдра.ИспользуемыйПрефиксПодсистемы;
+ КонецЕсли;
+ Иначе
+ Конвертер = ВнешниеОбработки.Создать(ПутьКонвертера(), Ложь);
+ КонецЕсли;
+ СлужебныеПараметрыБраузераТестов = КонтекстЯдра.СлужебныеПараметрыОбработки();
+ Если ПеременнаяСодержитСвойство(ЭтотОбъект, "ИспользуемоеИмяФайла") Тогда
+ СлужебныеПараметрыБраузераТестов.Вставить("ИспользуемоеИмяФайла", ИспользуемоеИмяФайла);
+ КонецЕсли;
+ Конвертер.Инициализация(СлужебныеПараметрыБраузераТестов);
КонецПроцедуры
Процедура ТестДолжен_ВыполнитьИнициализацию() Экспорт
@@ -334,4 +352,66 @@
Возврат КаталогПроекта() + "\utils\xddTestsConvertIntoRebornFormat.epf";
КонецФункции
-//}
\ No newline at end of file
+//}
+
+// { Подсистема конфигурации xUnitFor1C
+
+// Универсальная функция для проверки наличия
+// свойств у значения любого типа данных
+// Переменные:
+// 1. Переменная - переменная любого типа,
+// для которой необходимо проверить наличие свойства
+// 2. ИмяСвойства - переменная типа "Строка",
+// содержащая искомое свойства
+//
+Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства)
+ // Инициализируем структуру для теста
+ // с ключом (значение переменной "ИмяСвойства")
+ // и значением произвольного GUID'а
+ GUIDПроверка = Новый УникальныйИдентификатор;
+ СтруктураПроверка = Новый Структура;
+ СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
+ // Заполняем созданную структуру из переданного
+ // значения переменной
+ ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
+ // Если значение для свойства структуры осталось
+ // NULL, то искомое свойство не найдено,
+ // и наоборот.
+ Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда
+ Возврат Ложь;
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+КонецФункции
+
+Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы)
+
+ Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+ Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
+ Возврат Идентификатор;
+ Иначе
+ Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+
+Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы)
+
+ Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+ Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
+ Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса);
+ Иначе
+ Возврат Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
\ No newline at end of file
diff --git "a/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/renames.txt" "b/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/renames.txt"
index c61ad6fb..3be0174b 100644
--- "a/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/renames.txt"
+++ "b/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/renames.txt"
@@ -31,7 +31,7 @@
aa6a8c8d-aaf9-45a8-8df1-0acd6747775e-->und\aa6a8c8d-aaf9-45a8-8df1-0acd6747775e
aa6a8c8d-aaf9-45a8-8df1-0acd6747775e.0-->und\aa6a8c8d-aaf9-45a8-8df1-0acd6747775e.0
aad28daf-f05d-42da-9bf6-51e89ff6a46b.0\info-->und\aad28daf-f05d-42da-9bf6-51e89ff6a46b.0\info
-aad28daf-f05d-42da-9bf6-51e89ff6a46b.0\text-->ObjectModule.txt
+aad28daf-f05d-42da-9bf6-51e89ff6a46b.0\text-->ObjectModule.bsl
bc8ef2c0-98ae-4f7b-9b02-f680f8384843-->und\bc8ef2c0-98ae-4f7b-9b02-f680f8384843
bc8ef2c0-98ae-4f7b-9b02-f680f8384843.0-->und\bc8ef2c0-98ae-4f7b-9b02-f680f8384843.0
ca759f78-0cac-471b-972d-06c9844ad3a2-->und\ca759f78-0cac-471b-972d-06c9844ad3a2
diff --git "a/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/und/e5530449-dd2d-4841-821e-38808447be38" "b/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/und/e5530449-dd2d-4841-821e-38808447be38"
index 59d48c28..90a93e6f 100644
--- "a/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/und/e5530449-dd2d-4841-821e-38808447be38"
+++ "b/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/und/e5530449-dd2d-4841-821e-38808447be38"
@@ -4,9 +4,9 @@
{1,
{4,57ce6eef-6a19-4072-ac8d-1e182077323a,884bd83a-385d-4381-a7cd-4b51de43f593,
{0,
-{0,
+{1,
{0,0,aad28daf-f05d-42da-9bf6-51e89ff6a46b},"Тест_КонвертацияТестов_в_версию4",
-{1,"ru","Тест конвертация тестов в версию4"},""}
+{1,"ru","Тест конвертация тестов в версию 4"},"",0,0}
},00000000-0000-0000-0000-000000000000,"",00000000-0000-0000-0000-000000000000},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,23,908b5599-e977-4e6c-8401-3f12bf12e2a3,165fbf6e-41ca-41fa-9329-f226fbf60fcf,594174ed-87e8-4b21-b5c2-4b9936964fbe,dc252f32-bece-4b36-a154-7e1456abc42b,0820522a-cd7b-498a-8767-4a1a17c6a313,9445dc5b-81cf-4d1e-9e20-07042b93755a,8b6e0649-e316-4007-95d6-0240e751b4e0,94ed5fcb-e54f-4e79-9818-d9c006e798df,e71cb439-e78b-48d4-90ca-3055c334364b,945f1fbd-df8f-41cd-b30a-803da0bb591a,5f1fcb9b-1780-4484-8c6f-b54997875be3,da854782-15ef-4d88-8ea7-9606248465ef,bc8ef2c0-98ae-4f7b-9b02-f680f8384843,e9fbe396-a267-46f4-8472-0e03be464c2a,5b867d65-eb17-4da4-9cbd-850c1dd2585b,eaaa971d-cd10-4a58-ac2c-453a08f3e31c,aa6a8c8d-aaf9-45a8-8df1-0acd6747775e,5bea2e8a-f556-4c03-8234-4590f8041b1d,0074f89e-172f-4cb5-9d37-90f51ebfdf83,7763d64e-6a6b-4a34-af48-d041bc88e244,ca759f78-0cac-471b-972d-06c9844ad3a2,267c63bb-1a07-4f2a-80b7-e1ed526a9d8e,1facde36-00e4-442d-b52c-0c8e26d731fe},
diff --git "a/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/und/versions" "b/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/und/versions"
index 29f610cf..d3b59a72 100644
--- "a/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/und/versions"
+++ "b/src/Tests/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/und/versions"
@@ -1 +1 @@
-{1,55,"",e9e95310-0cc2-4049-b82a-1691ce1598cd,"e9fbe396-a267-46f4-8472-0e03be464c2a.0",9aea1bb2-ed53-4adf-ad5c-d9484768331b,"5b867d65-eb17-4da4-9cbd-850c1dd2585b",2e2d6fc0-0604-4501-807c-59b0c991eb6b,"5f1fcb9b-1780-4484-8c6f-b54997875be3.0",4f577650-54ec-48b7-8d50-be65cc200b52,"8b6e0649-e316-4007-95d6-0240e751b4e0",5b97519d-9182-4da7-85ec-c3056dfa2d36,"eaaa971d-cd10-4a58-ac2c-453a08f3e31c",0e7d87b7-315f-4a29-b111-1ae91f085b32,"aa6a8c8d-aaf9-45a8-8df1-0acd6747775e",9268a0ae-8a75-409e-b1ef-ef178ec2a998,"copyinfo",d89f7605-66db-4038-9401-0053ef95c466,"9445dc5b-81cf-4d1e-9e20-07042b93755a",b004673a-0a13-40a9-b429-1a6375fe1356,"ca759f78-0cac-471b-972d-06c9844ad3a2.0",69588c04-4c3e-4067-bb8e-a8f5029e7cda,"165fbf6e-41ca-41fa-9329-f226fbf60fcf",7d866af2-b663-4c46-afef-0bb0e8ef0986,"versions",0248c68a-87d4-4d59-9099-045207c05cb0,"5b867d65-eb17-4da4-9cbd-850c1dd2585b.0",5a471482-e6e9-4e79-a645-8870107f475f,"1facde36-00e4-442d-b52c-0c8e26d731fe",cfcec375-dd06-41fc-b0c3-4906731e3353,"97fdadb1-8930-4792-a51e-fd59af2c5cb1",583e35b8-470a-4735-b8b8-a0fcfc94bf09,"0074f89e-172f-4cb5-9d37-90f51ebfdf83.0",f4a372e1-dabc-464a-912d-e88ad95f0482,"94ed5fcb-e54f-4e79-9818-d9c006e798df",8a246ed3-171d-473b-8cc7-e69c7fbc3e59,"bc8ef2c0-98ae-4f7b-9b02-f680f8384843.0",b310cc0d-c34f-4ce9-affa-00801f138624,"908b5599-e977-4e6c-8401-3f12bf12e2a3",ea9f3d27-8ef3-4d09-8811-ff1344349c1e,"bc8ef2c0-98ae-4f7b-9b02-f680f8384843",12341893-9ea8-4913-872d-29b09877c54e,"dc252f32-bece-4b36-a154-7e1456abc42b.0",6bf792f6-e4ae-4c92-81b1-420bf6b271d9,"dc252f32-bece-4b36-a154-7e1456abc42b",7cba6c2e-de68-4977-b315-5baa5a9c6cb2,"594174ed-87e8-4b21-b5c2-4b9936964fbe.0",42255578-1c3c-4071-9d06-cdbfbf995d08,"945f1fbd-df8f-41cd-b30a-803da0bb591a.0",71e920c3-bba3-4af1-a9c4-89cf9973456f,"root",ba9e9269-06b7-4ed9-b449-22aa9489c87f,"7763d64e-6a6b-4a34-af48-d041bc88e244.0",3a5aec1e-e8d1-48fb-a3f1-aa1435988703,"e9fbe396-a267-46f4-8472-0e03be464c2a",fa427f3c-22aa-4f64-a598-5aa6cd97fad3,"594174ed-87e8-4b21-b5c2-4b9936964fbe",9ebabc6d-2cd2-4c63-9cfd-788a38eba60d,"9445dc5b-81cf-4d1e-9e20-07042b93755a.0",c50b1a6c-4820-4b72-9ec3-9a5af6d0cf90,"165fbf6e-41ca-41fa-9329-f226fbf60fcf.0",98a8d35d-b8d5-468b-b23c-25ef049f6ae1,"da854782-15ef-4d88-8ea7-9606248465ef.0",ca3ccaf1-6868-4280-9207-0ff4e7d5c524,"8b6e0649-e316-4007-95d6-0240e751b4e0.0",9d5f1ce5-e5a2-41e4-b5c0-ea261eb0c82e,"908b5599-e977-4e6c-8401-3f12bf12e2a3.0",44400a7a-7cd4-497e-8e60-32687f4a2231,"267c63bb-1a07-4f2a-80b7-e1ed526a9d8e",8fcd04f1-fd43-4454-b768-f21d2c3104a1,"7763d64e-6a6b-4a34-af48-d041bc88e244",aa14f9b1-df0e-47d5-85d2-827fe877e00a,"e71cb439-e78b-48d4-90ca-3055c334364b.0",edf8cc87-3cbe-409d-bcef-df27b96b9fd7,"ca759f78-0cac-471b-972d-06c9844ad3a2",3b3a3ab0-3139-4e53-ae85-a093e5447b09,"5bea2e8a-f556-4c03-8234-4590f8041b1d",4d4f03e4-e8d6-405a-89ab-1d9d37dba106,"1facde36-00e4-442d-b52c-0c8e26d731fe.0",79542ae9-a564-4637-a7ae-0d17e98fc648,"0074f89e-172f-4cb5-9d37-90f51ebfdf83",360e1277-1527-48c1-b512-7a0e6b1bfb1f,"7ff549be-7559-43d1-8164-15a081f9e920",25e31df9-9458-4d03-a108-433824129414,"267c63bb-1a07-4f2a-80b7-e1ed526a9d8e.0",75dc090d-a900-416e-8985-0f337ef78fa5,"5f1fcb9b-1780-4484-8c6f-b54997875be3",4a49be5c-3bc6-44e0-8cd4-fa63ec51892f,"945f1fbd-df8f-41cd-b30a-803da0bb591a",808e3cfc-12e4-4437-ab68-c533e26a952e,"aa6a8c8d-aaf9-45a8-8df1-0acd6747775e.0",5e4a1975-ff26-43f7-9253-221abaf1bc3c,"94ed5fcb-e54f-4e79-9818-d9c006e798df.0",d980a4d3-64d3-4498-81ea-260f339602a5,"e5530449-dd2d-4841-821e-38808447be38",67b37864-8925-478e-881c-4c75005dca9f,"0820522a-cd7b-498a-8767-4a1a17c6a313",aa627ad9-ee41-48b2-89ff-a5d4930c7816,"0820522a-cd7b-498a-8767-4a1a17c6a313.0",0da4a02e-2501-405c-bd94-a3680fa6fd48,"da854782-15ef-4d88-8ea7-9606248465ef",aa9309eb-fb31-4749-9353-a29bb8719dff,"version",c61f4dca-9f7c-49a3-80f0-1dd62937a53e,"aad28daf-f05d-42da-9bf6-51e89ff6a46b.0",08a37c6b-41bf-425e-bf5f-0c87132c427e,"e71cb439-e78b-48d4-90ca-3055c334364b",ec673ce1-ceb3-42f2-8738-59b34ad88d4a,"eaaa971d-cd10-4a58-ac2c-453a08f3e31c.0",96b530b2-58f9-4941-8a9c-f4cd7340b12b,"5bea2e8a-f556-4c03-8234-4590f8041b1d.0",b70bb3f0-1c4a-4c2b-82b9-e648c179b62a}
\ No newline at end of file
+{1,55,"",7f5a798f-bf56-47d9-8a92-5445539ab638,"0074f89e-172f-4cb5-9d37-90f51ebfdf83",360e1277-1527-48c1-b512-7a0e6b1bfb1f,"0074f89e-172f-4cb5-9d37-90f51ebfdf83.0",f4a372e1-dabc-464a-912d-e88ad95f0482,"0820522a-cd7b-498a-8767-4a1a17c6a313",aa627ad9-ee41-48b2-89ff-a5d4930c7816,"0820522a-cd7b-498a-8767-4a1a17c6a313.0",0da4a02e-2501-405c-bd94-a3680fa6fd48,"165fbf6e-41ca-41fa-9329-f226fbf60fcf",7d866af2-b663-4c46-afef-0bb0e8ef0986,"165fbf6e-41ca-41fa-9329-f226fbf60fcf.0",98a8d35d-b8d5-468b-b23c-25ef049f6ae1,"1facde36-00e4-442d-b52c-0c8e26d731fe",cfcec375-dd06-41fc-b0c3-4906731e3353,"1facde36-00e4-442d-b52c-0c8e26d731fe.0",79542ae9-a564-4637-a7ae-0d17e98fc648,"267c63bb-1a07-4f2a-80b7-e1ed526a9d8e",8fcd04f1-fd43-4454-b768-f21d2c3104a1,"267c63bb-1a07-4f2a-80b7-e1ed526a9d8e.0",75dc090d-a900-416e-8985-0f337ef78fa5,"594174ed-87e8-4b21-b5c2-4b9936964fbe",9ebabc6d-2cd2-4c63-9cfd-788a38eba60d,"594174ed-87e8-4b21-b5c2-4b9936964fbe.0",42255578-1c3c-4071-9d06-cdbfbf995d08,"5b867d65-eb17-4da4-9cbd-850c1dd2585b",2e2d6fc0-0604-4501-807c-59b0c991eb6b,"5b867d65-eb17-4da4-9cbd-850c1dd2585b.0",5a471482-e6e9-4e79-a645-8870107f475f,"5bea2e8a-f556-4c03-8234-4590f8041b1d",4d4f03e4-e8d6-405a-89ab-1d9d37dba106,"5bea2e8a-f556-4c03-8234-4590f8041b1d.0",b70bb3f0-1c4a-4c2b-82b9-e648c179b62a,"5f1fcb9b-1780-4484-8c6f-b54997875be3",4a49be5c-3bc6-44e0-8cd4-fa63ec51892f,"5f1fcb9b-1780-4484-8c6f-b54997875be3.0",4f577650-54ec-48b7-8d50-be65cc200b52,"7763d64e-6a6b-4a34-af48-d041bc88e244",aa14f9b1-df0e-47d5-85d2-827fe877e00a,"7763d64e-6a6b-4a34-af48-d041bc88e244.0",3a5aec1e-e8d1-48fb-a3f1-aa1435988703,"7ff549be-7559-43d1-8164-15a081f9e920",25e31df9-9458-4d03-a108-433824129414,"8b6e0649-e316-4007-95d6-0240e751b4e0",5b97519d-9182-4da7-85ec-c3056dfa2d36,"8b6e0649-e316-4007-95d6-0240e751b4e0.0",9d5f1ce5-e5a2-41e4-b5c0-ea261eb0c82e,"908b5599-e977-4e6c-8401-3f12bf12e2a3",ea9f3d27-8ef3-4d09-8811-ff1344349c1e,"908b5599-e977-4e6c-8401-3f12bf12e2a3.0",44400a7a-7cd4-497e-8e60-32687f4a2231,"9445dc5b-81cf-4d1e-9e20-07042b93755a",b004673a-0a13-40a9-b429-1a6375fe1356,"9445dc5b-81cf-4d1e-9e20-07042b93755a.0",c50b1a6c-4820-4b72-9ec3-9a5af6d0cf90,"945f1fbd-df8f-41cd-b30a-803da0bb591a",808e3cfc-12e4-4437-ab68-c533e26a952e,"945f1fbd-df8f-41cd-b30a-803da0bb591a.0",71e920c3-bba3-4af1-a9c4-89cf9973456f,"94ed5fcb-e54f-4e79-9818-d9c006e798df",8a246ed3-171d-473b-8cc7-e69c7fbc3e59,"94ed5fcb-e54f-4e79-9818-d9c006e798df.0",d980a4d3-64d3-4498-81ea-260f339602a5,"97fdadb1-8930-4792-a51e-fd59af2c5cb1",583e35b8-470a-4735-b8b8-a0fcfc94bf09,"aa6a8c8d-aaf9-45a8-8df1-0acd6747775e",9268a0ae-8a75-409e-b1ef-ef178ec2a998,"aa6a8c8d-aaf9-45a8-8df1-0acd6747775e.0",5e4a1975-ff26-43f7-9253-221abaf1bc3c,"aad28daf-f05d-42da-9bf6-51e89ff6a46b.0",03a262f6-be27-4766-9248-8726a64edcd9,"bc8ef2c0-98ae-4f7b-9b02-f680f8384843",12341893-9ea8-4913-872d-29b09877c54e,"bc8ef2c0-98ae-4f7b-9b02-f680f8384843.0",b310cc0d-c34f-4ce9-affa-00801f138624,"ca759f78-0cac-471b-972d-06c9844ad3a2",3b3a3ab0-3139-4e53-ae85-a093e5447b09,"ca759f78-0cac-471b-972d-06c9844ad3a2.0",69588c04-4c3e-4067-bb8e-a8f5029e7cda,"copyinfo",ad99a81d-a397-4902-aca5-cdbac45c8aba,"da854782-15ef-4d88-8ea7-9606248465ef",aa9309eb-fb31-4749-9353-a29bb8719dff,"da854782-15ef-4d88-8ea7-9606248465ef.0",ca3ccaf1-6868-4280-9207-0ff4e7d5c524,"dc252f32-bece-4b36-a154-7e1456abc42b",7cba6c2e-de68-4977-b315-5baa5a9c6cb2,"dc252f32-bece-4b36-a154-7e1456abc42b.0",6bf792f6-e4ae-4c92-81b1-420bf6b271d9,"e5530449-dd2d-4841-821e-38808447be38",b9f8e6e2-ac40-482a-9548-8780b41d7ac6,"e71cb439-e78b-48d4-90ca-3055c334364b",ec673ce1-ceb3-42f2-8738-59b34ad88d4a,"e71cb439-e78b-48d4-90ca-3055c334364b.0",edf8cc87-3cbe-409d-bcef-df27b96b9fd7,"e9fbe396-a267-46f4-8472-0e03be464c2a",fa427f3c-22aa-4f64-a598-5aa6cd97fad3,"e9fbe396-a267-46f4-8472-0e03be464c2a.0",9aea1bb2-ed53-4adf-ad5c-d9484768331b,"eaaa971d-cd10-4a58-ac2c-453a08f3e31c",0e7d87b7-315f-4a29-b111-1ae91f085b32,"eaaa971d-cd10-4a58-ac2c-453a08f3e31c.0",96b530b2-58f9-4941-8a9c-f4cd7340b12b,"root",67f54682-3b34-4768-8dc9-db87edb3bf0a,"version",6419101f-9c56-424e-ba53-e393e5669861,"versions",7eb24afa-f6d1-4260-9322-c6491fbfe472}
\ No newline at end of file
diff --git "a/src/Utils/UILogToScript/Form/DefaultForm/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Utils/UILogToScript/Form/DefaultForm/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..0c40b79b
--- /dev/null
+++ "b/src/Utils/UILogToScript/Form/DefaultForm/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,300 @@
+
+////////////////////////////////////////////////////////////////////////////////
+// FORM EVENT HANDLERS
+&AtServer
+Procedure OnCreateAtServer(Cancel, StandardProcessing)
+
+ // Setting up initial values
+ Object.SplitScriptIntoProcedures = True;
+
+ Object.ScriptVariant = ? (String(Metadata.ScriptVariant) = "English", "en", "ru");
+
+
+ Items.ScriptVariant.ChoiceList.Add("en", NStr("en = 'English'; ru = 'Английский'"));
+ Items.ScriptVariant.ChoiceList.Add("ru", NStr("en = 'Russian'; ru = 'Русский'"));
+
+ Items.ObjectSearch.ChoiceList.Add(0, NStr("en = 'By presentation'; ru = 'По представлению'"));
+ Items.ObjectSearch.ChoiceList.Add(1, NStr("en = 'By name'; ru = 'По имени'"));
+ Items.ObjectSearch.ChoiceList.Add(2, NStr("en = 'By name and presentation'; ru = 'По имени и представлению'"));
+
+ Items.ConversionVariant.ChoiceList.Add(0, NStr("en = 'Log'; ru = 'Журнал'"));
+ Items.ConversionVariant.ChoiceList.Add(1, NStr("en = 'Text'; ru = 'Текст'"));
+
+ // { xUnitFor1C - Дополнительные команды
+ Items.ConversionVariant.ChoiceList.Add(2, NStr("ru = 'Из журнала в обработку-тест для xUnitFor1C'"));
+ Items.ConversionVariant.ChoiceList.Add(3, NStr("ru = 'Из текста в обработку-тест для xUnitFor1C'"));
+ // } xUnitFor1C - Дополнительные команды
+
+EndProcedure
+
+&AtClient
+Procedure OnOpen(Cancel)
+
+ Object.MainProcedureName = ?(Object.ScriptVariant = "en", "TestScenario_", "ТестовыйСценарий_") + ClearDate(Format(CurrentDate(), "DLF=D"));
+
+ Items.SourceData.CurrentPage = ?(Object.ConversionVariant = 0,Items.SourceFiles, Items.SourceTexts);
+
+ // { xUnitFor1C
+ SetVisibleOptionsForConvertionType();
+ // } xUnitFor1C
+
+EndProcedure
+
+&AtServer
+Procedure FillCheckProcessingAtServer(Cancel, AttributesToCheck)
+
+ // Adding check fields according to the transform variant
+ If Object.ConversionVariant = 0 Then
+
+ AttributesToCheck.Add("SourceFile");
+ AttributesToCheck.Add("ResultFile");
+
+ Else
+
+ If Not ValueIsFilled(SourceText.GetText()) Then
+
+ Cancel = True;
+
+ NewMessage = New UserMessage();
+ NewMessage.Text = NStr("en = 'User action log is not specified.'; ru = 'Поле ""Журнал действий пользователя"" не заполнено.'");
+ NewMessage.DataPath = "SourceText";
+ NewMessage.Message();
+
+ EndIf;
+
+ EndIf;
+
+EndProcedure
+
+////////////////////////////////////////////////////////////////////////////////
+// CONTROL EVENT HANDLERS
+&AtClient
+Procedure ConversionVariantOnChange(Item)
+
+ Items.SourceData.CurrentPage = ? (Object.ConversionVariant = 0, Items.SourceFiles, Items.SourceTexts);
+
+ // { xUnitFor1C
+ SetVisibleOptionsForConvertionType();
+ // } xUnitFor1C
+
+EndProcedure
+
+&AtClient
+Procedure ScriptVariantClearing(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+EndProcedure
+
+&AtClient
+Procedure ScriptVariantOnChange(Item)
+
+ Object.MainProcedureName = ? (Object.ScriptVariant = "en", "TestScenario_", "ТестовыйСценарий_") + ClearDate(Format(CurrentDate(), "DLF=D"));
+
+EndProcedure
+
+&AtClient
+Procedure SourceFileOnStartChoice(Item, ChoiceData, StandardProcessing)
+
+ StandardProcessing = False;
+
+ Dialog = New FileDialog(FileDialogMode.Open);
+
+ Dialog.FullFileName = SourceFile;
+ Dialog.Title = NStr("en = 'Specify the user action log file.'; ru = 'Укажите файл журнала действий пользователя'");
+ Dialog.Filter = NStr("en = 'User action log file (*.uil,*.txt,*.xml)|*.uil;*.txt;*.xml|All files (*.*)|*.*'; ru = 'Файлы журнала действий пользователя (*.uil,*.txt,*.xml)|*.uil;*.txt;*.xml|Все файлы (*.*)|*.*'");
+ Dialog.DefaultExt= "uil";
+
+ If Dialog.Choose() Then
+
+ SourceFile = Dialog.FullFileName;
+
+ If Not ValueIsFilled(ResultFile) Then
+
+ ResultFile = Left(Dialog.FullFileName, StrLen(Dialog.FullFileName) - StrLen(Dialog.DefaultExt)) + NStr("en = 'ModuleText'; ru = 'ТекстМодуля'") + ".txt"
+
+ EndIf;
+
+ EndIf;
+
+EndProcedure
+
+&AtClient
+Procedure SourceFileOnOpen(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+ DocumentToView = New TextDocument();
+ DocumentToView.Read(SourceFile);
+ DocumentToView.Show(SourceFile);
+
+EndProcedure
+
+&AtClient
+Procedure ResultFileOnStartChoice(Item, ChoiceData, StandardProcessing)
+
+ StandardProcessing = False;
+
+ Dialog = New FileDialog(FileDialogMode.Save);
+
+ Dialog.FullFileName = ResultFile;
+ Dialog.Title = NStr("en = 'Specify the file where the conversion result will be saved.'; ru = 'Укажите файл для сохранения результата преобразования'");
+ Dialog.Filter= NStr("en = 'Text files (*.txt)|*.txt|All files (*.*)|*.*'; ru = 'Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*'");
+
+ // { xUnitFor1C
+ If Object.ConversionVariant >= 2 Then
+ Dialog.Filter= NStr("ru = 'Внешние обработки (*.epf)|*.epf|Все файлы (*.*)|*.*'");
+ EndIf;
+ // { xUnitFor1C
+
+ If Dialog.Choose() Then
+
+ ResultFile = Dialog.FullFileName;
+
+ EndIf;
+
+EndProcedure
+
+&AtClient
+Procedure ResultFileOnOpen(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+ DocumentToView = New TextDocument();
+ DocumentToView.Read(ResultFile);
+ DocumentToView.Show(ResultFile);
+
+EndProcedure
+
+////////////////////////////////////////////////////////////////////////////////
+// AUXILIARY PROCEDURES AND FUNCTIONS
+&AtClient
+Function IsDigit(Char)
+
+ Code = CharCode (Char);
+ Return Code >= 48 And Code <= 57;
+
+EndFunction
+
+&AtClient
+Function IsLetter(Char)
+
+ // All non-literal character codes are considered equal
+ Return CharCode(Lower(Char)) <> CharCode(Upper(Char));
+
+EndFunction
+
+&AtClient
+Function ClearDate(DateToClear)
+
+ Result = "";
+
+ StringLength = StrLen(DateToClear);
+ For Index = 1 To StringLength Do
+ NextChar = Mid(DateToClear,Index, 1);
+ If IsDigit(NextChar) Then
+ Result = Result + NextChar;
+ Else
+ Result = Result + "_";
+ EndIf;
+ EndDo;
+
+ Return Result;
+
+EndFunction
+
+////////////////////////////////////////////////////////////////////////////////
+// Conversion procedures
+&AtServer
+Function ConvertAtServer(TextToConvert)
+
+ ThisDataProcessor = FormAttributeToValue("Object");
+
+ // { xUnitFor1C
+ If Object.ConversionVariant >= 2 Then
+ StringBase64 = ThisDataProcessor.CreateDataProcessor(TextToConvert);
+ Return StringBase64;
+ EndIf;
+ // } xUnitFor1C
+
+ Return ThisDataProcessor.Convert(TextToConvert);
+
+EndFunction
+
+&AtClient
+Procedure Convert(Command)
+
+ // Preparing data to be converted
+ ClearMessages();
+ If Not CheckFilling() Then
+ Return;
+ EndIf;
+
+ TextToConvert = "";
+ If Object.ConversionVariant = 0 Then
+
+ Reader = New TextDocument();
+ Reader.Read(SourceFile);
+ TextToConvert = Reader.GetText();
+ Reader = Undefined;
+
+ Else
+
+ TextToConvert = SourceText.GetText();
+
+ EndIf;
+
+ ConversionResult = ConvertAtServer(TextToConvert);
+
+ If Not ValueIsFilled(ConversionResult) Then
+ Message(NStr("en = 'Cannot convert data'; ru = 'Не удалось выполнить преобразование'"));
+ Return;
+ EndIf;
+
+ If Object.ConversionVariant = 0 Then
+
+ Writer = New TextDocument();
+ Writer.AddLine(ConversionResult);
+ Writer.Write(ResultFile);
+ Writer.Show(ResultFile);
+
+ // { xUnitFor1C
+ ElsIf Object.ConversionVariant >= 2 Then
+ Try
+ BinaryData = Base64Value(ConversionResult);
+ BinaryData.Write(ResultFile);
+ Except
+ NewMessage = New UserMessage();
+ NewMessage.Text = NStr("ru = 'Не удалось сохранить base64 внешнией обработки в файл'; en = 'Can''t save base64 of data processor to file'");
+ NewMessage.Message();
+ EndTry;
+ // } xUnitFor1C
+
+ Else
+
+ ResultText.Clear();
+ ResultText.AddLine(ConversionResult);
+
+ EndIf;
+
+EndProcedure
+
+// { xUnitFor1C
+
+&AtClient
+Procedure SetVisibleOptionsForConvertionType()
+
+ // { xUnitFor1C - Настройка текущей страницы для доп. вариантов преобразования действий пользователя
+ If Object.ConversionVariant = 2 Then
+ Items.SourceData.CurrentPage = Items.SourceFiles;
+ ElsIf Object.ConversionVariant = 3 Then
+ Items.SourceData.CurrentPage = Items.GenerateFileByText;
+ EndIf;
+ StandartChoice = (Object.ConversionVariant < 2);
+ Object.GenerateClientConnectionScript = StandartChoice;
+ Items.GenerateClientConnectionScript.Enabled = StandartChoice;
+ // } xUnitFor1C - Настройка текущей страницы для доп. вариантов преобразования действий пользователя
+
+EndProcedure
+
+// } xUnitFor1C
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/ObjectModule.bsl b/src/Utils/UILogToScript/ObjectModule.bsl
new file mode 100644
index 00000000..937002c4
--- /dev/null
+++ b/src/Utils/UILogToScript/ObjectModule.bsl
@@ -0,0 +1,1282 @@
+Var CreatedInWindowAndFormVariables;
+Var Indent;
+
+Function Convert(TextToConvert) Export
+
+ Reader = New XMLReader();
+ Reader.SetString(TextToConvert);
+
+ CreatedProcedures = New Array();
+ CreatedInWindowAndFormVariables = New Map();
+
+ Writer = New TextDocument;
+
+ Reader.MoveToContent();
+ Indent = 0;
+
+ // Converting the file
+ If Reader.NodeType = XMLNodeType.StartElement And
+ Reader.Name = "uilog" Then
+
+ ConvertIntoScenario(Reader, Writer);
+
+ EndIf;
+
+ Return Writer.GetText();
+
+EndFunction
+
+////////////////////////////////////////////////////////////////////////////////
+// AUXILIARY PROCEDURES AND FUNCTIONS
+Procedure AddLine(Writer, OutputString, AddGoTo = False)
+
+ // Adding required number of spaces to the string from the left
+ Result = "";
+ For Index = 1 To Indent Do
+ Result = Result + " ";
+ EndDo;
+ Result = Result + OutputString;
+
+ // Adding the string to the end of the result
+ Writer.AddLine(Result);
+ If AddGoTo Then
+ Writer.AddLine("");
+ EndIf;
+
+EndProcedure
+
+Procedure InsertLine(Writer, LineNumber, OutputString)
+
+ // Adding required number of spaces to the string from the left
+ Result = "";
+ For Index = 1 To Indent Do
+ Result = Result + " ";
+ EndDo;
+ Result = Result + OutputString;
+
+ // Adding the string to the result
+ Writer.InsertLine(LineNumber, Result);
+
+EndProcedure
+
+Function DoubleQuotationMarks(OutputString)
+
+ // Doubling quotation marks for correctness during export to a file.
+ Return StrReplace(OutputString, """", """""");
+
+EndFunction
+
+Function SearchValuesForTitle(Title, Name, Val SearchType)
+
+ // Search 'by title' or 'by name and title'
+ If SearchType = 0 Or SearchType = 2 Then
+ If Not Title = Undefined Then
+ Return """" + DoubleQuotationMarks(Title) + """";
+ EndIf;
+ If SearchType = 2 And Name = Undefined Then
+ Raise NStr("en = 'Specify the title or name of the object'; ru = 'У объекта должны быть заполнены заголовок или имя'");
+ EndIf;
+ Return "";
+ // Search 'by name'
+ ElsIf SearchType = 1 Then
+ If Name = Undefined Then
+ Return """" + DoubleQuotationMarks(Title) + """";
+ EndIf;
+ Return "";
+ // Search 'by name and title'
+ Else
+ Raise NStr("en = 'Unexpected object search type: '; ru = 'Неожиданный тип поиска объектов: '") + ObjectSearch;
+ EndIf;
+
+EndFunction
+
+Function SearchValuesForName(Title, Name, Val SearchType, TitleEmpty)
+
+ If (SearchType = 0 And TitleEmpty) Then
+ SearchType = 1;
+ EndIf;
+
+ // Search 'by title'
+ If SearchType = 0 Then
+ Return "";
+ // Search 'by name' or 'by name and title'
+ ElsIf SearchType = 1 Or SearchType = 2 Then
+ If Not Name = Undefined Then
+ Return """" + Name + """";
+ EndIf;
+ If SearchType = 2 And Title = Undefined Then
+ Raise NStr("en = 'Specify the title or name of the object'; ru = 'У объекта должны быть заполнены заголовок или имя'");
+ EndIf;
+ Return "";
+ Else
+ Raise NStr("en = 'Unexpected object search type: '; ru = 'Неожиданный тип поиска объектов: '") + ObjectSearch;
+ EndIf;
+
+EndFunction
+
+Function ConvertTitleIntoVariableName(ObjectType, ObjectTitle)
+
+ // Variable name starts with a type name
+ If ObjectType = "ClientApplicationWindow" Then
+
+ VariableName = ? (ScriptVariant = "en", "ClientWindow", "ОкноПриложения");
+ ElsIf ObjectType = "Form" Then
+ VariableName = ? (ScriptVariant = "en", "Form", "Форма");
+ ElsIf ObjectType = "FormField" Then
+ VariableName = ? (ScriptVariant = "en", "Field", "Поле");
+ ElsIf ObjectType = "FormButton" Then
+ VariableName = ? (ScriptVariant = "en", "Button", "Кнопка");
+ ElsIf ObjectType = "FormGroup" Then
+ VariableName = ? (ScriptVariant = "en", "Group", "Группа");
+ ElsIf ObjectType = "FormTable" Then
+ VariableName = ? (ScriptVariant = "en", "Table", "Таблица");
+ ElsIf ObjectType = "FormDecoration" Then
+ VariableName = ? (ScriptVariant = "en", "Decoration", "Декорация");
+ ElsIf ObjectType = "CommandInterface" Then
+ VariableName = ? (ScriptVariant = "en", "CommandInterface", "КомандныйИнтерфейс");
+ ElsIf ObjectType = "CommandInterfaceGroup" Then
+ VariableName = ? (ScriptVariant = "en", "CommandInterfaceGroup", "ГруппаКомандногоИнтерфейса");
+ ElsIf ObjectType = "CommandInterfaceButton" Then
+ VariableName = ? (ScriptVariant = "en", "CommandInterfaceButton", "КнопкаКомандногоИнтерфейса");
+ Else
+ Raise NStr("en = 'Unknown node: '; ru = 'Неопознанный узел '") + ObjectType;
+ EndIf;
+
+ // Cutting characters except letters and digits
+ PreviousCharIsSpace = True;
+ StringLength = StrLen(ObjectTitle);
+ For Index = 1 To StringLength Do
+ NextChar = Mid(ObjectTitle,Index, 1);
+ If IsLetter(NextChar) Or IsDigit(NextChar) Then
+ VariableName = VariableName + ? (PreviousCharIsSpace, Upper(NextChar), NextChar);
+ PreviousCharIsSpace = False;
+ Else
+ PreviousCharIsSpace = True;
+ EndIf;
+ EndDo;
+
+ Return VariableName;
+
+EndFunction
+
+Function IsDigit(Char)
+
+ Code = CharCode(Char);
+ Return Code >= 48 And Code <= 57;
+
+EndFunction
+
+Function IsLetter(Char)
+
+ // All non-literal character codes are considered equal
+ Return CharCode(Lower(Char)) <> CharCode(Upper(Char));
+
+EndFunction
+
+////////////////////////////////////////////////////////////////////////////////
+// Convert procedures
+Procedure ConvertIntoScenario(Reader, Writer)
+
+ If GenerateClientConnectionScript Then
+
+ AddLine(Writer, ? (ScriptVariant = "en", "&AtClient", "&НаКлиенте"));
+ AddLine(Writer, ? (ScriptVariant = "en", "Procedure ", "Процедура ") + MainProcedureName + "()", True);
+
+ Indent = Indent + 1;
+
+ AddLine(Writer, ? (ScriptVariant = "en", "TestApplication = New TestedApplication();", "ТестовоеПриложение = Новый ТестируемоеПриложение();"));
+ AddLine(Writer, ? (ScriptVariant = "en", "TimeOut = CurrentDate() + 60;", "ВремяОкончанияОжидания = ТекущаяДата() + 60;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "Connected = False;", "Подключен = Ложь;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "ConnectionErrorDescription = """";", "ОписаниеОшибкиСоединения = """";"));
+ AddLine(Writer, ? (ScriptVariant = "en", "While Not CurrentDate() >= TimeOut Do", "Пока Не ТекущаяДата() >= ВремяОкончанияОжидания Цикл"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Try", " Попытка"));
+ AddLine(Writer, ? (ScriptVariant = "en", " TestApplication.Connect();", " ТестовоеПриложение.УстановитьСоединение();"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Connected = True;", " Подключен = Истина;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Break;", " Прервать;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Except", " Исключение"));
+ AddLine(Writer, ? (ScriptVariant = "en", " ConnectionErrorDescription = ErrorDescription();", " ОписаниеОшибкиСоединения = ОписаниеОшибки();"));
+ AddLine(Writer, ? (ScriptVariant = "en", " EndTry;", " КонецПопытки;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "EndDo;", "КонецЦикла;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "If Not Connected Then", "Если Не Подключен Тогда"));
+ AddLine(Writer, ? (ScriptVariant = "en", " TestApplication = Undefined;", " ТестовоеПриложение = Неопределено;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Message(""Connection cannot be established. "" + Chars.LF + ConnectionErrorDescription);", " Сообщить(""Не смогли установить соединение! "" + Символы.ПС + ОписаниеОшибкиСоединения);"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Return;", " Возврат;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "EndIf;", "КонецЕсли;"), True);
+
+ Indent = Indent - 1;
+
+ Else
+
+ AddLine(Writer, ? (ScriptVariant = "en", "&AtClient", "&НаКлиенте"));
+ AddLine(Writer, ? (ScriptVariant = "en", "Procedure ", "Процедура ") + MainProcedureName + ? (ScriptVariant = "en", "(TestApplication)", "(ТестовоеПриложение)"), True);
+
+ EndIf;
+
+ Reader.Read();
+
+ LocalWriter = Writer;
+ If SplitScriptIntoProcedures Then
+ LocalWriter = New TextDocument();
+ EndIf;
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "ClientApplicationWindow" Then
+
+ LocalProcedureName = "";
+ ConvertWindow(Reader, LocalWriter, LocalProcedureName);
+
+ If SplitScriptIntoProcedures Then
+
+ Indent = Indent + 1;
+ AddLine(Writer, LocalProcedureName + ? (ScriptVariant = "en", "(TestApplication);", "(ТестовоеПриложение);"));
+ Indent = Indent - 1 ;
+
+ EndIf;
+
+ ElsIf Reader.Name = "Form" Then
+
+ AddLine(Writer, "");
+
+ Indent = Indent + 1;
+
+ WindowBeingProcessed = "";
+ CreatedInWindowAndFormVariables.Insert(WindowBeingProcessed, New Map());
+ ConvertForm(Reader, Writer, ? (ScriptVariant = "en", "TestApplication", "ТестовоеПриложение"));
+
+ Indent = Indent - 1;
+
+ Else
+
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+
+ EndIf;
+
+ EndDo;
+
+ If SplitScriptIntoProcedures Then
+ AddLine(Writer, "");
+ EndIf;
+ AddLine(Writer, ? (ScriptVariant = "en", "EndProcedure", "КонецПроцедуры"));
+
+ If SplitScriptIntoProcedures Then
+ AddLine(Writer, LocalWriter.GetText());
+ EndIf;
+
+EndProcedure
+
+Procedure ConvertWindow(Reader, Writer, LocalProcedureName)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+ IsMainWindow = False;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "caption" Then
+ ObjectTitle = Reader.Value;
+ ElsIf Reader.Name = "isMain" Then
+ IsMainWindow = Boolean(Reader.Value);
+ EndIf;
+ EndDo;
+
+ VariableName = ConvertTitleIntoVariableName(ObjectType, ? (IsMainWindow, ? (ScriptVariant = "en", "Main", "Основное"), ObjectTitle));
+
+ WindowBeingProcessed = VariableName;
+
+ If SplitScriptIntoProcedures Then
+ LineCountBeforeProcess = Writer.LineCount();
+ EndIf;
+
+ Indent = Indent + 1;
+
+ If CreatedInWindowAndFormVariables.Get(WindowBeingProcessed) = Undefined Then
+
+ CreatedInWindowAndFormVariables.Insert(WindowBeingProcessed, New Map());
+
+ If IsMainWindow Then
+ AddLine(Writer, "");
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", " = Undefined;", " = Неопределено;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "ClientWindowsOfApplicationBeingTested = TestApplication.GetChildObjects();", "КлиентсткиеОкнаТестируемогоПриложения = ТестовоеПриложение.ПолучитьПодчиненныеОбъекты();"));
+ AddLine(Writer, ? (ScriptVariant = "en", "For Each WindowBeingTested In ClientWindowsOfApplicationBeingTested Do", "Для Каждого ТестируемоеОкно Из КлиентсткиеОкнаТестируемогоПриложения Цикл"));
+ AddLine(Writer, ? (ScriptVariant = "en", " If WindowBeingTested.IsMain Then", " Если ТестируемоеОкно.Основное Тогда"));
+ AddLine(Writer, " " + VariableName + ? (ScriptVariant = "en", " = WindowBeingTested;", " = ТестируемоеОкно;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " Break;", " Прервать;"));
+ AddLine(Writer, ? (ScriptVariant = "en", " EndIf;", " КонецЕсли;"));
+ AddLine(Writer, ? (ScriptVariant = "en", "EndDo;", "КонецЦикла;"));
+ Else
+
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", " = TestApplication.FindObject(Type(""TestedClientApplicationWindow""), """, " = ТестовоеПриложение.НайтиОбъект(Тип(""ТестируемоеОкноКлиентскогоПриложения""), """) + DoubleQuotationMarks(ObjectTitle) + """, , 30);");
+
+ EndIf;
+
+ EndIf;
+ WindowClosed = False;
+
+ Reader.Read();
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "Form" Then
+ ConvertForm(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "CommandInterface" Then
+ ConvertWindowCommandInterface(Reader, Writer, VariableName);
+ ElsIf Not ConvertCommand(Reader, Writer, VariableName) Then
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ Indent = Indent - 1;
+ Reader.Read();
+
+ If WindowClosed Or SplitScriptIntoProcedures Then
+ CreatedInWindowAndFormVariables.Delete(WindowBeingProcessed);
+ EndIf;
+
+ If SplitScriptIntoProcedures Then
+
+ ProcedureCount = 0;
+ While True Do
+ LocalProcedureName = VariableName + LastProcessedControl + LastProcessedCommand + ? (ProcedureCount = 0, "", ProcedureCount);
+ Prologue = ? (ScriptVariant = "en", "Procedure ", "Процедура ") + LocalProcedureName + ? (ScriptVariant = "en", "(TestApplication)", "(ТестовоеПриложение)");
+ If CreatedProcedures.Find(Prologue) = Undefined Then
+ CreatedProcedures.Add(Prologue);
+ Break;
+ EndIf;
+ ProcedureCount = ProcedureCount + 1;
+ EndDo;
+
+ InsertLine(Writer, LineCountBeforeProcess, Prologue);
+ InsertLine(Writer, LineCountBeforeProcess, ? (ScriptVariant = "en", "&AtClient", "&НаКлиенте"));
+ InsertLine(Writer, LineCountBeforeProcess, "");
+
+ AddLine(Writer, ? (ScriptVariant = "en", "EndProcedure", "КонецПроцедуры"), True);
+
+ EndIf;
+
+EndProcedure
+
+Procedure ConvertWindowCommandInterface(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ObjectTitle);
+ VariableName = ParentVariable + "CommandInterface";
+
+
+ WindowForms = CreatedInWindowAndFormVariables.Get(WindowBeingProcessed);
+ If WindowForms.Get(FormBeingProcessed) = Undefined Then
+
+ WindowForms.Insert(FormBeingProcessed, New Array());
+
+ AddLine(Writer, VariableName + " = " + ParentVariable + ? (ScriptVariant = "en", ".GetCommandInterface();", ".ПолучитьКомандныйИнтерфейс();"));
+
+ EndIf;
+
+ Reader.Read();
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+ If Reader.Name = "CommandInterfaceButton" Then
+ ConvertCommandInterfaceButton(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "CommandInterfaceGroup" Then
+ ConvertCommandInterfaceGroup(Reader, Writer, VariableName);
+ ElsIf Not ConvertCommand(Reader, Writer, VariableName) Then
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertCommandInterfaceButton(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ObjectTitle);
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If ConvertCommand(Reader, Writer, VariableName) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ InsertLine(Writer, LineCountBeforeProcess + 1, VariableName + " = " + ParentVariable + ? (ScriptVariant = "en", ".FindObject(Type(""TestedCommandInterfaceButton""), """, ".НайтиОбъект(Тип(""ТестируемаяКнопкаКомандногоИнтерфейса""), """) + DoubleQuotationMarks(ObjectTitle) + """);");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertCommandInterfaceGroup(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ObjectTitle);
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "CommandInterfaceButton" Then
+ ConvertCommandInterfaceButton(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "CommandInterfaceGroup" Then
+ ConvertCommandInterfaceGroup(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If GetFullHierarchy Then
+ InsertLine(Writer, LineCountBeforeProcess + 1, VariableName + " = " + ParentVariable + ? (ScriptVariant = "en", ".FindObject(Type(""TestedCommandInterfaceGroup""), """, ".НайтиОбъект(Тип(""ТестируемаяГруппаКомандногоИнтерфейса""), """) + DoubleQuotationMarks(ObjectTitle) + """);");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertForm(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectTitle = "";
+
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ObjectTitle);
+ VariableName = ParentVariable + LastProcessedControl;
+ FormBeingProcessed = VariableName;
+
+ WindowForms = CreatedInWindowAndFormVariables.Get(WindowBeingProcessed);
+ If WindowForms.Get(FormBeingProcessed) = Undefined Then
+
+ WindowForms.Insert(FormBeingProcessed, New Array());
+
+ AddLine(Writer, VariableName + " = " + ParentVariable + ? (ScriptVariant = "en", ".FindObject(Type(""TestedForm""), """, ".НайтиОбъект(Тип(""ТестируемаяФорма""), """) + DoubleQuotationMarks(ObjectTitle) + """);");
+
+ EndIf;
+
+ Reader.Read();
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+ If Reader.Name = "FormField" Then
+ ConvertField(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "FormTable" Then
+ ConvertTable(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "FormDecoration" Then
+ ConvertDecoration(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "FormButton" Then
+ ConvertButton(Reader, Writer, VariableName);
+ ElsIf Reader.Name = "FormGroup" Then
+ ConvertGroup(Reader, Writer, VariableName);
+ ElsIf Not ConvertCommand(Reader, Writer, VariableName) Then
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertTable(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "FormField" Then
+ ConvertField(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+
+ ElsIf Reader.Name = "FormGroup" Then
+ ConvertGroup(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf ConvertCommand(Reader, Writer, VariableName, ObjectType) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormTable", "ТестируемаяТаблицаФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertField(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "FormField" Then
+ ConvertField(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf ConvertCommand(Reader, Writer, VariableName) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node'; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormField", "ТестируемоеПолеФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, TypeNameEn, TypeNameRu)
+
+ TitleValue = SearchValuesForTitle(ObjectTitle, ObjectName, ObjectSearch);
+ NameValue = SearchValuesForName(ObjectTitle, ObjectName, ObjectSearch, TitleValue = "");
+ InsertLine(Writer, LineCountBeforeProcess + 1,
+ VariableName +
+ " = " +
+ ParentVariable +
+ ? (ScriptVariant = "en", ".FindObject(Type(""" + TypeNameEn + """), ", ".НайтиОбъект(Тип(""" + TypeNameRu + """), ") +
+ ? (TitleValue <> "" Or NameValue <> "", TitleValue, "") +
+ ? (NameValue <> "", ", " + NameValue, "") +
+ ");");
+
+EndProcedure
+
+Procedure ConvertButton(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If ConvertCommand(Reader, Writer, VariableName) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormButton", "ТестируемаяКнопкаФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertDecoration(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If ConvertCommand(Reader, Writer, VariableName) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormDecoration", "ТестируемаяДекорацияФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertGroup(Reader, Writer, ParentVariable)
+
+ ObjectType = Reader.Name;
+ ObjectName = Undefined;
+ ObjectTitle = Undefined;
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "name" Then
+ ObjectName = Reader.Value;
+ ElsIf Reader.Name = "title" Then
+ ObjectTitle = Reader.Value;
+ EndIf;
+ EndDo;
+
+ LastProcessedControl = ConvertTitleIntoVariableName(ObjectType, ? (ObjectTitle = Undefined, ObjectName, ObjectTitle));
+ VariableName = ? (SplitScriptIntoProcedures, "", ParentVariable) + LastProcessedControl;
+
+ LineCountBeforeProcess = Writer.LineCount();
+
+ Reader.Read();
+
+ CommandConverted = False;
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+
+ If Reader.Name = "FormField" Then
+ ConvertField(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "FormTable" Then
+ ConvertTable(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "FormDecoration" Then
+ ConvertDecoration(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "FormButton" Then
+ ConvertButton(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf Reader.Name = "FormGroup" Then
+ ConvertGroup(Reader, Writer, ? (GetFullHierarchy, VariableName, ParentVariable));
+ ElsIf ConvertCommand(Reader, Writer, VariableName, ObjectType) Then
+ CommandConverted = True;
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+
+ EndDo;
+
+ If CommandConverted Or GetFullHierarchy Then
+ ConvertFieldInsertFindObjectLine(LineCountBeforeProcess, ObjectName, ObjectTitle, ParentVariable, VariableName, Writer, "TestedFormGroup", "ТестируемаяГруппаФормы");
+ EndIf;
+
+ Reader.Read();
+
+EndProcedure
+
+Function ConvertCommand(Reader, Writer, VariableName, ObjectType = "")
+
+ If Reader.Name = "activate" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Activate();", ".Активизировать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Activate", "Активизировать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "inputText" Then
+ OutputText = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "text" Then
+ OutputText = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".InputText(""", ".ВвестиТекст(""") + DoubleQuotationMarks(OutputText) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "InputText", "ВвестиТекст");
+ Reader.Read();
+
+ ElsIf Reader.Name = "click" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Click();", ".Нажать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Click", "Нажать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "clear" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Clear();", ".Очистить();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Clear", "Очистить");
+ Reader.Read();
+
+ ElsIf Reader.Name = "create" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Create();", ".Создать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Create", "Создать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "cancel" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".CancelEdit();", ".ОтменитьРедактирование();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "CancelEdit", "ОтменитьРедактирование");
+ Reader.Read();
+
+ ElsIf Reader.Name = "open" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Open();", ".Открыть();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Open", "Открыть");
+ Reader.Read();
+
+ ElsIf Reader.Name = "startChoosing" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".StartChoosing();", ".Выбрать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "StartChoosing", "Выбрать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "startChoosingFromChoiceList" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".StartChoosingFromChoiceList();", ".ВыбратьИзСпискаВыбора();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "StartChoosingFromChoiceList", "ВыбратьИзСпискаВыбора");
+ Reader.Read();
+
+ ElsIf Reader.Name = "executeChoiceFromChoiceList" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "presentation" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".WaitForDropDownListGeneration();", ".ОжидатьФормированияВыпадающегоСписка();"), True);
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ExecuteChoiceFromChoiceList(""", ".ВыполнитьВыборИзСпискаВыбора(""") + DoubleQuotationMarks(Presentation) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ExecuteChoiceFromChoiceList", "ВыполнитьВыборИзСпискаВыбора");
+ Reader.Read();
+
+ ElsIf Reader.Name = "openDropList" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".OpenDropList();", ".ОткрытьВыпадающийСписок();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "OpenDropList", "ОткрытьВыпадающийСписок");
+ Reader.Read();
+
+ ElsIf Reader.Name = "closeDropList" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".CloseDropList();", ".ЗакрытьВыпадающийСписок();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "CloseDropList", "ЗакрытьВыпадающийСписок");
+ Reader.Read();
+
+ ElsIf Reader.Name = "executeChoiceFromDropList" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "presentation" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".WaitForDropDownListGeneration();", ".ОжидатьФормированияВыпадающегоСписка();"), True);
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ExecuteChoiceFromDropList(""", ".ВыполнитьВыборИзВыпадающегоСписка(""") + DoubleQuotationMarks(Presentation) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ExecuteChoiceFromDropList", "ВыполнитьВыборИзВыпадающегоСписка");
+ Reader.Read();
+
+ ElsIf Reader.Name = "increaseValue" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".IncreaseValue();", ".УвеличитьЗначение();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "IncreaseValue", "УвеличитьЗначение");
+ Reader.Read();
+
+ ElsIf Reader.Name = "decreaseValue" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".DecreaseValue();", ".УменьшитьЗначение();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "DecreaseValue", "УменьшитьЗначение");
+ Reader.Read();
+
+ ElsIf Reader.Name = "setCheck" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SetCheck();", ".УстановитьОтметку();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SetCheck", "УстановитьОтметку");
+ Reader.Read();
+
+ ElsIf Reader.Name = "selectOption" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "presentation" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SelectOption(""", ".ВыбратьВариант(""") + DoubleQuotationMarks(Presentation) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SelectOption", "ВыбратьВариант");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoValue" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "value" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoValue(""", ".ПерейтиКЗначению(""") + DoubleQuotationMarks(Presentation) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoValue", "ПерейтиКЗначению");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextMonth" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoNextMonth();", ".ПерейтиНаМесяцВперед();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoNextMonth", "ПерейтиНаМесяцВперед");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoPreviousMonth" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoPreviousMonth();", ".ПерейтиНаМесяцНазад();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoPreviousMonth", "ПерейтиНаМесяцНазад");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextYear" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoNextYear();", ".ПерейтиНаГодВперед();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoNextYear", "ПерейтиНаГодВперед");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoPreviousYear" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoPreviousYear();", ".ПерейтиНаГодНазад();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoPreviousYear", "ПерейтиНаГодНазад");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoDate" Then
+ Presentation = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "date" Then
+ Presentation = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; 'ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoDate(XMLValue(Type(""Date""), """, ".ПерейтиКДате(XMLЗначение(Тип(""Дата""), """) + Presentation + """));", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GoToDate", "ПерейтиКДате");
+ Reader.Read();
+
+ ElsIf Reader.Name = "setCurrentArea" Then
+ Area = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "area" Then
+ Area = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SetCurrentArea(""", ".УстановитьТекущуюОбласть(""") + Area + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SetCurrentArea", "УстановитьТекущуюОбласть");
+ Reader.Read();
+
+ ElsIf Reader.Name = "beginEditingCurrentArea" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".BeginEditingCurrentArea();", ".НачатьРедактированиеТекущейОбласти();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "BeginEditingCurrentArea", "НачатьРедактированиеТекущейОбласти");
+ Reader.Read();
+
+ ElsIf Reader.Name = "finishEditingCurrentArea" Then
+ CancelFlag = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "cancel" Then
+ CancelFlag = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".EndEditingCurrentArea(", ".ЗавершитьРедактированиеТекущейОбласти(") + CancelFlag + ");", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "EndEditingCurrentArea", "ЗавершитьРедактированиеТекущейОбласти");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextItem" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoNextItem();", ".ПерейтиКСледующемуЭлементу();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoNextItem", "ПерейтиКСледующемуЭлементу");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoPreviousItem" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoPreviousItem();", ".ПерейтиКПредыдущемуЭлементу();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoPreviousItem", "ПерейтиКПредыдущемуЭлементу");
+ Reader.Read();
+
+ ElsIf Reader.Name = "goOneLevelUp" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GoOneLevelUp();", ".ПерейтиНаУровеньВверх();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GoOneLevelUp", "ПерейтиНаУровеньВверх");
+ Reader.Read();
+
+ ElsIf Reader.Name = "goOneLevelDown" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GoOneLevelDown();", ".ПерейтиНаУровеньВниз();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GoOneLevelDown", "ПерейтиНаУровеньВниз");
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextRow" Then
+ ConvertCommandPartGotoSpecificRow(Reader, VariableName, Writer, "GotoNextRow", "ПерейтиКСледующейСтроке");
+
+ ElsIf Reader.Name = "gotoPreviousRow" Then
+ ConvertCommandPartGotoSpecificRow(Reader, VariableName, Writer, "GotoPreviousRow", "ПерейтиКПредыдущейСтроке");
+
+ ElsIf Reader.Name = "gotoFirstRow" Then
+ ConvertCommandPartGotoSpecificRow(Reader, VariableName, Writer, "GotoFirstRow", "ПерейтиКПервойСтроке");
+
+ ElsIf Reader.Name = "gotoLastRow" Then
+ ConvertCommandPartGotoSpecificRow(Reader, VariableName, Writer, "GotoLastRow", "ПерейтиКПоследнейСтроке");
+
+ ElsIf Reader.Name = "gotoRow" Then
+ Direction = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "direction" Then
+ Direction = ? (ScriptVariant = "en", ? (Reader.Value = "up", "RowGotoDirection.Up", "RowGotoDirection.Down"), ? (Reader.Value = "up", "НаправлениеПереходаКСтроке.Вверх", "НаправлениеПереходаКСтроке.Вниз"));
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ Reader.Read();
+ ConvertCommandPartRowDescriptionPartInt(Reader, Writer);
+ AddLine(Writer,
+ VariableName + ? (ScriptVariant = "en", ".GotoRow(RowDescription", ".ПерейтиКСтроке(ОписаниеСтроки") + ? (Direction = "", "", ", " + Direction) + ");",
+ True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoRow", "ПерейтиКСтроке");
+
+ ElsIf Reader.Name = "setOrder" Then
+ ColumnTitle = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "columnTitle" Then
+ ColumnTitle = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SetOrder(""", ".УстановитьПорядок(""") + DoubleQuotationMarks(ColumnTitle) + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SetOrder", "УстановитьПорядок");
+ Reader.Read();
+
+ ElsIf Reader.Name = "choose" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Choose();", ".Выбрать();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Choose", "Выбрать");
+ Reader.Read();
+
+ ElsIf Reader.Name = "selectAllRows" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SelectAllRows();", ".ВыделитьВсеСтроки();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SelectAllRows", "ВыделитьВсеСтроки");
+ Reader.Read();
+
+ ElsIf Reader.Name = "changeRow" Then
+ AddLine(Writer, VariableName +? (ScriptVariant = "en", ".ChangeRow();", ".ИзменитьСтроку();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ChangeRow", "ИзменитьСтроку");
+ Reader.Read();
+
+ ElsIf Reader.Name = "endEditRow" Then
+ CancelFlag = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "cancel" Then
+ CancelFlag = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".EndEditRow(", ".ЗакончитьРедактированиеСтроки(") + CancelFlag + ");", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "EndEditRow", "ЗакончитьРедактированиеСтроки");
+ Reader.Read();
+
+ ElsIf Reader.Name = "addRow" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".AddRow();", ".ДобавитьСтроку();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "AddRow", "ДобавитьСтроку");
+ Reader.Read();
+
+ ElsIf Reader.Name = "deleteRow" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".DeleteRow();", ".УдалитьСтроку();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "DeleteRow", "УдалитьСтроку");
+ Reader.Read();
+
+ ElsIf Reader.Name = "switchRowDeleteMark" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".SwitchRowDeleteMark();", ".ПереключитьПометкуУдаленияСтроки();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "SwitchRowDeleteMark", "ПереключитьПометкуУдаленияСтроки");
+ Reader.Read();
+
+ ElsIf Reader.Name = "expand" Then
+ If ObjectType = "FormGroup" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Expand();", ".Развернуть();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Expand", "Развернуть");
+ Reader.Read();
+ Else
+ ConvertCommandPartRowDescription(Reader, VariableName, Writer, "Expand", "Развернуть");
+ Endif;
+ LastProcessedCommand = ? (ScriptVariant = "en", "Expand", "Развернуть");
+
+ ElsIf Reader.Name = "collapse" Then
+ If ObjectType = "FormGroup" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Collapse();", ".Свернуть();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Collapse", "Свернуть");
+ Reader.Read();
+ Else
+ ConvertCommandPartRowDescription(Reader, VariableName, Writer, "Collapse", "Свернуть");
+ EndIf;
+ LastProcessedCommand = ? (ScriptVariant = "en", "Collapse", "Свернуть");
+
+ ElsIf Reader.Name = "close" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".Close();", ".Закрыть();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "Close", "Закрыть");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "chooseUserMessage" Then
+ MessageText = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "messageText" Then
+ MessageText = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ChooseUserMessage(""", ".ВыбратьСообщениеПользователю(""") + MessageText + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ChooseUserMessage", "ВыбратьСообщениеПользователю");
+ Reader.Read();
+
+ ElsIf Reader.Name = "closeUserMessagesPanel" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".CloseUserMessagesPanel();", ".ЗакрытьПанельСообщенийПользователю();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "CloseUserMessagesPanel", "ЗакрытьПанельСообщенийПользователю");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoStartPage" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoStartPage();", ".ПерейтиКНачальнойСтранице();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoStartPage", "ПерейтиКНачальнойСтранице");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoNextWindow" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoNextWindow();", ".ПерейтиКСледующемуОкну();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoNextWindow", "ПерейтиКСледующемуОкну");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "gotoPreviousWindow" Then
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".GotoPreviousWindow();", ".ПерейтиКПредыдущемуОкну();"), True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "GotoPreviousWindow", "ПерейтиКПредыдущемуОкну");
+ WindowClosed = True;
+ Reader.Read();
+
+ ElsIf Reader.Name = "executeCommand" Then
+ CommandRef = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "url" Then
+ CommandRef = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", ".ExecuteCommand(""", ".ВыполнитьКоманду(""") + CommandRef + """);", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", "ExecureCommand", "ВыполнитьКоманду");
+ Reader.Read();
+
+ Else
+ Return False;
+ EndIf;
+
+ Reader.Read();
+
+ Return True;
+
+EndFunction
+
+Procedure ConvertCommandPartGotoSpecificRow(Val Reader, Val VariableName, Val Writer, Val TermInt, Val TermRus)
+
+ SwitchSelection = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "switchSelection" Then
+ SwitchSelection = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", "." + TermInt + "(", "." + TermRus + "(") + SwitchSelection + ");", True);
+ LastProcessedCommand = ? (ScriptVariant = "en", TermInt, TermRus);
+ Reader.Read();
+
+EndProcedure
+
+Procedure ConvertCommandPartRowDescription(Val Reader, Val VariableName, Val Writer, Val TermInt, Val TermRus)
+
+ Reader.Read();
+ If Reader.NodeType = XMLNodeType.StartElement And Reader.Name = "Field" Then
+ ConvertCommandPartRowDescriptionPartInt(Reader, Writer);
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", "." + TermInt + "(RowDescription);", "." + TermRus + "(ОписаниеСтроки);"), True);
+ Else
+ AddLine(Writer, VariableName + ? (ScriptVariant = "en", "." + TermInt +"();", "." + TermRus + "();"), True);
+ EndIf;
+
+EndProcedure
+
+Procedure ConvertCommandPartRowDescriptionPartInt(Val Reader, Val Writer)
+
+ AddLine(Writer, ? (ScriptVariant = "en", "RowDescription = New Map();", "ОписаниеСтроки = Новый Соответствие();"));
+
+ While Reader.NodeType <> XMLNodeType.EndElement Do
+ If Reader.Name = "Field" Then
+ ColumnTitle = "";
+ CellText = "";
+ While Reader.ReadAttribute() Do
+ If Reader.Name = "title" Then
+ ColumnTitle = Reader.Value;
+ ElsIf Reader.Name = "cellText" Then
+ CellText = Reader.Value;
+ Else
+ Raise NStr("en = 'Unknown attribute '; ru = 'Неопознанный атрибут '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ EndDo;
+ AddLine(Writer, ? (ScriptVariant = "en", "RowDescription.Insert(""", "ОписаниеСтроки.Вставить(""") +
+ ColumnTitle + """, """ + DoubleQuotationMarks(CellText) + """);");
+ Reader.Read();
+ Else
+ Raise NStr("en = 'Unknown node '; ru = 'Неопознанный узел '") + Reader.Name + ": " + Reader.Value;
+ EndIf;
+ Reader.Read();
+ EndDo;
+
+EndProcedure
+
+// { xUnitFor1C
+
+Функция Initialization()
+
+ TempFilesDir = TempFilesDir();
+
+ BinaryDataUnpacker = GetTemplate("UnpackV8");
+ BinaryDataDLL=ThisObject.GetTemplate("zlib1");
+ BinaryDataUnpacker.Write(TempFilesDir+"UnpackV8.exe");
+ BinaryDataDLL.Write(TempFilesDir+"zlib1.dll");
+ FileUnpackApplication = Новый File(TempFilesDir+"UnpackV8.exe");
+ FileDLL=Новый File(TempFilesDir+"zlib1.dll");
+
+ Возврат FileUnpackApplication;
+
+КонецФункции
+
+Функция CreateDataProcessor(TextToConvert) Экспорт
+
+ TextProcedure = Convert(TextToConvert);
+ TextProcedure = StrReplace(TextProcedure, """", """""");
+
+ FileUnpackApplication = Initialization();
+
+ GlobalKey = "" + Новый UUID;
+
+ localPathToExternalDataProcessor = TempFilesDir() + GlobalKey;
+ File = Новый File(GetTempFileName());
+
+ GetTemplate("ШаблонТеста_ВнешняяОбработка").Write(File.FullName);
+
+ TempFile = GetTempFileName("epf");
+
+ StringCommand = """"+FileUnpackApplication.FullName+""" -parse """+File.FullName+""" """+localPathToExternalDataProcessor+"""";
+ RunApp(StringCommand, , Истина);
+
+ ParsedFiles = НайтиФайлы(localPathToExternalDataProcessor, "*.*");
+ Если ParsedFiles.Количество() = 0 Тогда
+ NewMessage = New UserMessage();
+ NewMessage.Text = NStr("ru = 'Не удалось разобрать макет внешней обработки теста командой <"+StringCommand+">'");
+ NewMessage.Message();
+ Возврат "";
+ КонецЕсли;
+
+ // Replace text
+ FileTextModule = Новый File(localPathToExternalDataProcessor + "\8401ee62-68b8-43ea-8738-0c08cbc8c901.0");
+ TextDocumentModule = Новый TextDocument;
+ TextDocumentModule.Прочитать(FileTextModule.FullName);
+ TextModule = TextDocumentModule.GetText();
+
+ TextModule = СтрЗаменить(TextModule, "Процедура НазваниеПроцедуры_ТестовыйСценарий(тестовоеПриложение) КонецПроцедуры", Chars.LF);
+ TextModule = СтрЗаменить(TextModule, "НазваниеПроцедуры_Тест_ГУИ_83", "Тест_"+MainProcedureName);
+ TextModule = СтрЗаменить(TextModule, "НазваниеПроцедуры_ТестовыйСценарий", MainProcedureName);
+ TextModule = СтрЗаменить(TextModule, "//ЗАМЕНИТЬТЕСТОВОЙПРОЦЕДУРОЙ", TextProcedure);
+
+ TextDocumentModule.SetText(TextModule);
+ TextDocumentModule.Write(FileTextModule.FullName);
+
+ // Сохраним в макет наш файл.
+
+ TextWriter = Новый TextWriter;
+ TextWriter.Open(localPathToExternalDataProcessor + "\1b3a3d0f-5dc6-47e8-bad6-38c097bc00d4.0");
+ TextWriter.Write(TextToConvert);
+ TextWriter.Close();
+
+ // Replace names
+ FileTextHeaders = Новый File(localPathToExternalDataProcessor + "\4e93fd08-5eda-44dd-92ef-b84867283b1e");
+ TextDocumentHeaders = Новый TextDocument;
+ TextDocumentHeaders.Read(FileTextHeaders.FullName);
+ Text = TextDocumentHeaders.GetText();
+ Text = StrReplace(Text, "ИмяВнешнейОбработки", "Тест"+MainProcedureName);
+ TextDocumentHeaders.SetText(Text);
+ TextDocumentHeaders.Write(FileTextHeaders.FullName);
+
+ // Pack
+ TempFile = GetTempFileName("epf");
+
+ StringCommand = """"+FileUnpackApplication.FullName+""" -build """+localPathToExternalDataProcessor+""" """+TempFile+"""";
+ RunApp(StringCommand, , Истина);
+
+ ResultString = "";
+ File = Новый File(TempFile);
+ Если File.Exist() Тогда
+ BinaryData = Новый BinaryData(File.FullName);
+ ResultString = Base64String(BinaryData);
+ КонецЕсли;
+
+ Возврат ResultString;
+
+КонецФункции
+
+// } xUnitFor1C
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/maps.txt b/src/Utils/UILogToScript/maps.txt
new file mode 100644
index 00000000..20a42f2a
--- /dev/null
+++ b/src/Utils/UILogToScript/maps.txt
@@ -0,0 +1,4 @@
+Form\DefaultForm\Форма.bsl-->adfd948b-4804-4f26-9f93-cb3f704b8dc0.0 (1 695, 1 994)
+Макеты\UnpackV8.txt-->6810777b-4151-4eba-b50d-4a2a08b5be5a.0
+Макеты\zlib1.txt-->b6e7785c-aad2-4c34-8c75-d98a7963dbaf.0
+Макеты\ШаблонТеста_ВнешняяОбработка.txt-->0b790809-ec18-47a5-9ea4-f803fe85b870.0
diff --git a/src/Utils/UILogToScript/renames.txt b/src/Utils/UILogToScript/renames.txt
new file mode 100644
index 00000000..8276b37d
--- /dev/null
+++ b/src/Utils/UILogToScript/renames.txt
@@ -0,0 +1,17 @@
+0b790809-ec18-47a5-9ea4-f803fe85b870-->und\0b790809-ec18-47a5-9ea4-f803fe85b870
+0b790809-ec18-47a5-9ea4-f803fe85b870.0-->und\0b790809-ec18-47a5-9ea4-f803fe85b870.0
+6344d70f-6d22-465c-b456-63013e6bc378.0\info-->und\6344d70f-6d22-465c-b456-63013e6bc378.0\info
+6344d70f-6d22-465c-b456-63013e6bc378.0\text-->ObjectModule.bsl
+6344d70f-6d22-465c-b456-63013e6bc378.1-->und\6344d70f-6d22-465c-b456-63013e6bc378.1
+6810777b-4151-4eba-b50d-4a2a08b5be5a-->und\6810777b-4151-4eba-b50d-4a2a08b5be5a
+6810777b-4151-4eba-b50d-4a2a08b5be5a.0-->und\6810777b-4151-4eba-b50d-4a2a08b5be5a.0
+9e7b2a13-3bf6-401a-be4a-0dbf0d48a43b-->und\9e7b2a13-3bf6-401a-be4a-0dbf0d48a43b
+adfd948b-4804-4f26-9f93-cb3f704b8dc0-->und\adfd948b-4804-4f26-9f93-cb3f704b8dc0
+adfd948b-4804-4f26-9f93-cb3f704b8dc0.0-->und\adfd948b-4804-4f26-9f93-cb3f704b8dc0.0
+adfd948b-4804-4f26-9f93-cb3f704b8dc0.1-->und\adfd948b-4804-4f26-9f93-cb3f704b8dc0.1
+b6e7785c-aad2-4c34-8c75-d98a7963dbaf-->und\b6e7785c-aad2-4c34-8c75-d98a7963dbaf
+b6e7785c-aad2-4c34-8c75-d98a7963dbaf.0-->und\b6e7785c-aad2-4c34-8c75-d98a7963dbaf.0
+copyinfo-->und\copyinfo
+root-->und\root
+version-->und\version
+versions-->und\versions
diff --git a/src/Utils/UILogToScript/und/0b790809-ec18-47a5-9ea4-f803fe85b870 b/src/Utils/UILogToScript/und/0b790809-ec18-47a5-9ea4-f803fe85b870
new file mode 100644
index 00000000..ecffb085
--- /dev/null
+++ b/src/Utils/UILogToScript/und/0b790809-ec18-47a5-9ea4-f803fe85b870
@@ -0,0 +1,6 @@
+{1,
+{2,1,
+{1,
+{0,0,0b790809-ec18-47a5-9ea4-f803fe85b870},"ШаблонТеста_ВнешняяОбработка",
+{1,"ru","Шаблон теста внешняя обработка"},"",0,0}
+},0}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/0b790809-ec18-47a5-9ea4-f803fe85b870.0 b/src/Utils/UILogToScript/und/0b790809-ec18-47a5-9ea4-f803fe85b870.0
new file mode 100644
index 00000000..795967d5
--- /dev/null
+++ b/src/Utils/UILogToScript/und/0b790809-ec18-47a5-9ea4-f803fe85b870.0
@@ -0,0 +1,1604 @@
+{1,
+{#base64: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
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0KMDAwMDAwNjAgMDAwMDAw
+NjAgN2ZmZmZmZmYgDQoQZRGCe0ICABBlEYJ7QgIAAAAAADQAZQA5ADMAZgBkADAA
+OAAtADUAZQBkAGEALQA0ADQAZABkAC0AOQAyAGUAZgAtAGIAOAA0ADgANgA3ADIA
+OAAzAGIAMQBlAAAAAAANCjAwMDAwMTk0IDAwMDAwMjAwIDdmZmZmZmZmIA0KlZI9
+jpQxDIb7lfYSW3+W7NhJnOPEjnMAJKrVSIiKDomKijOwBRL/XCFzEq5AZgeoKBYr
+slK8fvzGzs8vP+7puL25l2g8ByrkGB1ExoCWYoKpaKlJ2ShOx6PUWZnCFYaODDIb
+g/aUYDabPbByqvOiu3KPIZFzMMO0OkFUAsxnhdTLKLVmJsaDiBLmaqDJDaROByOb
+0F1GJgs1tAsO/4LxwEPFSYkUahUBoUrbb5kQBbM0sYTKp+NuvV1fz6/Xm/VtfTi/
+uuT1ab1bD+cX6/16WN/PL9fn9fHuir579vzuySX/Ad9+T7c3p+0ZKaIkKGoKwtFB
+Kyugo7q5esNtYut/B/wj/YnTIRfTyTwmDgJsSkA0CljbcMSMtjfSWx67+0XKo0dH
+KlCaVZAYAk0yA6XaiLimGeVIBxl3HjghDy97HaFgfWNZHVs1RxxyzFk4JlXwXnGz
+kkBXGuDM7KkWJ5LHpiMbxv5XkHIZsN/v0JwL7Hr0Pof2sls+aTKPvPBiliOD1b6F
+o+5beIOSlbD20prP67Sv5xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCjAwMDAwMDYwIDAwMDAwMDYw
+IDdmZmZmZmZmIA0KEGURgntCAgAQZRGCe0ICAAAAAAA4ADQAMAAxAGUAZQA2ADIA
+LQA2ADgAYgA4AC0ANAAzAGUAYQAtADgANwAzADgALQAwAGMAMAA4AGMAYgBjADgA
+YwA5ADAAMQAAAAAADQowMDAwMDBhNyAwMDAwMDIwMCA3ZmZmZmZmZiANCpVPQQoC
+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
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCjAw
+MDAwMDI4IDAwMDAwMDI4IDdmZmZmZmZmIA0KEGURgntCAgAQZRGCe0ICAAAAAAB2
+AGUAcgBzAGkAbwBuAHMAAAAAAA0KMDAwMDAxYTYgMDAwMDAyMDAgN2ZmZmZmZmYg
+DQqNkkuKHTEMRfdS41LQz7a8HEuWoSf9QncIhJCVZZAlZQvRm2T8JgWGsnzOvfr7
++89Puonv67p10ZidDWieAerJsGQKIJnvg/P4pPsilyUbD7QdHXSkga/dQSxwDg/E
+rdedq0sMddDWA3SGgLdZA20QelstXV6b9QWvG0V2TdwQ4gy6+gI7vuvTpouq5cD7
+0pxyNhq03AtU94bJecBNrQ82ccrr9kE8ZW3wI4UXDcHEGKbQQe6hyEVmipTZGbq5
+gUrWi0MMMNDCw2IilaX1mDI34DnF70pgaAta+FYOEdz82qynpTCZLh/AXU8FNwfM
+PRgyqSdzqEaRxePrj7f387hu5mZ1gyCLApR1gJcb7FC3g5V+j/sqMslDA2INBE3W
+KoGeUYoEjx5E1ZdQYLc9YVBVpUQdLFs1ob3KcsIxXpz1NOmqK31RQZ0ik0GwanlA
+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
+p9By3C68i69+42t3v96S6enRyrj1lUWiL+NynIavtrVFJDZdrq7q0Nj6pdd83L2s
+yd2m/MZr1kK9TaQ8ky4F7g4zCY673zYyk5zCWQwejTr1but1zxyN8yWGVXoancyn
+1C2JdCtPb/ZbSRrw2Ho2lKue2ZizrESEaYWSLHZbpXZpzSrOirzTdgUKLF759hnz
+7VXEhsbCE6mda6Sye3bmVLlekP3i8vHiVa8QjkQfpixW3EU9Es+HI+5sgYI2CPbw
+xvtnhcKLB7IVcvdqSNzjuhDXfJq78uXbotHufct7X3G2NrdErxtoHZ/Kf+3hG9m1
+7LlI5aGdsiXf+kNz/EKNi8SG7NiP+Xvxzj/TZnWz58Twz6dS4z2znada5r0pGxpo
+InsGONI/N3O3W0eybKnKZ9akyLpnfBdxatxs7Gn6KtRXd6NXU3a3XVunG2ev/ph2
+h7pVdnlWTWpZz4GGPOOR+UKC5JeKipiq0meExHyrG1cLZLCkxtJE1vbnq216rO+7
+d0qvDXfLL95IqWaS8HA4o+Anr17JWXA5juuRRC/WLnaUSRH1fwOihPhhZ5LyIytF
+BZYamuuGydD90Rl2258kGZizx3Q+NS2raooZHp2p65x8w2VeeHtzRHZhnGJkaoNk
+ylFLgaqNfNKdVi3+k3tOG4xStrVnrxUaKlRvL0yRTIqKxO5IkTgsloVceDWjmHO+
+jpTl4BA6JEmjzffqGbSm8tg9vyITdfaNcNpJvFFeBiU0q/JG//D4u8aJYZnInkfU
+vJqum9kODh/SjAxX1Xv7ec757872JmqO2snj1+DYOH00JAUmSEa9eWwOjwOs/T8R
+qN6T3yfky+5VEa+EJEgeV01nO/WjPE20NDaKJ6wna6XGaJ7OfNhEUKXJsNd+iRoD
+HfkeW6x52JhhhPPIUUXzqseS1q8wMcJn9Mt4YiOHpW9UdWrc565J1zCbLFsen5HE
+8SIpVhCH1NubENs3nHCe8X1m1R9q7VBWKkxLv9qmF3ssmScpwSKlvYc/q/5J80z/
+x8S6ma/27c6BUkNh3j2F1vppUeY7bAV4RMSlhXm7/DVkLhhIkzO856hDdkP7VuLq
+bFw1GrdczU7ADKTFiC2vz1BxmiuXv9svc+dzo16BYqRAGi0PF31LxqT2vbBV42qj
+iB8eodSBb2F6SkUmMqRgCZyUmrwAy5dyq035sSZb/XuoYcTRCKefE0Pv7lfN/dyX
+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
++fGw5fCVB/zDZ+s23818Fl+T9rR27+NaTv7xekO24OfRPusbHrQsecFUophwN0n/
+lM9s6GmFdWsTR1aJJ93QvZjsan3r7Ir3X870HaxJK38ylRpxp+GihmDSpZmwyymF
+fjLnQrGCF4hlG89PNO2PPa5GOLnJkS2Ou39XfMMJz5iDlz6eWPf91XEW08PHHksX
+Rp53PXbYluf+waU5Q4e6u5qiEuutj1jecDkqKqYV/TKQO2ugMT0TX5p8043lxa1r
+vtPZH/bsu7taYNMdv9sCt+88XpkxfkjshsoHpWsh23ZfL9IzSJ9aXX1Za/3E1X1z
+N69UJl8qrA5qLGAVf3dPP6Oy6PDz43nPX3Hl8+Zq55ryOuecoG4ra1/hUSps4lhs
+9Y21JOEisbwnpqBCsi/yvt2ursoU1U8LvxFf7k69iXt6QqDw7ud452Qb9Z4x5ZXe
+jt2X2jVKagpWje5nN4/xq+hzbcccxWxsu1/8xavjdV9vqIqtC992C3GbtOHrhJkZ
+vjShdbenAnr3Pnjq/iTjTkgg+/rnL/xkz9454K/ILyasd63ox1GxxtQlDcNyV4Li
+1+U8xt9mDzeuTVe+qysW93Qnh7Z7Yd5RpFHJQsMz+aMj15EdYwPkt8lHqdFHm15r
+9RU0xJvbhaqs0ns/yBe91Tb0jf6nDu4py/seYwpTl02S06rtVhDkB1JtzA+Y+n17
+8pU98aV+xn6f2QdiammNW2KlixTSksRq5OQPpJfOGYszGeD38U3Gn840Gf5+QciW
+LJ2pZ0uUOnXv+OXvLUK7G7xuP8vkrTzA1s/6yClqV7p/85CkaNFkVvEOM+Fenaaq
+d0c8Iw727a1T4nkUauJdx817JSjX4wmF5cnqzuJ0M0O/lK+zLfOnPrtZRGzvUpfg
+KZHbfA+rv+pazuhjSa5jVw+9ylmi6d5+QKF5T0Ki77JJbdnvzJHnT7klKOkdW51o
++6nA0Mmaa4qNuHRzZu+N8YbSn6d7PxqtLT5ufUHU/aOcP1PAmElZrZlSz6vpgwSX
+De+2eeulX2yJfDL9kOQhGhbDGzjooF5n32+RvcV6Xv/bcMrK7BPHgkTUR0VYDutP
+levKXVo+skzm3LY9Bif62u+q2Oc8+7Tjnva2t027jC0icuY/ir901l5O6zpqhHuq
+PPLOPy7u8KpPqa2nLKdzDw9ud9SyJWplxOMil6n4DnFHP2Qv1LrhU6Hffw07G/1Q
+1HS10t2vWzYqr9g9EZPKn5SiULkHn9wptWeydtMDk+y1zXOYB14Gbte/J+2SNJfX
+DHNIS0p+Kz3+ZbO3OPZre4TTO+emOMeeex+qcHFbwwtH1D0Qo87G8uXlx3qJ7wku
+2+NXtE1TznulsrBV3Ki4j3nYcafAlyTMjrOSCtxy/vqL1fNFe6P5eZ/0B5/m63wu
+f7syU0Oc3+jg9d3SHY/dQpzCMXyBDdk/nwXVXrC5Nr5iVCzJeO6OZtYG/l31uzd/
+Zn0xftyl21A21nXKYHhaKczSIHGpqpVsbteH823386cfj3BuuHxSfIzH+bKZJ5vO
+BcvKKDnSq6TT59TWrv1pIWtdci51uGf2pEOAgGq/SGgWae0L/hjTW8x6QxvKIg/h
+3/Ql7N5p/03QdGTH3Pg23RTaYdblrboUw8cnXtyMUM9qaDtgoOH7SNZh3+7j+dXP
+PrftkGrz67+cyzEhtHRwU2bYIcE6z/ZboTx5JVWX7TERjzUvZv08KCN87i1M/znj
+JC19o91EMnS7AqrW+PWsOdNSYopjOTSWWzx09iq36V6J3LVL1zfrmvzw3aE48urb
+I0v3hBv1OVnLgrlehLuVUM70YFnH8a5UNxolmIpf+EIAfr2ff1igp7tHMPpVXDVF
+ZQJBDb+RSvFVpPmF+OONKZ40Whj+9+8nEOQRPhaEBWEH9NegcSzCB9ZinBXBw7YY
+Z4H9sBEQPnZQdP+v+EHYFuN49Hf5MGgcjTFhEJbFOBMG4nxo/Nf3FtDv354AnNAv
+5LJbAHyIEHsQIsAGKez+AAFBcA8QPjYOiDsBcNq49MU/pGKHWtj1we6DdFaI2wJi
+YJ9CBNm0Ib4H0AC7EeFn44e4B7AK7BxQKID9GGAC9hjkZ4G4NSCECLO/gfwKEA8G
+VCH9KeTnhrgrIAN2Jih6fBRgCPYw5EfLswckwU5BhNisIL4P0AG7A65HFOI0YA3Y
+xaBcwEnADOwpyM8M8a2AANR/FeqXhjgM69iVIb0a6ueEuDOwAuxroEzAYWAd2IOQ
+HxqQ3Q5YAvYZqH89xMMBLbBboX5BiHsB8mAXgKLtGQNsBHsS8mMhvh0QQfThUgTZ
+oHfYdwMkSK+H+nkh7gbIgn0bFG3vaMAI7I+QHwfxXcBSsC9C/S4QjwB0we6G+iUg
+7gusBbsclAeIA7aAPUvvf0uAH64/kt7/AQAR0qvo/U8BloN9BRQDHAIMwB6g9/8O
+QBzs0/T+DwM0wW6m978nsBrsPFD0fI8DpmB/off/NkAYPsBMmMX+DwHUIP0Zvf+p
+wEqwb4Ki7XUE2AD2e3r/OwBSYJ+n9/9+gAx2F73/fQBFsEtB0fJg2s6+GewZev+j
+eQTh+h/R+z8IgH7APab3P9qmsB93AxQ9PhKAfsYN0ft/JwDtjEui9/9eANoB10bv
+f28Argt3DxQtDzyPfRPY3+j9bwOI/tb/oYA6pL+g9787IAd2Niha31HAGOzP9P53
+BKDfcKn0/j8A6IHdQ+9/P0AJ7EpQtLx4wBzsn3/w/4cM/n+Zwf/7Gfw/gcH/mxj8
+P5fB/8f/4P+1DP6fxeD/Iwz+f47B/zsZ/L+Ewf+n/+D/NQz+f53B/98y+P9ZBv9/
+yeD/hQz+//UP/v+cwf/vMPj/Jwb/v8Tg/68Z/L+Cwf/n/uD/jxj8/yqD/79h8P9E
+Bv9vYfD/fAb/n/iD/9cx+P8tBv//wOD/Fxj8/xWD/5cx+P+PP/j/Ewb/z2Dw/3cM
+/p/M4P/tDP5fxOD/3//g/w0M/n+Xwf9HGfw/jcH/exn8/z6D/88jfFgMIorFYASx
+/IgEFsPHj8Ui4lgMizDWAJHCYvT5sMyIGBbDJIRdjkhiMXgBLA5ZgsWwi2APIfpw
+6nxYJsh/CPKLo/nF+LFsaH5WYSwFze/Eh2VB8zMLYYlofoIAlhvNzyWCfbiYH+FH
+0JdXsSNsCA7GOxww/uGEsQ4XwoxwI0wID/r3YP+MU/4Zp/wzTvlnnPLPOOWfcco/
+45R/xin/H49T8J6+f1oP2kwJ9MYbuNKogXj0b6LRFR9WKJUdyuWAMrmhHH5EEBFF
+JJBliDSigKgg2sh6xApxQYKQSOQq8gh5gyz8NgmCLK4J/bbx0zcB+iZI34TomzB9
+40NqkeqFv8tmop8Del3ckFMcWY4QEQOEghxCHiIYzCEMhgnDjGHBsGLYMVwYPowY
+Bo8hYPQxTr/X/6vOX3WhdYjAJgqbGGzisC2BTQI2SdikYNNH9P/49zsYBpgYYGaA
+hQEsA3+qh7FcxnJY6bDRYaeDo8NBh5MOFx1uOv9uYPrt7+j5+AXAzXCsHFhOFi5m
+biYeDC/UxY6cBMyAemANcBugAR8BSeAiYA90AzpAObAPmAWYgMPAOqAKWAFcAZyB
+AQBqRE4DW4FmQBnIAwKBLwAHEANsBJ4B8sBNwAt4DywBzgN2QBegBZQC4cAMwApE
+A0bAY0AWuAG4AUOACJAEbAfaABJwD9gNfAN4gDhgC/ACWAtkA77AZ2ApkArsAnoA
+XaASiAB+AhjgEGAAPASWA5cBCtAP8AMJgCXQBBCBXCAAGF/wYXbkOGAK1AKrgSzA
+ExgBxIFzwA6gE9AESoAwYBrAAkeADUANsBK4DlCBt4AwcBbYBrwE1IBCIAT4CnAD
+scBm4DmgCNwBfIBPgBRwCXAAXgNkoALYD8wBgnAFghgckgiaCGoFagXaAtoCqgKq
+ApoPmg8aBBoEOgE6AcoJygl6AvQE6CbQTaB1oHWgCqAKoLdAb4F6g3qDfgD9ACoB
+KgF6AfQC6E7QnaCvQF+BaoNqg5aBloHuBd0L+gP0Byh6F2MDPQp6FNQY1BgU/YXd
+J6ByoHKgGaAZoO6g7qDvQN+BioKKgiaDJoPagNqAtoO2g6qDqoMWgRaBhoKGgn4H
+/Q7KC8oLGg8aD2oOag7aANoAqgSqBHoX9C6oH6gf6CjoKOgy0GWgaaBpoI6gjqC9
+oL2geqB6oPdB74MeAD0AOg86j8Et3Bn0ATzgBPABFgAB8F94yrAhJsAqwAMQA2wB
+DWAPwAIYAjKAKyAEWAOqQDDADCVEAuuBR4A0cBVwAd4s3AnR/7/ALnySxQD0ySIE
+cAGSABMgAKDPzyULTz4s+DQW/BYLvokF/8OCj2HhauD5DqCbMMANSAHMgODCsxcL
+nxX0qYWFPoM7M4aJmYUFi2WFwAaBnR5w9MDBEDgZAtcfAvcfAs+/GXj/zbDwNBAQ
+FBSCIAxBhB5E6UGMIYgzhCV/CBJ/CJL/ZpD6N8NC/2NZ2dAeR3v3V5/9als+euCn
+BwF6EKQHIYYgzBBEGIIoQxD7QxD/Q/g3218S+W38wvzbmIX1t3EKB30swrMwbkN/
+lQoBH0UQNDP6n5LomwdhNo2gbxxER2YW6Lob4I++PQVAfw7rAdD3vxk7/V4vK70+
+Lno9YvTyCfRynejlPaBnPvh/UYD1GMJnAjB/Rvh0QNcAeIALmIXpxuDoYpoW5NNx
+c9Va6aqLrHT5jxt6Cv/1+4uQ/+S9R3/v/z95V1IQPoga/J/mWUz9lebsGYynlxVI
+9adSfs+38Aao3zOh7waC0/Wh+Ib9yuQX+PepBoX5OPvRgv7KHxTsF0iFKmh+Lt6/
+yvm9DRYTgsP8qeg+F7/AQKrLX2fj4kFFG+Tv/a6UYMqvvQjiQaW4wqTGJdAF7+MZ
+5EMJdvFAQny9ff1CffH0NJgbuf913r/qDPX0dfULxQd5hlP/Ot7Fz8c/kBoU5Onn
+i/ehBnv4uf5e76+a/j4fH39KsKczjYrfTQ1EM6HlO4e4ucFR1MBAv8DF+oJgj6eL
+J9U3GAr18QsMQxaugH5EUHAgleLz9/FunlAeQ5ovnIcvlYp2rEsw1EOBMjLH/vaF
+1HH46OaAr/y2bwB9t0DOf+/7CXYwufmHBLsgeUxB/oGevsFuyC4mt0Aq9GoCkw+F
+Br2MIOVM6FUtXp85k5sbLSTIA0GeIo6wzxem4jZMbn7+VF/EAc1JcUVsoczFsvox
+jruDfOkG4sbkhr6ADMp2ZXILptJoiDOTWxCV6o2YMbm50PyCIGUdkwuNSkFrQ2As
+5ejmulDyZqvt67dar3WFLDBqcvT0RV9jFugDI1RHiqtXSFAwHOi5G4HRqqFnEAW6
+19oDPRMzT+dAaPj1cB1ByKYNW7dsMFNRXiwFDZ1SPetQFZlcvDep0BH7giCDQM7E
+4n2FTxDucTCpJ4A6Af5wIzwoAayEY2QQ5JQI7AfSl4ACfeII0gj3Igs4lm8D7F8P
+edWhLNAxIB3uTXxkyAfwwf4+XcinBzbgpAXlwln1wTH+aBrE9eG4MSDdBm5vRlC2
+NeyDcvXhhnvQB47bBvHtUBZoI9h80Cd8aNopyJMA5QIHATxc5yqACGgDpoA5YAO4
+Av7AXuA4kARcA3KBSqAF6Ac+ApPALMD0FT6PgAAgDuABOYAAqAO6wAZgC7ANoAAe
+QAAQBhwCYoGLwB2gBKgGmoFe4COA+QbzYWApsBogAAbfkH9Zkfh9VYQLRoA8MLpe
+XIcRXFhhEFlYWxBfWFVAVxSWwugZDzO2FTAqlYGZkyyM9lfBDEweZh1rYCa0Fkbf
+BJixKSPhNE9n4sIHhoKuw6goI7/uN39F/t61zi8EvB7uanAY/ds+v3QxiW6gaz2/
+4hv+3m0KH2plx9+tvwwLSiDFJ+gvK9DT56+St1LRmyTdsKIGG/59u3GnBjvC2TgG
+ow6BuIf/5VhoFHU29/BF73IPp/q5of8uuLh7+KKDu4dDAS6LEgRCP5TuzBAJWUgF
+QVMXHB8V9CYNkQW3RiXYf/Hk3cMXPN49PMSXXu7ivYC+DvZL16GP0t/iaAP9Zi42
+C33HQkPS478dR2/I36y/jMXWohv/2lq/dob5uvwet/CDy4WnzV/9Hr5hoZXQT8Z6
+2Ae3fiP0WbWwY/vfz5R/wv/sgD4P0B+LQH+PAH0hF/q7qui6LforEuh79dFjltLf
+UYmGU/R9gvRxNNM/Tfg/uvfp04mDjPsxi9OL/7AfB/MRE3TKwYdBNJj/Y4kazOg7
+1rcjVogj/LsB2QoxU8Qc2QK2KfxrBHE0VLCM/lx8ti2+CfWX6tHLYVlI+9eQxITm
+sEKCkUDEE4GbNJTmidAQKpTsi7ghMBxAAheOISCqgOaCbkDQM3KFTzHmr+MNAXi0
+LZTjD+V5Qt7F21k4pHsizvDcdEUokEKBmAuk+sBxgQu5guhH4+lHBsIxgUgY5F0D
+T+i/69gOBP519MI7suCJqwygYy9VeIpjFs47eOE4XyiFBu1DgZqov50HmscV4uhQ
+bh+C/ky4GaS7Lxy9Hkr2h5rRq3BHPJDghTnrenjC4yGfJmxq8JRXhlZA2wGPbISc
+FKhJEfL6ISGQF48Ywx7PhfLDwJIFNi9cjzfEDBZqRs8O/V1m9HzN6XV50s/317X6
+/pfnLb+wjmUBef1gXwi0Z/BvV/p3noXv/y604b8ey9iSv7fjYbhGzEJL+CyUh7Yn
+OoEzhHYyg2sIWrhOf0gPhBQ81BK2cGU0el+i7eG6UBseeoOy0Nf+kBa88KlYbBFj
+eguhOfBwNn4LFmWhLmShLvQzt32h3f7jJxKBsRc6ibde+KT4Qhm0hU/W358LHMsg
+y3+by4PDo33irmypck3lhUqHynuVHypcquKqCqpkVUvVnao+qhGqp1UvqmarPlDt
+VH2nOqHKrCaktlRtjdo6NSs1J7VAtUi1c2pX1XLVqtRG1KbV2EjCJD1SK+kN6bLG
+Ty02bYI2WXujto12hw66RoEuU9Qqs6ucUw1Qj1A/oZ6i3qA+oxNHziM/JKM3GPRe
+MkGoIY4Qp4hMag5qGJIkyZi0hRRMiiMlkypI1aQRkqm6hfp59Ul1Xg1vjViNx5oY
+LR4tRJukXaCzXJdHb1oPXQMxg3IqCdrER0Rm5VplFRUWVTFVWVUl1S2qTqoJqldU
+n6m2qCqpxaulqjGT+EmJpPMkefW96vwazFrGWiladeR+8neyru5rXXSRB11SqSc8
+Vz6ickr1jGoKtEW66jXVTGiPatWnqvWqt9RK1VxIASQ5jZ8aCppBmkWa9ZqbdPfq
+1estrsV4oO/AISQQ24lrlXWVn6i2q35Q1VDjV8/SIGpitF20p3RmdRAyC5mdzEXm
+IwuRxciSZDxZhryKvIZMIKuSNcg6ZH2yIdmEbEa2IFuTbcn2ZCeyK9mDTCP7k4PJ
+e8iLi1DoMtBOFReVMJWjKtGkJFI6aXEhCW3zCeVu1QHNd5o9Wse0L2gv11HSadV5
+o4M+wNH7FIKUEeoIh4i3ifXEd8Q+LbK2qfY82Ua3T5dFL0PvkV6L3he9xQWuhbUv
+wnXCHUI+oRLytBD6CUOED4Qxwg8CO1GAKEdUIWoSdxJ9iLXEIeIEOpmAydniGlo6
+4TahmFBNaCR0E4YJkzDV4CKii2VoWge5m9xHHiQPkz+Sx8iT5CnyLBn1InQNTogg
+RlhFWEPQJ/zzhP5/Hf4X}
+}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/6344d70f-6d22-465c-b456-63013e6bc378.0/info b/src/Utils/UILogToScript/und/6344d70f-6d22-465c-b456-63013e6bc378.0/info
new file mode 100644
index 00000000..c70b5f39
--- /dev/null
+++ b/src/Utils/UILogToScript/und/6344d70f-6d22-465c-b456-63013e6bc378.0/info
@@ -0,0 +1 @@
+{3,1,0,"",0}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/6344d70f-6d22-465c-b456-63013e6bc378.1 b/src/Utils/UILogToScript/und/6344d70f-6d22-465c-b456-63013e6bc378.1
new file mode 100644
index 00000000..cab3f676
--- /dev/null
+++ b/src/Utils/UILogToScript/und/6344d70f-6d22-465c-b456-63013e6bc378.1
@@ -0,0 +1,207 @@
+{5,2,"en",
+{#base64:77u/PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBU
+cmFuc2l0aW9uYWwvL0VOIj48aHRtbD48aGVhZD48bWV0YSBjb250ZW50PSJ0ZXh0
+L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+
+PC9tZXRhPjxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iTVNIVE1MIDEx
+LjAwLjEwNTg2LjQ5NCI+PC9tZXRhPjwvaGVhZD48Ym9keT7vu788bGluayByZWw9
+InN0eWxlc2hlZXQiIHR5cGU9IlRleHQvY3NzIiBocmVmPSJ2OGhlbHA6Ly9zZXJ2
+aWNlX2Jvb2svc2VydmljZV9zdHlsZSI+PC9saW5rPjxtZXRhIG5hbWU9IkdFTkVS
+QVRPUiIgY29udGVudD0iTVNIVE1MIDEwLjAwLjkyMDAuMTY1MjEiPjwvbWV0YT48
+aDE+VXNlciBhY3Rpb24gbG9nIGNvbnZlcnRvcjwvaDE+DQo8cD7CoDwvcD4NCjxk
+aXY+DQo8cD5UaGUgZGF0YSBwcm9jZXNzb3IgY29udmVydHMgdGhlIHVzZXIgYWN0
+aW9uIGxvZyByZWNvcmRlZCBieSAxQzpFbnRlcnByaXNlIGludG8gYSAxQzpFbnRl
+cnByaXNlIHNjcmlwdCBzY2VuYXJpby48L3A+DQo8cD7CoDwvcD4NCjxwPjxiPlRv
+IHJlY29yZCBhIGxvZzwvYj48L3A+DQo8cD4xLlN0YXJ0IHRoZSBhcHBsaWNhdGlv
+biBpbiBEZXNpZ25lciBtb2RlLjwvcD4NCjxwPjIuT24gdGhlIDxiPlRvb2xzPC9i
+PiBtZW51LCBjbGljayA8Yj5SdW4gdG8gcmVjb3JkIHVzZXIgYWN0aW9ucyBsb2c8
+L2I+Ljxicj5UaGlzIHN0YXJ0cyB0aGUgYXBwbGljYXRpb24gaW4gMUM6RW50ZXJw
+cmlzZSBtb2RlLjwvcD4NCjxwPjMuSW4gMUM6RW50ZXJwcmlzZSBtb2RlLCBpbiB0
+aGUgbWFpbiB3aW5kb3cgdGl0bGUgYmFyLCBjbGljayB0aGUgPGI+U3RhcnQgbG9n
+Z2luZyB1c2VyIGFjdGlvbnM8L2I+IGJ1dHRvbiA8aW1nIHNyYz0iMDM4YjVjODUt
+ZmIxYy00MDgyLTljNGMtZTY5Zjg5MjhiZjNhX2ZpbGVzL0RhdGFQcm9jZXNzb3Iu
+VXNlckFjdGlvbkxvZ0NvbnZlcnNpb24uSGVscC5TdGFydC5wbmcxLnBuZyIgd2lk
+dGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2ltZz4uPC9wPg0KPHA+NC5QZXJmb3JtIHRo
+ZSBhY3Rpb25zIHRoYXQgeW91IHdhbnQgcmVjb3JkZWQgYW5kIHRoZW4gY2xpY2sg
+dGhlIDxiPlN0b3AgbG9nZ2luZyB1c2VyIGFjdGlvbnM8L2I+IGJ1dHRvbiA8Yj48
+aW1nIHNyYz0iMDM4YjVjODUtZmIxYy00MDgyLTljNGMtZTY5Zjg5MjhiZjNhX2Zp
+bGVzL0RhdGFQcm9jZXNzb3IuVXNlckFjdGlvbkxvZ0NvbnZlcnNpb24uSGVscC5T
+dG9wLnBuZzEucG5nIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvaW1nPjwvYj4u
+PC9wPg0KPHA+NS5PbiB0aGUgbWFpbiBtZW51LCBwb2ludCB0byA8Yj5GaWxlPC9i
+PiwgY2xpY2sgPGI+U2F2ZSBBczwvYj4sIGFuZCBzcGVjaWZ5IHRoZSBmaWxlIG5h
+bWUuPC9wPg0KPHA+PGI+PC9iPsKgPC9wPg0KPHA+PGI+VG8gY29udmVydCBhIGxv
+ZzwvYj48L3A+DQo8cD7CoDEuUnVuIHRoZSA8Yj5Vc2VyIGFjdGlvbiBsb2cgY29u
+dmVydG9yIDwvYj5kYXRhIHByb2Nlc3Nvci48L3A+DQo8cD7CoDIuU3BlY2lmeSB0
+aGUgZm9sbG93aW5nIHNldHRpbmdzOjwvcD4NCjxwPsKgwqAgwrc8Yj5HZW5lcmF0
+ZSB0aGUgc2NlbmFyaW8gaW4gdGhlIHNlbGVjdGVkIDFDOkVudGVycHJpc2Ugc2Ny
+aXB0IGxhbmd1YWdlPC9iPi4gVGhlIHJlc3VsdCBzY2VuYXJpbyB3aWxsIGJlIGdl
+bmVyYXRlZCBpbiB0aGUgc2VsZWN0ZWQgMUM6RW50ZXJwcmlzZSBzY3JpcHQgbGFu
+Z3VhZ2UgKEVuZ2xpc2ggb3IgUnVzc2lhbikuwqA8L3A+DQo8cD7CoMKgIMK3PGI+
+TWFpbiBwcm9jZWR1cmU8L2I+LiBUaGUgbmFtZSBvZiB0aGUgcHJvY2VkdXJlIHRo
+YXQgd2lsbCBzZXJ2ZSBhcyB0aGUgZW50cnkgcG9pbnQgb2YgdGhlIHNjZW5hcmlv
+LjwvcD4NCjxwPsKgwqAgwrc8Yj5HZW5lcmF0ZSBjbGllbnQgY29ubmVjdGlvbiBz
+Y3JpcHQ8L2I+LiBTaG93cyB3aGV0aGVyIHlvdXIgc2NlbmFyaW8gd2lsbCBpbmNs
+dWRlIGVzdGFibGlzaGluZyBjbGllbnQgY29ubmVjdGlvbnMuPC9wPg0KPHA+wqDC
+oCDCtzxiPlNwbGl0IHRoZSBzY2VuYXJpbyBpbnRvIHByb2NlZHVyZXMgYnkgYXBw
+bGljYXRpb24gd2luZG93czwvYj4uIFNob3dzIHdoZXRoZXIgYSBzZXBhcmF0ZSBw
+cm9jZWR1cmUgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIGVhY2ggYXBwbGljYXRpb24g
+d2luZG93LjwvcD4NCjxwPsKgwqDCoMK3PGI+R2V0IGZ1bGwgaGllcmFyY2h5PC9i
+Pi4gU2hvd3Mgd2hldGhlciB0aGUgZW50aXJlIHBhdGggdG8gYSBmb3JtIGVsZW1l
+bnQgaW4gdGhlIHRyZWUgb2YgZm9ybSBlbGVtZW50cyBpcyBzdG9yZWQgaW4gdGhl
+IHNjZW5hcmlvLjwvcD4NCjxwPsKgwqAgwrc8Yj5Db252ZXJ0PC9iPi4gVGhlIGxv
+ZyBzb3VyY2UuIFNlbGVjdCBvbmUgb2YgdGhlIGZvbGxvd2luZzo8L3A+DQo8cD7C
+oMKgIMK3PGI+RmlsZTwvYj4uIEluIHRoZSA8Yj5Tb3VyY2UgZmlsZTwvYj4gYm94
+LCBzcGVjaWZ5IHRoZSBzb3VyY2UgbG9nIGZpbGUuIEluIHRoZSA8Yj5UYXJnZXQg
+ZmlsZTwvYj4gYm94LCBzcGVjaWZ5IHRoZSB0YXJnZXQgc2NlbmFyaW8gZmlsZS48
+L3A+DQo8cD7CoMKgIMK3PGI+VGV4dDwvYj4uIENvcHkgdGhlIGxvZyB0byB0aGUg
+PGI+VXNlciBhY3Rpb24gbG9nPC9iPiBib3guIDwvcD4NCjxwPjMuQ2xpY2sgPGI+
+Q29udmVydDwvYj4uPGJyPjxicj5UaGUgZ2VuZXJhdGVkIHNjZW5hcmlvIGlzIHJl
+Y29yZGVkIHRvIHRoZSB0YXJnZXQgZmlsZSBvciBkaXNwbGF5ZWQgaW4gdGhlIDxi
+PlNjZW5hcmlvPC9iPiBib3guPC9wPjwvZGl2PjwvYm9keT48L2h0bWw+},"ru",
+{#base64:77u/PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBU
+cmFuc2l0aW9uYWwvL0VOIj48aHRtbD48aGVhZD48bWV0YSBjb250ZW50PSJ0ZXh0
+L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+
+PC9tZXRhPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
+ZWY9InY4aGVscDovL3NlcnZpY2VfYm9vay9zZXJ2aWNlX3N0eWxlIj48L2xpbms+
+PG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNU0hUTUwgMTEuMDAuMTA1
+ODYuNDk0Ij48L21ldGE+PC9oZWFkPjxib2R5Pg0KPGgxPtCf0YDQtdC+0LHRgNCw
+0LfQvtCy0LDQvdC40LUg0LbRg9GA0L3QsNC70LAg0LTQtdC50YHRgtCy0LjQuSDQ
+v9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0LLQviDQstGB0YLRgNC+0LXQvdC90YvQ
+uSDRj9C30YvQujwvaDE+DQo8cD7QntCx0YDQsNCx0L7RgtC60LAg0L/RgNC10LTQ
+vdCw0LfQvdCw0YfQtdC90LAg0LTQu9GPINC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQ
+vdC40Y8g0LbRg9GA0L3QsNC70LAg0LTQtdC50YHRgtCy0LjQuSDQv9C+0LvRjNC3
+0L7QstCw0YLQtdC70Y8g0LIg0L/RgNC+0LPRgNCw0LzQvNGDwqDQvdCwINCy0YHR
+gtGA0L7QtdC90L3QvtC8INGP0LfRi9C60LUuPC9wPg0KPHA+0J7QsdGA0LDQsdC+
+0YLQutCwINC/0L7Qt9Cy0L7Qu9GP0LXRgiDQv9GA0LXQvtCx0YDQsNC30L7QstGL
+0LLQsNGC0Ywg0YPQutCw0LfQsNC90L3Ri9C1INGE0LDQudC70Ysg0LjQu9C4INC9
+0LXQv9C+0YHRgNC10LTRgdGC0LLQtdC90L3QviDQstCy0LXQtNGR0L3QvdGL0Lkg
+0YLQtdC60YHRgi4g0JLRi9Cx0LXRgNC40YLQtSDQvdGD0LbQvdGL0Lkg0LLQsNC8
+wqDQstCw0YDQuNCw0L3RgiDQsiDQv9C10YDQtdC60LvRjtGH0LDRgtC10LvQtSA8
+c3Ryb25nPiLQn9GA0LXQvtCx0YDQsNC30L7QstGL0LLQsNGC0YwiPC9zdHJvbmc+
+LjwvcD4NCjxwPtCk0L7RgNC80LjRgNC+0LLQsNC90LjQtSDQv9GA0L7Qs9GA0LDQ
+vNC80Ysg0LLQvtC30LzQvtC20L3QviDQvdCwINCw0L3Qs9C70LjQudGB0LrQvtC8
+INC40LvQuCDRgNGD0YHRgdC60L7QvCDQstCw0YDQuNCw0L3RgtC1INCy0YHRgtGA
+0L7QtdC90L3QvtCz0L4g0Y/Qt9GL0LrQsC4g0J/QviDRg9C80L7Qu9GH0LDQvdC4
+0Y4g0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINCy0LDRgNC40LDQvdGCINGP0LfR
+i9C60LAg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C5INCyINC60L7QvdGE0LjQs9GD
+0YDQsNGG0LjQuC4g0J/RgNC4INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4INGB
+0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINC/0YDQvtCz0YDQsNC80LzRgyDQsiDQ
+tNGA0YPQs9C+0Lwg0LLQsNGA0LjQsNC90YLQtSDRg9C60LDQttC40YLQtSDQvdC1
+0L7QsdGF0L7QtNC40LzRi9C5INCyINC/0L7Qu9C1ICI8c3Ryb25nPtCT0LXQvdC1
+0YDQuNGA0L7QstCw0YLRjCDRgdGG0LXQvdCw0YDQuNC5INCyINCy0LDRgNC40LDQ
+vdGC0LUg0LLRgdGC0YDQvtC10L3QvdC+0LPQviDRj9C30YvQutCwPC9zdHJvbmc+
+Ii48L3A+DQo8cD7QkiDQv9C+0LvQtSAiPHN0cm9uZz7QmNC80Y8g0L7RgdC90L7Q
+stC90L7QuSDQv9GA0L7RhtC10LTRg9GA0Ys8L3N0cm9uZz4iINGD0LrQsNC30YvQ
+stCw0LXRgtGB0Y8g0LjQvNGPINC/0YDQvtGG0LXQtNGD0YDRiywg0LrQvtGC0L7R
+gNCw0Y8g0LHRg9C00LXRgiDRj9Cy0LvRj9GC0YzRgdGPINGC0L7Rh9C60L7QuSDQ
+stGF0L7QtNCwwqDQsiDRgdGG0LXQvdCw0YDQuNC5LjwvcD4NCjxwPtCV0YHQu9C4
+INC/0LvQsNC90LjRgNGD0LXRgtGB0Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM
+INGB0LPQtdC90LXRgNC40YDQvtCy0LDQvdC90YPRjiDQv9GA0L7RhtC10LTRg9GA
+0YMg0YHQsNC80L7RgdGC0L7Rj9GC0LXQu9GM0L3QviAo0L3QsNC/0YDQuNC80LXR
+gCwg0LLQviDQstC90LXRiNC90LXQuSDQvtCx0YDQsNCx0L7RgtC60LUpLCDQuNC8
+0LXQtdGC0YHRjyDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINGB0LPQtdC90LXRgNC4
+0YDQvtCy0LDRgtGMINC60L7QtCDQv9C+0LTQutC70Y7Rh9C10L3QuNGPINC6INGC
+0LXRgdGC0LjRgNGD0LXQvNC+0LzRgyDQutC70LjQtdC90YLRgywg0L7RgtC80LXR
+gtC40LIg0YTQu9Cw0LbQvtC6ICI8c3Ryb25nPtCT0LXQvdC10YDQuNGA0L7QstCw
+0YLRjCDQutC+0LQg0L/QvtC00LrQu9GO0YfQtdC90LjRjyDQuiDQutC70LjQtdC9
+0YLRgzwvc3Ryb25nPiIuINCSINC/0YDQvtGC0LjQstC90L7QvCDRgdC70YPRh9Cw
+0LUg0LTQu9GPINC/0YDQvtGG0LXQtNGD0YDRiyDQsdGD0LTQtdGCINGB0YTQvtGA
+0LzQuNGA0L7QstCw0L0g0L/QsNGA0LDQvNC10YLRgCA8c3Ryb25nPtCi0LXRgdGC
+0LjRgNGD0LXQvNC+0LXQn9GA0LjQu9C+0LbQtdC90LjQtTwvc3Ryb25nPiwg0LIg
+0LrQvtGC0L7RgNGL0Lkg0L/RgNC4INCy0YvQt9C+0LLQtSDQsdGD0LTQtdGCINC9
+0LXQvtCx0YXQvtC00LjQvNC+INC/0LXRgNC10LTQsNGC0Ywg0YHRg9GJ0LXRgdGC
+0LLRg9GO0YnQuNC5INC+0LHRitC10LrRgiDRgtC40L/QsCDQotC10YHRgtC40YDR
+g9C10LzQvtC10J/RgNC40LvQvtC20LXQvdC40LUsINC60L7RgtC+0YDRi9C5INGD
+0LbQtSDRg9GB0YLQsNC90L7QstC40Lsg0YHQvtC10LTQuNC90LXQvdC40LUg0YEg
+0YLQtdGB0YLQuNGA0YPQtdC80YvQvCDQutC70LjQtdC90YLQvtC8LjwvcD4NCjxw
+PtCU0LvRjyDRg9C/0YDQvtGJ0LXQvdC40Y8g0YfRgtC10L3QuNGPINC/0L7Qu9GD
+0YfQsNC10LzQvtCz0L4g0LrQvtC00LAg0YHQs9C10L3QtdGA0LjRgNC+0LLQsNC9
+0L3QsNGPINC/0YDQvtCz0YDQsNC80LzQsCDRgNCw0LfQsdC40LLQsNC10YLRgdGP
+INC/0L4gItCz0YDQsNC90LjRhtCw0LwiINC+0LrQvtC9INC/0YDQuNC70L7QttC1
+0L3QuNGPINC90LAg0L/QvtC00L/RgNC+0LPRgNCw0LzQvNGLLiDQldGB0LvQuCDQ
+vtGC0LzQtdGC0LjRgtGMINGE0LvQsNC20L7QuiAiPHN0cm9uZz7QoNCw0LfQsdC4
+0LLQsNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGCINC90LAg0L/RgNC+0YbQtdC00YPR
+gNGLINC/0L4gItCz0YDQsNC90LjRhtCw0LwiINC+0LrQvtC9PC9zdHJvbmc+IiDQ
+sdGD0LTQtdGCINGB0YTQvtGA0LzQuNGA0L7QstCw0L3QsCDQvtC00L3QsCDQsdC+
+0LvRjNGI0LDRjyDQv9GA0L7RhtC10LTRg9GA0LAuPC9wPg0KPHA+0J7RgtC80LXR
+gtC60LAg0YTQu9Cw0LbQutCwICI8c3Ryb25nPtCT0LXQvdC10YDQuNGA0L7QstCw
+0YLRjCDQv9C+0LvRg9GH0LXQvdC40LUg0YDQvtC00LjRgtC10LvRjNGB0LrQuNGF
+INC+0LHRitC10LrRgtC+0LIg0LIg0LjQtdGA0LDRgNGF0LjQuDwvc3Ryb25nPiIg
+0L/QvtC30LLQvtC70Y/QtdGCINC/0YDQuCDQstGL0LfQvtCy0LUg0LzQtdGC0L7Q
+tNCwINC60LDQutC+0LPQvi3Qu9C40LHQviDQvtCx0YrQtdC60YLQsCDRgdCz0LXQ
+vdC10YDQuNGA0L7QstCw0YLRjCDQv9C+0LvRg9GH0LXQvdC40LUg0LLRgdC10YUg
+0YDQvtC00LjRgtC10LvRjNGB0LrQuNGFINGC0LXRgdGC0LjRgNGD0LXQvNGL0YUg
+0L7QsdGK0LXQutGC0L7Qsiwg0LrQvtGC0L7RgNGL0LUg0L3QsNGF0L7QtNGP0YLR
+gdGPINC80LXQttC00YPCoNGC0LXQutGD0YnQuNC8INGC0LXRgdGC0LjRgNGD0LXQ
+vNGL0Lwg0L7QsdGK0LXQutGC0L7QvMKg0Lgg0YTQvtGA0LzQvtC5LiDQldGB0LvQ
+uCDRhNC70LDQttC+0Log0YHQsdGA0L7RiNC10L0gLSDQs9C10L3QtdGA0LjRgNGD
+0LXRgtGB0Y8g0L/QvtC40YHQuiDQvtCx0YrQtdC60YLQvtCyINC90LXQv9C+0YHR
+gNC10LTRgdGC0LLQtdC90L3QvsKg0YfQtdGA0LXQtyDQvtCx0YrQtdC60YIg0YLQ
+tdGB0YLQuNGA0YPQtdC80L7QucKg0YTQvtGA0LzRiy48L3A+PC9ib2R5PjwvaHRt
+bD4=},4,"DataProcessor.UserActionLogConversion.Help.Start.png.png",1,
+{#base64:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAO
+xAGVKw4bAAAAB3RJTUUH3QkGBzIqeYsT3gAAAAd0RVh0QXV0aG9yAKmuzEgAAAAM
+dEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRF
+WHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVY
+dERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3Vy
+Y2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAAB
+AElEQVR4nJVSO2tUYRA93+Pem21iFslCcPMoVDQQBBVJGgOyjf9C7P0d/gRLCzvL
+lDYpI1EUBJN1BQM+EyUhrjew3/1mzlhsFLWIOs0wzBnOOcNxL7e28T8VSW69ePaP
+6ItLl6OqklxZWe6ejidA3+/LxsZjUiPJJqXulPDrDlx0vkAo4QIAmEIbY4ZJd2q2
+SUmVUZWiCoqpuliOjuT12qO6P4jBn1q8MH/zetnypgqKqJKMJFUEFAdLddq8e6/4
+vDtp2goBex/e9vtzd26VLQNFRZT0pIoImOHcYG293PvUMelE1/bW1qb9ZXe4vgkA
+zCJCVa+kiEAbZ3b49PmkyWQMlffBB0l2iwAAAM9JREFUuQCU0sRXAweDNiKiZKRS
+RIzZtInOtUIonPv1P4XRtDlmID3JnDOY0QzblxZ9VeHngXOurOLieTTfwJxzptLr
+Dw82OpjvLeXOjFYVQkAIbqIVzswWV+ZtdDBmUOqxJGi20f5Epd3bveHGjn/zrog+
+nl0ors05v2+jQ+iCiFAZlaoisIxmaJrKop5encaNWcCgyZqPNqqhCZZ1zFDXRyml
+wXDmXOfqn3ko4Camx4YGw5mUUl0fRQCqev/Bw78F78m4RQDLq73fVnbChO+NUUSG
+AiGQFAAAAABJRU5ErkJggg==},"DataProcessor.UserActionLogConversion.Help.Start.png1.png",1,
+{#base64:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAO
+xAGVKw4bAAAAB3RJTUUH3QkGBzIqeYsT3gAAAAd0RVh0QXV0aG9yAKmuzEgAAAAM
+dEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRF
+WHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVY
+dERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3Vy
+Y2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAAB
+AElEQVR4nJVSO2tUYRA93+Pem21iFslCcPMoVDQQBBVJGgOyjf9C7P0d/gRLCzvL
+lDYpI1EUBJN1BQM+EyUhrjew3/1mzlhsFLWIOs0wzBnOOcNxL7e28T8VSW69ePaP
+6ItLl6OqklxZWe6ejidA3+/LxsZjUiPJJqXulPDrDlx0vkAo4QIAmEIbY4ZJd2q2
+SUmVUZWiCoqpuliOjuT12qO6P4jBn1q8MH/zetnypgqKqJKMJFUEFAdLddq8e6/4
+vDtp2goBex/e9vtzd26VLQNFRZT0pIoImOHcYG293PvUMelE1/bW1qb9ZXe4vgkA
+zCJCVa+kiEAbZ3b49PmkyWQMlffBB0l2iwAAAM9JREFUuQCU0sRXAweDNiKiZKRS
+RIzZtInOtUIonPv1P4XRtDlmID3JnDOY0QzblxZ9VeHngXOurOLieTTfwJxzptLr
+Dw82OpjvLeXOjFYVQkAIbqIVzswWV+ZtdDBmUOqxJGi20f5Epd3bveHGjn/zrog+
+nl0ors05v2+jQ+iCiFAZlaoisIxmaJrKop5encaNWcCgyZqPNqqhCZZ1zFDXRyml
+wXDmXOfqn3ko4Camx4YGw5mUUl0fRQCqev/Bw78F78m4RQDLq73fVnbChO+NUUSG
+AiGQFAAAAABJRU5ErkJggg==},"DataProcessor.UserActionLogConversion.Help.Stop.png.png",1,
+{#base64:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAO
+xAGVKw4bAAAAB3RJTUUH3QkGBzQTcNQ8UAAAAAd0RVh0QXV0aG9yAKmuzEgAAAAM
+dEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRF
+WHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVY
+dERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3Vy
+Y2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAAB
+AElEQVR4nI1Sv2uTURQ9Nk90CBga0iYQ3QKCIkYaMejSYi1SERwEQSkRhAy6+lc4
+uOggFBTdiiB0c2qdoq3g4C8IaBanaNCWD+z73j3nOXxpEIfUu9zL4VwO556778PH
+T9itiL3LSfr8/t1/MAHg6PG6Iymp2TxTLbox1G8D63ReU3SSUu+rBdOvrwAm8lMz
+92ZHvLd315T0AVQLR1LvRTmSRkIWzQOICgAWmrMAXnbWokKGQ2bkUIFmkE3kJwFA
+KYCgMJRQuosbzUQ5SmYGhUedp8tvVgBUSlOBaTY07l8CcPvsjZuNJTOT5ESZGZi2
+G1cgrvbWK+WSpwcwPVVk5NXafKu+vsm4YQAAALxJREFUCKZmRspRNLOooJ+9duMy
+Il/01svTJUX1+4NrtflW/SIHX3KTx8xMmYcQAhTizpZ+/G7PLCLyee8VgOu1862T
+F/i9CxoUQgiUHDn0kCseBgD69qkFRDuQ2986MQf6XKECAAqWmZZoZmBoLN8ZnT9/
+6CCAh5urI2Tz1hMzo+hI0QzR/s412dr5N+pozEwnSeK9726XN5YejHmN7nbZe58k
+iQNA8vGzlTFsAMBG1hyA0+fmhrJ7LQH4A6srMkd3rLpzAAAAAElFTkSuQmCC},"DataProcessor.UserActionLogConversion.Help.Stop.png1.png",1,
+{#base64:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAO
+xAGVKw4bAAAAB3RJTUUH3QkGBzQTcNQ8UAAAAAd0RVh0QXV0aG9yAKmuzEgAAAAM
+dEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRF
+WHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVY
+dERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3Vy
+Y2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAAB
+AElEQVR4nI1Sv2uTURQ9Nk90CBga0iYQ3QKCIkYaMejSYi1SERwEQSkRhAy6+lc4
+uOggFBTdiiB0c2qdoq3g4C8IaBanaNCWD+z73j3nOXxpEIfUu9zL4VwO556778PH
+T9itiL3LSfr8/t1/MAHg6PG6Iymp2TxTLbox1G8D63ReU3SSUu+rBdOvrwAm8lMz
+92ZHvLd315T0AVQLR1LvRTmSRkIWzQOICgAWmrMAXnbWokKGQ2bkUIFmkE3kJwFA
+KYCgMJRQuosbzUQ5SmYGhUedp8tvVgBUSlOBaTY07l8CcPvsjZuNJTOT5ESZGZi2
+G1cgrvbWK+WSpwcwPVVk5NXafKu+vsm4YQAAALxJREFUCKZmRspRNLOooJ+9duMy
+Il/01svTJUX1+4NrtflW/SIHX3KTx8xMmYcQAhTizpZ+/G7PLCLyee8VgOu1862T
+F/i9CxoUQgiUHDn0kCseBgD69qkFRDuQ2986MQf6XKECAAqWmZZoZmBoLN8ZnT9/
+6CCAh5urI2Tz1hMzo+hI0QzR/s412dr5N+pozEwnSeK9726XN5YejHmN7nbZe58k
+iQNA8vGzlTFsAMBG1hyA0+fmhrJ7LQH4A6srMkd3rLpzAAAAAElFTkSuQmCC}
+}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/6810777b-4151-4eba-b50d-4a2a08b5be5a b/src/Utils/UILogToScript/und/6810777b-4151-4eba-b50d-4a2a08b5be5a
new file mode 100644
index 00000000..e0e0efe2
--- /dev/null
+++ b/src/Utils/UILogToScript/und/6810777b-4151-4eba-b50d-4a2a08b5be5a
@@ -0,0 +1,6 @@
+{1,
+{2,1,
+{0,
+{0,0,6810777b-4151-4eba-b50d-4a2a08b5be5a},"UnpackV8",
+{1,"ru","Unpack v8"},""}
+},0}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/6810777b-4151-4eba-b50d-4a2a08b5be5a.0 b/src/Utils/UILogToScript/und/6810777b-4151-4eba-b50d-4a2a08b5be5a.0
new file mode 100644
index 00000000..91178556
--- /dev/null
+++ b/src/Utils/UILogToScript/und/6810777b-4151-4eba-b50d-4a2a08b5be5a.0
@@ -0,0 +1,1368 @@
+{1,
+{#base64:TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5v
+dCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAADecsL/mhOsrJoTrKyaE6ys
+cgymrM8TrKwZD6KsiROsrJ8f8ayZE6ysmhOtrNwTrKz4DL+smBOsrHIMp6yLE6ys
+UmljaJoTrKwAAAAAAAAAAAAAAAAAAAAAUEUAAEwBAwBR4vBHAAAAAAAAAADgAA8B
+CwEGAACwAAAAUAAAAAAAADlWAAAAEAAAAMAAAAAAQAAAEAAAABAAAAQAAAAAAAAA
+BAAAAAAAAAAAEAEAABAAAAAAAAADAAAAAAAQAAAQAAAAABAAABAAAAAAAAAQAAAA
+AAAAAAAAAABwywAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AMAAABgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAudGV4dAAAAKauAAAAEAAA
+ALAAAAAQAAAAAAAAAAAAAAAAAAAgAABgLnJkYXRhAAB6EQAAAMAAAAAgAAAAwAAA
+AAAAAAAAAAAAAAAAQAAAQC5kYXRhAAAAmCkAAADgAAAAIAAAAOAAAAAAAAAAAAAA
+AAAAAEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAIoN+PVAALABhMh1CArIiA349UAA6QcAAACQkJCQkJCQ
+aDAQQADoEzMAAFnDkJCQkMOQkJCQkJCQkJCQkJCQkJCLwTPJxwAYwUAAiUgUiUgc
+xkAgAcOQkJCQkJCQkJCQkFaL8egYAAAA9kQkCAF0CVboXy0AAIPEBIvGXsIEAJCQ
+Vovxi0YUxwYYwUAAhcB0CVDoPi0AAIPEBItGHIXAdB2LSPyNcPxowBBAAFFqOFDo
+yjIAAFboGi0AAIPEBF7DkFaL8YsGhcB0CVDoBS0AAIPEBItGCIXAdAlQ6PUsAACD
+xASNThDolv///17DkJCQkItEJARTVldoVOBAAIvZUOjkMwAAi/CDxAiF9nULX164
+uf///1vCCACLTCQUaFDgQABR6MEzAACL+IPECIX/dRRW6DwzAACDxAS4uP///19e
+W8IIAFdWi8vo8wEAAFaL2OgdMwAAV+gXMwAAg8QIg/v9dQtfXri3////W8IIAIvD
+X/fYG8BeJLpbwggAkJCQkItEJARTVldoVOBAAIvZUOhUMwAAi/CDxAiF9nULX164
+zf///1vCCACLTCQUaFDgQABR6DEzAACL+IPECIX/dRRW6KwyAACDxAS4zP///19e
+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
+yf8zwPKu99FJi9mLyjvTcgKLy79M5kAAi/UzwPOmdAUbwIPY/4XAdRE703INO9MP
+lcCFwA+E1QAAAGiw6UAAaIjgQADomRgAAGiw6UAAaAjmQADoihgAAGiw6UAAaIjg
+QADoexgAAGiw6UAAaNDlQADobBgAAGiw6UAAaIjgQADoXRgAAGiw6UAAaMTlQADo
+ThgAAGiw6UAAaJTlQADoPxgAAGiw6UAAaGDlQADoMBgAAIPEQGiw6UAAaCzlQADo
+HhgAAGiw6UAAaPjkQADoDxgAAGiw6UAAaOjkQADoABgAAGiw6UAAaODkQADo8RcA
+AGiw6UAAaLDkQADo4hcAAGiw6UAAaHzkQADp0AAAAGiw6UAAaIjgQADoxBcAAGiw
+6UAAaIjgQADotRcAAGiw6UAAaHTkQADophcAAGiw6UAAaDDkQADolxcAAGiw6UAA
+aNjjQADoiBcAAGiw6UAAaITjQADoeRcAAGiw6UAAaIjgQADoahcAAGiw6UAAaIjg
+QADoWxcAAIPEQGiw6UAAaHzjQADoSRcAAGiw6UAAaCDjQADoOhcAAGiw6UAAaMzi
+QADoKxcAAGiw6UAAaITiQADoHBcAAGiw6UAAaIjgQADoDRcAAGiw6UAAaIjgQADo
+/hYAAItMJESDxDCFyQ+ENgIAAIpB/4TAdB48/3Qa/shfXohB/10zwFuLTCRYZIkN
+AAAAAIPEZMNJUehFBgAAg8QEM8BfXl1bi0wkWGSJDQAAAACDxGTDjUwkIOiQ2P//
+i1MMi0MIagBSUI1MJCzGRCR8Bug48v//i/DGRCRwAI1MJCDrS0lR6PgFAACDxASL
+xl9eXVuLTCRYZIkNAAAAAIPEZMONTCQg6EPY//+LSwyLUwhqAFFSjUwkLMZEJHwF
+6Ovr//+L8MZEJHAAjUwkIOhb2P//i0wkFIXJdLKKQf+EwHShPP90nf7IX4hB/4vG
+Xl1bi0wkWGSJDQAAAACDxGTDjUwkIOjl1///i0MMi0sIUFGNTCQoxkQkeATo7+f/
+/41MJCCL8MZEJHAA6P/X//+LTCQUhckPhFL///+KQf+EwA+EPf///zz/D4Q1////
+65aNTCRE6JXX//+LUxCLQwyLSwhqAVJQUY1MJFTGhCSAAAAAA+g24v//jUwkRIvw
+xkQkcADoptf//2oBjUwkFMdEJHT/////6IMBAACLxl9eXVuLTCRYZIkNAAAAAIPE
+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
+9zPLA/AD+YPx/4Pw/zPPM8aDwgSB4QABAYF1HCUAAQGBdNMlAAEBAXUIgeYAAACA
+dcReX1szwMOLQvw42HQ2hMB07zjcdCeE5HTnwegQONh0FYTAdNw43HQGhOR01OuW
+Xl+NQv9bw41C/l5fW8ONQv1eX1vDjUL8Xl9bw/8lJMBAAMzMzMzMzMzMzMzMzMzM
+i0XsUOhrgP//WcO4UMhAAOkajP//zMzMzMzMzMzMzMyLhaz8//9Q6EiA//9Zw7h4
+yEAA6feL///MzMzMzMzMzIuF0Pz//1DoKID//1nDuKDIQADp14v//8zMzMzMzMzM
+jU2c6eh7//+NTazpsFL//41NrOmoUv//jU2s6aBS//+NTdDpmFL//41N0OmQUv//
+jU3Q6YhS//+4yMhAAOmNi///zMzMzMzMzMzMzMzMzMy4IMlAAOl1i///zMyNTeDp
+jHv//7j4yUAA6WGL///MzItN7OnMmf//uCDKQADpTYv//8zMi03w6biZ//+4aMpA
+AOk5i///zMyLTfDppJn//7iQykAA6SWL///MzItN8OmQmf//uLjKQADpEYv//8zM
+jU3g6Sh7//+4IMtAAOn9iv//zMyLTfDpaJn//7hIy0AA6emK//8AAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+6s4AAFLRAABA0QAALtEAAB7RAAAO0QAAHs0AACzNAAA4zQAARM0AAFDNAABezQAA
+cs0AAIbNAACWzQAAqs0AALbNAADOzQAA6M0AAPjNAAAKzgAAGs4AACzOAAA6zgAA
+TM4AAFjOAABmzgAAcs4AAH7OAACMzgAAms4AAKjOAAC4zgAAyM4AANrOAAD4zgAA
+Cs8AAB7PAAA2zwAATM8AAGLPAAByzwAAgs8AAJ7PAAC0zwAAzs8AAOjPAAAA0AAA
+GtAAADjQAABI0AAAXNAAAGrQAAB80AAAjNAAAJzQAACo0AAAstAAAL7QAADY0AAA
+6tAAAPzQAAAAAAAABM0AAPrMAADszAAA3MwAANLMAADEzAAAAAAAAGAQQAA4x0AA
+1z9AAJ0+QAC6P0AAc3RyaW5nIHRvbyBsb25nAHDHQAAEP0AAnT5AAKo+QAD/////
+AAAAAAAAAADAx0AAv0BAAJ0+QACiQEAAaW52YWxpZCBzdHJpbmcgcG9zaXRpb24A
+/////wAAAADmQ0AAAAAAAP////86REAARERAAAAAAAD/////AAAAANhIQAAuY29t
+AAAAAC5iYXQAAAAALmNtZAAAAAAuZXhlAAAAAC4vXAA/KgAAAAAAAP/////5VkAA
+DVdAAPDHQABhV0AAGlhAAFVua25vd24gZXhjZXB0aW9uAAAAOMhAADxYQAAAAAAA
+Y3Nt4AEAAAAAAAAAAAAAAAMAAAAgBZMZAAAAAAAAAAD/////AAAAAIVhQAAAAAAA
+cWFAAHVhQAD/////AAAAANthQAAAAAAAx2FAAMthQAD/////iHpAAJJ6QAAAAAAA
+/////wAAAAD4e0AAAAAAANZ7QADge0AA/////yh+QAAsfkAAAAAAAP////+KfkAA
+k35AAAYAAAYAAQAAEAADBgAGAhAERUVFBQUFBQU1MABQAAAAACAoOFBYBwgANzAw
+V1AHAAAgIAgAAAAACGBoYGBgYAAAcHB4eHh4CAcIAAAHAAgICAAACAAIAAcIAAAA
+KABuAHUAbABsACkAAAAAAChudWxsKQAAAAAAAAAAAAD/////TZBAAFGQQAD/////
+AZFAAAWRQABydW50aW1lIGVycm9yIAAADQoAAFRMT1NTIGVycm9yDQoAAABTSU5H
+IGVycm9yDQoAAAAARE9NQUlOIGVycm9yDQoAAFI2MDI4DQotIHVuYWJsZSB0byBp
+bml0aWFsaXplIGhlYXANCgAAAABSNjAyNw0KLSBub3QgZW5vdWdoIHNwYWNlIGZv
+ciBsb3dpbyBpbml0aWFsaXphdGlvbg0KAAAAAFI2MDI2DQotIG5vdCBlbm91Z2gg
+c3BhY2UgZm9yIHN0ZGlvIGluaXRpYWxpemF0aW9uDQoAAAAAUjYwMjUNCi0gcHVy
+ZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGwNCgAAAFI2MDI0DQotIG5vdCBlbm91Z2gg
+c3BhY2UgZm9yIF9vbmV4aXQvYXRleGl0IHRhYmxlDQoAAAAAUjYwMTkNCi0gdW5h
+YmxlIHRvIG9wZW4gY29uc29sZSBkZXZpY2UNCgAAAABSNjAxOA0KLSB1bmV4cGVj
+dGVkIGhlYXAgZXJyb3INCgAAAABSNjAxNw0KLSB1bmV4cGVjdGVkIG11bHRpdGhy
+ZWFkIGxvY2sgZXJyb3INCgAAAABSNjAxNg0KLSBub3QgZW5vdWdoIHNwYWNlIGZv
+ciB0aHJlYWQgZGF0YQ0KAA0KYWJub3JtYWwgcHJvZ3JhbSB0ZXJtaW5hdGlvbg0K
+AAAAAFI2MDA5DQotIG5vdCBlbm91Z2ggc3BhY2UgZm9yIGVudmlyb25tZW50DQoA
+UjYwMDgNCi0gbm90IGVub3VnaCBzcGFjZSBmb3IgYXJndW1lbnRzDQoAAABSNjAw
+Mg0KLSBmbG9hdGluZyBwb2ludCBub3QgbG9hZGVkDQoAAAAATWljcm9zb2Z0IFZp
+c3VhbCBDKysgUnVudGltZSBMaWJyYXJ5AAAAAAoKAABSdW50aW1lIEVycm9yIQoK
+UHJvZ3JhbTogAAAALi4uADxwcm9ncmFtIG5hbWUgdW5rbm93bj4AAFN1bk1vblR1
+ZVdlZFRodUZyaVNhdAAAAEphbkZlYk1hckFwck1heUp1bkp1bEF1Z1NlcE9jdE5v
+dkRlYwAAAABUWgAAAAAAAP/////zr0AA969AAEdldExhc3RBY3RpdmVQb3B1cAAA
+R2V0QWN0aXZlV2luZG93AE1lc3NhZ2VCb3hBAHVzZXIzMi5kbGwAAP////+ouEAA
+rLhAAP////8XuUAAG7lAAADpQAAAAAAAAAAAAP////8AAAAAAAAAABjpQAABAAAA
+AAAAAP////8AAAAAAAAAADjpQAACAAAAAAAAAP////8AAAAAAAAAAADHQADoxkAA
+0MZAAAAAAAAAAAAAAAAAAAMAAAAYx0AAAAAAAAAAAAAAAAAAOOlAACjHQAAAAAAA
+6MZAANDGQAAAAAAAAAAAAAAAAAAAAAAAAgAAAFDHQAAAAAAAAAAAAAAAAAAY6UAA
+YMdAAAAAAABY6UAAAgAAAAAAAAD/////AAAAAAAAAACIx0AA6MZAANDGQAAAAAAA
+AAAAAAAAAAADAAAAoMdAAAAAAAAAAAAAAAAAAFjpQACwx0AA0MZAAAAAAAAAAAAA
+AAAAAAAAAAABAAAA1MdAAAAAAAAAAAAAAAAAAADpQADgx0AAAAAAABjsQAAAAAAA
+AAAAAP////8AAAAAAAAAAAjIQAAAAAAAAAAAAAAAAAABAAAAIMhAAAAAAAAAAAAA
+AAAAABjsQAAoyEAAAAAAACAFkxkBAAAAcMhAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+/////2C9QAAgBZMZAQAAAJjIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////+AvUAA
+IAWTGQEAAADAyEAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////oL1AACAFkxkHAAAA
+6MhAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8C9QAAAAAAA8L1AAAAAAADovUAA
+AAAAAOC9QAAAAAAA2L1AAAAAAADQvUAAAAAAAMi9QAAgBZMZAgAAAEDJQAABAAAA
+UMlAAAAAAAAAAAAAAAAAAP////8AAAAA/////wAAAAAAAAAAAAAAAAEAAAABAAAA
+aMlAAAAAAAAAAAAAAAAAAAAAAABZPEAAAAAAAADpQAAAAAAA/////wAAAAAMAAAA
+uldAAAAAAAAAAAAAGOlAAAAAAAD/////AAAAABwAAAAgP0AAAAAAAAAAAAA46UAA
+AAAAAP////8AAAAAHAAAAPM/QAAAAAAAAwAAALjJQACYyUAAeMlAAAAAAAB9P0AA
+AAAAANjJQAAgBZMZAQAAABjKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8cvkAA
+IAWTGQEAAABAykAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////ML5AAAIAAACYyUAA
+eMlAAAAAAAAAAAAAxz5AAAAAAABIykAAIAWTGQEAAACIykAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAD/////RL5AACAFkxkBAAAAsMpAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+/////1i+QAAgBZMZAQAAANjKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////9svkAA
+AAAAAFjpQAAAAAAA/////wAAAAAcAAAA20BAAAAAAAADAAAA4MpAAJjJQAB4yUAA
+AAAAAGVAQAAAAAAAAMtAACAFkxkBAAAAQMtAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+/////4C+QAAgBZMZAQAAAGjLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////+UvkAA
+qMwAAAAAAAAAAAAAFM0AAPzAAACsywAAAAAAAAAAAABs0QAAAMAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAA6s4AAFLRAABA0QAALtEAAB7RAAAO0QAAHs0AACzNAAA4zQAA
+RM0AAFDNAABezQAAcs0AAIbNAACWzQAAqs0AALbNAADOzQAA6M0AAPjNAAAKzgAA
+Gs4AACzOAAA6zgAATM4AAFjOAABmzgAAcs4AAH7OAACMzgAAms4AAKjOAAC4zgAA
+yM4AANrOAAD4zgAACs8AAB7PAAA2zwAATM8AAGLPAAByzwAAgs8AAJ7PAAC0zwAA
+zs8AAOjPAAAA0AAAGtAAADjQAABI0AAAXNAAAGrQAAB80AAAjNAAAJzQAACo0AAA
+stAAAL7QAADY0AAA6tAAAPzQAAAAAAAABM0AAPrMAADszAAA3MwAANLMAADEzAAA
+AAAAAAgAZGVmbGF0ZUVuZAAABQBkZWZsYXRlAAkAZGVmbGF0ZUluaXQyXwAoAGlu
+ZmxhdGVFbmQAACMAaW5mbGF0ZQApAGluZmxhdGVJbml0Ml8AemxpYjEuZGxsAKIB
+SGVhcFJlQWxsb2MAmQFIZWFwQWxsb2MAnwFIZWFwRnJlZQAALwJSdGxVbndpbmQA
+fQBFeGl0UHJvY2VzcwCeAlRlcm1pbmF0ZVByb2Nlc3MAAPcAR2V0Q3VycmVudFBy
+b2Nlc3MAGgFHZXRMYXN0RXJyb3IAAC0AQ3JlYXRlRGlyZWN0b3J5QQAAkABGaW5k
+Q2xvc2UAigBGaWxlVGltZVRvU3lzdGVtVGltZQAAiQBGaWxlVGltZVRvTG9jYWxG
+aWxlVGltZQAEAUdldERyaXZlVHlwZUEAlABGaW5kRmlyc3RGaWxlQQAAnQBGaW5k
+TmV4dEZpbGVBAMoAR2V0Q29tbWFuZExpbmVBAHQBR2V0VmVyc2lvbgAACwJSYWlz
+ZUV4Y2VwdGlvbgAAowFIZWFwU2l6ZQAAGwBDbG9zZUhhbmRsZQDfAldyaXRlRmls
+ZQAYAlJlYWRGaWxlAACdAUhlYXBEZXN0cm95AJsBSGVhcENyZWF0ZQAAvwJWaXJ0
+dWFsRnJlZQC7AlZpcnR1YWxBbGxvYwAAuAFJc0JhZFdyaXRlUHRyAG0CU2V0SGFu
+ZGxlQ291bnQAAFIBR2V0U3RkSGFuZGxlAAAVAUdldEZpbGVUeXBlAFABR2V0U3Rh
+cnR1cEluZm9BABYBR2V0RnVsbFBhdGhOYW1lQQAA9QBHZXRDdXJyZW50RGlyZWN0
+b3J5QQAA0gJXaWRlQ2hhclRvTXVsdGlCeXRlAOQBTXVsdGlCeXRlVG9XaWRlQ2hh
+cgC/AUxDTWFwU3RyaW5nQQAAwAFMQ01hcFN0cmluZ1cAAK0CVW5oYW5kbGVkRXhj
+ZXB0aW9uRmlsdGVyAAAkAUdldE1vZHVsZUZpbGVOYW1lQQAAsgBGcmVlRW52aXJv
+bm1lbnRTdHJpbmdzQQCzAEZyZWVFbnZpcm9ubWVudFN0cmluZ3NXAAYBR2V0RW52
+aXJvbm1lbnRTdHJpbmdzAAgBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAiwJTZXRV
+bmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAfAJTZXRTdGRIYW5kbGUAAKoARmx1c2hG
+aWxlQnVmZmVycwAANABDcmVhdGVGaWxlQQBqAlNldEZpbGVQb2ludGVyAAC1AUlz
+QmFkUmVhZFB0cgAAsgFJc0JhZENvZGVQdHIAAL8AR2V0Q1BJbmZvALkAR2V0QUNQ
+AAAxAUdldE9FTUNQAABwAUdldFRpbWVab25lSW5mb3JtYXRpb24AAFMBR2V0U3Ry
+aW5nVHlwZUEAAFYBR2V0U3RyaW5nVHlwZVcAAD4BR2V0UHJvY0FkZHJlc3MAAMIB
+TG9hZExpYnJhcnlBAABhAlNldEVuZE9mRmlsZQAAIQBDb21wYXJlU3RyaW5nQQAA
+IgBDb21wYXJlU3RyaW5nVwAAYgJTZXRFbnZpcm9ubWVudFZhcmlhYmxlQQBLRVJO
+RUwzMi5kbGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAPAvQACAPUAA
+jUJAAAAAAAAAAAAAT0NAAJVOQAC8pkAA6ppAAAAAAAAAAAAAOk9AAAAAAAAAAAAA
++5pAAAAAAAAAAAAAAAAAAHdiAAByYgAAMS4yLjMAAABVbnBhY2tUb0ZvbGRlci4g
+RXJyb3IgaW4gY3JlYXRpbmcgZmlsZSEACgAAAGRhdGEAAAAAJXNcJXMuJXMAAAAA
+aGVhZGVyAAAuAAAAfAAAAFByb2dyZXNzICg1MCBwb2ludHMpOiAAAFVucGFja1Rv
+Rm9sZGVyLiBFcnJvciBpbiBjcmVhdGluZyBmaWxlIQoAAAAAJXNcJXMAAABGaWxl
+SGVhZGVyAABVbnBhY2tUb0ZvbGRlci4gRXJyb3IgaW4gY3JlYXRpbmcgZGlyZWN0
+b3J5IQoAAABVbnBhY2tUb0ZvbGRlci4gVGhpcyBpcyBub3QgVjggZmlsZSEKAAAA
+VW5wYWNrVG9Gb2xkZXIuIEVycm9yIGluIHJlYWRpbmcgZmlsZSEKAFVucGFja1Rv
+Rm9sZGVyLiBOb3QgZW5vdWdoIG1lbW9yeSEKAFVucGFja1RvRm9sZGVyLiBJbnB1
+dCBmaWxlIG5vdCBmb3VuZCEKAABSZWFkQmxvY2tEYXRhLiBCbG9ja0RhdGEgPT0g
+TlVMTC4AAAAuZGF0YQAAACVzXCouaGVhZGVyACVzXEZpbGVIZWFkZXIAAAAlMDh4
+AAAAAExvYWRGaWxlOiBvawoAAABTYXZlRmlsZS4gRXJyb3IgaW4gY3JlYXRpbmcg
+ZmlsZSEAAAAlc1wqAAAAAFBhY2s6IG9rCgAAAExvYWRGaWxlRnJvbUZvbGRlcjog
+b2sKAFY4VW5wYWNrLmV4ZSAtcGFjayAgICAgICAgMUN2OC51bmQgICAgICAgICAg
+ICAgICAgICAgICAgICAxQ3Y4X25ldy5jZgoAAFY4VW5wYWNrLmV4ZSAtZGVmbGF0
+ZSAgICAgMUN2OC51bnBcbWV0YWRhdGFfbmV3LmRhdGEudW5kICAxQ3Y4LnVucFxt
+ZXRhZGF0YS5kYXRhCgAAAFY4VW5wYWNrLmV4ZSAtcGFjayAgICAgICAgMUN2OC51
+bnBcbWV0YWRhdGEudW5wICAgICAgICAgICAxQ3Y4LnVucFxtZXRhZGF0YV9uZXcu
+ZGF0YS51bmQKAAAAUEFDSwoAAABWOFVucGFjay5leGUgLXVucGFjayAgICAgIDFD
+djgudW5wXG1ldGFkYXRhLmRhdGEudW5kICAgICAgMUN2OC51bnBcbWV0YWRhdGEu
+dW5wCgAAAABWOFVucGFjay5leGUgLXVuZGVmbGF0ZSAgIDFDdjgudW5wXG1ldGFk
+YXRhLmRhdGEgICAgICAgICAgMUN2OC51bnBcbWV0YWRhdGEuZGF0YS51bmQKAAAA
+VjhVbnBhY2suZXhlIC11bnBhY2sgICAgICAxQ3Y4LmNmICAgICAgICAgICAgICAg
+ICAgICAgICAgIDFDdjgudW5wCgBVTlBBQ0sKACAgLUJbVUlMRF0gICAgICBpbl9k
+aXJuYW1lICAgICAgICAgb3V0X2ZpbGVuYW1lCgAAAAAgIC1QW0FSU0VdICAgICAg
+aW5fZmlsZW5hbWUgICAgICAgIG91dF9kaXJuYW1lCgAgIC1CQVQKACAgLUVbWEFN
+UExFXQoAAAAgIC1EW0VGTEFURV0gICAgaW5fZmlsZW5hbWUgICAgICAgIGZpbGVu
+YW1lLmRhdGEKAAAAICAtSVtORkxBVEVdICAgIGluX2ZpbGVuYW1lLmRhdGEgICBv
+dXRfZmlsZW5hbWUKAAAAACAgLVBBW0NLXSAgICAgICBpbl9kaXJuYW1lICAgICAg
+ICAgb3V0X2ZpbGVuYW1lLmNmCgAgIC1VW05QQUNLXSAgICAgaW5fZmlsZW5hbWUu
+Y2YgICAgIG91dF9kaXJuYW1lCgBWOFVOUEFDSwoAAABVbnBhY2ssIHBhY2ssIGRl
+ZmxhdGUgYW5kIGluZmxhdGUgMUMgdjggZmlsZSAoKi5jZikKAAAAAFY4VXBhY2sg
+VmVyc2lvbiAyLjAwIENvcHlyaWdodCAoYykgMjAwOCBEZW5pcyBEZW1pZG92IDIw
+MDgtMDMtMzAKAAAALWUAAC1leGFtcGxlAAAAADpFTkQKAAAAVjhVbnBhY2suZXhl
+IC1wYWNrICAgICAgICAlMi51bnAgICAgICAgICAgICAgICAgICAgICAgICAgJTIu
+bmV3LmNmCgBWOFVucGFjay5leGUgLWRlZmxhdGUgICAgICUyLnVucFxtZXRhZGF0
+YV9uZXcuZGF0YS51bmQgICAlMi51bnBcbWV0YWRhdGEuZGF0YQoAAFY4VW5wYWNr
+LmV4ZSAtcGFjayAgICAgICAgJTIudW5wXG1ldGFkYXRhLnVucCAgICAgICAgICAg
+ICUyLnVucFxtZXRhZGF0YV9uZXcuZGF0YS51bmQKAAA6UEFDSwoAAEdPVE8gRU5E
+CgAAAFY4VW5wYWNrLmV4ZSAtdW5wYWNrICAgICAgJTIudW5wXG1ldGFkYXRhLmRh
+dGEudW5kICAgICAgICAlMi51bnBcbWV0YWRhdGEudW5wCgAAVjhVbnBhY2suZXhl
+IC11bmRlZmxhdGUgICAlMi51bnBcbWV0YWRhdGEuZGF0YSAgICAgICAgICAgICUy
+LnVucFxtZXRhZGF0YS5kYXRhLnVuZAoAVjhVbnBhY2suZXhlIC11bnBhY2sgICAg
+ICAlMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUyLnVucAoAAAA6VU5Q
+QUNLCgAAAABpZiAlMSA9PSBwIEdPVE8gUEFDSwoAAABpZiAlMSA9PSBQIEdPVE8g
+UEFDSwoAAAAtYmF0AAAAAC1iAAAtYnVpbGQAAC1wAAAtcGFyc2UAAC1wYQAtcGFj
+awAAAC11bnAAAAAALXUAAC11bnBhY2sALWQAAC1kZWZsYXRlAAAAAC11bmRlZmxh
+dGUAAC11bmQAAAAALWkAAC1pbmZsYXRlAAAAAAAAAAAIwkAAAAAAAC4/QVZleGNl
+cHRpb25AQAAIwkAAAAAAAC4/QVZsb2dpY19lcnJvckBzdGRAQAAAAAjCQAAAAAAA
+Lj9BVmxlbmd0aF9lcnJvckBzdGRAQAAACMJAAAAAAAAuP0FWb3V0X29mX3Jhbmdl
+QHN0ZEBAAAAAAAAAAAAAACAFkxkAAAAAAAAAAAAAAACA+UAAAAAAAID5QAABAQAA
+AAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+Yk1AAAEAAAAIwkAAAAAAAC4/QVZ0eXBlX2luZm9AQACkmkAAAAAAAAAAAAAAAAAA
+NGFAADRhQAAQAAAA+AMAAKSaQAAAAAAAAAAAAAAAAAAQw0AAAMNAAAEAAAAWAAAA
+AgAAAAIAAAADAAAAAgAAAAQAAAAYAAAABQAAAA0AAAAGAAAACQAAAAcAAAAMAAAA
+CAAAAAwAAAAJAAAADAAAAAoAAAAHAAAACwAAAAgAAAAMAAAAFgAAAA0AAAAWAAAA
+DwAAAAIAAAAQAAAADQAAABEAAAASAAAAEgAAAAIAAAAhAAAADQAAADUAAAACAAAA
+QQAAAA0AAABDAAAAAgAAAFAAAAARAAAAUgAAAA0AAABTAAAADQAAAFcAAAAWAAAA
+WQAAAAsAAABsAAAADQAAAG0AAAAgAAAAcAAAABwAAAByAAAACQAAAAYAAAAWAAAA
+gAAAAAoAAACBAAAACgAAAIIAAAAJAAAAgwAAABYAAACEAAAADQAAAJEAAAApAAAA
+ngAAAA0AAAChAAAAAgAAAKQAAAALAAAApwAAAA0AAAC3AAAAEQAAAM4AAAACAAAA
+1wAAAAsAAAAYBwAADAAAAP////8ACgAA4u1AAOLtQAAAACAAIAAgACAAIAAgACAA
+IAAgACgAKAAoACgAKAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAA
+IABIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAIQAhACEAIQAhACEAIQA
+hACEAIQAEAAQABAAEAAQABAAEACBAIEAgQCBAIEAgQABAAEAAQABAAEAAQABAAEA
+AQABAAEAAQABAAEAAQABAAEAAQABAAEAEAAQABAAEAAQABAAggCCAIIAggCCAIIA
+AgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAEAAQABAA
+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAALgAAAAEAAAAFAADACwAAAAAAAAAdAADA
+BAAAAAAAAACWAADABAAAAAAAAACNAADACAAAAAAAAACOAADACAAAAAAAAACPAADA
+CAAAAAAAAACQAADACAAAAAAAAACRAADACAAAAAAAAACSAADACAAAAAAAAACTAADA
+CAAAAAAAAAADAAAABwAAAAoAAACMAAAAAgAAAJzFQAAIAAAAcMVAAAkAAABExUAA
+CgAAACDFQAAQAAAA9MRAABEAAADExEAAEgAAAKDEQAATAAAAdMRAABgAAAA8xEAA
+GQAAABTEQAAaAAAA3MNAABsAAACkw0AAHAAAAHzDQAB4AAAAbMNAAHkAAABcw0AA
+egAAAEzDQAD8AAAASMNAAP8AAAA4w0AAAAAAAAAAAACGtEAAhrRAAIa0QACGtEAA
+hrRAAIa0QAAAAAAAAAAAAAECBAgAAAAApAMAAGCCeYIhAAAAAAAAAKbfAAAAAAAA
+oaUAAAAAAACBn+D8AAAAAEB+gPwAAAAAqAMAAMGj2qMgAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAACB/gAAAAAAAED+AAAAAAAAtQMAAMGj2qMgAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAACB/gAAAAAAAEH+AAAAAAAAtgMAAM+i5KIaAOWi6KJbAAAAAAAAAAAA
+AAAAAAAAAACB/gAAAAAAAEB+of4AAAAAUQUAAFHaXtogAF/aatoyAAAAAAAAAAAA
+AAAAAAAAAACB09je4PkAADF+gf4AAAAAAAAAAAAAAACAcAAAAQAAAPDx//9QU1QA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAUERUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADzyQAB88kAAAAAAAP////8AAAAA
+AAAAAAAAAAD/////AAAAAAAAAAD/////HgAAADsAAABaAAAAeAAAAJcAAAC1AAAA
+1AAAAPMAAAARAQAAMAEAAE4BAABtAQAA/////x4AAAA6AAAAWQAAAHcAAACWAAAA
+tAAAANMAAADyAAAAEAEAAC8BAABNAQAAbAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAA==}
+}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/9e7b2a13-3bf6-401a-be4a-0dbf0d48a43b b/src/Utils/UILogToScript/und/9e7b2a13-3bf6-401a-be4a-0dbf0d48a43b
new file mode 100644
index 00000000..5674eb0e
--- /dev/null
+++ b/src/Utils/UILogToScript/und/9e7b2a13-3bf6-401a-be4a-0dbf0d48a43b
@@ -0,0 +1,285 @@
+{1,
+{9e7b2a13-3bf6-401a-be4a-0dbf0d48a43b},1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
+{1,
+{4,d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,e3fdc662-3b52-4d4f-b198-43b1f3f83ca7,
+{0,
+{1,
+{0,0,6344d70f-6d22-465c-b456-63013e6bc378},"ПреобразованиеЖурналаДействийПользователя",
+{2,"en","User action log convertor","ru","Преобразование журнала действий пользователя"},"",0,0}
+},adfd948b-4804-4f26-9f93-cb3f704b8dc0,"",00000000-0000-0000-0000-000000000000},4,
+{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
+{3daea016-69b7-4ed4-9453-127911372fe6,3,6810777b-4151-4eba-b50d-4a2a08b5be5a,b6e7785c-aad2-4c34-8c75-d98a7963dbaf,0b790809-ec18-47a5-9ea4-f803fe85b870},
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,adfd948b-4804-4f26-9f93-cb3f704b8dc0},
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,13,
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,ceb7f683-ec55-40fd-9da8-480000eb15f5},"CreatedProcedures",
+{1,"en","Created procedures"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,1084a52f-b263-4bad-bca8-2d48eafad789},"WindowBeingProcessed",
+{2,"en","Window being processed","ru","Обрабатываемое окно"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,041cb4e4-4871-42ac-a075-aa023eb1a696},"FormBeingProcessed",
+{2,"en","Form being processed","ru","Обрабатываемая форма"},"",0,0},
+{"Pattern"}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,d3e43529-0485-42b9-a24d-7c5b7df30073},"WindowClosed",
+{2,"en","Window was closed","ru","Окно было закрыто"},"",0,0},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,9c35bc11-cc16-4c0a-8167-c524ac76224e},"LastProcessedCommand",
+{2,"en","Last processed command","ru","Последняя обработанная команда"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,2582396a-ffac-40ab-98b1-7062bda70ce7},"LastProcessedControl",
+{2,"en","Last processed control","ru","Последний обработанный элемент управления"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,12f65fa1-7e15-400a-8c44-b82b33aecd38},"MainProcedureName",
+{2,"en","Main procedure name","ru","Имя основной процедуры"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,1,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,a279c684-5737-425e-9c57-6acbaf6562d0},"GenerateClientConnectionScript",
+{2,"en","Generate client connection script","ru","Гененировать код подключения к клиенту"},"",0,0},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,c42244c7-9637-4401-b886-46a5bf0fdc45},"ScriptVariant",
+{2,"ru","Генерировать сценарий в варианте встроенного языка","en","1C:Enterprise script language"},"",0,0},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,1,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,fe21d66e-455d-4720-9717-d5cd14c68919},"ConversionVariant",
+{2,"en","Convert","ru","Преобразовывать"},"",0,0},
+{"Pattern",
+{"N",1,0,1}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,9fd05663-44d9-4da2-a3fd-c2b908dfa029},"SplitScriptIntoProcedures",
+{2,"en","Split scenario into procedures by application windows","ru","Разбивать результат на процедуры по ""границам"" окон"},"",0,0},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,6e0161b1-e831-4142-a631-88f3086e3712},"GetFullHierarchy",
+{2,"en","Get full object hierarchy","ru","Генерировать получение родительских объектов в иерархии"},"",0,0},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0},
+{
+{0,
+{27,
+{2,
+{1,
+{0,0,6660de3e-89b7-4bca-af70-d32b6032fb9d},"ObjectSearch",
+{2,"en","Object search","ru","Поиск объектов"},"",0,0},
+{"Pattern",
+{"N",1,0,1}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0,0,0}
+},0}
+}
+}
+}
+}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0 b/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0
new file mode 100644
index 00000000..eb3c9d1b
--- /dev/null
+++ b/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0
@@ -0,0 +1,15 @@
+{1,
+{1,
+{0,
+{12,
+{1,
+{0,0,adfd948b-4804-4f26-9f93-cb3f704b8dc0},"DefaultForm",
+{2,"en","Default form","ru","Основная форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
+{0}
+}
+},0}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0.0 b/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0.0
new file mode 100644
index 00000000..ec63eafc
--- /dev/null
+++ b/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0.0
@@ -0,0 +1,2164 @@
+{3,
+{42,0,0,0,0,1,0,1,00000000-0000-0000-0000-000000000000,1,
+{1,0},0,0,1,1,1,0,1,0,
+{3,3ccc650e-f631-4cae-8e33-3eaac610b5f9,"OnOpen",9f2e5ddb-3492-4f5d-8f0d-416b8d1d5c5b,"OnCreateAtServer",e73d6384-49d2-4885-a752-a674d6ff7742,"FillCheckProcessingAtServer",0,0},
+{0},1,
+{21,
+{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},9,"FormCommandBar",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{0,0,0},2,a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{10,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"Convert",
+{1,0},1,
+{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},2,1,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,1,0,
+{0},1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{48,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ConvertExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,0,0},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{28,
+{44,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"FormHelp",
+{1,0},1,
+{0,39bb0fe9-771d-4dd5-8a6e-2d16984523af},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,
+{4,0,
+{0},"",-1,-1,1,0,""},1,
+{"Pattern"},"",2,0,1,
+{10,
+{49,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"HelpFormExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},
+{"U"},1,0,0,1,0,0,0,3,3,3,0,0,0,0},1,0,0,0,3,3},4,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{12,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ConversionParameters",
+{1,2,
+{"en","Conversion parameters"},
+{"ru","Параметры преобразования"}
+},
+{1,2,
+{"en","Conversion parameters"},
+{"ru","Параметры преобразования"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{23,0,0,1,1,
+{0},
+{1,0},
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,0,1,
+{1,0},0,0,3,3,2,0,1,0},6,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{26,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"ScriptVariant",1,0,
+{1,0},
+{1,0},
+{2,
+{1},
+{0,c42244c7-9637-4401-b886-46a5bf0fdc45}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{31,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",1,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{1,b50dc41b-c15a-4ebe-a17f-d01e51c47de6,"ScriptVariantClearing",0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0},
+{1,fe115cc8-9e33-4684-a166-bd5136fe7a9f,"ScriptVariantOnChange",0,0},1,
+{21,
+{27,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"ScriptVariantContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{51,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ScriptVariantExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{14,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"MainProcedureName",1,0,
+{1,0},
+{1,2,
+{"en","Name of the procedure required for starting the scenario."},
+{"ru","Имя процедуры, которую необходимо вызвать для запуска сценария."}
+},
+{2,
+{1},
+{0,12f65fa1-7e15-400a-8c44-b82b33aecd38}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{31,
+{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0},
+{0,0,0},1,
+{21,
+{15,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"MainProcedureNameContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{16,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"MainProcedureNameExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{23,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},3,"GenerateClientConnectionScript",1,0,
+{1,0},
+{1,2,
+{"en","Include the script to establish test client connection into the procedure."},
+{"ru","Вставлять процедуру код устанавливающий соединение с тестируемым клиентом."}
+},
+{2,
+{1},
+{0,a279c684-5737-425e-9c57-6acbaf6562d0}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{10,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},0,
+{1,0},
+{3,4,
+{0}
+},
+{7,3,0,1,100},0,0,0,2},
+{0,0,0},1,
+{21,
+{24,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"GenerateClientConnectionScriptContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{53,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"GenerateClientConnectionScriptEnhancedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{17,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},3,"SplitScriptIntoProcedures",1,0,
+{1,0},
+{1,2,
+{"en","Split the script scenario into procedures. Each procedure contains actions with a single window."},
+{"ru","Разделять сценарий на процедуры, в каждой из которых есть только действия относящиеся к одному окну."}
+},
+{2,
+{1},
+{0,9fd05663-44d9-4da2-a3fd-c2b908dfa029}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{10,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},0,
+{1,0},
+{3,4,
+{0}
+},
+{7,3,0,1,100},0,0,0,2},
+{0,0,0},1,
+{21,
+{18,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"SplitScriptIntoProceduresContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{54,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"SplitScriptIntoProceduresExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{20,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},3,"GetFullHierarchy",1,0,
+{1,0},
+{1,0},
+{2,
+{1},
+{0,6e0161b1-e831-4142-a631-88f3086e3712}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{10,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},0,
+{1,0},
+{3,4,
+{0}
+},
+{7,3,0,1,100},0,0,0,2},
+{0,0,0},1,
+{21,
+{21,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"GetFullHierarchyContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{22,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"GetFullHierarchyExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{46,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ObjectSearch",1,0,
+{1,0},
+{1,0},
+{2,
+{1},
+{0,6660de3e-89b7-4bca-af70-d32b6032fb9d}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{8,
+{3,0},0,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},0,0,
+{3,4,
+{0}
+},0,0,2},
+{0,0,0},1,
+{21,
+{47,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"ObjectSearchContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{56,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ObjectSearchExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},1,0,1,
+{10,
+{50,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ConversionParametersExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{29,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},5,"ConversionVariant",1,0,
+{1,0},
+{1,0},
+{2,
+{1},
+{0,fe21d66e-455d-4720-9717-d5cd14c68919}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{8,
+{3,0},0,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},0,0,
+{3,4,
+{0}
+},0,0,2},
+{1,fe115cc8-9e33-4684-a166-bd5136fe7a9f,"ConversionVariantOnChange",0,0},1,
+{21,
+{30,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"ConversionVariantContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{57,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ConversionVariantExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{42,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},3,"SourceData",
+{1,2,
+{"en","Source data"},
+{"ru","Исходные данные"}
+},
+{1,1,
+{"en","Source data"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,0,
+{0,0,0}
+},3,cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{32,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},4,"SourceFiles",
+{1,2,
+{"en","Source files"},
+{"ru","Исходные файлы"}
+},
+{1,2,
+{"en","Source files"},
+{"ru","Исходные файлы"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{16,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,
+{0},
+{1,0},1,
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,3,3,0,0,0},2,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{7,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"SourceFile",1,0,
+{1,0},
+{1,0},
+{1,
+{2}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{31,
+{3,0},0,0,2,2,1,2,2,2,2,2,1,2,2,1,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{2,1960479b-4d89-4eba-8b39-0aa802020558,"SourceFileOnStartChoice",ac5a9c5a-5f1d-4fc5-b88c-a187038c16d1,"SourceFileOnOpen",0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0},
+{0,0,0},1,
+{21,
+{8,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"SourceFileContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{60,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"SourceFileExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{4,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"ResultFile",1,0,
+{1,0},
+{1,0},
+{1,
+{4}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{31,
+{3,0},0,0,2,2,1,2,2,2,2,2,1,2,2,1,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{2,1960479b-4d89-4eba-8b39-0aa802020558,"ResultFileOnStartChoice",ac5a9c5a-5f1d-4fc5-b88c-a187038c16d1,"ResultFileOnOpen",0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0},
+{0,0,0},1,
+{21,
+{5,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"ResultFileContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{61,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ResultFileExtensionToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},1,0,1,
+{10,
+{59,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"SourceFilesExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{34,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},4,"SourceTexts",
+{1,2,
+{"en","Source texts"},
+{"ru","Исходные тексты"}
+},
+{1,2,
+{"en","Source texts"},
+{"ru","Исходные тексты"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{16,
+{4,0,
+{0},"",-1,-1,1,0,""},1,0,
+{0},
+{1,0},1,
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,3,3,0,0,1},2,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{36,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},7,"SourceText",1,0,
+{1,0},
+{1,0},
+{1,
+{11}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{4,50,10,1,1,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,0,0,1,0},
+{0,0,0},1,
+{21,
+{37,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"SourceTextContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{63,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"SourceTextExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{39,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},7,"ResultText",1,0,
+{1,0},
+{1,0},
+{1,
+{12}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{4,50,10,1,1,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,0,0,1,0},
+{0,0,0},1,
+{21,
+{40,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"ResultTextContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{64,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ResultTextExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},1,0,1,
+{10,
+{62,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"SourceTextsExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},cd5394d0-7dda-4b56-8927-93ccbe967a01,
+{21,
+{68,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},4,"GenerateFileByText",
+{1,1,
+{"ru","Generate file by text"}
+},
+{1,1,
+{"ru","Generate file by text"}
+},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{16,
+{4,0,
+{0},"",-1,-1,1,0,""},1,0,
+{0},
+{1,0},1,
+{"Pattern"},"",
+{3,4,
+{0}
+},0,0,3,3,0,0,1},2,77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{70,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},7,"SourceTextToDataProcessor",1,0,
+{1,0},
+{1,0},
+{1,
+{11}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{4,50,10,1,1,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,0,0,1,0},
+{0,0,0},1,
+{21,
+{71,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"SourceTextToDataProcessorКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{72,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"SourceTextToDataProcessorРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
+{33,
+{73,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},2,"ResultFileDataProcessor",1,0,
+{1,0},
+{1,0},
+{1,
+{4}
+},
+{0},1,0,2,0,2,
+{1,0},
+{1,0},1,1,0,3,0,3,1,3,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{31,
+{3,0},0,0,2,2,1,2,2,2,2,2,1,2,2,1,
+{"U"},
+{"U"},"",0,
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000,
+{5004,0},
+{0,0},2,
+{1,0},
+{1,0},2,1,0,
+{"Pattern"},1,
+{2,1960479b-4d89-4eba-8b39-0aa802020558,"ResultFileOnStartChoice",ac5a9c5a-5f1d-4fc5-b88c-a187038c16d1,"ResultFileOnOpen",0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{7,3,0,1,100},1,
+{3,0,0},0,
+{1,0},2,0,2,0,1,0,0,1,0},
+{0,0,0},1,
+{21,
+{74,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},8,"ResultFileDataProcessorКонтекстноеМеню",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,
+{"Pattern"},
+{"Pattern"},"","",
+{0},0,0,1,
+{10,
+{75,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ResultFileDataProcessorРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},3,3},1,0,1,
+{10,
+{69,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"GenerateFileByTextРасширеннаяПодсказка",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,0,1,
+{10,
+{43,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"SourceDataExtendedToolTip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},3d3cb80c-508b-41fa-8a18-680cdf5f1712,
+{10,
+{65,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"VersionCaption",
+{1,3,
+{"en","Version 1.0.3.3"},
+{"ru","Версия 1.0.3.1"},
+{"sys","Версия 1.0.3.1"}
+},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},1,
+{21,
+{66,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"VersionCaptionContextMenu",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{1,1},0,1,0,0,0,3,3},1,2,
+{1,
+{1,3,
+{"en","Version 1.0.3.3"},
+{"ru","Версия 1.0.3.1"},
+{"sys","Версия 1.0.3.1"}
+},0},0,1,
+{10,
+{67,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"VersionCaptionExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},1,0,0,1,0,3,3},"","",1,
+{21,
+{0},0,0,0,7,"Navigator",
+{1,0},
+{1,0},0,1,0,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2},"
+////////////////////////////////////////////////////////////////////////////////
+// FORM EVENT HANDLERS
+&AtServer
+Procedure OnCreateAtServer(Cancel, StandardProcessing)
+
+ // Setting up initial values
+ Object.SplitScriptIntoProcedures = True;
+
+ Object.ScriptVariant = ? (String(Metadata.ScriptVariant) = ""English"", ""en"", ""ru"");
+
+
+ Items.ScriptVariant.ChoiceList.Add(""en"", NStr(""en = 'English'; ru = 'Английский'""));
+ Items.ScriptVariant.ChoiceList.Add(""ru"", NStr(""en = 'Russian'; ru = 'Русский'""));
+
+ Items.ObjectSearch.ChoiceList.Add(0, NStr(""en = 'By presentation'; ru = 'По представлению'""));
+ Items.ObjectSearch.ChoiceList.Add(1, NStr(""en = 'By name'; ru = 'По имени'""));
+ Items.ObjectSearch.ChoiceList.Add(2, NStr(""en = 'By name and presentation'; ru = 'По имени и представлению'""));
+
+ Items.ConversionVariant.ChoiceList.Add(0, NStr(""en = 'Log'; ru = 'Журнал'""));
+ Items.ConversionVariant.ChoiceList.Add(1, NStr(""en = 'Text'; ru = 'Текст'""));
+
+ // { xUnitFor1C - Дополнительные команды
+ Items.ConversionVariant.ChoiceList.Add(2, NStr(""ru = 'Из журнала в обработку-тест для xUnitFor1C'""));
+ Items.ConversionVariant.ChoiceList.Add(3, NStr(""ru = 'Из текста в обработку-тест для xUnitFor1C'""));
+ // } xUnitFor1C - Дополнительные команды
+
+EndProcedure
+
+&AtClient
+Procedure OnOpen(Cancel)
+
+ Object.MainProcedureName = ?(Object.ScriptVariant = ""en"", ""TestScenario_"", ""ТестовыйСценарий_"") + ClearDate(Format(CurrentDate(), ""DLF=D""));
+
+ Items.SourceData.CurrentPage = ?(Object.ConversionVariant = 0,Items.SourceFiles, Items.SourceTexts);
+
+ // { xUnitFor1C
+ SetVisibleOptionsForConvertionType();
+ // } xUnitFor1C
+
+EndProcedure
+
+&AtServer
+Procedure FillCheckProcessingAtServer(Cancel, AttributesToCheck)
+
+ // Adding check fields according to the transform variant
+ If Object.ConversionVariant = 0 Then
+
+ AttributesToCheck.Add(""SourceFile"");
+ AttributesToCheck.Add(""ResultFile"");
+
+ Else
+
+ If Not ValueIsFilled(SourceText.GetText()) Then
+
+ Cancel = True;
+
+ NewMessage = New UserMessage();
+ NewMessage.Text = NStr(""en = 'User action log is not specified.'; ru = 'Поле """"Журнал действий пользователя"""" не заполнено.'"");
+ NewMessage.DataPath = ""SourceText"";
+ NewMessage.Message();
+
+ EndIf;
+
+ EndIf;
+
+EndProcedure
+
+////////////////////////////////////////////////////////////////////////////////
+// CONTROL EVENT HANDLERS
+&AtClient
+Procedure ConversionVariantOnChange(Item)
+
+ Items.SourceData.CurrentPage = ? (Object.ConversionVariant = 0, Items.SourceFiles, Items.SourceTexts);
+
+ // { xUnitFor1C
+ SetVisibleOptionsForConvertionType();
+ // } xUnitFor1C
+
+EndProcedure
+
+&AtClient
+Procedure ScriptVariantClearing(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+EndProcedure
+
+&AtClient
+Procedure ScriptVariantOnChange(Item)
+
+ Object.MainProcedureName = ? (Object.ScriptVariant = ""en"", ""TestScenario_"", ""ТестовыйСценарий_"") + ClearDate(Format(CurrentDate(), ""DLF=D""));
+
+EndProcedure
+
+&AtClient
+Procedure SourceFileOnStartChoice(Item, ChoiceData, StandardProcessing)
+
+ StandardProcessing = False;
+
+ Dialog = New FileDialog(FileDialogMode.Open);
+
+ Dialog.FullFileName = SourceFile;
+ Dialog.Title = NStr(""en = 'Specify the user action log file.'; ru = 'Укажите файл журнала действий пользователя'"");
+ Dialog.Filter = NStr(""en = 'User action log file (*.uil,*.txt,*.xml)|*.uil;*.txt;*.xml|All files (*.*)|*.*'; ru = 'Файлы журнала действий пользователя (*.uil,*.txt,*.xml)|*.uil;*.txt;*.xml|Все файлы (*.*)|*.*'"");
+ Dialog.DefaultExt= ""uil"";
+
+ If Dialog.Choose() Then
+
+ SourceFile = Dialog.FullFileName;
+
+ If Not ValueIsFilled(ResultFile) Then
+
+ ResultFile = Left(Dialog.FullFileName, StrLen(Dialog.FullFileName) - StrLen(Dialog.DefaultExt)) + NStr(""en = 'ModuleText'; ru = 'ТекстМодуля'"") + "".txt""
+
+ EndIf;
+
+ EndIf;
+
+EndProcedure
+
+&AtClient
+Procedure SourceFileOnOpen(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+ DocumentToView = New TextDocument();
+ DocumentToView.Read(SourceFile);
+ DocumentToView.Show(SourceFile);
+
+EndProcedure
+
+&AtClient
+Procedure ResultFileOnStartChoice(Item, ChoiceData, StandardProcessing)
+
+ StandardProcessing = False;
+
+ Dialog = New FileDialog(FileDialogMode.Save);
+
+ Dialog.FullFileName = ResultFile;
+ Dialog.Title = NStr(""en = 'Specify the file where the conversion result will be saved.'; ru = 'Укажите файл для сохранения результата преобразования'"");
+ Dialog.Filter= NStr(""en = 'Text files (*.txt)|*.txt|All files (*.*)|*.*'; ru = 'Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*'"");
+
+ // { xUnitFor1C
+ If Object.ConversionVariant >= 2 Then
+ Dialog.Filter= NStr(""ru = 'Внешние обработки (*.epf)|*.epf|Все файлы (*.*)|*.*'"");
+ EndIf;
+ // { xUnitFor1C
+
+ If Dialog.Choose() Then
+
+ ResultFile = Dialog.FullFileName;
+
+ EndIf;
+
+EndProcedure
+
+&AtClient
+Procedure ResultFileOnOpen(Item, StandardProcessing)
+
+ StandardProcessing = False;
+
+ DocumentToView = New TextDocument();
+ DocumentToView.Read(ResultFile);
+ DocumentToView.Show(ResultFile);
+
+EndProcedure
+
+////////////////////////////////////////////////////////////////////////////////
+// AUXILIARY PROCEDURES AND FUNCTIONS
+&AtClient
+Function IsDigit(Char)
+
+ Code = CharCode (Char);
+ Return Code >= 48 And Code <= 57;
+
+EndFunction
+
+&AtClient
+Function IsLetter(Char)
+
+ // All non-literal character codes are considered equal
+ Return CharCode(Lower(Char)) <> CharCode(Upper(Char));
+
+EndFunction
+
+&AtClient
+Function ClearDate(DateToClear)
+
+ Result = """";
+
+ StringLength = StrLen(DateToClear);
+ For Index = 1 To StringLength Do
+ NextChar = Mid(DateToClear,Index, 1);
+ If IsDigit(NextChar) Then
+ Result = Result + NextChar;
+ Else
+ Result = Result + ""_"";
+ EndIf;
+ EndDo;
+
+ Return Result;
+
+EndFunction
+
+////////////////////////////////////////////////////////////////////////////////
+// Conversion procedures
+&AtServer
+Function ConvertAtServer(TextToConvert)
+
+ ThisDataProcessor = FormAttributeToValue(""Object"");
+
+ // { xUnitFor1C
+ If Object.ConversionVariant >= 2 Then
+ StringBase64 = ThisDataProcessor.CreateDataProcessor(TextToConvert);
+ Return StringBase64;
+ EndIf;
+ // } xUnitFor1C
+
+ Return ThisDataProcessor.Convert(TextToConvert);
+
+EndFunction
+
+&AtClient
+Procedure Convert(Command)
+
+ // Preparing data to be converted
+ ClearMessages();
+ If Not CheckFilling() Then
+ Return;
+ EndIf;
+
+ TextToConvert = """";
+ If Object.ConversionVariant = 0 Then
+
+ Reader = New TextDocument();
+ Reader.Read(SourceFile);
+ TextToConvert = Reader.GetText();
+ Reader = Undefined;
+
+ Else
+
+ TextToConvert = SourceText.GetText();
+
+ EndIf;
+
+ ConversionResult = ConvertAtServer(TextToConvert);
+
+ If Not ValueIsFilled(ConversionResult) Then
+ Message(NStr(""en = 'Cannot convert data'; ru = 'Не удалось выполнить преобразование'""));
+ Return;
+ EndIf;
+
+ If Object.ConversionVariant = 0 Then
+
+ Writer = New TextDocument();
+ Writer.AddLine(ConversionResult);
+ Writer.Write(ResultFile);
+ Writer.Show(ResultFile);
+
+ // { xUnitFor1C
+ ElsIf Object.ConversionVariant >= 2 Then
+ Try
+ BinaryData = Base64Value(ConversionResult);
+ BinaryData.Write(ResultFile);
+ Except
+ NewMessage = New UserMessage();
+ NewMessage.Text = NStr(""ru = 'Не удалось сохранить base64 внешнией обработки в файл'; en = 'Can''t save base64 of data processor to file'"");
+ NewMessage.Message();
+ EndTry;
+ // } xUnitFor1C
+
+ Else
+
+ ResultText.Clear();
+ ResultText.AddLine(ConversionResult);
+
+ EndIf;
+
+EndProcedure
+
+// { xUnitFor1C
+
+&AtClient
+Procedure SetVisibleOptionsForConvertionType()
+
+ // { xUnitFor1C - Настройка текущей страницы для доп. вариантов преобразования действий пользователя
+ If Object.ConversionVariant = 2 Then
+ Items.SourceData.CurrentPage = Items.SourceFiles;
+ ElsIf Object.ConversionVariant = 3 Then
+ Items.SourceData.CurrentPage = Items.GenerateFileByText;
+ EndIf;
+ StandartChoice = (Object.ConversionVariant < 2);
+ Object.GenerateClientConnectionScript = StandartChoice;
+ Items.GenerateClientConnectionScript.Enabled = StandartChoice;
+ // } xUnitFor1C - Настройка текущей страницы для доп. вариантов преобразования действий пользователя
+
+EndProcedure
+
+// } xUnitFor1C",
+{4,5,
+{9,
+{1},0,"Object",
+{1,0},
+{"Pattern",
+{"#",d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,7,
+{1,
+{0,12f65fa1-7e15-400a-8c44-b82b33aecd38}
+},
+{1,
+{0,6660de3e-89b7-4bca-af70-d32b6032fb9d}
+},
+{1,
+{0,6e0161b1-e831-4142-a631-88f3086e3712}
+},
+{1,
+{0,9fd05663-44d9-4da2-a3fd-c2b908dfa029}
+},
+{1,
+{0,a279c684-5737-425e-9c57-6acbaf6562d0}
+},
+{1,
+{0,c42244c7-9637-4401-b886-46a5bf0fdc45}
+},
+{1,
+{0,fe21d66e-455d-4720-9717-d5cd14c68919}
+}
+},1,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{2},0,"SourceFile",
+{1,2,
+{"en","Source file"},
+{"ru","Преобразовывать журнал"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{4},0,"ResultFile",
+{1,2,
+{"en","Result file"},
+{"ru","Сохранять результат в"}
+},
+{"Pattern",
+{"S"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,1,
+{0}
+},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{11},0,"SourceText",
+{1,2,
+{"en","User action log"},
+{"ru","Журнал действий пользователя"}
+},
+{"Pattern",
+{"#",ebf766b1-f32c-11d3-9851-008048da1252}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},
+{9,
+{12},0,"ResultText",
+{1,2,
+{"en","Scenario"},
+{"ru","Сценарий"}
+},
+{"Pattern",
+{"#",ebf766b1-f32c-11d3-9851-008048da1252}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
+},0,0,
+{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
+aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
+LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
+OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
+dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
+cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
+Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
+Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
+LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
+LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
+cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
+L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
+},
+{0,0},
+{0,1,
+{7,
+{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"Convert",
+{1,2,
+{"en","Convert"},
+{"ru","Преобразовать"}
+},
+{1,2,
+{"en","Convert the user action log into the 1C:Enterprise script scenario"},
+{"ru","Преобразовать журнал действий во встроенный язык"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{4,1,
+{0,0ce78048-0196-4f80-a781-9829cdb7f43e},"",-1,-1,1,0,""},"Convert",2,0,0,
+{0,0},1,0}
+},
+{0,0},
+{0,0},0,0}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0.1 b/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0.1
new file mode 100644
index 00000000..8fb34555
--- /dev/null
+++ b/src/Utils/UILogToScript/und/adfd948b-4804-4f26-9f93-cb3f704b8dc0.1
@@ -0,0 +1,21 @@
+{5,1,"en",
+{#base64:77u/PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBU
+cmFuc2l0aW9uYWwvL0VOIj48aHRtbD48aGVhZD48bWV0YSBjb250ZW50PSJ0ZXh0
+L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+
+PC9tZXRhPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
+ZWY9InY4aGVscDovL3NlcnZpY2VfYm9vay9zZXJ2aWNlX3N0eWxlIj48L2xpbms+
+PG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNU0hUTUwgMTEuMDAuMTA1
+ODYuNDk0Ij48L21ldGE+PC9oZWFkPjxib2R5Pg0KPHA+0JLQtdGA0YHQuNGPIDEu
+MC4zLjM8L3A+DQo8cD4qINCY0YHQv9GA0LDQstC70LXQvdCwINC+0YjQuNCx0LrQ
+sCDQuNC3LdC30LAg0LrQvtC0INGC0LXRgdGC0LAg0LTQu9GPINGD0LfQu9CwIHNl
+dE9yZGVyINC90LUg0LPQtdC90LXRgNC40YDQvtCy0LDQu9GB0Y8uPC9wPg0KPHA+
+0JLQtdGA0YHQuNGPIDEuMC4zLjI8L3A+DQo8cD4qINCY0YHQv9GA0LDQstC70LXQ
+vdCwINC+0YjQuNCx0LrQsCDQs9C10L3QtdGA0LDRhtC40Lgg0YHRhtC10L3QsNGA
+0LjRjyDQuNC3LdC30LAg0LrQvtGC0L7RgNC+0Lkg0LPQtdC90LXRgNC40YDQvtCy
+0LDQu9GB0Y8g0L3QtdC60L7RgNGA0LXQutGC0L3Ri9C5INC60L7QtCDQv9C+0LjR
+gdC6INGN0LvQtdC80LXQvdGC0LAg0YPQv9GA0LDQstC70LXQvdC40Y8swqDQtdGB
+0LvQuCDRgyDRg9C30LvQsCDQvtC/0LjRgdGL0LLQsNGO0YnQtdCz0L4g0Y3Qu9C1
+0LzQtdC90YIg0L/RgNC40YHRg9GC0YHRgtCy0L7QstCw0LvQviDRgtC+0LvRjNC6
+0L4g0LjQvNGPLCDQsCDRgtGA0LXQsdC+0LLQsNC70L7RgdGMINC40YHQutCw0YLR
+jCDRgtC+0LvRjNC60L4g0L/QviDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRji48
+L3A+PC9ib2R5PjwvaHRtbD4=},0}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/b6e7785c-aad2-4c34-8c75-d98a7963dbaf b/src/Utils/UILogToScript/und/b6e7785c-aad2-4c34-8c75-d98a7963dbaf
new file mode 100644
index 00000000..9f7340ba
--- /dev/null
+++ b/src/Utils/UILogToScript/und/b6e7785c-aad2-4c34-8c75-d98a7963dbaf
@@ -0,0 +1,6 @@
+{1,
+{2,1,
+{0,
+{0,0,b6e7785c-aad2-4c34-8c75-d98a7963dbaf},"zlib1",
+{1,"ru","Zlib1"},""}
+},0}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/b6e7785c-aad2-4c34-8c75-d98a7963dbaf.0 b/src/Utils/UILogToScript/und/b6e7785c-aad2-4c34-8c75-d98a7963dbaf.0
new file mode 100644
index 00000000..b6fa4088
--- /dev/null
+++ b/src/Utils/UILogToScript/und/b6e7785c-aad2-4c34-8c75-d98a7963dbaf.0
@@ -0,0 +1,1251 @@
+{1,
+{#base64:TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAEAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5v
+dCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAAAFd2a9QRYI7kEWCO5BFgju
+Iwkb7kMWCO5BFgnuVxYI7i4JDO5CFgjuLgkC7kQWCO7CCgbuQBYI7kQaa+5MFgju
+RBoH7kAWCO69NhruQBYI7kQaVO5AFgjurR1W7kAWCO5EGlLuQBYI7lJpY2hBFgju
+AAAAAAAAAAAAAAAAAAAAAFBFAABMAQUA2h3eQgAAAAAAAAAA4AAOIQsBBwoAlAAA
+AFIAAAAAAABGoQAAABAAAACwAAAAAAAQABAAAAACAAAEAAAAAAAAAAQAAAAAAAAA
+ADABAAAEAACH9QAAAgAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAAAPDxAABdBAAA
+ZPAAADwAAAAAEAEAmAMAAAAAAAAAAAAAAAAAAAAAAAAAIAEAsAIAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAABYAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnRleHQAAAA/kgAAABAAAACUAAAABAAA
+AAAAAAAAAAAAAAAAIAAAYC5yZGF0YQAATUYAAACwAAAASAAAAJgAAAAAAAAAAAAA
+AAAAAEAAAEAuZGF0YQAAAHQAAAAAAAEAAAIAAADgAAAAAAAAAAAAAAAAAABAAADA
+LnJzcmMAAACYAwAAABABAAAEAAAA4gAAAAAAAAAAAAAAAAAAQAAAQC5yZWxvYwAA
+aAMAAAAgAQAABAAAAOYAAAAAAAAAAAAAAAAAAEAAAEIAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAItMJARTi1wkEFeL+cHvEIHh//8AAIP7AXUxi0QkEA+2
+EAPKgfnx/wAAcgaB6fH/AAAD+YH/8f8AAHIGge/x/wAAi8fB4BBfC8Fbw1aLdCQU
+hfZ1CV5fuAEAAABbw4P7EHMzhdt0Cw+2BgPIRgP5S3X1gfnx/wAAcgaB6fH/AACL
+xzPSvvH/AAD39l5fW4vCweAQC8HDgfuwFQAAD4LKAAAAuK+pbl7341WL6sHtC4v/
+geuwFQAAuFsBAADrA41JAA+2FgPKD7ZWAQP5A8oPtlYCA/kDyg+2VgMD+QPKD7ZW
+BAP5A8oPtlYFA/kDyg+2VgYD+QPKD7ZWBwP5A8oPtlYIA/kDyg+2VgkD+QPKD7ZW
+CgP5A8oPtlYLA/kDyg+2VgwD+QPKD7ZWDQP5A8oPtlYOA/kDyg+2Vg8D+QPKA/mD
+xhBID4V3////i8Ez0rnx/wAA9/GLx7/x/wAAi8oz0vf3TYv6D4VG////XYXbD4TD
+AAAAg/sQD4KRAAAAi8PB6AQPthYDyg+2VgED+QPKD7ZWAgP5A8oPtlYDA/kDyg+2
+VgQD+QPKD7ZWBQP5A8oPtlYGA/kDyg+2VgcD+QPKD7ZWCAP5A8oPtlYJA/kDyg+2
+VgoD+QPKD7ZWCwP5A8oPtlYMA/kDyg+2Vg0D+QPKD7ZWDgP5A8oPtlYPA/kDyoPr
+EAP5g8YQSA+FdP///4XbdAsPtgYDyEYD+Ut19YvBM9K58f8AAPfxi8e+8f8AAIvK
+M9L39ov6i8deweAQXwvBW8PMzMzMzMzMzMzMzMzMzMyD7DiLTCRIi1QkPItEJERT
+i1wkRGo4aFiwABBqAGoIag+JTCQci0wkZGoIiVQkKIlEJByLA1GNVCQgUolEJDTH
+RCREAAAAAMdEJEgAAAAAx0QkTAAAAADo5AMAAIPEIIXAdUlWjUQkCGoEUOiwCQAA
+i/CDxAiD/gF0Ho1MJAhR6NwRAACDxASF9rj7////dBuLxl5bg8Q4w4tUJByNRCQI
+UIkT6LgRAACDxAReW4PEOMPMzMzMzMzMzMzMzMzMzMyLRCQQi0wkDItUJAhq/1CL
+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
+dAhfuP7///9ew4tACIXAdAtQi0YoUP9WJIPECItOHItBRIXAdAuLVihQUv9WJIPE
+CItGHItAQIXAdAuLTihQUf9WJIPECItWHItCOIXAdAtQi0YoUP9WJIPECItOHItW
+KFFS/1Ykg8QIM8CD/3EPlcBfx0YcAAAAAF5Ig+D9w7j+////XsPMzMzMzMzMzMzM
+VVaLdCQQhfYPhJEBAACLbCQMhe0PhIUBAACLRhyFwIlEJBAPhHYBAABTV7kOAAAA
+i/1owBYAAPOli0UoagFQ/1Ugi9iDxAyF2w+ERgEAAIt0JBiJXRy5sAUAAIv786WL
+SyxqAokri1UoUVL/VSCJQziLQyyLTShqAlBR/1Ugi1NMagKJQ0CLRShSUP9VIIuL
+nBYAAGoEiUNEi1UoUVL/VSCLeziDxDCF/4lDCA+E2gAAAItLQIXJD4TPAAAAi0tE
+hckPhMQAAACFwA+EvAAAAItLLItUJBiLcjjR4YvpwekC86WLzYPhA/Oki3JAi0ss
+i3tA0eGL6cHpAvOli82D4QPzpItyRItLTIt7RNHhi+nB6QLzpYvNg+ED86SLcgiL
+SwyLewiL6cHpAvOli82D4QPzpIt6CItKEItzCCvPA86JSxCLi5wWAACL0dHqjQRQ
+jRROA9GJg6QWAACJk5gWAACNg5QAAACNi4gJAACNk3wKAABfiYMYCwAAiYskCwAA
+iZMwCwAAW14zwF3DVeie/f//g8QEX1teuPz///9dw164/v///13DzMzMzMzMzMzM
+i0Isi0pM0eCJQjyLQkRTVjP2Zol0SP6LSkyNTAn+i9nB6QIzwFeLekTzq4vLg+ED
+86qLgoQAAACNBEDB4AIPt4ia0AAQiYqAAAAAD7eImNAAEImKjAAAAA+3iJzQABCJ
+ipAAAAAPt4Ce0AAQiUJ8uAIAAACJcmyJclyJcnSJQniJQmCJcmiJckjoE28AACUA
+DwAAPQAGAABfG8lBXokNUAABEFvDzMzMzMzMzMzMzMyLTjiLRmxTihwIVYtsJAyK
+FCkDwQPNOtNXjbgCAQAAD4WSAAAAilEBOlABD4WGAAAAg8ACg8ECilABilkBQEE6
+03VYilABilkBQEE603VMilABilkBQEE603VAilABilkBQEE603U0ilABilkBQEE6
+03UoilABilkBQEE603UcilABilkBQEE603UQilABilkBQEE603UEO8dynCvHBQIB
+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
+nZxYnTPBdBC4AQAAAA+iW8O4AAMAAOv3uAAEAADr8FVXVlOD7CSLVCQ4i0wkPItC
+eIuajAAAADvDi0I0i1p8fAPB6wJLweMQC9iJHCSLgpAAAACLWnQ72HwCi9iJXCQY
+i3I4iXQkBItqbI18NQCJfCQgi8f32IPgA4lEJBSLQiwtBgEAACvofwIz7YtCeIlE
+JBwD8Il0JAgPtx+JXCQQD7dcOP+JXCQMi3pAixQk6xojyg+3DE87zQ+G4AAAAIHq
+AAABAA+I1AAAAA+3RDH/O8N13YtEJAQPtwQBO0QkEHXPiRQki3QkBIt8JCAD8YtE
+JBS6+P7//428OAgBAACNtDAIAQAAiwQyMwQ6dRSLRDIEM0Q6BHUHg8IIdenrcYPC
+BKn//wAAdQaDwgLB6BAsAYPSAI0EOot8JCArxz0CAQAAfUyLVCQ4i1wkHDvDfxOL
+dCQIi3pAi1wkDIsUJOlO////i1wkGIlEJByJSnA7w30ti3QkBAPwiXQkCA+3XDj/
+i3pAiVwkDIsUJOkh////i1QkOMdEJBwCAQAAiUpwi1QkOItcJByLQnQ72H8Ci8OD
+xCRbXl9dww0KYXNtNjg2IHdpdGggbWFzbSwgb3B0aW1pc2VkIGFzc2VtYmx5IGNv
+ZGUgZnJvbSBCcmlhbiBSYWl0ZXIsIHdyaXR0ZW4gMTk5OA0KzMzMzMzMzMzMzMzM
+6QMBAACNSQBGYXN0IGRlY29kaW5nIENvZGUgZnJvbSBDaHJpcyBBbmRlcnNvbgCQ
+aW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29k
+ZQCL/2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAIv/AAAAAAEAAAADAAAA
+BwAAAA8AAAAfAAAAPwAAAH8AAAD/AAAA/wEAAP8DAAD/BwAA/w8AAP8fAAD/PwAA
+/38AAP//AAD//wEA//8DAP//BwD//w8A//8fAP//PwD//38A////AP///wH///8D
+////B////w////8f////P////3//////V1ZVU5yD7ED8i3QkWIt+HItWBIsGA9CD
+6guJRCQsiVQkFItsJFyLThCLXgwr6ffdA+uB6QEBAAADy4lcJDyJbCQoiUwkEItH
+TItPUIlEJAiJTCQMuAEAAACLT1TT4EiJBCS4AQAAAItPWNPgSIlEJASLRyiLTzCL
+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
+EAcKAAAIYAAACCAAAAmgAAAIAAAACIAAAAhAAAAJ4AAQBwYAAAhYAAAIGAAACZAA
+Ewc7AAAIeAAACDgAAAnQABEHEQAACGgAAAgoAAAJsAAACAgAAAiIAAAISAAACfAA
+EAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyAARBw0AAAhkAAAIJAAACagA
+AAgEAAAIhAAACEQAAAnoABAHCAAACFwAAAgcAAAJmAAUB1MAAAh8AAAIPAAACdgA
+EgcXAAAIbAAACCwAAAm4AAAIDAAACIwAAAhMAAAJ+AAQBwMAAAhSAAAIEgAVCKMA
+EwcjAAAIcgAACDIAAAnEABEHCwAACGIAAAgiAAAJpAAACAIAAAiCAAAIQgAACeQA
+EAcHAAAIWgAACBoAAAmUABQHQwAACHoAAAg6AAAJ1AASBxMAAAhqAAAIKgAACbQA
+AAgKAAAIigAACEoAAAn0ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACcwA
+EQcPAAAIZgAACCYAAAmsAAAIBgAACIYAAAhGAAAJ7AAQBwkAAAheAAAIHgAACZwA
+FAdjAAAIfgAACD4AAAncABIHGwAACG4AAAguAAAJvAAACA4AAAiOAAAITgAACfwA
+YAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwgAQBwoAAAhhAAAIIQAACaIA
+AAgBAAAIgQAACEEAAAniABAHBgAACFkAAAgZAAAJkgATBzsAAAh5AAAIOQAACdIA
+EQcRAAAIaQAACCkAAAmyAAAICQAACIkAAAhJAAAJ8gAQBwQAAAhVAAAIFQAQCAIB
+EwcrAAAIdQAACDUAAAnKABEHDQAACGUAAAglAAAJqgAACAUAAAiFAAAIRQAACeoA
+EAcIAAAIXQAACB0AAAmaABQHUwAACH0AAAg9AAAJ2gASBxcAAAhtAAAILQAACboA
+AAgNAAAIjQAACE0AAAn6ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACcYA
+EQcLAAAIYwAACCMAAAmmAAAIAwAACIMAAAhDAAAJ5gAQBwcAAAhbAAAIGwAACZYA
+FAdDAAAIewAACDsAAAnWABIHEwAACGsAAAgrAAAJtgAACAsAAAiLAAAISwAACfYA
+EAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzgARBw8AAAhnAAAIJwAACa4A
+AAgHAAAIhwAACEcAAAnuABAHCQAACF8AAAgfAAAJngAUB2MAAAh/AAAIPwAACd4A
+EgcbAAAIbwAACC8AAAm+AAAIDwAACI8AAAhPAAAJ/gBgBwAAAAhQAAAIEAAUCHMA
+EgcfAAAIcAAACDAAAAnBABAHCgAACGAAAAggAAAJoQAACAAAAAiAAAAIQAAACeEA
+EAcGAAAIWAAACBgAAAmRABMHOwAACHgAAAg4AAAJ0QARBxEAAAhoAAAIKAAACbEA
+AAgIAAAIiAAACEgAAAnxABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACckA
+EQcNAAAIZAAACCQAAAmpAAAIBAAACIQAAAhEAAAJ6QAQBwgAAAhcAAAIHAAACZkA
+FAdTAAAIfAAACDwAAAnZABIHFwAACGwAAAgsAAAJuQAACAwAAAiMAAAITAAACfkA
+EAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxQARBwsAAAhiAAAIIgAACaUA
+AAgCAAAIggAACEIAAAnlABAHBwAACFoAAAgaAAAJlQAUB0MAAAh6AAAIOgAACdUA
+EgcTAAAIagAACCoAAAm1AAAICgAACIoAAAhKAAAJ9QAQBwUAAAhWAAAIFgBACAAA
+EwczAAAIdgAACDYAAAnNABEHDwAACGYAAAgmAAAJrQAACAYAAAiGAAAIRgAACe0A
+EAcJAAAIXgAACB4AAAmdABQHYwAACH4AAAg+AAAJ3QASBxsAAAhuAAAILgAACb0A
+AAgOAAAIjgAACE4AAAn9AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcMA
+EAcKAAAIYQAACCEAAAmjAAAIAQAACIEAAAhBAAAJ4wAQBwYAAAhZAAAIGQAACZMA
+Ewc7AAAIeQAACDkAAAnTABEHEQAACGkAAAgpAAAJswAACAkAAAiJAAAISQAACfMA
+EAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJywARBw0AAAhlAAAIJQAACasA
+AAgFAAAIhQAACEUAAAnrABAHCAAACF0AAAgdAAAJmwAUB1MAAAh9AAAIPQAACdsA
+EgcXAAAIbQAACC0AAAm7AAAIDQAACI0AAAhNAAAJ+wAQBwMAAAhTAAAIEwAVCMMA
+EwcjAAAIcwAACDMAAAnHABEHCwAACGMAAAgjAAAJpwAACAMAAAiDAAAIQwAACecA
+EAcHAAAIWwAACBsAAAmXABQHQwAACHsAAAg7AAAJ1wASBxMAAAhrAAAIKwAACbcA
+AAgLAAAIiwAACEsAAAn3ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc8A
+EQcPAAAIZwAACCcAAAmvAAAIBwAACIcAAAhHAAAJ7wAQBwkAAAhfAAAIHwAACZ8A
+FAdjAAAIfwAACD8AAAnfABIHGwAACG8AAAgvAAAJvwAACA8AAAiPAAAITwAACf8A
+EAUBABcFAQETBREAGwUBEBEFBQAZBQEEFQVBAB0FAUAQBQMAGAUBAhQFIQAcBQEg
+EgUJABoFAQgWBYEAQAUAABAFAgAXBYEBEwUZABsFARgRBQcAGQUBBhUFYQAdBQFg
+EAUEABgFAQMUBTEAHAUBMBIFDQAaBQEMFgXBAEAFAAAQABEAEgAAAAgABwAJAAYA
+CgAFAAsABAAMAAMADQACAA4AAQAPAAAAYAcAAAAIUAAACBAAFAhzABIHHwAACHAA
+AAgwAAAJwAAQBwoAAAhgAAAIIAAACaAAAAgAAAAIgAAACEAAAAngABAHBgAACFgA
+AAgYAAAJkAATBzsAAAh4AAAIOAAACdAAEQcRAAAIaAAACCgAAAmwAAAICAAACIgA
+AAhIAAAJ8AAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnIABEHDQAACGQA
+AAgkAAAJqAAACAQAAAiEAAAIRAAACegAEAcIAAAIXAAACBwAAAmYABQHUwAACHwA
+AAg8AAAJ2AASBxcAAAhsAAAILAAACbgAAAgMAAAIjAAACEwAAAn4ABAHAwAACFIA
+AAgSABUIowATByMAAAhyAAAIMgAACcQAEQcLAAAIYgAACCIAAAmkAAAIAgAACIIA
+AAhCAAAJ5AAQBwcAAAhaAAAIGgAACZQAFAdDAAAIegAACDoAAAnUABIHEwAACGoA
+AAgqAAAJtAAACAoAAAiKAAAISgAACfQAEAcFAAAIVgAACBYAQAgAABMHMwAACHYA
+AAg2AAAJzAARBw8AAAhmAAAIJgAACawAAAgGAAAIhgAACEYAAAnsABAHCQAACF4A
+AAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4A
+AAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEA
+AAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkA
+AAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUA
+AAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUA
+AAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0A
+AAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMA
+AAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsA
+AAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsA
+AAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcA
+AAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8A
+AAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAA
+AAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAA
+AAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgA
+AAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQA
+AAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwA
+AAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwA
+AAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIA
+AAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoA
+AAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYA
+AAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYA
+AAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4A
+AAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEA
+AAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkA
+AAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkA
+AAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUA
+AAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0A
+AAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMA
+AAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMA
+AAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsA
+AAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcA
+AAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8A
+AAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8A
+AAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQEC
+FAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEG
+FQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAABAAEQASAAAA
+CAAHAAkABgAKAAUACwAEAAwAAwANAAIADgABAA8AAAAgaW5mbGF0ZSAxLjIuMyBD
+b3B5cmlnaHQgMTk5NS0yMDA1IE1hcmsgQWRsZXIgAAADAAQABQAGAAcACAAJAAoA
+CwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAAAAAAA
+EAAQABAAEAAQABAAEAAQABEAEQARABEAEgASABIAEgATABMAEwATABQAFAAUABQA
+FQAVABUAFQAQAMkAxAAAAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEA
+AQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAAAAQABAAEAAQABEAEQASABIA
+EwATABQAFAAVABUAFgAWABcAFwAYABgAGQAZABoAGgAbABsAHAAcAB0AHQBAAEAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAA
+AgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAA
+BQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAA
+AgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAA
+CAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAIAAAADAAAABwAAABAREgAIBwkGCgULBAwDDQIOAQ8A
+DAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgA
+PAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgA
+EgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgA
+KgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgA
+BgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgA
+NgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgA
+HgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgA
+IQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgA
+CQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgA
+OQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgA
+FQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgA
+LQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgA
+EwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkA
+cwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkA
+KwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkA
+WwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkA
+BwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkA
+ZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkA
+NwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkA
+TwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkA
+HwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkA
+fwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcA
+CAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcA
+FAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgA
+AAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUA
+BgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUA
+AwAFABMABQALAAUAGwAFAAcABQAXAAUAAAECAwQEBQUGBgYGBwcHBwgICAgICAgI
+CQkJCQkJCQkKCgoKCgoKCgoKCgoKCgoKCwsLCwsLCwsLCwsLCwsLCwwMDAwMDAwM
+DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
+DQ0NDQ0NDQ0ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O
+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8P
+Dw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwAAEBESEhMT
+FBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGBkZGRkZGRkZ
+GRkZGRkZGRkaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGxsbGxsb
+GxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc
+HBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB0dHR0dHR0d
+HR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0d
+HR0dHR0dHR0AAQIDBAUGBwgICQkKCgsLDAwMDA0NDQ0ODg4ODw8PDxAQEBAQEBAQ
+ERERERERERESEhISEhISEhMTExMTExMTFBQUFBQUFBQUFBQUFBQUFBUVFRUVFRUV
+FRUVFRUVFRUWFhYWFhYWFhYWFhYWFhYWFxcXFxcXFxcXFxcXFxcXFxgYGBgYGBgY
+GBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZ
+GRkZGRkZGRkaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGxsbGxsb
+GxsbGxsbGxsbGxsbGxsbGxsbGxsbGxscAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAA
+BgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAA
+MAAAADgAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAAAAAAAAAAAA
+AAAAAAEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAA
+QAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAA
+ABAAAAAYAAAAIAAAADAAAABAAAAAYAAAVPAAEEjwABAD7gAQPPAAECzwABAg8AAQ
+DPAAEPzvABDk7wAQA+4AEDogAAA8ZmQ6JWQ+ACVjJWMlYyVjJWMlYyVjJWMlYyVj
+AAAAAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAAAAaW52YWxpZCBkaXN0
+YW5jZSBjb2RlAAAAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQg
+ZGlzdGFuY2VzIHNldAAAAGludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldABpbnZh
+bGlkIGJpdCBsZW5ndGggcmVwZWF0AAAAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0
+AAAAAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQg
+c3RvcmVkIGJsb2NrIGxlbmd0aHMAAAAAaW52YWxpZCBibG9jayB0eXBlAABpbmNv
+cnJlY3QgbGVuZ3RoIGNoZWNrAABpbmNvcnJlY3QgZGF0YSBjaGVjawAAAABoZWFk
+ZXIgY3JjIG1pc21hdGNoAHVua25vd24gaGVhZGVyIGZsYWdzIHNldAAAAABpbnZh
+bGlkIHdpbmRvdyBzaXplAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAABpbmNv
+cnJlY3QgaGVhZGVyIGNoZWNrAABpbmNvbXBhdGlibGUgdmVyc2lvbgAAAABidWZm
+ZXIgZXJyb3IAAAAAaW5zdWZmaWNpZW50IG1lbW9yeQBkYXRhIGVycm9yAABzdHJl
+YW0gZXJyb3IAAAAAZmlsZSBlcnJvcgAAc3RyZWFtIGVuZAAAbmVlZCBkaWN0aW9u
+YXJ5AKjwAAAAAAAAAAAAAJ7xAAAIsAAAoPAAAAAAAAAAAAAA4vEAAACwAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAMbxAAAAAAAACvEAABLxAAAc8QAAKPEAADLxAAA88QAA
+RPEAAEzxAABW8QAAAPEAAG7xAAB28QAAfvEAAIjxAACU8QAAqvEAALbxAABk8QAA
++PAAAAAAAABZAmZwdXRjALICc3ByaW50ZgBeAmZyZWUAAJECbWFsbG9jAAC8AnN0
+cmVycm9yAABPAmZmbHVzaAAAyABfZXJybm8AAFcCZm9wZW4AXQJmcmVhZABYAmZw
+cmludGYA4QFfdnNucHJpbnRmAABmAmZ3cml0ZQAAZAJmdGVsbABiAmZzZWVrAEwC
+ZmNsb3NlAABCAmNsZWFyZXJyAADXAF9mZG9wZW4ATVNWQ1JULmRsbAAADwFfaW5p
+dHRlcm0AnQBfYWRqdXN0X2ZkaXYAAF0ARGlzYWJsZVRocmVhZExpYnJhcnlDYWxs
+cwBLRVJORUwzMi5kbGwAAAAAAADZHd5CAAAAABb0AAABAAAAMwAAADMAAAAY8gAA
+5PIAALDzAAAAEAAAEBMAAFASAAAwEwAAYBMAAHAcAACAGwAAgCUAALAkAACQFgAA
+YBYAAKAaAABgGgAA4BkAANAYAABQEwAAEEUAAKBDAAAwNwAAAEMAAPBDAACgQAAA
+ED0AAJA9AAAQNwAA4D4AAGA/AACQPwAAYDoAAIBCAADgQAAAcDcAAOBCAABAPQAA
+8D0AAKBXAAAgRgAA0FQAAEBFAABAcAAAgG0AAHBVAABAVgAAEFUAANBtAAAQbwAA
+EHAAAICQAACgkQAAkJEAAICRAAAg9AAAKPQAADH0AAA79AAASfQAAE/0AABX9AAA
+ZPQAAHD0AAB79AAAifQAAJb0AACk9AAAsfQAAL70AADT9AAA4fQAAOz0AAD09AAA
+/PQAAAL1AAAK9QAAEvUAABn1AAAg9QAAJ/UAADD1AAA39QAAPvUAAEX1AABO9QAA
+VfUAAGH1AABo9QAAcfUAAHn1AACB9QAAjfUAAJz1AACt9QAAufUAAMT1AADS9QAA
+3/UAAOz1AAAB9gAADfYAAB72AAAp9gAAMPYAAEH2AAAAAAEAAgADAAQABQAGAAcA
+CAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8A
+IAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgB6bGliMS5kbGwA
+YWRsZXIzMgBjb21wcmVzcwBjb21wcmVzczIAY29tcHJlc3NCb3VuZABjcmMzMgBk
+ZWZsYXRlAGRlZmxhdGVCb3VuZABkZWZsYXRlQ29weQBkZWZsYXRlRW5kAGRlZmxh
+dGVJbml0Ml8AZGVmbGF0ZUluaXRfAGRlZmxhdGVQYXJhbXMAZGVmbGF0ZVByaW1l
+AGRlZmxhdGVSZXNldABkZWZsYXRlU2V0RGljdGlvbmFyeQBnZXRfY3JjX3RhYmxl
+AGd6Y2xlYXJlcnIAZ3pjbG9zZQBnemRvcGVuAGd6ZW9mAGd6ZXJyb3IAZ3pmbHVz
+aABnemdldGMAZ3pnZXRzAGd6b3BlbgBnenByaW50ZgBnenB1dGMAZ3pwdXRzAGd6
+cmVhZABnenJld2luZABnenNlZWsAZ3pzZXRwYXJhbXMAZ3p0ZWxsAGd6dW5nZXRj
+AGd6d3JpdGUAaW5mbGF0ZQBpbmZsYXRlQmFjawBpbmZsYXRlQmFja0VuZABpbmZs
+YXRlQmFja0luaXRfAGluZmxhdGVDb3B5AGluZmxhdGVFbmQAaW5mbGF0ZUluaXQy
+XwBpbmZsYXRlSW5pdF8AaW5mbGF0ZVJlc2V0AGluZmxhdGVTZXREaWN0aW9uYXJ5
+AGluZmxhdGVTeW5jAGluZmxhdGVTeW5jUG9pbnQAdW5jb21wcmVzcwB6RXJyb3IA
+emxpYkNvbXBpbGVGbGFncwB6bGliVmVyc2lvbgAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AQAAAPDkABCg4wAQAQEAAB4BAAAPAAAAcOkAEBjkABAAAAAAHgAAAA8AAAAAAAAA
+kOQAEAAAAAATAAAABwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAAgAAAAAAAAAAA
+AAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAJBAAASAAAAGAQAQA4AwAA
+AAAAAAAAAAAAAAAAAAAAADgDNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4A
+RgBPAAAAAAC9BO/+AAABAAIAAQAAAAMAAgABAAAAAwA/AAAAAAAAAAQAAQACAAAA
+AAAAAAAAAAAAAAAAlgIAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAA
+cgIAAAEAMAA0ADAAOQAwADQARQA0AAAAZAAeAAEARgBpAGwAZQBEAGUAcwBjAHIA
+aQBwAHQAaQBvAG4AAAAAAHoAbABpAGIAIABkAGEAdABhACAAYwBvAG0AcAByAGUA
+cwBzAGkAbwBuACAAbABpAGIAcgBhAHIAeQAAACwABgABAEYAaQBsAGUAVgBlAHIA
+cwBpAG8AbgAAAAAAMQAuADIALgAzAAAANAAKAAEASQBuAHQAZQByAG4AYQBsAE4A
+YQBtAGUAAAB6AGwAaQBiADEALgBkAGwAbAAAAHwALAABAEwAZQBnAGEAbABDAG8A
+cAB5AHIAaQBnAGgAdAAAACgAQwApACAAMQA5ADkANQAtADIAMAAwADQAIABKAGUA
+YQBuAC0AbABvAHUAcAAgAEcAYQBpAGwAbAB5ACAAJgAgAE0AYQByAGsAIABBAGQA
+bABlAHIAAAA8AAoAAQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAA
+egBsAGkAYgAxAC4AZABsAGwAAAAqAAUAAQBQAHIAbwBkAHUAYwB0AE4AYQBtAGUA
+AAAAAHoAbABpAGIAAAAAADAABgABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8A
+bgAAADEALgAyAC4AMwAAAIIANQABAEMAbwBtAG0AZQBuAHQAcwAAAEQATABMACAA
+cwB1AHAAcABvAHIAdAAgAGIAeQAgAEEAbABlAHMAcwBhAG4AZAByAG8AIABJAGEA
+YwBvAHAAZQB0AHQAaQAgACYAIABHAGkAbABsAGUAcwAgAFYAbwBsAGwAYQBuAHQA
+AAAAAEQAAAABAFYAYQByAEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEA
+bgBzAGwAYQB0AGkAbwBuAAAAAAAJBOQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAbAAAAGcyUTOkM84z
+2DPqM/szDDQZNCs0PTRRNFs0bTR+NJI0nDSuNMA02TTnNPM0AzUUNR41LDVCNVM1
+YDVyNYM1mTWjNbE1wjXpNfk1BzYVNj821DbjNqE4/joHOzA7PTtKO1c72DwAIAAA
+IAAAAMkyCDOZNHE3fjeLN5g3zzf6PI49sj3BPQAwAABIAAAA8zDFMekx+DECNV01
+ATYcNkc2TjZ0No42lza9NsQ26TZJN1A3mjf0Nw84aziNOMY5AToOOgA7Nju0PCE+
+Dj/5PwBAAABMAAAAvjA7McMxAzLJMjMzBDQYNCY0LzRONGA0kTSiNMo00zQvNY81
+njUDNhE2kzaaNio3ezcROAM6RzqYOss94T33PT4+3T4AUAAAQAAAAMwwzTKFM5A0
+lDSYNJw0oDSkNKg0wDTENMg0zDSrNbo1YzZxNic4/jgrOXM5tznMOUs+ez/MPwAA
+AGAAAGgAAAA3MJEx1zEuMj4yxzTXNOs0ODURN6k4MTkBO2M7+Dz8PAA9BD0IPQw9
+ED0UPRg9HD0gPSQ9KD0sPTA9ND04PTw9QD1EPUg9TD1QPVQ9WD1cPWA9ZD1oPWw9
+cD10PXg9AAAAcAAAGAAAAFszYzN5M4czhjaWNqA2AAAAgAAAIAAAAPMy3DTiOec5
+3jqIO5s7ITwvPNQ84zwAAACQAAAsAAAAuzDLMIExrDHMMecx4Do9O0k7/z1XPuA+
+BD+nP8M/0z/yPwAAAKAAADgAAABAMKUwrTCzML4wyzDTMOEw5jDrMPAw+zAIMRIx
+JzEzMTkxWzFtMckx5jHzMQAyAAAA0AAAHAAAAKAwrDC4MMQw0DDcMOgw9DAAMQwx
+AOAAABwAAADYPdw94D3kPeg97D3wPfQ9+D38PQAAAQAUAAAAFDAYMCgwLDBAMAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+}
+}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/copyinfo b/src/Utils/UILogToScript/und/copyinfo
new file mode 100644
index 00000000..ae033475
--- /dev/null
+++ b/src/Utils/UILogToScript/und/copyinfo
@@ -0,0 +1,66 @@
+{4,
+{9,
+{12f65fa1-7e15-400a-8c44-b82b33aecd38,12f65fa1-7e15-400a-8c44-b82b33aecd38,1,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"MainProcedureName"}
+},
+{6344d70f-6d22-465c-b456-63013e6bc378,6344d70f-6d22-465c-b456-63013e6bc378,1,
+{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"ПреобразованиеЖурналаДействийПользователя"}
+},
+{6660de3e-89b7-4bca-af70-d32b6032fb9d,6660de3e-89b7-4bca-af70-d32b6032fb9d,1,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"ObjectSearch"}
+},
+{6e0161b1-e831-4142-a631-88f3086e3712,6e0161b1-e831-4142-a631-88f3086e3712,1,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"GetFullHierarchy"}
+},
+{9fd05663-44d9-4da2-a3fd-c2b908dfa029,9fd05663-44d9-4da2-a3fd-c2b908dfa029,1,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"SplitScriptIntoProcedures"}
+},
+{a279c684-5737-425e-9c57-6acbaf6562d0,a279c684-5737-425e-9c57-6acbaf6562d0,1,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"GenerateClientConnectionScript"}
+},
+{adfd948b-4804-4f26-9f93-cb3f704b8dc0,adfd948b-4804-4f26-9f93-cb3f704b8dc0,1,
+{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"DefaultForm"}
+},
+{c42244c7-9637-4401-b886-46a5bf0fdc45,c42244c7-9637-4401-b886-46a5bf0fdc45,1,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"ScriptVariant"}
+},
+{fe21d66e-455d-4720-9717-d5cd14c68919,fe21d66e-455d-4720-9717-d5cd14c68919,1,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"ConversionVariant"}
+}
+},
+{1,
+{d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,6344d70f-6d22-465c-b456-63013e6bc378,0}
+},
+{7,
+{
+{0,12f65fa1-7e15-400a-8c44-b82b33aecd38},d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,
+{-1}
+},
+{
+{0,6660de3e-89b7-4bca-af70-d32b6032fb9d},d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,
+{-1}
+},
+{
+{0,6e0161b1-e831-4142-a631-88f3086e3712},d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,
+{-1}
+},
+{
+{0,9fd05663-44d9-4da2-a3fd-c2b908dfa029},d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,
+{-1}
+},
+{
+{0,a279c684-5737-425e-9c57-6acbaf6562d0},d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,
+{-1}
+},
+{
+{0,c42244c7-9637-4401-b886-46a5bf0fdc45},d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,
+{-1}
+},
+{
+{0,fe21d66e-455d-4720-9717-d5cd14c68919},d2dcbcfb-d38e-4fa3-996c-ad9a927c7fab,
+{-1}
+}
+},
+{0,0},
+{0}
+}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/root b/src/Utils/UILogToScript/und/root
new file mode 100644
index 00000000..7c14b441
--- /dev/null
+++ b/src/Utils/UILogToScript/und/root
@@ -0,0 +1 @@
+{2,9e7b2a13-3bf6-401a-be4a-0dbf0d48a43b,}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/version b/src/Utils/UILogToScript/und/version
new file mode 100644
index 00000000..c23bfe28
--- /dev/null
+++ b/src/Utils/UILogToScript/und/version
@@ -0,0 +1,3 @@
+{
+{216,0}
+}
\ No newline at end of file
diff --git a/src/Utils/UILogToScript/und/versions b/src/Utils/UILogToScript/und/versions
new file mode 100644
index 00000000..7d0f6657
--- /dev/null
+++ b/src/Utils/UILogToScript/und/versions
@@ -0,0 +1 @@
+{1,17,"",1a37fe51-1578-4110-9503-099db6deabaa,"0b790809-ec18-47a5-9ea4-f803fe85b870",b966b557-69ea-4d81-a80c-00b3e9a826fc,"0b790809-ec18-47a5-9ea4-f803fe85b870.0",da1229af-fccc-4d83-ba9a-91123e493881,"6344d70f-6d22-465c-b456-63013e6bc378.0",38512f6f-2e9d-4b81-8433-b50d89fb06d3,"6344d70f-6d22-465c-b456-63013e6bc378.1",d7674794-66aa-4c2b-b135-3dfcc8e5f2dc,"6810777b-4151-4eba-b50d-4a2a08b5be5a",e0611e5c-3506-4d42-bea9-8e5a8be08f1b,"6810777b-4151-4eba-b50d-4a2a08b5be5a.0",2a2860ed-92f3-4765-9d9e-fa27fe63b3d5,"9e7b2a13-3bf6-401a-be4a-0dbf0d48a43b",96606142-684e-48f6-938b-e9031fbea47b,"adfd948b-4804-4f26-9f93-cb3f704b8dc0",0dfe5c6e-daae-44ae-9813-68dd4051f485,"adfd948b-4804-4f26-9f93-cb3f704b8dc0.0",78d567d7-6f0e-4349-ad0b-d8a2f94647ef,"adfd948b-4804-4f26-9f93-cb3f704b8dc0.1",e3e6a193-4a1e-4155-bcd4-71949070c69f,"b6e7785c-aad2-4c34-8c75-d98a7963dbaf",481f19f9-5712-4870-9a1a-e57ad56aa043,"b6e7785c-aad2-4c34-8c75-d98a7963dbaf.0",da038199-9e29-4e3e-8004-72c51196776e,"copyinfo",ed2e21bf-4311-4cb2-95ad-642370d4c493,"root",492ee880-2903-4e70-b501-891283c468ef,"version",41a2fce2-58a2-4ef4-894b-b69ecccb12b4,"versions",895e3342-501f-4d44-b158-06fd5c73510e}
\ No newline at end of file
diff --git "a/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/UnpackV8.txt" "b/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/UnpackV8.txt"
new file mode 100644
index 00000000..91178556
--- /dev/null
+++ "b/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/UnpackV8.txt"
@@ -0,0 +1,1368 @@
+{1,
+{#base64:TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5v
+dCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAADecsL/mhOsrJoTrKyaE6ys
+cgymrM8TrKwZD6KsiROsrJ8f8ayZE6ysmhOtrNwTrKz4DL+smBOsrHIMp6yLE6ys
+UmljaJoTrKwAAAAAAAAAAAAAAAAAAAAAUEUAAEwBAwBR4vBHAAAAAAAAAADgAA8B
+CwEGAACwAAAAUAAAAAAAADlWAAAAEAAAAMAAAAAAQAAAEAAAABAAAAQAAAAAAAAA
+BAAAAAAAAAAAEAEAABAAAAAAAAADAAAAAAAQAAAQAAAAABAAABAAAAAAAAAQAAAA
+AAAAAAAAAABwywAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AMAAABgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAudGV4dAAAAKauAAAAEAAA
+ALAAAAAQAAAAAAAAAAAAAAAAAAAgAABgLnJkYXRhAAB6EQAAAMAAAAAgAAAAwAAA
+AAAAAAAAAAAAAAAAQAAAQC5kYXRhAAAAmCkAAADgAAAAIAAAAOAAAAAAAAAAAAAA
+AAAAAEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAIoN+PVAALABhMh1CArIiA349UAA6QcAAACQkJCQkJCQ
+aDAQQADoEzMAAFnDkJCQkMOQkJCQkJCQkJCQkJCQkJCLwTPJxwAYwUAAiUgUiUgc
+xkAgAcOQkJCQkJCQkJCQkFaL8egYAAAA9kQkCAF0CVboXy0AAIPEBIvGXsIEAJCQ
+Vovxi0YUxwYYwUAAhcB0CVDoPi0AAIPEBItGHIXAdB2LSPyNcPxowBBAAFFqOFDo
+yjIAAFboGi0AAIPEBF7DkFaL8YsGhcB0CVDoBS0AAIPEBItGCIXAdAlQ6PUsAACD
+xASNThDolv///17DkJCQkItEJARTVldoVOBAAIvZUOjkMwAAi/CDxAiF9nULX164
+uf///1vCCACLTCQUaFDgQABR6MEzAACL+IPECIX/dRRW6DwzAACDxAS4uP///19e
+W8IIAFdWi8vo8wEAAFaL2OgdMwAAV+gXMwAAg8QIg/v9dQtfXri3////W8IIAIvD
+X/fYG8BeJLpbwggAkJCQkItEJARTVldoVOBAAIvZUOhUMwAAi/CDxAiF9nULX164
+zf///1vCCACLTCQUaFDgQABR6DEzAACL+IPECIX/dRRW6KwyAACDxAS4zP///19e
+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
+yf8zwPKu99FJi9mLyjvTcgKLy79M5kAAi/UzwPOmdAUbwIPY/4XAdRE703INO9MP
+lcCFwA+E1QAAAGiw6UAAaIjgQADomRgAAGiw6UAAaAjmQADoihgAAGiw6UAAaIjg
+QADoexgAAGiw6UAAaNDlQADobBgAAGiw6UAAaIjgQADoXRgAAGiw6UAAaMTlQADo
+ThgAAGiw6UAAaJTlQADoPxgAAGiw6UAAaGDlQADoMBgAAIPEQGiw6UAAaCzlQADo
+HhgAAGiw6UAAaPjkQADoDxgAAGiw6UAAaOjkQADoABgAAGiw6UAAaODkQADo8RcA
+AGiw6UAAaLDkQADo4hcAAGiw6UAAaHzkQADp0AAAAGiw6UAAaIjgQADoxBcAAGiw
+6UAAaIjgQADotRcAAGiw6UAAaHTkQADophcAAGiw6UAAaDDkQADolxcAAGiw6UAA
+aNjjQADoiBcAAGiw6UAAaITjQADoeRcAAGiw6UAAaIjgQADoahcAAGiw6UAAaIjg
+QADoWxcAAIPEQGiw6UAAaHzjQADoSRcAAGiw6UAAaCDjQADoOhcAAGiw6UAAaMzi
+QADoKxcAAGiw6UAAaITiQADoHBcAAGiw6UAAaIjgQADoDRcAAGiw6UAAaIjgQADo
+/hYAAItMJESDxDCFyQ+ENgIAAIpB/4TAdB48/3Qa/shfXohB/10zwFuLTCRYZIkN
+AAAAAIPEZMNJUehFBgAAg8QEM8BfXl1bi0wkWGSJDQAAAACDxGTDjUwkIOiQ2P//
+i1MMi0MIagBSUI1MJCzGRCR8Bug48v//i/DGRCRwAI1MJCDrS0lR6PgFAACDxASL
+xl9eXVuLTCRYZIkNAAAAAIPEZMONTCQg6EPY//+LSwyLUwhqAFFSjUwkLMZEJHwF
+6Ovr//+L8MZEJHAAjUwkIOhb2P//i0wkFIXJdLKKQf+EwHShPP90nf7IX4hB/4vG
+Xl1bi0wkWGSJDQAAAACDxGTDjUwkIOjl1///i0MMi0sIUFGNTCQoxkQkeATo7+f/
+/41MJCCL8MZEJHAA6P/X//+LTCQUhckPhFL///+KQf+EwA+EPf///zz/D4Q1////
+65aNTCRE6JXX//+LUxCLQwyLSwhqAVJQUY1MJFTGhCSAAAAAA+g24v//jUwkRIvw
+xkQkcADoptf//2oBjUwkFMdEJHT/////6IMBAACLxl9eXVuLTCRYZIkNAAAAAIPE
+ZMONTCRE6DXX//+LUwyLQwhSUI1MJEzGRCR4Auhf2P//jUwkRIvwxkQkcADoT9f/
+/2oBjUwkFMdEJHT/////6CwBAACLxl9eXVuLTCRYZIkNAAAAAIPEZMONTCRE6N7W
+//+LSwyLUwhRUo1MJEzGRCR4Aeh41///jUwkRMZEJHAA6PrW//9qAY1MJBTHRCR0
+/////+jXAAAAi0wkaF9eXTPAW2SJDQAAAACDxGTDkJBWi/GLRgSFwHQdjUj/ikD/
+hMB0Cjz/dAb+yIgB6wlR6AAEAACDxATHRgQAAAAAx0YIAAAAAMdGDAAAAABew5CQ
+VovxV4tGBIXAdF2KQP+EwHRWPP90Uot+CIP//XYF6MwDAACLTgSFyXQfikH/hMB0
+GDz/dBSF/3Un/siIQf+JfgSJfgiJfgzrH4X/dQ6FyXQXV4vO6HcAAADrDTl+DHMI
+V4vO6KgBAACLdgSF9nQExkb//19ew5CQkJCQkJCQkJCKRCQEVoTAi/F0JItGBIXA
+dB2NSP+KQP+EwHQKPP90Bv7IiAHrCVHoOAMAAIPEBMdGBAAAAADHRggAAAAAx0YM
+AAAAAF7CBACQkJCQkJCQkItEJASJQQiLSQTGBAEAwgQAkJCQkJCQkJCQkJCQkJCQ
+U1ZXi3wkEIP//YvxdgXo7AIAAItGBDPbO8N0KopI/zrLdCOA+f90Hjv7D4XaAAAA
+/slfiEj/iV4EiV4IiV4MXjLAW8IIAIpMJBQ7+3VWOst0QTvDdCyNSP+KQP86w3QZ
+PP90Ff7IX4gBiV4EiV4IiV4MXjLAW8IIAFHodQIAAIPEBIleBIleCIleDF9eMsBb
+wggAO8N0BYleCIgYX14ywFvCCAA6y3Rdi04Mg/kfdwQ7z3NeO8N0NI1I/4pA/zrD
+dCE8/3Qd/shXiAGLzoleBIleCIleDOhFAAAAX16wAVvCCABR6AsCAACDxARXi86J
+XgSJXgiJXgzoIwAAAF9esAFbwggAOX4McwhXi87oDgAAAF9esAFbwggAkJCQkJCQ
+VYvsav9oEL5AAGShAAAAAFBkiSUAAAAAg+wMi0UIU1aL8IPOH1eL2YP+/Yll8Ild
+6Il17HYFiUXsi/CNRgLHRfwAAAAAhcB9AjPAUOifDAAAg8QEiUUI6yeLRQiJReyD
+wAKFwH0CM8BQ6IIMAACJRQiDxAS4ejxAAMOLXeiLdeyLQwiFwHYiO8Z2AovGi3ME
+i8iLRQiL0cHpAo14AfOli8qD4QPzpIt17ItDBIt7CIXAdB2NSP+KQP+EwHQKPP90
+Bv7IiAHrCVHoBwEAAIPEBItFCMdDCAAAAABAO/6JQwTGQP8AiXMMdwKL94tLBIlz
+CF/GBDEAi030XmSJDQAAAABbi+VdwgQAkJCQkJCQkJBTVovxV4t8JBA5fghzBejo
+AgAAi0YIi1QkFCvHO8JzAovQi1wkHIvKO9NyAovLi0YEhcB1BDP26wONNDiLfCQY
+M8DzpnQFG8CD2P+FwHUUO9NzCV9eg8j/W8IQADPAO9MPlcBfXlvCEACQkJCQkJCQ
+ig349UAAsAGEyHUICsiIDfj1QADpBwAAAJCQkJCQkJBoMBBAAOiTBQAAWcOQkJCQ
+/yUQwUAA/yUMwUAA/yUIwUAA/yUEwUAA/yUAwUAA/yX8wEAA/3QkBOhiCgAAWcO4
+JL5AAOjzGgAAg+wwikXzVmoAjU3giEXg6HP8//++LMFAAFboWBoAAFlQVo1N4Oiu
+AwAAg2X8AI1F4FCNTcToFgAAAI1FxGjoyUAAUMdFxCDBQADowxoAAF64OL5AAOiZ
+GgAAUVFTVo1F8FeL8VCJdezHRfBQwUAA6CAZAACLXQiDZfwAjX4MagCKA4vPiAfo
+/Pv///81TMFAAIvPagBT6G8CAACLTfTHBkDBQACLxl9eW2SJDQAAAADJwgQAi0EQ
+hcB1BbhUwUAAw1WL7IPsHFGNTeToZwAAAI1F5GhYykAAUOg0GgAAuEy+QADoCxoA
+AFFWi/GJdfDHBkDBQACDZfwAagGNTgzohPv//4NN/P+LzugNGQAAi030XmSJDQAA
+AADJw1aL8ei7////9kQkCAF0B1bou/7//1mLxl7CBAC4YL5AAOiyGQAAUVOLXQhW
+V4vxU4l18Oh+GAAAikMMg2X8AIPDDI1+DGoAi8+IB+gc+////zVMwUAAi89qAFPo
+jwEAAItN9McGQMFAAIvGX15bZIkNAAAAAMnCBAC4dL5AAOhVGQAAUVaL8Yl18McG
+QMFAAINl/ABqAY1ODOjO+v//g038/4vO6FcYAACLTfReZIkNAAAAAMnDVYvsg+wc
+UY1N5OgqAAAAjUXkaOjJQABQ6CQZAABWi/Honv////ZEJAgBdAdW6Oj9//9Zi8Ze
+wgQAVovx/3QkCOgh////xwYgwUAAi8ZewgQAuIi+QADoxxgAAIPsMIpF81ZqAI1N
+4IhF4OhH+v//vmjBQABW6CwYAABZUFaNTeDoggEAAINl/ACNReBQjU3E6Or9//+N
+RcRoEMtAAFDHRcRcwUAA6JcYAABeuJy+QADobRgAAFFWi/GJdfDHBkDBQACDZfwA
+agGNTgzo5vn//4NN/P+LzuhvFwAAi030XmSJDQAAAADJw1WL7IPsHFGNTeToKgAA
+AI1F5GgQy0AAUOg8GAAAVovx6J7////2RCQIAXQHVugA/f//WYvGXsIEAFaL8f90
+JAjoOf7//8cGXMFAAIvGXsIEAFWL7ItFDFOLXQhWV4v5OUMIcwXoAP///4tDCItN
+DIvwK/E5dRBzA4t1EDv7dR7/NUzBQAAD8YvPVujFAAAA/3UMi89qAOi5AAAA63mF
+9nY/O/B1O4tDBIXAdQW4VMFAAIB4//5zKWoBi8/oDvn//4tDBIXAdQW4VMFAAIlH
+BItLCIlPCItLDIlPDP5A/+s2agFWi8/oVPn//4TAdCiLQwSFwHUFuFTBQACLTQxW
+A8FQ/3cE6JUXAACLRwSDxAyJdwiAJDAAi8dfXltdwgwAVleLfCQQagGL8VfoD/n/
+/4TAdBpX/3QkEP92BOheFwAAi0YEg8QMiX4IgCQ4AIvGX17CCABTVot0JAxXi/k5
+dwhzBegC/v//i8/oTQAAAItHCItcJBQrxjvDcwKL2IXbdjKLTwQrwwPOUI0EGVBR
+6EsaAACLdwiDxAwr84vPagBW6Jn4//+EwHQKi0cEiXcIgCQGAIvHX15bwggAVleL
++Yt3BIX2dCKKRv+EwHQbPP90F2oB6Pb3//9W6OAVAABZUFaLz+g3////X17D9gX4
+9UAAAXUHgA349UAAAegVAAAA9gX59UAAAXUHgA359UAAAekMAAAAaDAQQADofAAA
+AFnDaM9CQADocAAAAFnDw1b/NZAJQQDo2RwAAIsVkAlBAFmLDYwJQQCL8Svyg8YE
+O8ZeczpS6LocAACDwBBQ/zWQCUEA6BUEAACDxAyFwHUBw4sNjAlBACsNkAlBAKOQ
+CUEAwfkCjQyIiQ2MCUEAi0QkBIkBgwWMCUEABMP/dCQE6Ir////32BvAWffYSMNo
+gAAAAOiFHAAAhcBZo5AJQQB1DWoY6K4TAAChkAlBAFmDIAChkAlBAKOMCUEAw1WL
+7Gr/aIDBQABoXGBAAGShAAAAAFBkiSUAAAAAg+wMU1ZXg2XkAIt1DIvGD69FEAFF
+CINl/AD/TRB4Cyl1CItNCP9VFOvwx0XkAQAAAINN/P/oEQAAAItN8GSJDQAAAABf
+XlvJwhAAg33kAHUR/3UU/3UQ/3UM/3UI6AEAAADDVYvsav9okMFAAGhcYEAAZKEA
+AAAAUGSJJQAAAABRUVNWV4ll6INl/AD/TRB4G4tNCCtNDIlNCP9VFOvt/3Xs6BoA
+AABZw4tl6INN/P+LTfBkiQ0AAAAAX15bycIQAItEJASLAIE4Y3Nt4HQDM8DD6cIc
+AABWi3QkCFeDz/+LRgyoQHQFg8j/6zqog3Q0VuhoHgAAVov46PodAAD/dhDoPx0A
+AIPEDIXAfQWDz//rEotGHIXAdAtQ6IUDAACDZhwAWYvHg2YMAF9ew+huIAAAhcB1
+AcNQ/3QkEP90JBD/dCQQ6OceAACDxBDDakD/dCQM/3QkDOjR////g8QMw1WL7FFT
+VleLfQwPr30Qi0UIiX38hf+JRQiL33UHM8DpzQAAAIt1FGb3RgwMAXQIi0YYiUUU
+6wfHRRQAEAAAi04MgeEIAQAAdCmLRgSFwHQiO9iL+3ICi/hX/3UI/zbo4hMAACl+
+BAE+g8QMK98BfQjrRjtdFHJGhcl0C1bofR0AAIXAWXV5g30UAHQNi8Mz0vd1FIv7
+K/rrAov7V/91CP92EOgmIQAAg8QMg/j/dEcBRQgr2DvHcj6LffzrKYtFCFYPvgBQ
+6O4fAABZg/j/WXQu/0UIi0YYS4lFFIXAfwfHRRQBAAAAhdsPhVD///+LRRBfXlvJ
+w4NODCCLRfzrAovHK8Mz0vd1DOvnVYvsUVNWV4t9DA+vfRCLXQiLz4X/iX38iU0I
+dQczwOmpAAAAi3UUZvdGDAwBdAiLRhiJRRTrDMdFFAAQAADrA4tNCGb3RgwMAXQq
+i0YEhcB0IzvIi/lyAov4V/82U+jYEgAAKX0IKX4EAT6DxAwD34t9/OtLO00Uci6D
+fRQAi8F0CTPS93UUi8ErwlBT/3YQ6LQiAACDxAyFwHQ2g/j/dDcpRQgD2OsYVujC
+IQAAg/j/WXQoiAOLRhhD/00IiUUUg30IAA+Fdv///4tFEF9eW8nDg04MEOsEg04M
+IIvHM9IrRQj3dQzr5czMzFE9ABAAAI1MJAhyFIHpABAAAC0AEAAAhQE9ABAAAHPs
+K8iLxIUBi+GLCItABFDDU4tcJAhVVoXbV3UP/3QkGOiqGAAAWekAAQAAi3QkGIX2
+dQ5T6PcAAABZM8Dp6gAAADP/g/7gD4fAAAAAU+h4JAAAi+hZhe0PhIwAAAA7NUzs
+QAB3RFZTVehoLAAAg8QMhcB0BIv76ylW6KInAACL+FmF/3Qki0P8SDvGcgKLxlBT
+V+iaEQAAU1XoVyQAAIPEFIX/D4WAAAAAhfZ1A2oBXoPGD4Pm8FZqAP81XPlAAP8V
+HMBAAIv4hf90QYtD/Eg7xnICi8ZQU1foVBEAAFNV6BEkAACDxBTrH4X2dQNqAV6D
+xg+D5vBWU2oA/zVc+UAA/xUYwEAAi/iF/3Udgz2880AAAHQUVugaIwAAhcBZD4Ud
+////6RH///+Lx19eXVvDVot0JAiF9nQkVuiLIwAAWYXAVnQKUOiqIwAAWVlew2oA
+/zVc+UAA/xUgwEAAXsNVi+xq/2igwUAAaFxgQABkoQAAAABQZIklAAAAAIPsEFNW
+VzPAiUXgiUX8iUXki0XkO0UQfROLdQiLzv9VFAN1DIl1CP9F5Ovlx0XgAQAAAINN
+/P/oEQAAAItN8GSJDQAAAABfXlvJwhQAg33gAHUR/3UY/3Xk/3UM/3UI6A/7///D
+agH/dCQI6PUWAABZWcNVi+xRU1ZXi0UMg8AMiUX8ZIsdAAAAAIsDZKMAAAAAi0UI
+i10Mi2P8i238/+BfXlvJwggAWFmHBCT/4FhZhwQk/+BVi+xRUVNWV2ShAAAAAIlF
++MdF/GhJQABqAP91DP91/P91COjkcwAAi0UMi0AEJP2LTQyJQQRkoQAAAACLXfiJ
+A2SJHQAAAABfXlvJwggAVYvsg+wEU1ZX/IlF/DPAUFBQ/3X8/3UU/3UQ/3UM/3UI
+6CUtAACDxCCJRRRfXluLRRSL5V3DVYvsg+wUi0UMg2XsAItNCIlF9ItFFMdF8BlK
+QABAiU34iUX8ZKEAAAAAiUXsjYXs////ZKMAAAAA/3UYUf91EOi2NAAAi8iLRexk
+owAAAACLwcnDVYvs/ItFDGoAUP9wEP9wCGoA/3UQ/3AM/3UI6KEsAACDxCBdw1WL
+7IPsNFNWV4Nl2ADHRdzySkAAi0UYiUXgi0UMiUXki0UciUXoi0UgiUXsg2XwAINl
+9ACDZfgAg2X8AMdF8MRKQACJZfSJbfhkoQAAAACJRdiNhdj///9kowAAAADHRcwB
+AAAAi0UIiUXQi0UQiUXUjUXQUItFCP8w/xWw80AAWVmDZcwAg338AHQXZIsdAAAA
+AIsDi13YiQNkiR0AAAAA6wmLRdhkowAAAACLRcxfXlvJw1WL7FNWV/yLRQiLQASD
+4GaFwHQPi0UMx0AkAQAAAGoBWOtNagGLRQz/cBSLRQz/cBCLRQz/cAhqAP91EItF
+DP9wDP91COieKwAAg8Qgi0UMg3gkAHUL/3UI/3UM6O39//+LXQyLYxyLayD/Yxhq
+AVhfXltdw1WL7FFTVoN9DABXi30Ii3cMi18Qi8aJdQiJRfx8OYP+/3UF6PsVAACL
+TRBOjQS2OUyDBI0Eg30FO0gIfgWD/v91DItFCP9NDIlF/Il1CIN9DAB9yotF/ItN
+FEaJMYtNGIkBO0cMdwQ78HYF6LMVAACNBLZfXo0Eg1vJw8zMVYvsU1ZXVWoAagBo
+/EtAAP91COhQcQAAXV9eW4vlXcOLTCQE90EEBgAAALgBAAAAdA+LRCQIi1QkEIkC
+uAMAAADDU1ZXi0QkEFBq/mgETEAAZP81AAAAAGSJJQAAAACLRCQgi1gIi3AMg/7/
+dC47dCQkdCiNNHaLDLOJTCQIiUgMg3yzBAB1EmgBAQAAi0SzCOhAAAAA/1SzCOvD
+ZI8FAAAAAIPEDF9eW8MzwGSLDQAAAACBeQQETEAAdRCLUQyLUgw5UQh1BbgBAAAA
+w1NRu4DpQADrClNRu4DpQACLTQiJSwiJQwSJawxZW8IEAFWL7IPsIItFCFaJReiJ
+ReCNRRDHRexCAAAAUI1F4P91DMdF5P///39Q6AwyAACDxAz/TeSL8HgIi0XggCAA
+6w2NReBQagDolhgAAFlZi8ZeycOhlAlBAIXAdAL/0Ggs4EAAaBjgQADozgAAAGgU
+4EAAaADgQADovwAAAIPEEMNqAGoA/3QkDOgVAAAAg8QMw2oAagH/dCQM6AQAAACD
+xAzDV2oBXzk9nPNAAHUR/3QkCP8VMMBAAFD/FSzAQACDfCQMAFOLXCQUiT2Y80AA
+iB2U80AAdTyhkAlBAIXAdCKLDYwJQQBWjXH8O/ByE4sGhcB0Av/Qg+4EOzWQCUEA
+c+1eaDjgQABoMOBAAOgqAAAAWVloROBAAGg84EAA6BkAAABZWYXbW3UQ/3QkCIk9
+nPNAAP8VKMBAAF/DVot0JAg7dCQMcw2LBoXAdAL/0IPGBOvtXsNqAP90JAj/FTjA
+QACFwHUI/xU0wEAA6wIzwIXAdAtQ6Mw4AABZg8j/wzPAw1WL7FNWV/91COgACgAA
+/3UMi/DoEzkAAP91DIv4VmoB/3UI6IH2////dQyL2FfohTkAAIPEIDPAO94PlMBf
+XkhbXcOhgAlBAFZqFIXAXnUHuAACAADrBjvGfQeLxqOACUEAagRQ6DY7AABZo2T5
+QACFwFl1IWoEVok1gAlBAOgdOwAAWaNk+UAAhcBZdQhqGugxCAAAWTPJuJDpQACL
+FWT5QACJBBGDwCCDwQQ9EOxAAHzqM9K5oOlAAIvCi/LB+AWD5h+LBIVA+EAAiwTw
+g/j/dASFwHUDgwn/g8EgQoH5AOpAAHzUXsPoFhQAAIA9lPNAAAB0BekiOwAAw4tE
+JARWi3QkDCX/AAAAV4vOgH4BOnUDjU4CihGA+lx0BYD6L3UGgHkBAHQNqBB1CYTS
+vwCAAAB1Bb9AQAAA9tCD4AFqLgwCVsHgBwv46JU8AACL8FmF9ll0R2jEwUAAVugU
+OwAAWYXAWXQzaLzBQABW6AM7AABZhcBZdCJotMFAAFbo8joAAFmFwFl0EWiswUAA
+VujhOgAAWYXAWXUDg89Ai8fB6AOD4DgL+IvHwegGg+AHC8dfXsNVi+yB7GQCAABT
+Vot1CFdo0MFAAFbomD4AAFmFwFl1EzPbgH4BOnUvigY6w3QaOF4CdRVqAlijVPNA
+AKNY80AAg8j/6WYCAAAPvsBQ6OY9AABZg+hg6wXomD0AAIlF4I2FoP7//1BW/xVM
+wEAAg8//iUXsO8cPhacAAABozMFAAFboLD4AAFmFwFkPhIAAAABoBAEAAI2FnP3/
+/1ZQ6K88AACL8IPEDDvzdGVW6KkHAACD+ANZdAtW6PYBAACFwFl0Tlb/FUjAQACD
++AF2QldTU1NqAWoBaLwHAADHhaD+//8QAAAAiZ28/v//iZ3A/v//iJ3M/v//6JM7
+AACLdQyDxByJRhyJRhiJRiDpSgEAAGoCWKNU80AAo1jzQADpigEAAI1F5FCNhbT+
+//9Q/xVEwEAAhcAPhFsBAACNRfBQjUXkUP8VQMBAAIXAD4RFAQAAD7dF/FdQD7dF
++lAPt0X4UA+3RfZQD7dF8lAPt0XwUOgaOwAAi3UMg8QcOZ2s/v//iUYcdQg5nbD+
+//90Vo1F5FCNhaz+//9Q/xVEwEAAhcAPhO8AAACNRfBQjUXkUP8VQMBAAIXAD4TZ
+AAAAD7dF/FdQD7dF+lAPt0X4UA+3RfZQD7dF8lAPt0XwUOiuOgAAg8QcOZ2k/v//
+iUYYdQ05naj+//91BYtGHOtSjUXkUI2FpP7//1D/FUTAQACFwA+EgQAAAI1F8FCN
+ReRQ/xVAwEAAhcB0bw+3RfxXUA+3RfpQD7dF+FAPt0X2UA+3RfJQD7dF8FDoRDoA
+AIPEHP917IlGIP8VPMBAAP91CP+1oP7//+jg/P//ZolGBouFwP7//4lGFItF4EhZ
+iQaJRhBZZsdGCAEAZoleBGaJXgxmiV4KM8DrGP8VNMBAAFDobjQAAFn/dez/FTzA
+QACLx19eW8nDVot0JAhW6JwFAACD+AVZcluKBjxcdAQ8L3VRikYBPFx0BDwvdUaK
+TgONRgMy0jrKdBCA+Vx0C4D5L3QGikgBQOvsOBB0JkA4EHQhigg6ynQNgPlcdAiA
++S90A0Dr7TgQdAU4UAF1BWoBWF7DM8Bew1WL7FGDPdzzQAAAU1ZXdR2LRQiD+EEP
+jKoAAACD+FoPj6EAAACDwCDpmQAAAItdCL8AAQAAagE73159JTk15O9AAH4LVlPo
+7T0AAFlZ6wqh2O1AAIoEWCPGhcB1BIvD62WLFdjtQACLw8H4CA+2yPZESgGAdA+A
+ZQoAagKIRQiIXQlY6wmAZQkAiF0Ii8ZWagCNTfxqA1FQjUUIUFf/NdzzQADobDsA
+AIPEIIXAdK47xnUGD7ZF/OsND7ZF/Q+2TfzB4AgLwV9eW8nDzMzMzMzMzMzMzMzM
+VYvsV4t9CDPAg8n/8q5B99lPikUM/fKuRzgHdAQzwOsCi8f8X8nDVYvsgexAAQAA
+jYXA/v//V1D/dQj/FUzAQACL+IP//3U//xU0wEAAagJZO8FyD4P4A3Ylg/gIdBSD
++BJ0G8cFVPNAABYAAACDyP/re8cFVPNAAAwAAADr74kNVPNAAOvni4XA/v//Vot1
+DC2AAAAA99gbwCOFwP7//4kGjYXE/v//UOgnAQAAiUYEjYXM/v//UOgYAQAAiUYI
+jYXU/v//UOgJAQAAiUYMi4Xg/v//iUYQjYXs/v//g8YUUFbo+DwAAIPEFIvHXl/J
+w1WL7IHsQAEAAI2FwP7//1D/dQj/FVDAQACFwHU//xU0wEAAagJZO8FyD4P4A3Yl
+g/gIdBSD+BJ0G8cFVPNAABYAAACDyP/Jw8cFVPNAAAwAAADr74kNVPNAAOvni4XA
+/v//Vot1DC2AAAAA99gbwCOFwP7//4kGjYXE/v//UOhhAAAAiUYEjYXM/v//UOhS
+AAAAiUYIjYXU/v//UOhDAAAAiUYMi4Xg/v//iUYQjYXs/v//g8YUUFboMjwAAIPE
+FDPAXsnD/3QkBP8VPMBAAIXAdQ7HBVTzQAAWAAAAg8j/wzPAw1WL7IPsGItFCIM4
+AHUGg3gEAHRLjU34UVD/FUTAQACFwHQ8jUXoUI1F+FD/FUDAQACFwHQqD7dF9Gr/
+UA+3RfJQD7dF8FAPt0XuUA+3RepQD7dF6FDoZjYAAIPEHMnDg8j/ycNVi+xq/2jY
+wUAAaFxgQABkoQAAAABQZIklAAAAAIPsEFNWV4ll6P8VWMBAADPSitSJFWzzQACL
+yIHh/wAAAIkNaPNAAMHhCAPKiQ1k80AAwegQo2DzQABqAOjIFAAAWYXAdQhqHOia
+AAAAWYNl/ADomjEAAP8VVMBAAKNg+UAA6J1AAACjpPNAAOhGPgAA6Ig9AADoU/b/
+/6F880AAo4DzQABQ/zV080AA/zVw80AA6DPZ//+DxAyJReRQ6Fj2//+LReyLCIsJ
+iU3gUFHoxjsAAFlZw4tl6P914OhK9v//gz2s80AAAnQF6GZBAAD/dCQE6JZBAABo
+/wAAAP8VEOxAAFlZw4M9rPNAAAJ0BehBQQAA/3QkBOhxQQAAWWj/AAAA/xUowEAA
+w1aL8eibAAAA9kQkCAF0B1boXub//1mLxl7CBABWV4t8JAyL8ccG6MFAAP836M4A
+AABAUOhX8f//WYlGBIXAWXQK/zdQ6DY6AABZWcdGCAEAAACLxl9ewgQAVleLfCQM
+i/HHBujBQACLRwiFwIlGCHQl/3cE6IYAAABAUOgP8f//WYlGBIXAWXQT/3cEUOjt
+OQAAWVnrBotHBIlGBIvGX17CBACDeQgAxwHowUAAdAn/cQTovOX//1nDi0EEhcB1
+BbjwwUAAw8cBCMJAAItJBIXJdAdR6AXw//9Zw1aL8ejj////9kQkCAF0B1bog+X/
+/1mLxl7CBADMzMzMzMzMzItMJAT3wQMAAAB0FIoBQYTAdED3wQMAAAB18QUAAAAA
+iwG6//7+fgPQg/D/M8KDwQSpAAEBgXToi0H8hMB0MoTkdCSpAAD/AHQTqQAAAP90
+AuvNjUH/i0wkBCvBw41B/otMJAQrwcONQf2LTCQEK8HDjUH8i0wkBCvBw8xq/1Bk
+oQAAAABQi0QkDGSJJQAAAACJbCQMjWwkDFDDVYvsg+wgi0UIVldqCFm+EMJAAI19
+4POliUX4i0UMiUX8jUX0UP918P915P914P8VXMBAAF9eycIIAMzMzMzMzMzMzMzM
+VYvsV1aLdQyLTRCLfQiLwYvRA8Y7/nYIO/gPgngBAAD3xwMAAAB1FMHpAoPiA4P5
+CHIp86X/JJWIWkAAi8e6AwAAAIPpBHIMg+ADA8j/JIWgWUAA/ySNmFpAAJD/JI0c
+WkAAkLBZQADcWUAAAFpAACPRigaIB4pGAYhHAYpGAsHpAohHAoPGA4PHA4P5CHLM
+86X/JJWIWkAAjUkAI9GKBogHikYBwekCiEcBg8YCg8cCg/kIcqbzpf8klYhaQACQ
+I9GKBogHRsHpAkeD+QhyjPOl/ySViFpAAI1JAH9aQABsWkAAZFpAAFxaQABUWkAA
+TFpAAERaQAA8WkAAi0SO5IlEj+SLRI7oiUSP6ItEjuyJRI/si0SO8IlEj/CLRI70
+iUSP9ItEjviJRI/4i0SO/IlEj/yNBI0AAAAAA/AD+P8klYhaQACL/5haQACgWkAA
+rFpAAMBaQACLRQheX8nDkIoGiAeLRQheX8nDkIoGiAeKRgGIRwGLRQheX8nDjUkA
+igaIB4pGAYhHAYpGAohHAotFCF5fycOQjXQx/I18Ofz3xwMAAAB1JMHpAoPiA4P5
+CHIN/fOl/P8klSBcQACL//fZ/ySN0FtAAI1JAIvHugMAAACD+QRyDIPgAyvI/ySF
+KFtAAP8kjSBcQACQOFtAAFhbQACAW0AAikYDI9GIRwNOwekCT4P5CHK2/fOl/P8k
+lSBcQACNSQCKRgMj0YhHA4pGAsHpAohHAoPuAoPvAoP5CHKM/fOl/P8klSBcQACQ
+ikYDI9GIRwOKRgKIRwKKRgHB6QKIRwGD7gOD7wOD+QgPglr////986X8/ySVIFxA
+AI1JANRbQADcW0AA5FtAAOxbQAD0W0AA/FtAAARcQAAXXEAAi0SOHIlEjxyLRI4Y
+iUSPGItEjhSJRI8Ui0SOEIlEjxCLRI4MiUSPDItEjgiJRI8Ii0SOBIlEjwSNBI0A
+AAAAA/AD+P8klSBcQACL/zBcQAA4XEAASFxAAFxcQACLRQheX8nDkIpGA4hHA4tF
+CF5fycONSQCKRgOIRwOKRgKIRwKLRQheX8nDkIpGA4hHA4pGAohHAopGAYhHAYtF
+CF5fycPMzMzMzMzMzMzMzFWL7FdWi3UMi00Qi30Ii8GL0QPGO/52CDv4D4J4AQAA
+98cDAAAAdRTB6QKD4gOD+QhyKfOl/ySVyF1AAIvHugMAAACD6QRyDIPgAwPI/ySF
+4FxAAP8kjdhdQACQ/ySNXF1AAJDwXEAAHF1AAEBdQAAj0YoGiAeKRgGIRwGKRgLB
+6QKIRwKDxgODxwOD+QhyzPOl/ySVyF1AAI1JACPRigaIB4pGAcHpAohHAYPGAoPH
+AoP5CHKm86X/JJXIXUAAkCPRigaIB0bB6QJHg/kIcozzpf8klchdQACNSQC/XUAA
+rF1AAKRdQACcXUAAlF1AAIxdQACEXUAAfF1AAItEjuSJRI/ki0SO6IlEj+iLRI7s
+iUSP7ItEjvCJRI/wi0SO9IlEj/SLRI74iUSP+ItEjvyJRI/8jQSNAAAAAAPwA/j/
+JJXIXUAAi//YXUAA4F1AAOxdQAAAXkAAi0UIXl/Jw5CKBogHi0UIXl/Jw5CKBogH
+ikYBiEcBi0UIXl/Jw41JAIoGiAeKRgGIRwGKRgKIRwKLRQheX8nDkI10MfyNfDn8
+98cDAAAAdSTB6QKD4gOD+QhyDf3zpfz/JJVgX0AAi//32f8kjRBfQACNSQCLx7oD
+AAAAg/kEcgyD4AMryP8khWheQAD/JI1gX0AAkHheQACYXkAAwF5AAIpGAyPRiEcD
+TsHpAk+D+Qhytv3zpfz/JJVgX0AAjUkAikYDI9GIRwOKRgLB6QKIRwKD7gKD7wKD
++QhyjP3zpfz/JJVgX0AAkIpGAyPRiEcDikYCiEcCikYBwekCiEcBg+4Dg+8Dg/kI
+D4Ja/////fOl/P8klWBfQACNSQAUX0AAHF9AACRfQAAsX0AANF9AADxfQABEX0AA
+V19AAItEjhyJRI8ci0SOGIlEjxiLRI4UiUSPFItEjhCJRI8Qi0SODIlEjwyLRI4I
+iUSPCItEjgSJRI8EjQSNAAAAAAPwA/j/JJVgX0AAi/9wX0AAeF9AAIhfQACcX0AA
+i0UIXl/Jw5CKRgOIRwOLRQheX8nDjUkAikYDiEcDikYCiEcCi0UIXl/Jw5CKRgOI
+RwOKRgKIRwKKRgGIRwGLRQheX8nDVot0JAhW6BkMAACFwFl0CItG/F6D6AnDVmoA
+/zVc+UAA/xVgwEAAXsP/NbzzQAD/dCQI6AMAAABZWcODfCQE4Hci/3QkBOgcAAAA
+hcBZdRY5RCQIdBD/dCQE6DALAACFwFl13jPAw1aLdCQIOzVM7EAAdwtW6AAPAACF
+wFl1HIX2dQNqAV6Dxg+D5vBWagD/NVz5QAD/FRzAQABew8zMVkMyMFhDMDBVi+yD
+7AhTVldV/ItdDItFCPdABAYAAAAPhYIAAACJRfiLRRCJRfyNRfiJQ/yLcwyLewiD
+/v90YY0MdoN8jwQAdEVWVY1rEP9UjwRdXotdDAvAdDN4PIt7CFPoKev//4PEBI1r
+EFZT6F7r//+DxAiNDHZqAYtEjwjo4ev//4sEj4lDDP9UjwiLewiNDHaLNI/robgA
+AAAA6xy4AQAAAOsVVY1rEGr/U+ge6///g8QIXbgBAAAAXV9eW4vlXcNVi0wkCIsp
+i0EcUItBGFDo+er//4PECF3CBABVi+xq/2gwwkAAaFxgQABkoQAAAABQZIklAAAA
+AFFRU1ZXiWXog2X8AKG080AAhcB0FsdF/AEAAAD/0OsHagFYw4tl6INl/ACDTfz/
+6AAAAADpfjkAAFWL7Gr/aEjCQABoXGBAAGShAAAAAFBkiSUAAAAAUVFTVleJZeiD
+ZfwAoUTsQACFwHQWx0X8AQAAAP/Q6wdqAVjDi2Xog2X8AINN/P/oAAAAAOlU////
+U1VWV4t8JBQ7PUD5QAAPg4YAAACLx4v3wfgFg+YfjRyFQPhAAMHmA4sD9kQwBAF0
+aVfojjoAAIP4/1l0PIP/AXQFg/8CdRZqAuh3OgAAagGL6OhuOgAAWTvFWXQcV+hi
+OgAAWVD/FWTAQACFwHUK/xU0wEAAi+jrAjPtV+jKOQAAiwNZgGQwBACF7XQJVeij
+JAAAWesVM8DrFIMlWPNAAADHBVTzQAAJAAAAg8j/X15dW8NWi3QkCItGDKiDdB2o
+CHQZ/3YI6JTl//9mgWYM9/szwFmJBolGCIlGBF7DVot0JAiF9nUJVuiRAAAAWV7D
+VugjAAAAhcBZdAWDyP9ew/ZGDUB0D/92EOj0OQAA99hZXhvAwzPAXsNTVot0JAwz
+21eLRgyLyIPhA4D5AnU3ZqkIAXQxi0YIiz4r+IX/fiZXUP92EOieAwAAg8QMO8d1
+DotGDKiAdA4k/YlGDOsHg04MIIPL/4tGCINmBACJBl+Lw15bw2oB6AIAAABZw1NW
+VzP2M9sz/zk1gAlBAH5NoWT5QACLBLCFwHQ4i0gM9sGDdDCDfCQQAXUPUOgu////
+g/j/WXQdQ+sag3wkEAB1E/bBAnQOUOgT////g/j/WXUCC/hGOzWACUEAfLODfCQQ
+AYvDdAKLx19eW8NVi+xRUVNWizUI9UAAV4t9DDPbiV34iV38igc8YXQaPHJ0Dzx3
+D4UiAQAAuQEDAADrDDPJg84B6wi5CQEAAIPOAmoBWopHAUc6ww+E4wAAADvTD4Tb
+AAAAD77Ag/hUf3J0YIPoK3RFg+gZdDaD6A50HEgPhawAAAA5XfwPhaMAAADHRfwB
+AAAAg8kg67c5XfwPhY4AAADHRfwBAAAAg8kQ66L2wUB1fYPJQOuY9sECdXOD4f6D
+5vyDyQKBzoAAAADrgrgAEAAAhch1WQvI6XL///+D6GJ0SEh0LoPoC3QSg+gGdUD2
+xcB1O4DNQOlT////OV34dS7HRfgBAAAAgeb/v///6Tz///85Xfh1F8dF+AEAAACB
+zgBAAADpJf////bFwHQHM9LpGf///4DNgOkR////aKQBAAD/dRBR/3UI6Co4AACL
+yIPEEDvLfQQzwOsai0UU/wWg80AAiXAMiVgEiRiJWAiJWByJSBBfXlvJw4sVgAlB
+AFNVVjPtM/YzwDvVV35dix1k+UAAi/uLDzvNdBX2QQyDdApAg8cEO8J87Os/izSD
+6ySL+GogwecC6GD6//9Ziw1k+UAAiQQPoWT5QACLPAc7/XQYi/c79XQSg04Q/4lu
+BIluDIluCIkuiW4ci8ZfXl1bw1WL7FNWi3UMi0YMi14QqIIPhPMAAACoQA+F6wAA
+AKgBdBaDZgQAqBAPhNsAAACLTggk/okOiUYMi0YMg2YEAINlDAAk7wwCZqkMAYlG
+DHUigf6w6UAAdAiB/tDpQAB1C1PotzoAAIXAWXUHVuhoOgAAWWb3RgwIAVd0ZItG
+CIs+K/iNSAGJDotOGEmF/4lOBH4QV1BT6HsAAACDxAyJRQzrM4P7/3QWi8OLy8H4
+BYPhH4sEhUD4QACNBMjrBbjQ7UAA9kAEIHQNagJqAFPobTkAAIPEDItGCIpNCIgI
+6xRqAY1FCF9XUFPoKAAAAIPEDIlFDDl9DF90BoNODCDrD4tFCCX/AAAA6wgMIIlG
+DIPI/15bXcNVi+yB7BQEAACLTQhTOw1A+UAAVlcPg3kBAACLwYvxwfgFg+YfjRyF
+QPhAAMHmA4sDikQwBKgBD4RXAQAAM/85fRCJffiJffB1BzPA6VcBAACoIHQMagJX
+UejMOAAAg8QMiwMDxvZABIAPhMEAAACLRQw5fRCJRfyJfQgPhucAAACNhez7//+L
+TfwrTQw7TRBzKYtN/P9F/IoJgPkKdQf/RfDGAA1AiAhAi8iNlez7//8ryoH5AAQA
+AHzMi/iNhez7//8r+I1F9GoAUI2F7Pv//1dQiwP/NDD/FWjAQACFwHRDi0X0AUX4
+O8d8C4tF/CtFDDtFEHKKM/+LRfg7xw+FiwAAADl9CHRfagVYOUUIdUzHBVTzQAAJ
+AAAAo1jzQADpgAAAAP8VNMBAAIlFCOvHjU30V1H/dRD/dQz/MP8VaMBAAIXAdAuL
+RfSJfQiJRfjrp/8VNMBAAIlFCOuc/3UI6OkeAABZ6z2LA/ZEMARAdAyLRQyAOBoP
+hM3+///HBVTzQAAcAAAAiT1Y80AA6xYrRfDrFIMlWPNAAADHBVTzQAAJAAAAg8j/
+X15bycNWi3QkCItGDKiDD4TEAAAAqEAPhbwAAACoAnQKDCCJRgzprgAAAAwBZqkM
+AYlGDHUJVujgNwAAWesFi0YIiQb/dhj/dgj/dhDojAAAAIPEDIlGBIXAdGyD+P90
+Z4tWDPbCgnU0i04QV4P5/3QUi/nB/wWD4R+LPL1A+EAAjTzP6wW/0O1AAIpPBF+A
+4YKA+YJ1BoDOIIlWDIF+GAACAAB1FItODPbBCHQM9sUEdQfHRhgAEAAAiw5IiUYE
+D7YBQYkOXsP32BvAg+AQg8AQCUYMg2YEAIPI/17DVYvsg+wMU1aLdQhXOzVA+UAA
+D4PFAQAAi8aD5h/B+AXB5gONHIVA+EAAiwSFQPhAAAPGilAE9sIBD4SeAQAAg2X4
+AIt9DIN9EACLz3Rn9sICdWL2wkh0HYpABTwKdBb/TRCIB4sDjU8Bx0X4AQAAAMZE
+MAUKjUX0agBQiwP/dRBR/zQw/xVswEAAhcB1Ov8VNMBAAGoFWTvBdRXHBVTzQAAJ
+AAAAiQ1Y80AA6T4BAACD+G11BzPA6TUBAABQ6AYdAABZ6SYBAACLA4tV9AFV+I1M
+MASKRDAEqIAPhPgAAACF0nQJgD8KdQQMBOsCJPuIAYtFDItN+IlFEAPIO8GJTfgP
+g8sAAACLRRCKADwaD4SuAAAAPA10C4gHR/9FEOmRAAAASTlNEHMYi0UQQIA4CnUG
+g0UQAutexgcNR4lFEOtzjUX0agBQ/0UQjUX/agFQiwP/NDD/FWzAQACFwHUK/xU0
+wEAAhcB1R4N99AB0QYsD9kQwBEh0E4pF/zwKdBfGBw2LC0eIRDEF6yk7fQx1C4B9
+/wp1BcYHCusYagFq//91COj9NAAAg8QMgH3/CnQExgcNR4tN+DlNEA+CR////+sQ
+iwONdDAEigaoQHUEDAKIBit9DIl9+ItF+OsUgyVY80AAAMcFVPNAAAkAAACDyP9f
+XlvJw6G480AAhcB0D/90JAT/0IXAWXQEagFYwzPAwzPAagA5RCQIaAAQAAAPlMBQ
+/xV0wEAAhcCjXPlAAHQV6BcAAACFwHUP/zVc+UAA/xVwwEAAM8DDagFYw2hAAQAA
+agD/NVz5QAD/FRzAQACFwKNY+UAAdQHDgyVQ+UAAAIMlVPlAAABqAaNM+UAAxwVE
++UAAEAAAAFjDoVT5QACNDIChWPlAAI0MiDvBcxSLVCQEK1AMgfoAABAAcgeDwBTr
+6DPAw1WL7IPsFItVDItNCFNWi0EQi/IrcQyLWvyDwvxXwe4Pi86LevxpyQQCAABL
+iX38jYwBRAEAAIld9IlN8IsME/bBAYlN+HV/wfkEaj9JX4lNDDvPdgOJfQyLTBME
+O0wTCHVIi00Mg/kgcxy/AAAAgNPvjUwBBPfXIXywRP4JdSuLTQghOeskg8HgvwAA
+AIDT74tNDI1MAQT31yG8sMQAAAD+CXUGi00IIXkEi0wTCIt8EwSJeQSLTBMEi3wT
+CANd+Il5CIld9Iv7wf8ET4P/P3YDaj9fi038g+EBiU3sD4WgAAAAK1X8i038wfkE
+aj+JVfhJWjvKiU0MdgWJVQyLygNd/Iv7iV30wf8ETzv6dgKL+jvPdGuLTfiLUQQ7
+UQh1SItNDIP5IHMcugAAAIDT6o1MAQT30iFUsET+CXUri00IIRHrJIPB4LoAAACA
+0+qLTQyNTAEE99IhlLDEAAAA/gl1BotNCCFRBItN+ItRCItJBIlKBItN+ItRBItJ
+CIlKCItV+IN97AB1CTl9DA+EiQAAAItN8I0M+YtJBIlKBItN8I0M+YlKCIlRBItK
+BIlRCItKBDtKCHVjikwHBIP/IIhND/7BiEwHBHMlgH0PAHUOuwAAAICLz9Pri00I
+CRm7AAAAgIvP0+uNRLBECRjrKYB9DwB1EI1P4LsAAACA0+uLTQgJWQSNT+C/AAAA
+gNPvjYSwxAAAAAk4i130i0XwiRqJXBP8/wgPhfoAAAChUPlAAIXAD4TfAAAAiw1I
++UAAiz14wEAAweEPA0gMuwCAAABoAEAAAFNR/9eLDUj5QAChUPlAALoAAACA0+oJ
+UAihUPlAAIsNSPlAAItAEIOkiMQAAAAAoVD5QACLQBD+SEOhUPlAAItIEIB5QwB1
+CYNgBP6hUPlAAIN4CP91bFNqAP9wDP/XoVD5QAD/cBBqAP81XPlAAP8VIMBAAKFU
++UAAixVY+UAAjQSAweACi8ihUPlAACvIjUwR7FGNSBRRUOiJ7f//i0UIg8QM/w1U
++UAAOwVQ+UAAdgOD6BSLDVj5QACJDUz5QADrA4tFCKNQ+UAAiTVI+UAAX15bycNV
+i+yD7BShVPlAAIsVWPlAAFNWjQSAV408gotFCIl9/I1IF4Ph8IlN8MH5BEmD+SB9
+DoPO/9Pug034/4l19OsQg8Hgg8j/M/bT6Il19IlF+KFM+UAAi9g734ldCHMZi0sE
+izsjTfgj/gvPdQuDwxQ7XfyJXQhy5ztd/HV5i9o72IldCHMVi0sEizsjTfgj/gvP
+dQWDwxTr5jvYdVk7XfxzEYN7CAB1CIPDFIldCOvtO138dSaL2jvYiV0Icw2DewgA
+dQWDwxTr7jvYdQ7oOAIAAIvYhduJXQh0FFPo2gIAAFmLSxCJAYtDEIM4/3UHM8Dp
+DwIAAIkdTPlAAItDEIsQg/r/iVX8dBSLjJDEAAAAi3yQRCNN+CP+C891N4uQxAAA
+AItwRCNV+CN19INl/ACNSEQL1ot19HUXi5GEAAAA/0X8I1X4g8EEi/4jOQvXdOmL
+VfyLyjP/ackEAgAAjYwBRAEAAIlN9ItMkEQjznUNi4yQxAAAAGogI034X4XJfAXR
+4Ufr94tN9ItU+QSLCitN8IvxiU34wf4EToP+P34Daj9eO/cPhA0BAACLSgQ7Sgh1
+YYP/IH0ruwAAAICLz9Pri038jXw4BPfTiV3sI1yIRIlciET+D3U4i10Ii03sIQvr
+MY1P4LsAAACA0+uLTfyNfDgEjYyIxAAAAPfTIRn+D4ld7HULi10Ii03sIUsE6wOL
+XQiLSgiLegSDffgAiXkEi0oEi3oIiXkID4SUAAAAi030i3zxBI0M8Yl6BIlKCIlR
+BItKBIlRCItKBDtKCHVkikwGBIP+IIhNC30p/sGAfQsAiEwGBHULvwAAAICLztPv
+CTu/AAAAgIvO0++LTfwJfIhE6y/+wYB9CwCITAYEdQ2NTuC/AAAAgNPvCXsEi038
+jbyIxAAAAI1O4L4AAACA0+4JN4tN+IXJdAuJColMEfzrA4tN+It18APRjU4BiQqJ
+TDL8i3X0iw6FyY15AYk+dRo7HVD5QAB1EotN/DsNSPlAAHUHgyVQ+UAAAItN/IkI
+jUIEX15bycOhVPlAAIsNRPlAAFZXM/87wXUwjUSJUMHgAlD/NVj5QABX/zVc+UAA
+/xUYwEAAO8d0YYMFRPlAABCjWPlAAKFU+UAAiw1Y+UAAaMRBAABqCI0EgP81XPlA
+AI00gf8VHMBAADvHiUYQdCpqBGgAIAAAaAAAEABX/xV8wEAAO8eJRgx1FP92EFf/
+NVz5QAD/FSDAQAAzwOsXg04I/4k+iX4E/wVU+UAAi0YQgwj/i8ZfXsNVi+xRi00I
+U1ZXi3EQi0EIM9uFwHwF0eBD6/eLw2o/acAEAgAAWo2EMEQBAACJRfyJQAiJQASD
+wAhKdfSL+2oEwecPA3kMaAAQAABoAIAAAFf/FXzAQACFwHUIg8j/6ZMAAACNlwBw
+AAA7+nc8jUcQg0j4/4OI7A8AAP+NiPwPAADHQPzwDwAAiQiNiPzv//+JSATHgOgP
+AADwDwAABQAQAACNSPA7ynbHi0X8jU8MBfgBAABqAV+JSASJQQiNSgyJSAiJQQSD
+ZJ5EAIm8nsQAAACKRkOKyP7BhMCLRQiITkN1Awl4BLoAAACAi8vT6vfSIVAIi8Nf
+XlvJw1WL7IPsDItNCItFEFNWV4t9DIvXjXAXK1EMi0EQg+bwweoPi8ppyQQCAACN
+jAFEAQAAiU30i0/8STvxiU0Qi1w5/I18OfyJXfwPjl8BAAD2wwEPhU8BAAAD2Tvz
+D49FAQAAi038wfkESYP5P4lN+HYGaj9ZiU34i18EO18IdUiD+SBzH7sAAACA0+uL
+TfiNTAEE99MhXJBE/gl1K4tNCCEZ6ySDweC7AAAAgNPri034jUwBBPfTIZyQxAAA
+AP4JdQaLTQghWQSLTwiLXwSJWQSLTwSLfwiJeQiLTRArzgFN/IN9/AAPjqoAAACL
+ffyLTQzB/wRPjUwx/IP/P3YDaj9fi130jRz7iV0Qi1sEiVkEi10QiVkIiUsEi1kE
+iUsIi1kEO1kIdVyKTAcEg/8giE0T/sGITAcEcyGAfRMAdQ67AAAAgIvP0+uLTQgJ
+GY1EkES6AAAAgIvP6yWAfRMAdRCNT+C7AAAAgNPri00ICVkEjYSQxAAAAI1P4LoA
+AACA0+oJEItVDItN/I1EMvyJCIlMAfzrA4tVDI1GAYlC/IlEMvjpRwEAADPA6UMB
+AAAPjToBAACLXQwpdRCNTgGJS/yNXDP8i3UQiV0Mwf4ETolL/IP+P3YDaj9e9kX8
+AQ+FhQAAAIt1/MH+BE6D/j92A2o/XotPBDtPCHVHg/4gcx67AAAAgIvO0+uNdAYE
+99MhXJBE/g51KItNCCEZ6yGNTuC7AAAAgNPrjUwGBPfTIZyQxAAAAP4JdQaLTQgh
+WQSLXQyLTwiLdwSJcQSLTwSLdwiJcQiLdRADdfyJdRDB/gROg/4/dgNqP16LTfSL
+fPEEjQzxiXsEiUsIiVkEi0sEiVkIi0sEO0sIdVyKTAYEg/4giE0P/sGITAYEcyGA
+fQ8AdQ6/AAAAgIvO0++LTQgJOY1EkES6AAAAgIvO6yWAfQ8AdRCNTuC/AAAAgNPv
+i00ICXkEjYSQxAAAAI1O4LoAAACA0+oJEItFEIkDiUQY/GoBWF9eW8nDVYvsVot1
+GFe/IAWTGTk+dAXomur//4tFCPZABGZ0H4N+BAB0b4N9HAB1aWr/Vv91FP91DOgO
+AwAAg8QQ61aDfgwAdFCBOGNzbeB1LDl4FHYni0gci0kIhcl0HQ+2VSRS/3Ug/3Uc
+Vv91FP91EP91DFD/0YPEIOsf/3Ug/3Uc/3UkVv91FP91EP91DFDoCgAAAIPEIGoB
+WF9eXcNVi+yD7BiLRQyAZewAi0AIg/j/iUXwfAiLTRg7QQR8Bejw6f//U1aLdQi7
+Y3Nt4Fe/IAWTGTkeD4U/AQAAg34QA3VWOX4UdVGDfhwAdUuLNcDzQACF9g+EGwEA
+AKHE80AAagFWiUUQxkXsAegRKQAAWYXAWXUF6Jrp//85Hg+F+QAAAIN+EAN1EDl+
+FHULg34cAHUF6Hzp//85Hg+F2wAAAIN+EAMPhdEAAAA5fhQPhcgAAACLffCNRehQ
+jUX8UFf/dSD/dRjoJ9P//4PEFIvYi0X8O0XoD4OLAAAAOTt/fDt7BH93i0MQiUUI
+i0MMhcCJRfR+ZItGHItADI14BIsAhcCJRfh+H/92HP83/3UI6DsBAACDxAyFwHUa
+/034g8cEOUX4f+H/TfSDRQgQg330AH/C6yT/dez/dST/dSBT/zf/dQj/dRj/dRT/
+dRD/dQxW6PQBAACDxCyLffD/RfyDwxTpaf///4B9HAB0CmoBVuhKBQAAWVlfXlvJ
+w4B9HAB1IP91JP91IP918P91GP91FP91EP91DFboCgAAAIPEIOvV6Rjo//9Vi+xR
+UYM9sPNAAABWV3Qh/3Uk/3Ug/3UY/3UU/3UQ/3UM/3UI6PjQ//+DxByFwHVzi30c
+jUX4UI1F/FBX/3Ug/3UY6APS//+DxBSL8ItF/DtF+HNPOz58Qzt+BH8+i0YMi04Q
+weAEA8GLSPSFyXQGgHkIAHUmagGDwPD/dST/dSBWagBQ/3UY/3UU/3UQ/3UM/3UI
+6AoBAACDxCz/RfyDxhTrqV9eycNWV4t8JAyLRwSFwHRKgHgIAI1QCHRBi3QkEItO
+BDvBdBCDwQhRUugxIAAAWYXAWXUi9gYCdAX2Bwh0GItEJBSLAKgBdAX2BwF0CagC
+dAn2BwJ1BDPA6wNqAVhfXsNVi+xq/2hgwkAAaFxgQABkoQAAAABQZIklAAAAAIPs
+DFNWV4ll6ItdCItzCIl15It9EDt1FHRVg/7/fgU7dwR8Begj5///g2X8AItHCItE
+8ASFwHQMaAMBAABTUOg+BAAAg038/+sa/3Xs6MzJ//9Zw4tl6INN/P+LfRCLXQiL
+deSLRwiLNPCJdeTrpolzCItN8GSJDQAAAABfXlvJw1WL7IN9IABTi10cVleLfQx0
+EP91IFNX/3UI6JIBAACDxBCDfSwA/3UIdQNX6wP/dSzoS87//4t1JP82/3UY/3UU
+V+gb////i0YEaAABAAD/dShAiUcI/3MM/3UY/3UQV/91COgTAAAAg8QshcB0B1dQ
+6MnN//9fXltdw1WL7Gr/aHDCQABoXGBAAGShAAAAAFBkiSUAAAAAg+wcU1ZXiWXo
+i0UYiUXUM9uJXdyLdQyLTvyJTdiLDcDzQACJTeSLDcTzQACJTeCLfQiJPcDzQACL
+TRCJDcTzQACJXfzHRfwBAAAA/3Ug/3UcUP91FFboE87//4PEFIlF1Ild/INN/P/o
+PAAAAItF1ItN8GSJDQAAAABfXlvJw/917OhoAAAAWcOLZeiDZdQAav+NRfBQ6DTQ
+//9ZWTPA688z24t1DIt9CItF2IlG/ItF5KPA80AAi0Xgo8TzQACBP2NzbeB1J4N/
+EAN1IYF/FCAFkxl1GDld3HUTOV3UdA7oUtD//1BX6PEBAABZWcOLRCQEiwCBOGNz
+beB1GYN4EAN1E4F4FCAFkxl1CoN4HAB1BGoBWMMzwMNVi+xq/2iIwkAAaFxgQABk
+oQAAAABQZIklAAAAAIPsDFNWV4ll6ItNEItBBIXAD4R1AQAAgHgIAA+EawEAAItB
+CIXAD4RgAQAAi1UMjXwQDINl/AD2AQh0RIt1CGoB/3YY6CAkAABZWYXAD4QwAQAA
+agFX6CokAABZWYXAD4QeAQAAi0YYiQeLTRSDwQhRUOiXAQAAWVmJB+kIAQAAi3UU
+9gYBdFKLXQhqAf9zGOjUIwAAWVmFwA+E5AAAAGoBV+jeIwAAWVmFwA+E0gAAAP92
+FP9zGFfoNt///4PEDIN+FAQPhb4AAACLB4XAD4S0AAAAg8YIVuuXg34YAItdCGoB
+/3MYdTrofCMAAFlZhcAPhIwAAABqAVfohiMAAFlZhcB0fv92FIPGCFb/cxjo+gAA
+AFlZUFfo1t7//4PEDOtm6EIjAABZWYXAdFZqAVfoUCMAAFlZhcB0SP92GOheIwAA
+WYXAdDv2BgR0HGoBjUYIUP9zGOizAAAAWVlQ/3YYV+hFy///6x+NRghQ/3MY6JkA
+AABZWVD/dhhX6CTL///rBeh14///g038/4tN8GSJDQAAAABfXlvJw2oBWMOLZejp
+AOP//1WL7Gr/aJjCQABoXGBAAGShAAAAAFBkiSUAAAAAUVFTVleJZeiLRQiFwHQb
+i0gci0kEhcl0EYNl/ABR/3AY6LvK//+DTfz/i03wZIkNAAAAAF9eW8nDM8A4RQwP
+lcDDi2Xo6Zni//+LTCQIVot0JAiLAYtRBAPGhdJ8DYs0MotJCIsMDgPKA8Few8zM
+VYvsg+wEU1GLRQyDwAyJRfyLRQhV/3UQi00Qi2386M7N//9WV//QX16L3V2LTRBV
+i+uB+QABAAB1BbkCAAAAUeiszf//XVlbycIMAFWL7IHsSAIAAFNWV4t9DDP2ih9H
+hNuJdfSJdeyJfQwPhPQGAACLTfAz0usIi03wi3XQM9I5VewPjNwGAACA+yB8E4D7
+eH8OD77DioCEwkAAg+AP6wIzwA++hMakwkAAwfgEg/gHiUXQD4eaBgAA/ySFLYZA
+AINN8P+JVcyJVdiJVeCJVeSJVfyJVdzpeAYAAA++w4PoIHQ7g+gDdC2D6Ah0H0hI
+dBKD6AMPhVkGAACDTfwI6VAGAACDTfwE6UcGAACDTfwB6T4GAACATfyA6TUGAACD
+TfwC6SwGAACA+yp1I41FEFDo9QYAAIXAWYlF4A+NEgYAAINN/AT32IlF4OkEBgAA
+i0XgD77LjQSAjURB0OvpiVXw6e0FAACA+yp1Ho1FEFDotgYAAIXAWYlF8A+N0wUA
+AINN8P/pygUAAI0EiQ++y41EQdCJRfDpuAUAAID7SXQugPtodCCA+2x0EoD7dw+F
+oAUAAIBN/QjplwUAAINN/BDpjgUAAINN/CDphQUAAIA/NnUUgH8BNHUOR0eATf2A
+iX0M6WwFAACJVdCLDdjtQACJVdwPtsP2REEBgHQZjUXsUP91CA++w1DofwUAAIof
+g8QMR4l9DI1F7FD/dQgPvsNQ6GYFAACDxAzpJQUAAA++w4P4Zw+PHAIAAIP4ZQ+N
+lgAAAIP4WA+P6wAAAA+EeAIAAIPoQw+EnwAAAEhIdHBISHRsg+gMD4XpAwAAZvdF
+/DAIdQSATf0Ii3Xwg/7/dQW+////f41FEFDonAUAAGb3RfwQCFmLyIlN+A+E/gEA
+AIXJdQmLDWTsQACJTfjHRdwBAAAAi8GL1k6F0g+E1AEAAGaDOAAPhMoBAABAQOvn
+x0XMAQAAAIDDIINN/ECNvbj9//87yol9+A+NzwAAAMdF8AYAAADp0QAAAGb3Rfww
+CHUEgE39CGb3RfwQCI1FEFB0O+gwBQAAUI2FuP3//1DoYR8AAIPEDIlF9IXAfTLH
+RdgBAAAA6ymD6Fp0MoPoCXTFSA+E6AEAAOkIAwAA6NgEAABZiIW4/f//x0X0AQAA
+AI2FuP3//4lF+OnnAgAAjUUQUOizBAAAhcBZdDOLSASFyXQs9kX9CHQXD78A0eiJ
+TfiJRfTHRdwBAAAA6bUCAACDZdwAiU34D78A6aMCAAChYOxAAIlF+FDpjgAAAHUM
+gPtndQfHRfABAAAAi0UQ/3XMg8AIiUUQ/3Xwi0j4iU24i0D8iUW8D77DUI2FuP3/
+/1CNRbhQ/xUQ8UAAi3X8g8QUgeaAAAAAdBSDffAAdQ6Nhbj9//9Q/xUc8UAAWYD7
+Z3UShfZ1Do2FuP3//1D/FRTxQABZgL24/f//LXUNgE39AY29uf3//4l9+FfoT9X/
+/1np/AEAAIPoaQ+E0QAAAIPoBQ+EngAAAEgPhIQAAABIdFGD6AMPhP39//9ISA+E
+sQAAAIPoAw+FyQEAAMdF1CcAAADrPCvB0fjptAEAAIXJdQmLDWDsQACJTfiLwYvW
+ToXSdAiAOAB0A0Dr8SvB6Y8BAADHRfAIAAAAx0XUBwAAAPZF/IDHRfQQAAAAdF2K
+RdTGReowBFHHReQCAAAAiEXr60j2RfyAx0X0CAAAAHQ7gE39Aus1jUUQUOgbAwAA
+9kX8IFl0CWaLTexmiQjrBYtN7IkIx0XYAQAAAOkjAgAAg038QMdF9AoAAAD2Rf2A
+dAyNRRBQ6O0CAABZ60H2RfwgdCH2RfxAjUUQUHQM6MgCAABZD7/Amesl6LwCAABZ
+D7fA6/L2RfxAjUUQUHQI6KcCAABZ6+DonwIAAFkz0vZF/EB0G4XSfxd8BIXAcxH3
+2IPSAIvw99qATf0Bi/rrBIvwi/r2Rf2AdQOD5wCDffAAfQnHRfABAAAA6wSDZfz3
+i8YLx3UEg2XkAI1Ft4lF+ItF8P9N8IXAfwaLxgvHdDuLRfSZUlBXVolFwIlVxOhd
+HQAA/3XEi9iDwzD/dcBXVujbHAAAg/s5i/CL+n4DA13Ui0X4/034iBjrtY1FtytF
++P9F+PZF/QKJRfR0GYtN+IA5MHUEhcB1Df9N+ECLTfjGATCJRfSDfdgAD4X0AAAA
+i1389sNAdCb2xwF0BsZF6i3rFPbDAXQGxkXqK+sJ9sMCdAvGReogx0XkAQAAAIt1
+4Ct15Ct19PbDDHUSjUXsUP91CFZqIOgXAQAAg8QQjUXsUI1F6v91CP915FDoMgEA
+AIPEEPbDCHQX9sMEdRKNRexQ/3UIVmow6OUAAACDxBCDfdwAdEGDffQAfjuLRfSL
+XfiNeP9miwNDUI1FyFBD6IIbAABZhcBZfjKNTexR/3UIUI1FyFDo2AAAAIPEEIvH
+T4XAddDrFY1F7FD/dQj/dfT/dfjougAAAIPEEPZF/AR0Eo1F7FD/dQhWaiDocQAA
+AIPEEIt9DIofR4TbiX0MD4UT+f//i0XsX15bycOrgEAAgX9AAJx/QADof0AAH4BA
+ACeAQABcgEAA74BAAFWL7ItNDP9JBHgOixGKRQiIAv8BD7bA6wtR/3UI6ETf//9Z
+WYP4/4tFEHUFgwj/XcP/AF3DVleLfCQQi8dPhcB+IYt0JBhW/3QkGP90JBTorP//
+/4PEDIM+/3QHi8dPhcB/419ew1OLXCQMi8NLVleFwH4mi3wkHIt0JBAPvgZXRv90
+JBxQ6HX///+DxAyDP/90B4vDS4XAf+JfXlvDi0QkBIMABIsAi0D8w4tEJASDAAiL
+CItB+ItR/MOLRCQEgwAEiwBmi0D8w4tMJAQz0okNWPNAALho7EAAOwh0IIPACEI9
+0O1AAHzxg/kTch2D+SR3GMcFVPNAAA0AAADDiwTVbOxAAKNU80AAw4H5vAAAAHIS
+gfnKAAAAxwVU80AACAAAAHYKxwVU80AAFgAAAMNWi3QkCP92EOhGGQAAhcBZdHeB
+/rDpQAB1BDPA6wuB/tDpQAB1Y2oBWP8FoPNAAGb3RgwMAXVSgzyFyPNAAABTV408
+hcjzQAC7ABAAAHUgU+gM2P//hcBZiQd1E41GFGoCiUYIiQZYiUYYiUYE6w2LP4le
+GIl+CIk+iV4EZoFODAIRagFYX1tewzPAXsODfCQEAFZ0Iot0JAz2Rg0QdClW6Nfa
+//+AZg3ug2YYAIMmAINmCABZXsOLRCQM9kANEHQHUOi12v//WV7Dg+xEU1VWV2gA
+AQAA6IbX//+L8FmF9nUIahvoss7//1mJNUD4QADHBUD5QAAgAAAAjYYAAQAAO/Bz
+GoBmBACDDv/GRgUKoUD4QACDxggFAAEAAOvijUQkEFD/FYzAQABmg3wkQgAPhMUA
+AACLRCREhcAPhLkAAACLMI1oBLgACAAAO/CNHC58AovwOTVA+UAAfVK/RPhAAGgA
+AQAA6PbW//+FwFl0OIMFQPlAACCJB42IAAEAADvBcxiAYAQAgwj/xkAFCosPg8AI
+gcEAAQAA6+SDxwQ5NUD5QAB8u+sGizVA+UAAM/+F9n5GiwOD+P90NopNAPbBAXQu
+9sEIdQtQ/xUAwEAAhcB0HovHi8/B+AWD4R+LBIVA+EAAjQTIiwuJCIpNAIhIBEdF
+g8MEO/58ujPboUD4QACDPNj/jTTYdU2F28ZGBIF1BWr2WOsKi8NI99gbwIPA9VD/
+FYjAQACL+IP//3QXV/8VAMBAAIXAdAwl/wAAAIk+g/gCdQaATgRA6w+D+AN1CoBO
+BAjrBIBOBIBDg/sDfJv/NUD5QAD/FYTAQABfXl1bg8REw1NWi3QkDFcPr3QkFIP+
+4Ivedw2F9nUDagFeg8YPg+bwM/+D/uB3KjsdTOxAAHcNU+gI5f//i/hZhf91K1Zq
+CP81XPlAAP8VHMBAAIv4hf91IoM9vPNAAAB0GVbo8uD//4XAWXQU67lTagBX6D4Y
+AACDxAyLx19eW8MzwOv4VldqAzP/Xjk1gAlBAH5EoWT5QACLBLCFwHQv9kAMg3QN
+UOjcuf//g/j/WXQBR4P+FHwXoWT5QAD/NLDokL3//6Fk+UAAWYMksABGOzWACUEA
+fLyLx19ew1WL7IPsDIM9DPZAAABTVld1Ev91DP91COj8GwAAWVnpRQEAAItFDItN
+CEhqAolF9I1B/4lF+Fu/AAIAAGYPtgEPttBB/0X49oIh90AABIlNCHRUgDkAdQQz
+9utoagGNRfz/Nfz1QABTUFP/dfhX/zUk+EAA6P0DAACDxCCD+AF1B2YPtnX86xc7
+ww+FyQAAAGYPtnX8Zg+2Rf3B5ggD8P9FCP9F+OsdD7fAiogh90AAgOEQgPkQdQpm
+D7awIPZAAOsCi/CLTQxmD7YBD7bQQf9F9PaCIfdAAASJTQx0UIA5AHUEM8DrYGoB
+jUX8/zX89UAAU1BT/3X0V/81JPhAAOhyAwAAg8Qgg/gBdQdmD7ZF/OsTO8N1QmYP
+tkX8Zg+2Tf3B4AgDwf9FDP9F9OsZD7fAiogh90AAgOEQgPkQdQhmD7aAIPZAAGY7
+xnUUZoX2dBaLTQjp4/7//7j///9/6wkbwCPDSOsCM8BfXlvJw1WL7DPAOQUM9kAA
+dQ//dQz/dQjos8f//1lZXcOLVQhTVooaD7bLD7bx9oYh90AABHQeiloBQoTbdBIP
+tvPB4QgLzjlNDHUQjUL/6wuFwOsDOU0MdQKLwkKE23XFXltdw1WL7IPsJFOLXQiB
+62wHAACD+0YPjKMAAACB+4oAAAAPj5cAAABWV4t9DIs0vRTzQAADdRD2wwN1BoP/
+An4BRuiTGgAAi8ONS/9pwG0BAADB+QKL1ol1+APRiV3wA8KLVRyNDECLRRSJReSN
+DMhryTwDTRhryTwDDTDyQABPg30gAYl97F9ejYwRgIFVfIlNCHQgg30g/3Uggz00
+8kAAAHQXjUXcUOigHAAAWYtNCIXAdAYDDTjyQACLwesDg8j/W8nDVYvsU4tdDIXb
+Vw+EggAAAIA7AHR9i30Ihf91JGgEAQAA6GHS//+L+FmF/3UMxwVU80AADAAAAOtR
+x0UQBAEAAI1FDFBX/3UQU/8VkMBAADtFEHIZg30IAHUHV+iIuv//WccFVPNAACIA
+AADrHYXAdR05RQh1B1fobLr//1n/FTTAQABQ6Db5//9ZM8DrEYvH6w3/dRD/dQjo
+1x4AAFlZX1tdw1WL7IHsBAEAAI2F/P7//1ZQaAQBAAAz9v8VlMBAAIXAdByAvf3+
+//86dRMPtoX8/v//UOi0HwAAi/BZg+5Ai8ZeycNVi+xRU4tdCIH7/wAAAHZRi8OI
+XQvB6AiIRQoPtsD2gCH3QAAEdE9qAY1F/P81/PVAAGoCUI1FCmoCUGgAAQAA/zUk
++EAA6LUAAACDxCCFwHQkD7ZF/A+2Tf3B4AgDwesXioMh90AAJBA8EHUJD7aDIPZA
+AOsCi8NbycNTM9s5HQz2QAB1Ef90JAz/dCQM6PAfAABZWVvDi0wkCFZXOBl0U4t0
+JBQ4HovGdC+KEA+2+vaHIfdAAAR0GDoRdQiKUAE6UQF0FThYAY1QAXQNi8LrBDoR
+dAVAOBh10TgYdRYPtgH2gCH3QAAEdAVBOBl0BUE4GXWxigFf9tgbwF4jwVvDVYvs
+av9oIMNAAGhcYEAAZKEAAAAAUGSJJQAAAACD7BxTVleJZegz/zk90PNAAHVGV1dq
+AVtTaBjDQAC+AAEAAFZX/xWkwEAAhcB0CIkd0PNAAOsiV1dTaFDzQABWV/8VoMBA
+AIXAD4QiAQAAxwXQ80AAAgAAADl9FH4Q/3UU/3UQ6KspAABZWYlFFKHQ80AAg/gC
+dR3/dRz/dRj/dRT/dRD/dQz/dQj/FaDAQADp3gAAAIP4AQ+F0wAAADl9IHUIoezz
+QACJRSBXV/91FP91EItFJPfYG8CD4AhAUP91IP8VnMBAAIvYiV3kO98PhJwAAACJ
+ffyNBBuDwAMk/Oixtv//iWXoi8SJRdyDTfz/6xNqAVjDi2XoM/+JfdyDTfz/i13k
+OX3cdGZT/3Xc/3UU/3UQagH/dSD/FZzAQACFwHRNV1dT/3Xc/3UM/3UI/xWkwEAA
+i/CJddg793Qy9kUNBHRAOX0cD4SyAAAAO3Ucfx7/dRz/dRhT/3Xc/3UM/3UI/xWk
+wEAAhcAPhY8AAAAzwI1lyItN8GSJDQAAAABfXlvJw8dF/AEAAACNBDaDwAMk/Oj9
+tf//iWXoi9yJXeCDTfz/6xJqAVjDi2XoM/8z24NN/P+Lddg733S0VlP/deT/ddz/
+dQz/dQj/FaTAQACFwHScOX0cV1d1BFdX6wb/dRz/dRhWU2ggAgAA/3Ug/xWYwEAA
+i/A79w+Ecf///4vG6Wz///9Vi+xRi0UIjUgBgfkAAQAAdwyLDdjtQAAPtwRB61KL
+yFaLNdjtQADB+QgPttH2RFYBgF50DoBl/gCITfyIRf1qAusJgGX9AIhF/GoBWI1N
+CmoBagBqAFFQjUX8UGoB6DYdAACDxByFwHUCycMPt0UKI0UMycPMzMzMzMzMzMzM
+V4t8JAjrao2kJAAAAACL/4tMJARX98EDAAAAdA+KAUGEwHQ798EDAAAAdfGLAbr/
+/v5+A9CD8P8zwoPBBKkAAQGBdOiLQfyEwHQjhOR0GqkAAP8AdA6pAAAA/3QC682N
+ef/rDY15/usIjXn96wONefyLTCQM98EDAAAAdBmKEUGE0nRkiBdH98EDAAAAde7r
+BYkXg8cEuv/+/n6LAQPQg/D/M8KLEYPBBKkAAQGBdOGE0nQ0hPZ0J/fCAAD/AHQS
+98IAAAD/dALrx4kXi0QkCF/DZokXi0QkCMZHAgBfw2aJF4tEJAhfw4gXi0QkCF/D
+VYvsU/91COg1AQAAhcBZD4QgAQAAi1gIhdsPhBUBAACD+wV1DINgCABqAVjpDQEA
+AIP7AQ+E9gAAAIsN9PNAAIlNCItNDIkN9PNAAItIBIP5CA+FyAAAAIsNaPBAAIsV
+bPBAAAPRVjvKfRWNNEkr0Y00tfjvQACDJgCDxgxKdfeLAIs1dPBAAD2OAADAdQzH
+BXTwQACDAAAA63A9kAAAwHUMxwV08EAAgQAAAOtdPZEAAMB1DMcFdPBAAIQAAADr
+Sj2TAADAdQzHBXTwQACFAAAA6zc9jQAAwHUMxwV08EAAggAAAOskPY8AAMB1DMcF
+dPBAAIYAAADrET2SAADAdQrHBXTwQACKAAAA/zV08EAAagj/01mJNXTwQABZXusI
+g2AIAFH/01mLRQij9PNAAIPI/+sJ/3UM/xWowEAAW13Di1QkBIsNcPBAADkV8O9A
+AFa48O9AAHQVjTRJjTS18O9AAIPADDvGcwQ5EHX1jQxJXo0MjfDvQAA7wXMEORB0
+AjPAw1Mz2zkdiAlBAFZXdQXoVhIAAIs1pPNAADP/igY6w3QSPD10AUdW6OHD//9Z
+jXQGAevojQS9BAAAAFDoS8v//4vwWTvziTV880AAdQhqCehxwv//WYs9pPNAADgf
+dDlVV+inw///i+hZRYA/PXQiVegWy///O8NZiQZ1CGoJ6ELC//9ZV/826AH9//9Z
+g8YEWQP9OB91yV3/NaTzQADoSbP//1mJHaTzQACJHl9exwWECUEAAQAAAFvDVYvs
+UVFTM9s5HYgJQQBWV3UF6JgRAAC++PNAAGgEAQAAVlP/FazAQAChYPlAAIk1jPNA
+AIv+OBh0Aov4jUX4UI1F/FBTU1foTQAAAItF+ItN/I0EiFDodsr//4vwg8QYO/N1
+CGoI6KDB//9ZjUX4UI1F/FCLRfyNBIZQVlfoFwAAAItF/IPEFEiJNXTzQABfXqNw
+80AAW8nDVYvsi00Yi0UUU1aDIQCLdRBXi30MxwABAAAAi0UIhf90CIk3g8cEiX0M
+gDgidUSKUAFAgPoidCmE0nQlD7bS9oIh90AABHQM/wGF9nQGihCIFkZA/wGF9nTV
+ihCIFkbrzv8BhfZ0BIAmAEaAOCJ1RkDrQ/8BhfZ0BYoQiBZGihBAD7ba9oMh90AA
+BHQM/wGF9nQFihiIHkZAgPogdAmE0nQJgPoJdcyE0nUDSOsIhfZ0BIBm/wCDZRgA
+gDgAD4TgAAAAihCA+iB0BYD6CXUDQOvxgDgAD4TIAAAAhf90CIk3g8cEiX0Mi1UU
+/wLHRQgBAAAAM9uAOFx1BEBD6/eAOCJ1LPbDAXUlM/85fRh0DYB4ASKNUAF1BIvC
+6wOJfQiLfQwz0jlVGA+UwolVGNHri9NLhdJ0DkOF9nQExgZcRv8BS3XzihCE0nRK
+g30YAHUKgPogdD+A+gl0OoN9CAB0LoX2dBkPttr2gyH3QAAEdAaIFkZA/wGKEIgW
+RusPD7bS9oIh90AABHQDQP8B/wFA6Vj///+F9nQEgCYARv8B6Rf///+F/3QDgycA
+i0UUX15b/wBdw1FRofz0QABTVYstvMBAAFZXM9sz9jP/O8N1M//Vi/A783QMxwX8
+9EAAAQAAAOso/xW4wEAAi/g7+w+E6gAAAMcF/PRAAAIAAADpjwAAAIP4AQ+FgQAA
+ADvzdQz/1YvwO/MPhMIAAABmOR6LxnQOQEBmORh1+UBAZjkYdfIrxos9mMBAANH4
+U1NAU1NQVlNTiUQkNP/Xi+g763QyVejjx///O8NZiUQkEHQjU1NVUP90JCRWU1P/
+14XAdQ7/dCQQ6CGw//9ZiVwkEItcJBBW/xW0wEAAi8PrU4P4AnVMO/t1DP8VuMBA
+AIv4O/t0PDgfi8d0CkA4GHX7QDgYdfYrx0CL6FXofMf//4vwWTvzdQQz9usLVVdW
+6MvA//+DxAxX/xWwwEAAi8brAjPAX15dW1lZw6Gs80AAg/gBdA2FwHUqgz0U7EAA
+AXUhaPwAAADoGAAAAKEA9UAAWYXAdAL/0Gj/AAAA6AIAAABZw1WL7IHspAEAAItV
+CDPJuHjwQAA7EHQLg8AIQT0I8UAAfPFWi/HB5gM7lnjwQAAPhRwBAAChrPNAAIP4
+AQ+E6AAAAIXAdQ2DPRTsQAABD4TXAAAAgfr8AAAAD4TxAAAAjYVc/v//aAQBAABQ
+agD/FazAQACFwHUTjYVc/v//aBDGQABQ6JP4//9ZWY2FXP7//1dQjb1c/v//6P6+
+//9AWYP4PHYpjYVc/v//UOjrvv//i/iNhVz+//+D6DtqAwP4aAzGQABX6EEXAACD
+xBCNhWD///9o8MVAAFDoPfj//42FYP///1dQ6ED4//+NhWD///9o7MVAAFDoL/j/
+//+2fPBAAI2FYP///1DoHfj//2gQIAEAjYVg////aMTFQABQ6FoWAACDxCxf6yaN
+RQiNtnzwQABqAFD/Nuhevv//WVD/Nmr0/xWIwEAAUP8VaMBAAF7Jw8zMzMzMzMzM
+i1QkBItMJAj3wgMAAAB1PIsCOgF1LgrAdCY6YQF1JQrkdB3B6BA6QQJ1GQrAdBE6
+YQN1EIPBBIPCBArkddKL/zPAw5AbwNHgQMOL//fCAQAAAHQUigJCOgF16UEKwHTg
+98ICAAAAdKhmiwKDwgI6AXXSCsB0yjphAXXJCuR0wYPBAuuMVot0JAiLBoE4Y3Nt
+4HUUg3gQA3UOgXgUIAWTGXUF6W3G//+hBPVAAIXAdBRQ6FgGAACFwFl0CVb/FQT1
+QADrAjPAXsIEAGikmkAA/xXAwEAAowT1QADD/zUE9UAA/xXAwEAAw2oK6Lb9//9q
+Fui4FgAAWVlqA+hDsv//U1ZXg8v/M/8z9rlA+EAAiwGFwHQ3jZAAAQAAO8JzHPZA
+BAF0BYPACOvxgwj/KwHB+AMDxovYg/v/dVSDwQRHg8YggflA+UAAfMXrQ74AAQAA
+VuhoxP//hcBZdDODBUD5QAAgjQy9QPhAAI2QAAEAAIkBO8JzFIBgBACDCP/GQAUK
+ixGDwAgD1uvowecFi99fi8NeW8OLRCQEVjsFQPlAAFdzUovIi/DB+QWD5h+NPI1A
++EAAweYDiw+DPDH/dTaDPRTsQAABU4tcJBR1HoPoAHQQSHQISHUTU2r06whTavXr
+A1Nq9v8VxMBAAIsHiRwwM8Bb6xSDJVjzQAAAxwVU80AACQAAAIPI/19ew4tMJARW
+Ow1A+UAAV3NVi8GL8cH4BYPmH408hUD4QADB5gOLBwPG9kAEAXQ3gzj/dDKDPRTs
+QAABdR8zwCvIdBBJdAhJdRNQavTrCFBq9esDUGr2/xXEwEAAiweDDDD/M8DrFIMl
+WPNAAADHBVTzQAAJAAAAg8j/X17Di0QkBDsFQPlAAHMci8iD4B/B+QWLDI1A+EAA
+9kTBBAGNBMF0A4sAw4MlWPNAAADHBVTzQAAJAAAAg8j/w4tEJAQ7BUD5QABzPYvI
+i9DB+QWD4h+LDI1A+EAA9kTRBAF0JVDomf///1lQ/xXIwEAAhcB1CP8VNMBAAOsC
+M8CFwHQSo1jzQADHBVTzQAAJAAAAg8j/w1WL7IPsHItNDFMz21b2wYBXx0XkDAAA
+AIld6HQJiV3sxkX/EOsLgGX/AMdF7AEAAAC4AIAAAIXIdRH2xUB1CDkF8PVAAHQE
+gE3/gGoDi8FeI8Yrw3QtSHQhSHQVxwVU80AAFgAAAIkdWPNAAOklAgAAx0X0AAAA
+wOsQx0X0AAAAQOsHx0X0AAAAgItFEIP4EHQmg/ggdBiD+DB0CoP4QHW7iXXw6xXH
+RfACAAAA6wzHRfABAAAA6wOJXfC6AAcAALgABAAAI8q/AAEAADvIfzV0LjvLdCo7
+z3QdgfkAAgAAdDyB+QADAAAPhW7////HRfgCAAAA6zfHRfgEAAAA6y6JdfjrKYH5
+AAUAAHQagfkABgAAdAk7ynQO6T7////HRfgFAAAA6wfHRfgBAAAAi0UMvoAAAACF
+x3QTiw1c80AA99EjTRT2wYB1A2oBXqhAdAqBzgAAAASATfYB9sQQdAIL96ggdAiB
+zgAAAAjrCqgQdAaBzgAAABDoafz//4vYg8//O991E4MlWPNAAADHBVTzQAAYAAAA
+6z5qAFb/dfiNReRQ/3Xw/3X0/3UI/xXMwEAAi/A793QSVv8VAMBAAIXAdRtW/xVk
+wEAA/xU0wEAAUOgH6P//WYvH6dYAAACD+AJ1BoBN/0DrCYP4A3UEgE3/CFZT6IL8
+//9ZikX/WYvzi8sMAcH5BYPmH4hFC408jUD4QADB5gOLD4BlC0iIRDEEdXiogHR0
+9kUMAnRuagJq/1PoggAAAIPEDIP4/4lF8HUOgT1Y80AAgwAAAHRN6z+AZRMAjUUT
+agFQU+i1yf//g8QMhcB1FoB9Exp1EP918FPokRMAAFmD+P9ZdBJqAGoAU+gyAAAA
+g8QMg/j/dQxT6BLC//9Zg8j/6xmAfQsAdRH2RQwIdAuLB4BMMAQgjUQwBIvDX15b
+ycOLRCQEUzsFQPlAAFZXc3OLyIvwwfkFg+YfjTyNQPhAAMHmA4sP9kQxBAF0VlDo
+gfz//4P4/1l1DMcFVPNAAAkAAADrT/90JBhqAP90JBxQ/xXQwEAAi9iD+/91CP8V
+NMBAAOsCM8CFwHQJUOi05v//WesgiweAZDAE/Y1EMASLw+sUgyVY80AAAMcFVPNA
+AAkAAACDyP9fXlvD/wWg80AAaAAQAADoQr///1mLTCQEhcCJQQh0DYNJDAjHQRgA
+EAAA6xGDSQwEjUEUiUEIx0EYAgAAAItBCINhBACJAcOLRCQEOwVA+UAAcgMzwMOL
+yIPgH8H5BYsMjUD4QACKRMEEg+BAw1ZqAV7/dCQM/3QkDP8V1MBAAIXAdAIz9ovG
+XsNWagFe/3QkDP90JAz/FYDAQACFwHQCM/aLxl7DVmoBXv90JAj/FdjAQACFwHQC
+M/aLxl7DVYvsi0UIhcB1Al3Dgz3c80AAAHUSZotNDGaB+f8AdzlqAYgIWF3DjU0I
+g2UIAFFqAP815O9AAFCNRQxqAVBoIAIAAP817PNAAP8VmMBAAIXAdAaDfQgAdA3H
+BVTzQAAqAAAAg8j/XcPMzFNWi0QkGAvAdRiLTCQUi0QkEDPS9/GL2ItEJAz38YvT
+60GLyItcJBSLVCQQi0QkDNHp0dvR6tHYC8l19Pfzi/D3ZCQYi8iLRCQU9+YD0XIO
+O1QkEHcIcgc7RCQMdgFOM9KLxl5bwhAAzMzMzMzMzMxTi0QkFAvAdRiLTCQQi0Qk
+DDPS9/GLRCQI9/GLwjPS61CLyItcJBCLVCQMi0QkCNHp0dvR6tHYC8l19Pfzi8j3
+ZCQUkfdkJBAD0XIOO1QkDHcIcg47RCQIdggrRCQQG1QkFCtEJAgbVCQM99r32IPa
+AFvCEADMzMzMzMzMzMzMzItUJAyLTCQEhdJ0RzPAikQkCFeL+YP6BHIt99mD4QN0
+CCvRiAdHSXX6i8jB4AgDwYvIweAQA8GLyoPiA8HpAnQG86uF0nQGiAdHSnX6i0Qk
+CF/Di0QkBMNVi+yD7BhTVlf/dQjoiAEAAIvwWTs1/PVAAIl1CA+EagEAADPbO/MP
+hFYBAAAz0rg48UAAOTB0coPAMEI9KPJAAHzxjUXoUFb/FdzAQACD+AEPhSQBAABq
+QDPAWb8g90AAg33oAYk1/PVAAPOrqokdJPhAAA+G7wAAAIB97gAPhLsAAACNTe+K
+EYTSD4SuAAAAD7ZB/w+20jvCD4eTAAAAgIgh90AABEDr7mpAM8BZvyD3QADzq400
+Uold/MHmBKqNnkjxQACAOwCLy3QsilEBhNJ0JQ+2AQ+2+jvHdxSLVfyKkjDxQAAI
+kCH3QABAO8d29UFBgDkAddT/RfyDwwiDffwEcsGLRQjHBQz2QAABAAAAUKP89UAA
+6MYAAACNtjzxQAC/APZAAKWlWaMk+EAApetVQUGAef8AD4VI////agFYgIgh90AA
+CEA9/wAAAHLxVuiMAAAAWaMk+EAAxwUM9kAAAQAAAOsGiR0M9kAAM8C/APZAAKur
+q+sNOR0M9UAAdA7ojgAAAOiyAAAAM8DrA4PI/19eW8nDi0QkBIMlDPVAAACD+P51
+EMcFDPVAAAEAAAD/JeTAQACD+P11EMcFDPVAAAEAAAD/JeDAQACD+Px1D6Hs80AA
+xwUM9UAAAQAAAMOLRCQELaQDAAB0IoPoBHQXg+gNdAxIdAMzwMO4BAQAAMO4EgQA
+AMO4BAgAAMO4EQQAAMNXakBZM8C/IPdAAPOrqjPAvwD2QACj/PVAAKMM9kAAoyT4
+QACrq6tfw1WL7IHsFAUAAI1F7FZQ/zX89UAA/xXcwEAAg/gBD4UWAQAAM8C+AAEA
+AIiEBez+//9AO8Zy9IpF8saF7P7//yCEwHQ3U1eNVfMPtgoPtsA7wXcdK8iNvAXs
+/v//QbggICAgi9nB6QLzq4vLg+ED86pCQopC/4TAddBfW2oAjYXs+v///zUk+EAA
+/zX89UAAUI2F7P7//1ZQagHoJAkAAGoAjYXs/f///zX89UAAVlCNhez+//9WUFb/
+NST4QADoQ+n//2oAjYXs/P///zX89UAAVlCNhez+//9WUGgAAgAA/zUk+EAA6Bvp
+//+DxFwzwI2N7Pr//2aLEfbCAXQWgIgh90AAEIqUBez9//+IkCD2QADrHPbCAnQQ
+gIgh90AAIIqUBez8///r44CgIPZAAABAQUE7xnK/60kzwL4AAQAAg/hBchmD+Fp3
+FICIIfdAABCKyIDBIIiIIPZAAOsfg/hhchOD+Hp3DoCIIfdAACCKyIDpIOvggKAg
+9kAAAEA7xnK+XsnDgz2ICUEAAHUSav3oLPz//1nHBYgJQQABAAAAw8zMzMzMzMzM
+VYvsV1ZTi3UMi30IjQXU80AAg3gIAHU7sP+L/wrAdC6KBkaKJ0c4xHTyLEE8GhrJ
+gOEgAsEEQYbgLEE8GhrJgOEgAsEEQTjgdNIawBz/D77A6zS4/wAAADPbi/8KwHQn
+igZGih9HONh08lBT6Nir//+L2IPEBOjOq///g8QEOMN02hvAg9j/W15fycODPcj1
+QAAAdQvoBwAAAP8FyPVAAMNRU1VWVzPtg8v/aGjGQAAz/4ktEPVAAIkd2PJAAIkd
+yPJAAOhxDQAAi/BZO/UPhfYAAABoGPVAAP8V6MBAADvDD4QSAgAAoRj1QACLDWz1
+QABrwDxmOS1e9UAAagFaozDyQACJFRD1QAB0DIvxa/Y8A8ajMPJAAGY5LbL1QAB0
+G6HA9UAAO8V0EivBiRU08kAAa8A8ozjyQADrDIktNPJAAIktOPJAAI1EJBCLNZjA
+QABQVWo/vyACAAD/NbzyQABTaBz1QABX/zXs80AA/9aFwHQROWwkEHULobzyQACA
+YD8A6wihvPJAAIAgAI1EJBBQVWo//zXA8kAAU2hw9UAAV/817PNAAP/WhcAPhD8B
+AAA5bCQQD4U1AQAAocDyQACAYD8A6S8BAACAPgAPhCYBAAChxPVAADvFdBFQVuhd
+8f//WYXAWQ+EDAEAAP81xPVAAOhnn///VuiCr///QFDo+bb//4PEDDvFo8T1QAAP
+hOQAAABWUOjk6P//agNW/zW88kAA6MYHAAChvPJAAIPGA4PEFIBgAwCAPi11BGoB
+Rl9W6GcLAABZszCLyGnJEA4AAIkNMPJAAIoGPCt0CDrDfAc8OX8DRuvvgD46dU5G
+Vug5CwAAa8A8WYsNMPJAAAPIiQ0w8kAAigY6w3wHPDl/A0br84A+OnUjRlboDgsA
+AFmLDTDyQAADyIkNMPJAAIoGOsN8Bzw5fwNG6/M7/XQI99mJDTDyQAAPvgY7xaM0
+8kAAdBxqA1b/NcDyQADoDQcAAKHA8kAAg8QMgGADAOsIocDyQACAIABfXl1bWcNT
+Vlcz/zk9NPJAAHUHM8DpTAEAAIt0JBBqAVuLRhQ7BcjyQAB1DDsF2PJAAA+EAgEA
+ADk9EPVAAA+EzAAAAA+3Db71QABRZjk9sPVAAA+3Dbz1QABRD7cNuvVAAFEPtw24
+9UAAUXUdD7cNtPVAAFdRD7cNtvVAAFEPtw2y9UAAUVBT6xQPtw229UAAUVcPtw2y
+9UAAV1FQV1PoDgEAAA+3BWr1QACDxCxmOT1c9UAAUA+3BWj1QABQD7cFZvVAAFAP
+twVk9UAAUHUoD7cFYPVAAFdQD7cFYvVAAFAPtwVe9UAAUP92FFNX6L8AAACDxCzr
+Qg+3BWL1QABQVw+3BV71QABXUP92FFfr3VdXV2oCV1dTagRQU1PokAAAAFdXV2oC
+V1dqBWoK/3YUU1foewAAAIPEWIsVzPJAAKHc8kAAi04cO9B9HjvKD4y//v//O8gP
+j7f+//87yn4eO8h9GovDX15bwzvIfPY7yn/yO8h+CDvKD4yV/v//i0YIa8A8A0YE
+a8A8AwZpwOgDAAA7ynUPM8k7BdDyQAAPncGLwevBM8k7BeDyQAAPnMHr71WL7IN9
+DAFTi10QVg+FiQAAAItFFIldEINlEAOL8HULweYCi4bg8kAA6wnB5gKLhhTzQACL
+041IAWnSbQEAAI1D/1fB+AKL+WoHA/iNhDolnP//X5n3/4tFGF87VRx9DmvAByvC
+A0UcjUwB+esKa8AHK8IDRRwDyIN9GAV1OIN9EAB1CIu25PJAAOsGi7YY80AAO85+
+IIPpB+sbi0UU9sMDdQmLDIXg8kAA6weLDIUU80AAA00gg30IAXUri0UkiQ3M8kAA
+a8A8A0UoiR3I8kAAa8A8A0UsacDoAwAAA0Uwo9DyQADrVYtFJIkN3PJAAGvAPANF
+KGvAPAMFOPJAAANFLGnA6AMAAANFMKPg8kAAeQ0FAFwmBUmj4PJAAOsRugBcJgU7
+wnwOK8JBo+DyQACJDdzyQACJHdjyQABeW13D/3QkCP90JAhqAOgEAAAAg8QMw1WL
+7IHsCAEAAFOLXQiF23RSU+i6AAAAhcBZdRnHBVjzQAAPAAAAxwVU80AADQAAADPA
+W8nDjUX8gGULAFCNhfj+//9QjUUIgMNAaAQBAABQiF0IxkUJOsZFCi7/FZDAQADr
+Eo2F+P7//1BoBAEAAP8VlMBAAIXAdLdAPQQBAAB3r4tNDIXJdSE7RRB/A4tFEFDo
+arL//1mLyIXJdSDHBVTzQAAMAAAA64c7RRB+D8cFVPNAACIAAADpc////42F+P7/
+/1BR6Djk//9ZWelh////VYvsi0UIhcB0JIBlCwAEQIhFCI1FCFDGRQk6xkUKXP8V
+SMBAAIXAdAqD+AF0BWoBWF3DM8Bdw1WL7FGDPdzzQAAAU3Udi0UIg/hhD4yvAAAA
+g/h6D4+mAAAAg+gg6Z4AAACLXQiB+wABAAB9KIM95O9AAAF+DGoCU+g04///WVnr
+C6HY7UAAigRYg+AChcB1BIvD62uLFdjtQACLw8H4CA+2yPZESgGAdA6AZQoAiEUI
+iF0JagLrCYBlCQCIXQhqAViNTfxqAWoAagNRUI1FCFBoAAIAAP813PNAAOit4P//
+g8QghcB0qYP4AXUGD7ZF/OsND7ZF/Q+2TfzB4AgLwVvJw8zMzMzMzMzMzMzMzMzM
+VYvsVjPAUFBQUFBQUFCLVQyNSQCKAgrAdAdCD6sEJOvzi3UIigYKwHQKRg+jBCRz
+841G/4PEIF7Jw1WL7Gr/aHDGQABoXGBAAGShAAAAAFBkiSUAAAAAg+wYU1ZXiWXo
+ocz1QAAz2zvDdT6NReRQagFeVmgYw0AAVv8V8MBAAIXAdASLxusdjUXkUFZoUPNA
+AFZT/xXswEAAhcAPhM4AAABqAlijzPVAAIP4AnUki0UcO8N1BaHc80AA/3UU/3UQ
+/3UM/3UIUP8V7MBAAOmfAAAAg/gBD4WUAAAAOV0YdQih7PNAAIlFGFNT/3UQ/3UM
+i0Ug99gbwIPgCEBQ/3UY/xWcwEAAiUXgO8N0Y4ld/I08AIvHg8ADJPzoEpf//4ll
+6Iv0iXXcV1NW6LLy//+DxAzrC2oBWMOLZegz2zP2g038/zvzdCn/deBW/3UQ/3UM
+agH/dRj/FZzAQAA7w3QQ/3UUUFb/dQj/FfDAQADrAjPAjWXMi03wZIkNAAAAAF9e
+W8nDUzPbOR3Q9UAAVld1QmisxkAA/xUUwEAAi/g7+3RnizX0wEAAaKDGQABX/9aF
+wKPQ9UAAdFBokMZAAFf/1mh8xkAAV6PU9UAA/9aj2PVAAKHU9UAAhcB0Fv/Qi9iF
+23QOodj1QACFwHQFU//Qi9j/dCQY/3QkGP90JBhT/xXQ9UAAX15bwzPA6/jMzMzM
+i0wkDFeFyXR6VlOL2Yt0JBT3xgMAAACLfCQQdQfB6QJ1b+shigZGiAdHSXQlhMB0
+KffGAwAAAHXri9nB6QJ1UYPjA3QNigZGiAdHhMB0L0t184tEJBBbXl/D98cDAAAA
+dBKIB0dJD4SKAAAA98cDAAAAde6L2cHpAnVsiAdHS3X6W16LRCQIX8OJF4PHBEl0
+r7r//v5+iwYD0IPw/zPCixaDxgSpAAEBgXTehNJ0LIT2dB73wgAA/wB0DPfCAAAA
+/3XGiRfrGIHi//8AAIkX6w6B4v8AAACJF+sEM9KJF4PHBDPASXQKM8CJB4PHBEl1
++IPjA3WFi0QkEFteX8NVi+xWV4t9CIvHSEh0WUhIdEaD6AR0QYPoA3Q8g+gEdCqD
+6AZ0GEh0CIPI/+n4AAAAizXk9UAAuOT1QADrNIs14PVAALjg9UAA6yeLNej1QAC4
+6PVAAOsaV+jPAAAAi3AIg8AIWesLizXc9UAAuNz1QACD/gF1BzPA6asAAACF9nUH
+agPoC5v//1NqCFk7+XQKg/8LdAWD/wR1Josd9PNAAIMl9PNAAAA7+XVEixV08EAA
+xwV08EAAjAAAAIlVCOsDi10IO/l1KKFo8EAAiw1s8EAAA8g7wX0ejRRAK8iNFJX4
+70AAgyIAg8IMSXX36weDIAA7+XUO/zV08EAAagj/1llZ6w5X/9aD/wtZdAWD/wR1
+E4P/CIkd9PNAAHUIi0UIo3TwQAAzwFtfXl3Di1QkBIsNcPBAADkV9O9AAFa48O9A
+AHQWjTRJjTS18O9AAIPADDvGcwU5UAR19I0MSV6NDI3w70AAO8FzBTlQBHQCM8DD
+VYvsuAAQAADoo5P//1OLXQhWM/Y7HUD5QAAPgxUBAACLw4vLwfgFg+EfiwSFQPhA
+APZEyAQBD4T5AAAAagFWU+ht7P//g8QMg/j/iUUID4TrAAAAagJWU+hV7P//g8QM
+g/j/D4TWAAAAV4t9DCv4hf9+b2gAEAAAjYUA8P//VlDo2+7//2gAgAAAU+jHAQAA
+g8QUiUUMuAAQAAA7+H0Ci8dQjYUA8P//UFPo2bL//4PEDIP4/3QIK/iF/34Y69eD
+PVjzQAAFdQrHBVTzQAANAAAAg87//3UMU+h5AQAAWVnrQH0+agD/dQxT6MPr//9T
+6HDo//+DxBBQ/xUQwEAAi/D33hv2995Og/7/dRXHBVTzQAANAAAA/xU0wEAAo1jz
+QABqAP91CFPohev//4PEDIvGX+sNxwVU80AACQAAAIPI/15bycNqAuiLov//WcNT
+VVZXi3wkFIM95O9AAAF+Dw+2B2oIUOi23P//WVnrDw+2B4sN2O1AAIoEQYPgCIXA
+dANH69IPtjdHg/4ti+50BYP+K3UED7Y3RzPbgz3k70AAAX4MagRW6HXc//9ZWesL
+odjtQACKBHCD4ASFwHQNjQSbjVxG0A+2N0frz4P9LYvDdQL32F9eXVvDgz2ECUEA
+AFNWizV880AAV3RlhfZ1Gzk1hPNAAHRZ6EYBAACFwHVQizV880AAhfZ0RotcJBCF
+23Q+U+gHo///WYv4iwaFwHQvUOj4ov//O8dZdheLBoA8OD11D1dTUOjHAAAAg8QM
+hcB0BYPGBOvTiwaNRDgB6wIzwF9eW8OLRCQEVjsFQPlAAHNai8iD4B/B+QWLDI1A
++EAAjVTBBIpMwQT2wQF0PorBvgCAAAAlgAAAADl0JAx1BYDhf+sNgXwkDABAAAB1
+EYDJgPfYG8CICmYlAMADxl7DxwVU80AAFgAAAOsKxwVU80AACQAAAIPI/17DzMzM
+i0QkCItMJBALyItMJAx1CYtEJAT34cIQAFP34YvYi0QkCPdkJBQD2ItEJAj34QPT
+W8IQAFWL7IN9EAB1BDPAXcP/Nfz1QAD/dRD/dQz/dRD/dQhqAf81JPhAAOiBAAAA
+g8QchcB1B7j///9/XcODwP5dw1FTVVaLNYTzQABXM/+LBjvHdE6LHZjAQABXV1dX
+av9QV2oB/9OL6DvvdD5V6Cqp//87x1mJRCQQdC9XV1VQav//NldqAf/ThcB0Hlf/
+dCQU6MECAACLRgSDxgRZO8dZdbgzwF9eXVtZw4PI/+v1VYvsav9ouMZAAGhcYEAA
+ZKEAAAAAUGSJJQAAAACD7DBTVleJZegz2zkd9PVAAGoBX3VAV7gYw0AAUFdQU1P/
+FQjAQACFwHQIiT309UAA6yNXuFDzQABQV1BTU/8VDMBAAIXAD4QAAgAAxwX09UAA
+AgAAAIt1FDvzfhBW/3UQ6PoBAABZWYvwiXUUOV0cfhD/dRz/dRjo4wEAAFlZiUUc
+ofT1QACD+AJ1G/91HP91GFb/dRD/dQz/dQj/FQzAQADppwEAADvHD4WdAQAAOV0g
+dQih7PNAAIlFIDvzdAk5XRwPhZgAAAA7dRx1CGoCWOl4AQAAOX0cfgeLx+lsAQAA
+O/d/QY1FxFD/dSD/FdzAQACFwA+EUQEAADvzfiyDfcQCciKNRco4Xcp0GopQATrT
+dBOLTRCKCToIcgQ6ynatQEA4GHXmagPrpTldHH4xg33EAnKljUXKOF3KdJ2KUAE6
+03SWi00Yigk6CHIIOsoPhnj///9AQDgYdeLpev///1NTVv91EGoJ/3Ug/xWcwEAA
+iUXkO8MPhM8AAACJXfwDwIPAAyT86FaO//+JZeiLxIlF3INN/P/rFmoBWMOLZegz
+24ld3INN/P+LdRRqAV85XdwPhJMAAAD/deT/ddxW/3UQV/91IIs1nMBAAP/WhcB0
+eVNT/3Uc/3UYagn/dSD/1ovwiXXgO/N0YYl9/I0ENoPAAyT86OeN//+JZeiL/Il9
+2INN/P/rEmoBWMOLZegz2zP/g038/4t14Dv7dC1WV/91HP91GGoB/3Ug/xWcwEAA
+hcB0FlZX/3Xk/3Xc/3UM/3UI/xUIwEAA6wIzwI1ltItN8GSJDQAAAABfXlvJw4tU
+JAiLRCQEhdJWjUr/dA2AOAB0CECL8UmF9nXzgDgAXnUFK0QkBMOLwsNVi+xRUVNW
+VzP/OX0IdFVqPf91COgtAgAAi/BZO/dZiXX4dEA5dQh0O6F880AAM9s4XgEPlMM7
+BYDzQAB1DFDomwEAAFmjfPNAADvHdVQ5fQx0GTk9hPNAAHQR6Ir8//+FwHQ+g8j/
+X15bycM73w+FDAEAAGoE6Mql//87x1mjfPNAAHTfiTg5PYTzQAB1E2oE6K+l//87
+x1mjhPNAAHTEiTgrdQiLPXzzQACJffxW/3UI6NAAAACL8FmF9ll8Q4M/AHQ+hdt0
+Mv80t408t+jTjf//WYM/AHQLi0cERokHg8cE6/CLxsHgAlD/dfzolIz//1mFwFl0
+POs1i0UIiQS36zKF23V6hfZ9AvfejQS1CAAAAFBX6GyM//9ZhcBZD4RA////i00I
+iQywg2SwBACjfPNAAIN9DAB0Rv91COiFnf//QEBQ6Puk//+L8FmF9ll0Lv91CFbo
+7Nb//4vGWStFCFkDRfiAIABA99sb2/fTI9hTVv8VBMBAAFboJ43//1kzwOng/v//
+Vos1fPNAAFeLBoXAdC2LfCQQV1D/dCQU6Af7//+DxAyFwHUNiwaKBDg8PXQehMB0
+GotGBIPGBIXAddeLxisFfPNAAMH4AvfYX17Di8YrBXzzQADB+ALr8FeLfCQIM8mF
+/3UEM8Bfw4M/AI1HBHQKixBBg8AEhdJ19lNVjQSNBAAAAFZQ6DWk//+L8FmF9ovu
+dQhqCehfm///WYsHi9+FwHQTUIPDBOiHAAAAiQaLA1mDxgTr6YMmAIvFXl1bX8NV
+i+yDPQz2QAAAdQ//dQz/dQjomgAAAFlZXcOLTQhmD7YBZoXAdDoPttD2giH3QAAE
+dBqKUQFBhNJ0HQ+3wA+20sHgCAvCOUUMdBHrCA+30DlVDHQMQevGM8Bdw41B/13D
+D7fQi0UMK8L32BvA99AjwV3DVot0JAiF9nQeVuj/m///QFDodqP//1mFwFl0C1ZQ
+6GvV//9ZWV7DM8Bew8zMzI1C/1vDjaQkAAAAAI1kJAAzwIpEJAhTi9jB4AiLVCQI
+98IDAAAAdBOKCkI42XTRhMl0UffCAwAAAHXtC9hXi8PB4xBWC9iLCr///v5+i8GL
+9zPLA/AD+YPx/4Pw/zPPM8aDwgSB4QABAYF1HCUAAQGBdNMlAAEBAXUIgeYAAACA
+dcReX1szwMOLQvw42HQ2hMB07zjcdCeE5HTnwegQONh0FYTAdNw43HQGhOR01OuW
+Xl+NQv9bw41C/l5fW8ONQv1eX1vDjUL8Xl9bw/8lJMBAAMzMzMzMzMzMzMzMzMzM
+i0XsUOhrgP//WcO4UMhAAOkajP//zMzMzMzMzMzMzMyLhaz8//9Q6EiA//9Zw7h4
+yEAA6feL///MzMzMzMzMzIuF0Pz//1DoKID//1nDuKDIQADp14v//8zMzMzMzMzM
+jU2c6eh7//+NTazpsFL//41NrOmoUv//jU2s6aBS//+NTdDpmFL//41N0OmQUv//
+jU3Q6YhS//+4yMhAAOmNi///zMzMzMzMzMzMzMzMzMy4IMlAAOl1i///zMyNTeDp
+jHv//7j4yUAA6WGL///MzItN7OnMmf//uCDKQADpTYv//8zMi03w6biZ//+4aMpA
+AOk5i///zMyLTfDppJn//7iQykAA6SWL///MzItN8OmQmf//uLjKQADpEYv//8zM
+jU3g6Sh7//+4IMtAAOn9iv//zMyLTfDpaJn//7hIy0AA6emK//8AAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+6s4AAFLRAABA0QAALtEAAB7RAAAO0QAAHs0AACzNAAA4zQAARM0AAFDNAABezQAA
+cs0AAIbNAACWzQAAqs0AALbNAADOzQAA6M0AAPjNAAAKzgAAGs4AACzOAAA6zgAA
+TM4AAFjOAABmzgAAcs4AAH7OAACMzgAAms4AAKjOAAC4zgAAyM4AANrOAAD4zgAA
+Cs8AAB7PAAA2zwAATM8AAGLPAAByzwAAgs8AAJ7PAAC0zwAAzs8AAOjPAAAA0AAA
+GtAAADjQAABI0AAAXNAAAGrQAAB80AAAjNAAAJzQAACo0AAAstAAAL7QAADY0AAA
+6tAAAPzQAAAAAAAABM0AAPrMAADszAAA3MwAANLMAADEzAAAAAAAAGAQQAA4x0AA
+1z9AAJ0+QAC6P0AAc3RyaW5nIHRvbyBsb25nAHDHQAAEP0AAnT5AAKo+QAD/////
+AAAAAAAAAADAx0AAv0BAAJ0+QACiQEAAaW52YWxpZCBzdHJpbmcgcG9zaXRpb24A
+/////wAAAADmQ0AAAAAAAP////86REAARERAAAAAAAD/////AAAAANhIQAAuY29t
+AAAAAC5iYXQAAAAALmNtZAAAAAAuZXhlAAAAAC4vXAA/KgAAAAAAAP/////5VkAA
+DVdAAPDHQABhV0AAGlhAAFVua25vd24gZXhjZXB0aW9uAAAAOMhAADxYQAAAAAAA
+Y3Nt4AEAAAAAAAAAAAAAAAMAAAAgBZMZAAAAAAAAAAD/////AAAAAIVhQAAAAAAA
+cWFAAHVhQAD/////AAAAANthQAAAAAAAx2FAAMthQAD/////iHpAAJJ6QAAAAAAA
+/////wAAAAD4e0AAAAAAANZ7QADge0AA/////yh+QAAsfkAAAAAAAP////+KfkAA
+k35AAAYAAAYAAQAAEAADBgAGAhAERUVFBQUFBQU1MABQAAAAACAoOFBYBwgANzAw
+V1AHAAAgIAgAAAAACGBoYGBgYAAAcHB4eHh4CAcIAAAHAAgICAAACAAIAAcIAAAA
+KABuAHUAbABsACkAAAAAAChudWxsKQAAAAAAAAAAAAD/////TZBAAFGQQAD/////
+AZFAAAWRQABydW50aW1lIGVycm9yIAAADQoAAFRMT1NTIGVycm9yDQoAAABTSU5H
+IGVycm9yDQoAAAAARE9NQUlOIGVycm9yDQoAAFI2MDI4DQotIHVuYWJsZSB0byBp
+bml0aWFsaXplIGhlYXANCgAAAABSNjAyNw0KLSBub3QgZW5vdWdoIHNwYWNlIGZv
+ciBsb3dpbyBpbml0aWFsaXphdGlvbg0KAAAAAFI2MDI2DQotIG5vdCBlbm91Z2gg
+c3BhY2UgZm9yIHN0ZGlvIGluaXRpYWxpemF0aW9uDQoAAAAAUjYwMjUNCi0gcHVy
+ZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGwNCgAAAFI2MDI0DQotIG5vdCBlbm91Z2gg
+c3BhY2UgZm9yIF9vbmV4aXQvYXRleGl0IHRhYmxlDQoAAAAAUjYwMTkNCi0gdW5h
+YmxlIHRvIG9wZW4gY29uc29sZSBkZXZpY2UNCgAAAABSNjAxOA0KLSB1bmV4cGVj
+dGVkIGhlYXAgZXJyb3INCgAAAABSNjAxNw0KLSB1bmV4cGVjdGVkIG11bHRpdGhy
+ZWFkIGxvY2sgZXJyb3INCgAAAABSNjAxNg0KLSBub3QgZW5vdWdoIHNwYWNlIGZv
+ciB0aHJlYWQgZGF0YQ0KAA0KYWJub3JtYWwgcHJvZ3JhbSB0ZXJtaW5hdGlvbg0K
+AAAAAFI2MDA5DQotIG5vdCBlbm91Z2ggc3BhY2UgZm9yIGVudmlyb25tZW50DQoA
+UjYwMDgNCi0gbm90IGVub3VnaCBzcGFjZSBmb3IgYXJndW1lbnRzDQoAAABSNjAw
+Mg0KLSBmbG9hdGluZyBwb2ludCBub3QgbG9hZGVkDQoAAAAATWljcm9zb2Z0IFZp
+c3VhbCBDKysgUnVudGltZSBMaWJyYXJ5AAAAAAoKAABSdW50aW1lIEVycm9yIQoK
+UHJvZ3JhbTogAAAALi4uADxwcm9ncmFtIG5hbWUgdW5rbm93bj4AAFN1bk1vblR1
+ZVdlZFRodUZyaVNhdAAAAEphbkZlYk1hckFwck1heUp1bkp1bEF1Z1NlcE9jdE5v
+dkRlYwAAAABUWgAAAAAAAP/////zr0AA969AAEdldExhc3RBY3RpdmVQb3B1cAAA
+R2V0QWN0aXZlV2luZG93AE1lc3NhZ2VCb3hBAHVzZXIzMi5kbGwAAP////+ouEAA
+rLhAAP////8XuUAAG7lAAADpQAAAAAAAAAAAAP////8AAAAAAAAAABjpQAABAAAA
+AAAAAP////8AAAAAAAAAADjpQAACAAAAAAAAAP////8AAAAAAAAAAADHQADoxkAA
+0MZAAAAAAAAAAAAAAAAAAAMAAAAYx0AAAAAAAAAAAAAAAAAAOOlAACjHQAAAAAAA
+6MZAANDGQAAAAAAAAAAAAAAAAAAAAAAAAgAAAFDHQAAAAAAAAAAAAAAAAAAY6UAA
+YMdAAAAAAABY6UAAAgAAAAAAAAD/////AAAAAAAAAACIx0AA6MZAANDGQAAAAAAA
+AAAAAAAAAAADAAAAoMdAAAAAAAAAAAAAAAAAAFjpQACwx0AA0MZAAAAAAAAAAAAA
+AAAAAAAAAAABAAAA1MdAAAAAAAAAAAAAAAAAAADpQADgx0AAAAAAABjsQAAAAAAA
+AAAAAP////8AAAAAAAAAAAjIQAAAAAAAAAAAAAAAAAABAAAAIMhAAAAAAAAAAAAA
+AAAAABjsQAAoyEAAAAAAACAFkxkBAAAAcMhAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+/////2C9QAAgBZMZAQAAAJjIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////+AvUAA
+IAWTGQEAAADAyEAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////oL1AACAFkxkHAAAA
+6MhAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8C9QAAAAAAA8L1AAAAAAADovUAA
+AAAAAOC9QAAAAAAA2L1AAAAAAADQvUAAAAAAAMi9QAAgBZMZAgAAAEDJQAABAAAA
+UMlAAAAAAAAAAAAAAAAAAP////8AAAAA/////wAAAAAAAAAAAAAAAAEAAAABAAAA
+aMlAAAAAAAAAAAAAAAAAAAAAAABZPEAAAAAAAADpQAAAAAAA/////wAAAAAMAAAA
+uldAAAAAAAAAAAAAGOlAAAAAAAD/////AAAAABwAAAAgP0AAAAAAAAAAAAA46UAA
+AAAAAP////8AAAAAHAAAAPM/QAAAAAAAAwAAALjJQACYyUAAeMlAAAAAAAB9P0AA
+AAAAANjJQAAgBZMZAQAAABjKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8cvkAA
+IAWTGQEAAABAykAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////ML5AAAIAAACYyUAA
+eMlAAAAAAAAAAAAAxz5AAAAAAABIykAAIAWTGQEAAACIykAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAD/////RL5AACAFkxkBAAAAsMpAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+/////1i+QAAgBZMZAQAAANjKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////9svkAA
+AAAAAFjpQAAAAAAA/////wAAAAAcAAAA20BAAAAAAAADAAAA4MpAAJjJQAB4yUAA
+AAAAAGVAQAAAAAAAAMtAACAFkxkBAAAAQMtAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+/////4C+QAAgBZMZAQAAAGjLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////+UvkAA
+qMwAAAAAAAAAAAAAFM0AAPzAAACsywAAAAAAAAAAAABs0QAAAMAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAA6s4AAFLRAABA0QAALtEAAB7RAAAO0QAAHs0AACzNAAA4zQAA
+RM0AAFDNAABezQAAcs0AAIbNAACWzQAAqs0AALbNAADOzQAA6M0AAPjNAAAKzgAA
+Gs4AACzOAAA6zgAATM4AAFjOAABmzgAAcs4AAH7OAACMzgAAms4AAKjOAAC4zgAA
+yM4AANrOAAD4zgAACs8AAB7PAAA2zwAATM8AAGLPAAByzwAAgs8AAJ7PAAC0zwAA
+zs8AAOjPAAAA0AAAGtAAADjQAABI0AAAXNAAAGrQAAB80AAAjNAAAJzQAACo0AAA
+stAAAL7QAADY0AAA6tAAAPzQAAAAAAAABM0AAPrMAADszAAA3MwAANLMAADEzAAA
+AAAAAAgAZGVmbGF0ZUVuZAAABQBkZWZsYXRlAAkAZGVmbGF0ZUluaXQyXwAoAGlu
+ZmxhdGVFbmQAACMAaW5mbGF0ZQApAGluZmxhdGVJbml0Ml8AemxpYjEuZGxsAKIB
+SGVhcFJlQWxsb2MAmQFIZWFwQWxsb2MAnwFIZWFwRnJlZQAALwJSdGxVbndpbmQA
+fQBFeGl0UHJvY2VzcwCeAlRlcm1pbmF0ZVByb2Nlc3MAAPcAR2V0Q3VycmVudFBy
+b2Nlc3MAGgFHZXRMYXN0RXJyb3IAAC0AQ3JlYXRlRGlyZWN0b3J5QQAAkABGaW5k
+Q2xvc2UAigBGaWxlVGltZVRvU3lzdGVtVGltZQAAiQBGaWxlVGltZVRvTG9jYWxG
+aWxlVGltZQAEAUdldERyaXZlVHlwZUEAlABGaW5kRmlyc3RGaWxlQQAAnQBGaW5k
+TmV4dEZpbGVBAMoAR2V0Q29tbWFuZExpbmVBAHQBR2V0VmVyc2lvbgAACwJSYWlz
+ZUV4Y2VwdGlvbgAAowFIZWFwU2l6ZQAAGwBDbG9zZUhhbmRsZQDfAldyaXRlRmls
+ZQAYAlJlYWRGaWxlAACdAUhlYXBEZXN0cm95AJsBSGVhcENyZWF0ZQAAvwJWaXJ0
+dWFsRnJlZQC7AlZpcnR1YWxBbGxvYwAAuAFJc0JhZFdyaXRlUHRyAG0CU2V0SGFu
+ZGxlQ291bnQAAFIBR2V0U3RkSGFuZGxlAAAVAUdldEZpbGVUeXBlAFABR2V0U3Rh
+cnR1cEluZm9BABYBR2V0RnVsbFBhdGhOYW1lQQAA9QBHZXRDdXJyZW50RGlyZWN0
+b3J5QQAA0gJXaWRlQ2hhclRvTXVsdGlCeXRlAOQBTXVsdGlCeXRlVG9XaWRlQ2hh
+cgC/AUxDTWFwU3RyaW5nQQAAwAFMQ01hcFN0cmluZ1cAAK0CVW5oYW5kbGVkRXhj
+ZXB0aW9uRmlsdGVyAAAkAUdldE1vZHVsZUZpbGVOYW1lQQAAsgBGcmVlRW52aXJv
+bm1lbnRTdHJpbmdzQQCzAEZyZWVFbnZpcm9ubWVudFN0cmluZ3NXAAYBR2V0RW52
+aXJvbm1lbnRTdHJpbmdzAAgBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAiwJTZXRV
+bmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAfAJTZXRTdGRIYW5kbGUAAKoARmx1c2hG
+aWxlQnVmZmVycwAANABDcmVhdGVGaWxlQQBqAlNldEZpbGVQb2ludGVyAAC1AUlz
+QmFkUmVhZFB0cgAAsgFJc0JhZENvZGVQdHIAAL8AR2V0Q1BJbmZvALkAR2V0QUNQ
+AAAxAUdldE9FTUNQAABwAUdldFRpbWVab25lSW5mb3JtYXRpb24AAFMBR2V0U3Ry
+aW5nVHlwZUEAAFYBR2V0U3RyaW5nVHlwZVcAAD4BR2V0UHJvY0FkZHJlc3MAAMIB
+TG9hZExpYnJhcnlBAABhAlNldEVuZE9mRmlsZQAAIQBDb21wYXJlU3RyaW5nQQAA
+IgBDb21wYXJlU3RyaW5nVwAAYgJTZXRFbnZpcm9ubWVudFZhcmlhYmxlQQBLRVJO
+RUwzMi5kbGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAPAvQACAPUAA
+jUJAAAAAAAAAAAAAT0NAAJVOQAC8pkAA6ppAAAAAAAAAAAAAOk9AAAAAAAAAAAAA
++5pAAAAAAAAAAAAAAAAAAHdiAAByYgAAMS4yLjMAAABVbnBhY2tUb0ZvbGRlci4g
+RXJyb3IgaW4gY3JlYXRpbmcgZmlsZSEACgAAAGRhdGEAAAAAJXNcJXMuJXMAAAAA
+aGVhZGVyAAAuAAAAfAAAAFByb2dyZXNzICg1MCBwb2ludHMpOiAAAFVucGFja1Rv
+Rm9sZGVyLiBFcnJvciBpbiBjcmVhdGluZyBmaWxlIQoAAAAAJXNcJXMAAABGaWxl
+SGVhZGVyAABVbnBhY2tUb0ZvbGRlci4gRXJyb3IgaW4gY3JlYXRpbmcgZGlyZWN0
+b3J5IQoAAABVbnBhY2tUb0ZvbGRlci4gVGhpcyBpcyBub3QgVjggZmlsZSEKAAAA
+VW5wYWNrVG9Gb2xkZXIuIEVycm9yIGluIHJlYWRpbmcgZmlsZSEKAFVucGFja1Rv
+Rm9sZGVyLiBOb3QgZW5vdWdoIG1lbW9yeSEKAFVucGFja1RvRm9sZGVyLiBJbnB1
+dCBmaWxlIG5vdCBmb3VuZCEKAABSZWFkQmxvY2tEYXRhLiBCbG9ja0RhdGEgPT0g
+TlVMTC4AAAAuZGF0YQAAACVzXCouaGVhZGVyACVzXEZpbGVIZWFkZXIAAAAlMDh4
+AAAAAExvYWRGaWxlOiBvawoAAABTYXZlRmlsZS4gRXJyb3IgaW4gY3JlYXRpbmcg
+ZmlsZSEAAAAlc1wqAAAAAFBhY2s6IG9rCgAAAExvYWRGaWxlRnJvbUZvbGRlcjog
+b2sKAFY4VW5wYWNrLmV4ZSAtcGFjayAgICAgICAgMUN2OC51bmQgICAgICAgICAg
+ICAgICAgICAgICAgICAxQ3Y4X25ldy5jZgoAAFY4VW5wYWNrLmV4ZSAtZGVmbGF0
+ZSAgICAgMUN2OC51bnBcbWV0YWRhdGFfbmV3LmRhdGEudW5kICAxQ3Y4LnVucFxt
+ZXRhZGF0YS5kYXRhCgAAAFY4VW5wYWNrLmV4ZSAtcGFjayAgICAgICAgMUN2OC51
+bnBcbWV0YWRhdGEudW5wICAgICAgICAgICAxQ3Y4LnVucFxtZXRhZGF0YV9uZXcu
+ZGF0YS51bmQKAAAAUEFDSwoAAABWOFVucGFjay5leGUgLXVucGFjayAgICAgIDFD
+djgudW5wXG1ldGFkYXRhLmRhdGEudW5kICAgICAgMUN2OC51bnBcbWV0YWRhdGEu
+dW5wCgAAAABWOFVucGFjay5leGUgLXVuZGVmbGF0ZSAgIDFDdjgudW5wXG1ldGFk
+YXRhLmRhdGEgICAgICAgICAgMUN2OC51bnBcbWV0YWRhdGEuZGF0YS51bmQKAAAA
+VjhVbnBhY2suZXhlIC11bnBhY2sgICAgICAxQ3Y4LmNmICAgICAgICAgICAgICAg
+ICAgICAgICAgIDFDdjgudW5wCgBVTlBBQ0sKACAgLUJbVUlMRF0gICAgICBpbl9k
+aXJuYW1lICAgICAgICAgb3V0X2ZpbGVuYW1lCgAAAAAgIC1QW0FSU0VdICAgICAg
+aW5fZmlsZW5hbWUgICAgICAgIG91dF9kaXJuYW1lCgAgIC1CQVQKACAgLUVbWEFN
+UExFXQoAAAAgIC1EW0VGTEFURV0gICAgaW5fZmlsZW5hbWUgICAgICAgIGZpbGVu
+YW1lLmRhdGEKAAAAICAtSVtORkxBVEVdICAgIGluX2ZpbGVuYW1lLmRhdGEgICBv
+dXRfZmlsZW5hbWUKAAAAACAgLVBBW0NLXSAgICAgICBpbl9kaXJuYW1lICAgICAg
+ICAgb3V0X2ZpbGVuYW1lLmNmCgAgIC1VW05QQUNLXSAgICAgaW5fZmlsZW5hbWUu
+Y2YgICAgIG91dF9kaXJuYW1lCgBWOFVOUEFDSwoAAABVbnBhY2ssIHBhY2ssIGRl
+ZmxhdGUgYW5kIGluZmxhdGUgMUMgdjggZmlsZSAoKi5jZikKAAAAAFY4VXBhY2sg
+VmVyc2lvbiAyLjAwIENvcHlyaWdodCAoYykgMjAwOCBEZW5pcyBEZW1pZG92IDIw
+MDgtMDMtMzAKAAAALWUAAC1leGFtcGxlAAAAADpFTkQKAAAAVjhVbnBhY2suZXhl
+IC1wYWNrICAgICAgICAlMi51bnAgICAgICAgICAgICAgICAgICAgICAgICAgJTIu
+bmV3LmNmCgBWOFVucGFjay5leGUgLWRlZmxhdGUgICAgICUyLnVucFxtZXRhZGF0
+YV9uZXcuZGF0YS51bmQgICAlMi51bnBcbWV0YWRhdGEuZGF0YQoAAFY4VW5wYWNr
+LmV4ZSAtcGFjayAgICAgICAgJTIudW5wXG1ldGFkYXRhLnVucCAgICAgICAgICAg
+ICUyLnVucFxtZXRhZGF0YV9uZXcuZGF0YS51bmQKAAA6UEFDSwoAAEdPVE8gRU5E
+CgAAAFY4VW5wYWNrLmV4ZSAtdW5wYWNrICAgICAgJTIudW5wXG1ldGFkYXRhLmRh
+dGEudW5kICAgICAgICAlMi51bnBcbWV0YWRhdGEudW5wCgAAVjhVbnBhY2suZXhl
+IC11bmRlZmxhdGUgICAlMi51bnBcbWV0YWRhdGEuZGF0YSAgICAgICAgICAgICUy
+LnVucFxtZXRhZGF0YS5kYXRhLnVuZAoAVjhVbnBhY2suZXhlIC11bnBhY2sgICAg
+ICAlMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUyLnVucAoAAAA6VU5Q
+QUNLCgAAAABpZiAlMSA9PSBwIEdPVE8gUEFDSwoAAABpZiAlMSA9PSBQIEdPVE8g
+UEFDSwoAAAAtYmF0AAAAAC1iAAAtYnVpbGQAAC1wAAAtcGFyc2UAAC1wYQAtcGFj
+awAAAC11bnAAAAAALXUAAC11bnBhY2sALWQAAC1kZWZsYXRlAAAAAC11bmRlZmxh
+dGUAAC11bmQAAAAALWkAAC1pbmZsYXRlAAAAAAAAAAAIwkAAAAAAAC4/QVZleGNl
+cHRpb25AQAAIwkAAAAAAAC4/QVZsb2dpY19lcnJvckBzdGRAQAAAAAjCQAAAAAAA
+Lj9BVmxlbmd0aF9lcnJvckBzdGRAQAAACMJAAAAAAAAuP0FWb3V0X29mX3Jhbmdl
+QHN0ZEBAAAAAAAAAAAAAACAFkxkAAAAAAAAAAAAAAACA+UAAAAAAAID5QAABAQAA
+AAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+Yk1AAAEAAAAIwkAAAAAAAC4/QVZ0eXBlX2luZm9AQACkmkAAAAAAAAAAAAAAAAAA
+NGFAADRhQAAQAAAA+AMAAKSaQAAAAAAAAAAAAAAAAAAQw0AAAMNAAAEAAAAWAAAA
+AgAAAAIAAAADAAAAAgAAAAQAAAAYAAAABQAAAA0AAAAGAAAACQAAAAcAAAAMAAAA
+CAAAAAwAAAAJAAAADAAAAAoAAAAHAAAACwAAAAgAAAAMAAAAFgAAAA0AAAAWAAAA
+DwAAAAIAAAAQAAAADQAAABEAAAASAAAAEgAAAAIAAAAhAAAADQAAADUAAAACAAAA
+QQAAAA0AAABDAAAAAgAAAFAAAAARAAAAUgAAAA0AAABTAAAADQAAAFcAAAAWAAAA
+WQAAAAsAAABsAAAADQAAAG0AAAAgAAAAcAAAABwAAAByAAAACQAAAAYAAAAWAAAA
+gAAAAAoAAACBAAAACgAAAIIAAAAJAAAAgwAAABYAAACEAAAADQAAAJEAAAApAAAA
+ngAAAA0AAAChAAAAAgAAAKQAAAALAAAApwAAAA0AAAC3AAAAEQAAAM4AAAACAAAA
+1wAAAAsAAAAYBwAADAAAAP////8ACgAA4u1AAOLtQAAAACAAIAAgACAAIAAgACAA
+IAAgACgAKAAoACgAKAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAA
+IABIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAIQAhACEAIQAhACEAIQA
+hACEAIQAEAAQABAAEAAQABAAEACBAIEAgQCBAIEAgQABAAEAAQABAAEAAQABAAEA
+AQABAAEAAQABAAEAAQABAAEAAQABAAEAEAAQABAAEAAQABAAggCCAIIAggCCAIIA
+AgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAEAAQABAA
+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAALgAAAAEAAAAFAADACwAAAAAAAAAdAADA
+BAAAAAAAAACWAADABAAAAAAAAACNAADACAAAAAAAAACOAADACAAAAAAAAACPAADA
+CAAAAAAAAACQAADACAAAAAAAAACRAADACAAAAAAAAACSAADACAAAAAAAAACTAADA
+CAAAAAAAAAADAAAABwAAAAoAAACMAAAAAgAAAJzFQAAIAAAAcMVAAAkAAABExUAA
+CgAAACDFQAAQAAAA9MRAABEAAADExEAAEgAAAKDEQAATAAAAdMRAABgAAAA8xEAA
+GQAAABTEQAAaAAAA3MNAABsAAACkw0AAHAAAAHzDQAB4AAAAbMNAAHkAAABcw0AA
+egAAAEzDQAD8AAAASMNAAP8AAAA4w0AAAAAAAAAAAACGtEAAhrRAAIa0QACGtEAA
+hrRAAIa0QAAAAAAAAAAAAAECBAgAAAAApAMAAGCCeYIhAAAAAAAAAKbfAAAAAAAA
+oaUAAAAAAACBn+D8AAAAAEB+gPwAAAAAqAMAAMGj2qMgAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAACB/gAAAAAAAED+AAAAAAAAtQMAAMGj2qMgAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAACB/gAAAAAAAEH+AAAAAAAAtgMAAM+i5KIaAOWi6KJbAAAAAAAAAAAA
+AAAAAAAAAACB/gAAAAAAAEB+of4AAAAAUQUAAFHaXtogAF/aatoyAAAAAAAAAAAA
+AAAAAAAAAACB09je4PkAADF+gf4AAAAAAAAAAAAAAACAcAAAAQAAAPDx//9QU1QA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAUERUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADzyQAB88kAAAAAAAP////8AAAAA
+AAAAAAAAAAD/////AAAAAAAAAAD/////HgAAADsAAABaAAAAeAAAAJcAAAC1AAAA
+1AAAAPMAAAARAQAAMAEAAE4BAABtAQAA/////x4AAAA6AAAAWQAAAHcAAACWAAAA
+tAAAANMAAADyAAAAEAEAAC8BAABNAQAAbAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAA==}
+}
\ No newline at end of file
diff --git "a/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/zlib1.txt" "b/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/zlib1.txt"
new file mode 100644
index 00000000..b6fa4088
--- /dev/null
+++ "b/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/zlib1.txt"
@@ -0,0 +1,1251 @@
+{1,
+{#base64:TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAEAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5v
+dCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAAAFd2a9QRYI7kEWCO5BFgju
+Iwkb7kMWCO5BFgnuVxYI7i4JDO5CFgjuLgkC7kQWCO7CCgbuQBYI7kQaa+5MFgju
+RBoH7kAWCO69NhruQBYI7kQaVO5AFgjurR1W7kAWCO5EGlLuQBYI7lJpY2hBFgju
+AAAAAAAAAAAAAAAAAAAAAFBFAABMAQUA2h3eQgAAAAAAAAAA4AAOIQsBBwoAlAAA
+AFIAAAAAAABGoQAAABAAAACwAAAAAAAQABAAAAACAAAEAAAAAAAAAAQAAAAAAAAA
+ADABAAAEAACH9QAAAgAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAAAPDxAABdBAAA
+ZPAAADwAAAAAEAEAmAMAAAAAAAAAAAAAAAAAAAAAAAAAIAEAsAIAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAABYAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnRleHQAAAA/kgAAABAAAACUAAAABAAA
+AAAAAAAAAAAAAAAAIAAAYC5yZGF0YQAATUYAAACwAAAASAAAAJgAAAAAAAAAAAAA
+AAAAAEAAAEAuZGF0YQAAAHQAAAAAAAEAAAIAAADgAAAAAAAAAAAAAAAAAABAAADA
+LnJzcmMAAACYAwAAABABAAAEAAAA4gAAAAAAAAAAAAAAAAAAQAAAQC5yZWxvYwAA
+aAMAAAAgAQAABAAAAOYAAAAAAAAAAAAAAAAAAEAAAEIAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAItMJARTi1wkEFeL+cHvEIHh//8AAIP7AXUxi0QkEA+2
+EAPKgfnx/wAAcgaB6fH/AAAD+YH/8f8AAHIGge/x/wAAi8fB4BBfC8Fbw1aLdCQU
+hfZ1CV5fuAEAAABbw4P7EHMzhdt0Cw+2BgPIRgP5S3X1gfnx/wAAcgaB6fH/AACL
+xzPSvvH/AAD39l5fW4vCweAQC8HDgfuwFQAAD4LKAAAAuK+pbl7341WL6sHtC4v/
+geuwFQAAuFsBAADrA41JAA+2FgPKD7ZWAQP5A8oPtlYCA/kDyg+2VgMD+QPKD7ZW
+BAP5A8oPtlYFA/kDyg+2VgYD+QPKD7ZWBwP5A8oPtlYIA/kDyg+2VgkD+QPKD7ZW
+CgP5A8oPtlYLA/kDyg+2VgwD+QPKD7ZWDQP5A8oPtlYOA/kDyg+2Vg8D+QPKA/mD
+xhBID4V3////i8Ez0rnx/wAA9/GLx7/x/wAAi8oz0vf3TYv6D4VG////XYXbD4TD
+AAAAg/sQD4KRAAAAi8PB6AQPthYDyg+2VgED+QPKD7ZWAgP5A8oPtlYDA/kDyg+2
+VgQD+QPKD7ZWBQP5A8oPtlYGA/kDyg+2VgcD+QPKD7ZWCAP5A8oPtlYJA/kDyg+2
+VgoD+QPKD7ZWCwP5A8oPtlYMA/kDyg+2Vg0D+QPKD7ZWDgP5A8oPtlYPA/kDyoPr
+EAP5g8YQSA+FdP///4XbdAsPtgYDyEYD+Ut19YvBM9K58f8AAPfxi8e+8f8AAIvK
+M9L39ov6i8deweAQXwvBW8PMzMzMzMzMzMzMzMzMzMyD7DiLTCRIi1QkPItEJERT
+i1wkRGo4aFiwABBqAGoIag+JTCQci0wkZGoIiVQkKIlEJByLA1GNVCQgUolEJDTH
+RCREAAAAAMdEJEgAAAAAx0QkTAAAAADo5AMAAIPEIIXAdUlWjUQkCGoEUOiwCQAA
+i/CDxAiD/gF0Ho1MJAhR6NwRAACDxASF9rj7////dBuLxl5bg8Q4w4tUJByNRCQI
+UIkT6LgRAACDxAReW4PEOMPMzMzMzMzMzMzMzMzMzMyLRCQQi0wkDItUJAhq/1CL
+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
+dAhfuP7///9ew4tACIXAdAtQi0YoUP9WJIPECItOHItBRIXAdAuLVihQUv9WJIPE
+CItGHItAQIXAdAuLTihQUf9WJIPECItWHItCOIXAdAtQi0YoUP9WJIPECItOHItW
+KFFS/1Ykg8QIM8CD/3EPlcBfx0YcAAAAAF5Ig+D9w7j+////XsPMzMzMzMzMzMzM
+VVaLdCQQhfYPhJEBAACLbCQMhe0PhIUBAACLRhyFwIlEJBAPhHYBAABTV7kOAAAA
+i/1owBYAAPOli0UoagFQ/1Ugi9iDxAyF2w+ERgEAAIt0JBiJXRy5sAUAAIv786WL
+SyxqAokri1UoUVL/VSCJQziLQyyLTShqAlBR/1Ugi1NMagKJQ0CLRShSUP9VIIuL
+nBYAAGoEiUNEi1UoUVL/VSCLeziDxDCF/4lDCA+E2gAAAItLQIXJD4TPAAAAi0tE
+hckPhMQAAACFwA+EvAAAAItLLItUJBiLcjjR4YvpwekC86WLzYPhA/Oki3JAi0ss
+i3tA0eGL6cHpAvOli82D4QPzpItyRItLTIt7RNHhi+nB6QLzpYvNg+ED86SLcgiL
+SwyLewiL6cHpAvOli82D4QPzpIt6CItKEItzCCvPA86JSxCLi5wWAACL0dHqjQRQ
+jRROA9GJg6QWAACJk5gWAACNg5QAAACNi4gJAACNk3wKAABfiYMYCwAAiYskCwAA
+iZMwCwAAW14zwF3DVeie/f//g8QEX1teuPz///9dw164/v///13DzMzMzMzMzMzM
+i0Isi0pM0eCJQjyLQkRTVjP2Zol0SP6LSkyNTAn+i9nB6QIzwFeLekTzq4vLg+ED
+86qLgoQAAACNBEDB4AIPt4ia0AAQiYqAAAAAD7eImNAAEImKjAAAAA+3iJzQABCJ
+ipAAAAAPt4Ce0AAQiUJ8uAIAAACJcmyJclyJcnSJQniJQmCJcmiJckjoE28AACUA
+DwAAPQAGAABfG8lBXokNUAABEFvDzMzMzMzMzMzMzMyLTjiLRmxTihwIVYtsJAyK
+FCkDwQPNOtNXjbgCAQAAD4WSAAAAilEBOlABD4WGAAAAg8ACg8ECilABilkBQEE6
+03VYilABilkBQEE603VMilABilkBQEE603VAilABilkBQEE603U0ilABilkBQEE6
+03UoilABilkBQEE603UcilABilkBQEE603UQilABilkBQEE603UEO8dynCvHBQIB
+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
+nZxYnTPBdBC4AQAAAA+iW8O4AAMAAOv3uAAEAADr8FVXVlOD7CSLVCQ4i0wkPItC
+eIuajAAAADvDi0I0i1p8fAPB6wJLweMQC9iJHCSLgpAAAACLWnQ72HwCi9iJXCQY
+i3I4iXQkBItqbI18NQCJfCQgi8f32IPgA4lEJBSLQiwtBgEAACvofwIz7YtCeIlE
+JBwD8Il0JAgPtx+JXCQQD7dcOP+JXCQMi3pAixQk6xojyg+3DE87zQ+G4AAAAIHq
+AAABAA+I1AAAAA+3RDH/O8N13YtEJAQPtwQBO0QkEHXPiRQki3QkBIt8JCAD8YtE
+JBS6+P7//428OAgBAACNtDAIAQAAiwQyMwQ6dRSLRDIEM0Q6BHUHg8IIdenrcYPC
+BKn//wAAdQaDwgLB6BAsAYPSAI0EOot8JCArxz0CAQAAfUyLVCQ4i1wkHDvDfxOL
+dCQIi3pAi1wkDIsUJOlO////i1wkGIlEJByJSnA7w30ti3QkBAPwiXQkCA+3XDj/
+i3pAiVwkDIsUJOkh////i1QkOMdEJBwCAQAAiUpwi1QkOItcJByLQnQ72H8Ci8OD
+xCRbXl9dww0KYXNtNjg2IHdpdGggbWFzbSwgb3B0aW1pc2VkIGFzc2VtYmx5IGNv
+ZGUgZnJvbSBCcmlhbiBSYWl0ZXIsIHdyaXR0ZW4gMTk5OA0KzMzMzMzMzMzMzMzM
+6QMBAACNSQBGYXN0IGRlY29kaW5nIENvZGUgZnJvbSBDaHJpcyBBbmRlcnNvbgCQ
+aW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29k
+ZQCL/2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAIv/AAAAAAEAAAADAAAA
+BwAAAA8AAAAfAAAAPwAAAH8AAAD/AAAA/wEAAP8DAAD/BwAA/w8AAP8fAAD/PwAA
+/38AAP//AAD//wEA//8DAP//BwD//w8A//8fAP//PwD//38A////AP///wH///8D
+////B////w////8f////P////3//////V1ZVU5yD7ED8i3QkWIt+HItWBIsGA9CD
+6guJRCQsiVQkFItsJFyLThCLXgwr6ffdA+uB6QEBAAADy4lcJDyJbCQoiUwkEItH
+TItPUIlEJAiJTCQMuAEAAACLT1TT4EiJBCS4AQAAAItPWNPgSIlEJASLRyiLTzCL
+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
+EAcKAAAIYAAACCAAAAmgAAAIAAAACIAAAAhAAAAJ4AAQBwYAAAhYAAAIGAAACZAA
+Ewc7AAAIeAAACDgAAAnQABEHEQAACGgAAAgoAAAJsAAACAgAAAiIAAAISAAACfAA
+EAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyAARBw0AAAhkAAAIJAAACagA
+AAgEAAAIhAAACEQAAAnoABAHCAAACFwAAAgcAAAJmAAUB1MAAAh8AAAIPAAACdgA
+EgcXAAAIbAAACCwAAAm4AAAIDAAACIwAAAhMAAAJ+AAQBwMAAAhSAAAIEgAVCKMA
+EwcjAAAIcgAACDIAAAnEABEHCwAACGIAAAgiAAAJpAAACAIAAAiCAAAIQgAACeQA
+EAcHAAAIWgAACBoAAAmUABQHQwAACHoAAAg6AAAJ1AASBxMAAAhqAAAIKgAACbQA
+AAgKAAAIigAACEoAAAn0ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACcwA
+EQcPAAAIZgAACCYAAAmsAAAIBgAACIYAAAhGAAAJ7AAQBwkAAAheAAAIHgAACZwA
+FAdjAAAIfgAACD4AAAncABIHGwAACG4AAAguAAAJvAAACA4AAAiOAAAITgAACfwA
+YAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwgAQBwoAAAhhAAAIIQAACaIA
+AAgBAAAIgQAACEEAAAniABAHBgAACFkAAAgZAAAJkgATBzsAAAh5AAAIOQAACdIA
+EQcRAAAIaQAACCkAAAmyAAAICQAACIkAAAhJAAAJ8gAQBwQAAAhVAAAIFQAQCAIB
+EwcrAAAIdQAACDUAAAnKABEHDQAACGUAAAglAAAJqgAACAUAAAiFAAAIRQAACeoA
+EAcIAAAIXQAACB0AAAmaABQHUwAACH0AAAg9AAAJ2gASBxcAAAhtAAAILQAACboA
+AAgNAAAIjQAACE0AAAn6ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACcYA
+EQcLAAAIYwAACCMAAAmmAAAIAwAACIMAAAhDAAAJ5gAQBwcAAAhbAAAIGwAACZYA
+FAdDAAAIewAACDsAAAnWABIHEwAACGsAAAgrAAAJtgAACAsAAAiLAAAISwAACfYA
+EAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzgARBw8AAAhnAAAIJwAACa4A
+AAgHAAAIhwAACEcAAAnuABAHCQAACF8AAAgfAAAJngAUB2MAAAh/AAAIPwAACd4A
+EgcbAAAIbwAACC8AAAm+AAAIDwAACI8AAAhPAAAJ/gBgBwAAAAhQAAAIEAAUCHMA
+EgcfAAAIcAAACDAAAAnBABAHCgAACGAAAAggAAAJoQAACAAAAAiAAAAIQAAACeEA
+EAcGAAAIWAAACBgAAAmRABMHOwAACHgAAAg4AAAJ0QARBxEAAAhoAAAIKAAACbEA
+AAgIAAAIiAAACEgAAAnxABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACckA
+EQcNAAAIZAAACCQAAAmpAAAIBAAACIQAAAhEAAAJ6QAQBwgAAAhcAAAIHAAACZkA
+FAdTAAAIfAAACDwAAAnZABIHFwAACGwAAAgsAAAJuQAACAwAAAiMAAAITAAACfkA
+EAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxQARBwsAAAhiAAAIIgAACaUA
+AAgCAAAIggAACEIAAAnlABAHBwAACFoAAAgaAAAJlQAUB0MAAAh6AAAIOgAACdUA
+EgcTAAAIagAACCoAAAm1AAAICgAACIoAAAhKAAAJ9QAQBwUAAAhWAAAIFgBACAAA
+EwczAAAIdgAACDYAAAnNABEHDwAACGYAAAgmAAAJrQAACAYAAAiGAAAIRgAACe0A
+EAcJAAAIXgAACB4AAAmdABQHYwAACH4AAAg+AAAJ3QASBxsAAAhuAAAILgAACb0A
+AAgOAAAIjgAACE4AAAn9AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcMA
+EAcKAAAIYQAACCEAAAmjAAAIAQAACIEAAAhBAAAJ4wAQBwYAAAhZAAAIGQAACZMA
+Ewc7AAAIeQAACDkAAAnTABEHEQAACGkAAAgpAAAJswAACAkAAAiJAAAISQAACfMA
+EAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJywARBw0AAAhlAAAIJQAACasA
+AAgFAAAIhQAACEUAAAnrABAHCAAACF0AAAgdAAAJmwAUB1MAAAh9AAAIPQAACdsA
+EgcXAAAIbQAACC0AAAm7AAAIDQAACI0AAAhNAAAJ+wAQBwMAAAhTAAAIEwAVCMMA
+EwcjAAAIcwAACDMAAAnHABEHCwAACGMAAAgjAAAJpwAACAMAAAiDAAAIQwAACecA
+EAcHAAAIWwAACBsAAAmXABQHQwAACHsAAAg7AAAJ1wASBxMAAAhrAAAIKwAACbcA
+AAgLAAAIiwAACEsAAAn3ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc8A
+EQcPAAAIZwAACCcAAAmvAAAIBwAACIcAAAhHAAAJ7wAQBwkAAAhfAAAIHwAACZ8A
+FAdjAAAIfwAACD8AAAnfABIHGwAACG8AAAgvAAAJvwAACA8AAAiPAAAITwAACf8A
+EAUBABcFAQETBREAGwUBEBEFBQAZBQEEFQVBAB0FAUAQBQMAGAUBAhQFIQAcBQEg
+EgUJABoFAQgWBYEAQAUAABAFAgAXBYEBEwUZABsFARgRBQcAGQUBBhUFYQAdBQFg
+EAUEABgFAQMUBTEAHAUBMBIFDQAaBQEMFgXBAEAFAAAQABEAEgAAAAgABwAJAAYA
+CgAFAAsABAAMAAMADQACAA4AAQAPAAAAYAcAAAAIUAAACBAAFAhzABIHHwAACHAA
+AAgwAAAJwAAQBwoAAAhgAAAIIAAACaAAAAgAAAAIgAAACEAAAAngABAHBgAACFgA
+AAgYAAAJkAATBzsAAAh4AAAIOAAACdAAEQcRAAAIaAAACCgAAAmwAAAICAAACIgA
+AAhIAAAJ8AAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnIABEHDQAACGQA
+AAgkAAAJqAAACAQAAAiEAAAIRAAACegAEAcIAAAIXAAACBwAAAmYABQHUwAACHwA
+AAg8AAAJ2AASBxcAAAhsAAAILAAACbgAAAgMAAAIjAAACEwAAAn4ABAHAwAACFIA
+AAgSABUIowATByMAAAhyAAAIMgAACcQAEQcLAAAIYgAACCIAAAmkAAAIAgAACIIA
+AAhCAAAJ5AAQBwcAAAhaAAAIGgAACZQAFAdDAAAIegAACDoAAAnUABIHEwAACGoA
+AAgqAAAJtAAACAoAAAiKAAAISgAACfQAEAcFAAAIVgAACBYAQAgAABMHMwAACHYA
+AAg2AAAJzAARBw8AAAhmAAAIJgAACawAAAgGAAAIhgAACEYAAAnsABAHCQAACF4A
+AAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4A
+AAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEA
+AAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkA
+AAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUA
+AAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUA
+AAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0A
+AAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMA
+AAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsA
+AAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsA
+AAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcA
+AAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8A
+AAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAA
+AAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAA
+AAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgA
+AAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQA
+AAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwA
+AAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwA
+AAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIA
+AAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoA
+AAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYA
+AAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYA
+AAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4A
+AAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEA
+AAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkA
+AAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkA
+AAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUA
+AAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0A
+AAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMA
+AAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMA
+AAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsA
+AAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcA
+AAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8A
+AAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8A
+AAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQEC
+FAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEG
+FQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAABAAEQASAAAA
+CAAHAAkABgAKAAUACwAEAAwAAwANAAIADgABAA8AAAAgaW5mbGF0ZSAxLjIuMyBD
+b3B5cmlnaHQgMTk5NS0yMDA1IE1hcmsgQWRsZXIgAAADAAQABQAGAAcACAAJAAoA
+CwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAAAAAAA
+EAAQABAAEAAQABAAEAAQABEAEQARABEAEgASABIAEgATABMAEwATABQAFAAUABQA
+FQAVABUAFQAQAMkAxAAAAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEA
+AQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAAAAQABAAEAAQABEAEQASABIA
+EwATABQAFAAVABUAFgAWABcAFwAYABgAGQAZABoAGgAbABsAHAAcAB0AHQBAAEAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAA
+AgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAA
+BQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAA
+AgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAA
+CAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAIAAAADAAAABwAAABAREgAIBwkGCgULBAwDDQIOAQ8A
+DAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgA
+PAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgA
+EgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgA
+KgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgA
+BgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgA
+NgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgA
+HgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgA
+IQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgA
+CQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgA
+OQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgA
+FQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgA
+LQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgA
+EwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkA
+cwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkA
+KwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkA
+WwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkA
+BwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkA
+ZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkA
+NwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkA
+TwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkA
+HwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkA
+fwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcA
+CAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcA
+FAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgA
+AAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUA
+BgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUA
+AwAFABMABQALAAUAGwAFAAcABQAXAAUAAAECAwQEBQUGBgYGBwcHBwgICAgICAgI
+CQkJCQkJCQkKCgoKCgoKCgoKCgoKCgoKCwsLCwsLCwsLCwsLCwsLCwwMDAwMDAwM
+DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
+DQ0NDQ0NDQ0ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O
+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8P
+Dw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwAAEBESEhMT
+FBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGBkZGRkZGRkZ
+GRkZGRkZGRkaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGxsbGxsb
+GxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc
+HBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB0dHR0dHR0d
+HR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0d
+HR0dHR0dHR0AAQIDBAUGBwgICQkKCgsLDAwMDA0NDQ0ODg4ODw8PDxAQEBAQEBAQ
+ERERERERERESEhISEhISEhMTExMTExMTFBQUFBQUFBQUFBQUFBQUFBUVFRUVFRUV
+FRUVFRUVFRUWFhYWFhYWFhYWFhYWFhYWFxcXFxcXFxcXFxcXFxcXFxgYGBgYGBgY
+GBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZ
+GRkZGRkZGRkaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGxsbGxsb
+GxsbGxsbGxsbGxsbGxsbGxsbGxsbGxscAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAA
+BgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAA
+MAAAADgAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAAAAAAAAAAAA
+AAAAAAEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAA
+QAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAA
+ABAAAAAYAAAAIAAAADAAAABAAAAAYAAAVPAAEEjwABAD7gAQPPAAECzwABAg8AAQ
+DPAAEPzvABDk7wAQA+4AEDogAAA8ZmQ6JWQ+ACVjJWMlYyVjJWMlYyVjJWMlYyVj
+AAAAAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAAAAaW52YWxpZCBkaXN0
+YW5jZSBjb2RlAAAAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQg
+ZGlzdGFuY2VzIHNldAAAAGludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldABpbnZh
+bGlkIGJpdCBsZW5ndGggcmVwZWF0AAAAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0
+AAAAAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQg
+c3RvcmVkIGJsb2NrIGxlbmd0aHMAAAAAaW52YWxpZCBibG9jayB0eXBlAABpbmNv
+cnJlY3QgbGVuZ3RoIGNoZWNrAABpbmNvcnJlY3QgZGF0YSBjaGVjawAAAABoZWFk
+ZXIgY3JjIG1pc21hdGNoAHVua25vd24gaGVhZGVyIGZsYWdzIHNldAAAAABpbnZh
+bGlkIHdpbmRvdyBzaXplAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAABpbmNv
+cnJlY3QgaGVhZGVyIGNoZWNrAABpbmNvbXBhdGlibGUgdmVyc2lvbgAAAABidWZm
+ZXIgZXJyb3IAAAAAaW5zdWZmaWNpZW50IG1lbW9yeQBkYXRhIGVycm9yAABzdHJl
+YW0gZXJyb3IAAAAAZmlsZSBlcnJvcgAAc3RyZWFtIGVuZAAAbmVlZCBkaWN0aW9u
+YXJ5AKjwAAAAAAAAAAAAAJ7xAAAIsAAAoPAAAAAAAAAAAAAA4vEAAACwAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAMbxAAAAAAAACvEAABLxAAAc8QAAKPEAADLxAAA88QAA
+RPEAAEzxAABW8QAAAPEAAG7xAAB28QAAfvEAAIjxAACU8QAAqvEAALbxAABk8QAA
++PAAAAAAAABZAmZwdXRjALICc3ByaW50ZgBeAmZyZWUAAJECbWFsbG9jAAC8AnN0
+cmVycm9yAABPAmZmbHVzaAAAyABfZXJybm8AAFcCZm9wZW4AXQJmcmVhZABYAmZw
+cmludGYA4QFfdnNucHJpbnRmAABmAmZ3cml0ZQAAZAJmdGVsbABiAmZzZWVrAEwC
+ZmNsb3NlAABCAmNsZWFyZXJyAADXAF9mZG9wZW4ATVNWQ1JULmRsbAAADwFfaW5p
+dHRlcm0AnQBfYWRqdXN0X2ZkaXYAAF0ARGlzYWJsZVRocmVhZExpYnJhcnlDYWxs
+cwBLRVJORUwzMi5kbGwAAAAAAADZHd5CAAAAABb0AAABAAAAMwAAADMAAAAY8gAA
+5PIAALDzAAAAEAAAEBMAAFASAAAwEwAAYBMAAHAcAACAGwAAgCUAALAkAACQFgAA
+YBYAAKAaAABgGgAA4BkAANAYAABQEwAAEEUAAKBDAAAwNwAAAEMAAPBDAACgQAAA
+ED0AAJA9AAAQNwAA4D4AAGA/AACQPwAAYDoAAIBCAADgQAAAcDcAAOBCAABAPQAA
+8D0AAKBXAAAgRgAA0FQAAEBFAABAcAAAgG0AAHBVAABAVgAAEFUAANBtAAAQbwAA
+EHAAAICQAACgkQAAkJEAAICRAAAg9AAAKPQAADH0AAA79AAASfQAAE/0AABX9AAA
+ZPQAAHD0AAB79AAAifQAAJb0AACk9AAAsfQAAL70AADT9AAA4fQAAOz0AAD09AAA
+/PQAAAL1AAAK9QAAEvUAABn1AAAg9QAAJ/UAADD1AAA39QAAPvUAAEX1AABO9QAA
+VfUAAGH1AABo9QAAcfUAAHn1AACB9QAAjfUAAJz1AACt9QAAufUAAMT1AADS9QAA
+3/UAAOz1AAAB9gAADfYAAB72AAAp9gAAMPYAAEH2AAAAAAEAAgADAAQABQAGAAcA
+CAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8A
+IAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgB6bGliMS5kbGwA
+YWRsZXIzMgBjb21wcmVzcwBjb21wcmVzczIAY29tcHJlc3NCb3VuZABjcmMzMgBk
+ZWZsYXRlAGRlZmxhdGVCb3VuZABkZWZsYXRlQ29weQBkZWZsYXRlRW5kAGRlZmxh
+dGVJbml0Ml8AZGVmbGF0ZUluaXRfAGRlZmxhdGVQYXJhbXMAZGVmbGF0ZVByaW1l
+AGRlZmxhdGVSZXNldABkZWZsYXRlU2V0RGljdGlvbmFyeQBnZXRfY3JjX3RhYmxl
+AGd6Y2xlYXJlcnIAZ3pjbG9zZQBnemRvcGVuAGd6ZW9mAGd6ZXJyb3IAZ3pmbHVz
+aABnemdldGMAZ3pnZXRzAGd6b3BlbgBnenByaW50ZgBnenB1dGMAZ3pwdXRzAGd6
+cmVhZABnenJld2luZABnenNlZWsAZ3pzZXRwYXJhbXMAZ3p0ZWxsAGd6dW5nZXRj
+AGd6d3JpdGUAaW5mbGF0ZQBpbmZsYXRlQmFjawBpbmZsYXRlQmFja0VuZABpbmZs
+YXRlQmFja0luaXRfAGluZmxhdGVDb3B5AGluZmxhdGVFbmQAaW5mbGF0ZUluaXQy
+XwBpbmZsYXRlSW5pdF8AaW5mbGF0ZVJlc2V0AGluZmxhdGVTZXREaWN0aW9uYXJ5
+AGluZmxhdGVTeW5jAGluZmxhdGVTeW5jUG9pbnQAdW5jb21wcmVzcwB6RXJyb3IA
+emxpYkNvbXBpbGVGbGFncwB6bGliVmVyc2lvbgAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AQAAAPDkABCg4wAQAQEAAB4BAAAPAAAAcOkAEBjkABAAAAAAHgAAAA8AAAAAAAAA
+kOQAEAAAAAATAAAABwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAAgAAAAAAAAAAA
+AAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAJBAAASAAAAGAQAQA4AwAA
+AAAAAAAAAAAAAAAAAAAAADgDNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4A
+RgBPAAAAAAC9BO/+AAABAAIAAQAAAAMAAgABAAAAAwA/AAAAAAAAAAQAAQACAAAA
+AAAAAAAAAAAAAAAAlgIAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAA
+cgIAAAEAMAA0ADAAOQAwADQARQA0AAAAZAAeAAEARgBpAGwAZQBEAGUAcwBjAHIA
+aQBwAHQAaQBvAG4AAAAAAHoAbABpAGIAIABkAGEAdABhACAAYwBvAG0AcAByAGUA
+cwBzAGkAbwBuACAAbABpAGIAcgBhAHIAeQAAACwABgABAEYAaQBsAGUAVgBlAHIA
+cwBpAG8AbgAAAAAAMQAuADIALgAzAAAANAAKAAEASQBuAHQAZQByAG4AYQBsAE4A
+YQBtAGUAAAB6AGwAaQBiADEALgBkAGwAbAAAAHwALAABAEwAZQBnAGEAbABDAG8A
+cAB5AHIAaQBnAGgAdAAAACgAQwApACAAMQA5ADkANQAtADIAMAAwADQAIABKAGUA
+YQBuAC0AbABvAHUAcAAgAEcAYQBpAGwAbAB5ACAAJgAgAE0AYQByAGsAIABBAGQA
+bABlAHIAAAA8AAoAAQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAA
+egBsAGkAYgAxAC4AZABsAGwAAAAqAAUAAQBQAHIAbwBkAHUAYwB0AE4AYQBtAGUA
+AAAAAHoAbABpAGIAAAAAADAABgABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8A
+bgAAADEALgAyAC4AMwAAAIIANQABAEMAbwBtAG0AZQBuAHQAcwAAAEQATABMACAA
+cwB1AHAAcABvAHIAdAAgAGIAeQAgAEEAbABlAHMAcwBhAG4AZAByAG8AIABJAGEA
+YwBvAHAAZQB0AHQAaQAgACYAIABHAGkAbABsAGUAcwAgAFYAbwBsAGwAYQBuAHQA
+AAAAAEQAAAABAFYAYQByAEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEA
+bgBzAGwAYQB0AGkAbwBuAAAAAAAJBOQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAbAAAAGcyUTOkM84z
+2DPqM/szDDQZNCs0PTRRNFs0bTR+NJI0nDSuNMA02TTnNPM0AzUUNR41LDVCNVM1
+YDVyNYM1mTWjNbE1wjXpNfk1BzYVNj821DbjNqE4/joHOzA7PTtKO1c72DwAIAAA
+IAAAAMkyCDOZNHE3fjeLN5g3zzf6PI49sj3BPQAwAABIAAAA8zDFMekx+DECNV01
+ATYcNkc2TjZ0No42lza9NsQ26TZJN1A3mjf0Nw84aziNOMY5AToOOgA7Nju0PCE+
+Dj/5PwBAAABMAAAAvjA7McMxAzLJMjMzBDQYNCY0LzRONGA0kTSiNMo00zQvNY81
+njUDNhE2kzaaNio3ezcROAM6RzqYOss94T33PT4+3T4AUAAAQAAAAMwwzTKFM5A0
+lDSYNJw0oDSkNKg0wDTENMg0zDSrNbo1YzZxNic4/jgrOXM5tznMOUs+ez/MPwAA
+AGAAAGgAAAA3MJEx1zEuMj4yxzTXNOs0ODURN6k4MTkBO2M7+Dz8PAA9BD0IPQw9
+ED0UPRg9HD0gPSQ9KD0sPTA9ND04PTw9QD1EPUg9TD1QPVQ9WD1cPWA9ZD1oPWw9
+cD10PXg9AAAAcAAAGAAAAFszYzN5M4czhjaWNqA2AAAAgAAAIAAAAPMy3DTiOec5
+3jqIO5s7ITwvPNQ84zwAAACQAAAsAAAAuzDLMIExrDHMMecx4Do9O0k7/z1XPuA+
+BD+nP8M/0z/yPwAAAKAAADgAAABAMKUwrTCzML4wyzDTMOEw5jDrMPAw+zAIMRIx
+JzEzMTkxWzFtMckx5jHzMQAyAAAA0AAAHAAAAKAwrDC4MMQw0DDcMOgw9DAAMQwx
+AOAAABwAAADYPdw94D3kPeg97D3wPfQ9+D38PQAAAQAUAAAAFDAYMCgwLDBAMAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+}
+}
\ No newline at end of file
diff --git "a/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.txt" "b/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.txt"
new file mode 100644
index 00000000..795967d5
--- /dev/null
+++ "b/src/Utils/UILogToScript/\320\234\320\260\320\272\320\265\321\202\321\213/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260_\320\222\320\275\320\265\321\210\320\275\321\217\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260.txt"
@@ -0,0 +1,1604 @@
+{1,
+{#base64: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
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0KMDAwMDAwNjAgMDAwMDAw
+NjAgN2ZmZmZmZmYgDQoQZRGCe0ICABBlEYJ7QgIAAAAAADQAZQA5ADMAZgBkADAA
+OAAtADUAZQBkAGEALQA0ADQAZABkAC0AOQAyAGUAZgAtAGIAOAA0ADgANgA3ADIA
+OAAzAGIAMQBlAAAAAAANCjAwMDAwMTk0IDAwMDAwMjAwIDdmZmZmZmZmIA0KlZI9
+jpQxDIb7lfYSW3+W7NhJnOPEjnMAJKrVSIiKDomKijOwBRL/XCFzEq5AZgeoKBYr
+slK8fvzGzs8vP+7puL25l2g8ByrkGB1ExoCWYoKpaKlJ2ShOx6PUWZnCFYaODDIb
+g/aUYDabPbByqvOiu3KPIZFzMMO0OkFUAsxnhdTLKLVmJsaDiBLmaqDJDaROByOb
+0F1GJgs1tAsO/4LxwEPFSYkUahUBoUrbb5kQBbM0sYTKp+NuvV1fz6/Xm/VtfTi/
+uuT1ab1bD+cX6/16WN/PL9fn9fHuir579vzuySX/Ad9+T7c3p+0ZKaIkKGoKwtFB
+Kyugo7q5esNtYut/B/wj/YnTIRfTyTwmDgJsSkA0CljbcMSMtjfSWx67+0XKo0dH
+KlCaVZAYAk0yA6XaiLimGeVIBxl3HjghDy97HaFgfWNZHVs1RxxyzFk4JlXwXnGz
+kkBXGuDM7KkWJ5LHpiMbxv5XkHIZsN/v0JwL7Hr0Pof2sls+aTKPvPBiliOD1b6F
+o+5beIOSlbD20prP67Sv5xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCjAwMDAwMDYwIDAwMDAwMDYw
+IDdmZmZmZmZmIA0KEGURgntCAgAQZRGCe0ICAAAAAAA4ADQAMAAxAGUAZQA2ADIA
+LQA2ADgAYgA4AC0ANAAzAGUAYQAtADgANwAzADgALQAwAGMAMAA4AGMAYgBjADgA
+YwA5ADAAMQAAAAAADQowMDAwMDBhNyAwMDAwMDIwMCA3ZmZmZmZmZiANCpVPQQoC
+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
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCjAw
+MDAwMDI4IDAwMDAwMDI4IDdmZmZmZmZmIA0KEGURgntCAgAQZRGCe0ICAAAAAAB2
+AGUAcgBzAGkAbwBuAHMAAAAAAA0KMDAwMDAxYTYgMDAwMDAyMDAgN2ZmZmZmZmYg
+DQqNkkuKHTEMRfdS41LQz7a8HEuWoSf9QncIhJCVZZAlZQvRm2T8JgWGsnzOvfr7
++89Puonv67p10ZidDWieAerJsGQKIJnvg/P4pPsilyUbD7QdHXSkga/dQSxwDg/E
+rdedq0sMddDWA3SGgLdZA20QelstXV6b9QWvG0V2TdwQ4gy6+gI7vuvTpouq5cD7
+0pxyNhq03AtU94bJecBNrQ82ccrr9kE8ZW3wI4UXDcHEGKbQQe6hyEVmipTZGbq5
+gUrWi0MMMNDCw2IilaX1mDI34DnF70pgaAta+FYOEdz82qynpTCZLh/AXU8FNwfM
+PRgyqSdzqEaRxePrj7f387hu5mZ1gyCLApR1gJcb7FC3g5V+j/sqMslDA2INBE3W
+KoGeUYoEjx5E1ZdQYLc9YVBVpUQdLFs1ob3KcsIxXpz1NOmqK31RQZ0ik0GwanlA
+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
+p9By3C68i69+42t3v96S6enRyrj1lUWiL+NynIavtrVFJDZdrq7q0Nj6pdd83L2s
+yd2m/MZr1kK9TaQ8ky4F7g4zCY673zYyk5zCWQwejTr1but1zxyN8yWGVXoancyn
+1C2JdCtPb/ZbSRrw2Ho2lKue2ZizrESEaYWSLHZbpXZpzSrOirzTdgUKLF759hnz
+7VXEhsbCE6mda6Sye3bmVLlekP3i8vHiVa8QjkQfpixW3EU9Es+HI+5sgYI2CPbw
+xvtnhcKLB7IVcvdqSNzjuhDXfJq78uXbotHufct7X3G2NrdErxtoHZ/Kf+3hG9m1
+7LlI5aGdsiXf+kNz/EKNi8SG7NiP+Xvxzj/TZnWz58Twz6dS4z2znada5r0pGxpo
+InsGONI/N3O3W0eybKnKZ9akyLpnfBdxatxs7Gn6KtRXd6NXU3a3XVunG2ev/ph2
+h7pVdnlWTWpZz4GGPOOR+UKC5JeKipiq0meExHyrG1cLZLCkxtJE1vbnq216rO+7
+d0qvDXfLL95IqWaS8HA4o+Anr17JWXA5juuRRC/WLnaUSRH1fwOihPhhZ5LyIytF
+BZYamuuGydD90Rl2258kGZizx3Q+NS2raooZHp2p65x8w2VeeHtzRHZhnGJkaoNk
+ylFLgaqNfNKdVi3+k3tOG4xStrVnrxUaKlRvL0yRTIqKxO5IkTgsloVceDWjmHO+
+jpTl4BA6JEmjzffqGbSm8tg9vyITdfaNcNpJvFFeBiU0q/JG//D4u8aJYZnInkfU
+vJqum9kODh/SjAxX1Xv7ec757872JmqO2snj1+DYOH00JAUmSEa9eWwOjwOs/T8R
+qN6T3yfky+5VEa+EJEgeV01nO/WjPE20NDaKJ6wna6XGaJ7OfNhEUKXJsNd+iRoD
+HfkeW6x52JhhhPPIUUXzqseS1q8wMcJn9Mt4YiOHpW9UdWrc565J1zCbLFsen5HE
+8SIpVhCH1NubENs3nHCe8X1m1R9q7VBWKkxLv9qmF3ssmScpwSKlvYc/q/5J80z/
+x8S6ma/27c6BUkNh3j2F1vppUeY7bAV4RMSlhXm7/DVkLhhIkzO856hDdkP7VuLq
+bFw1GrdczU7ADKTFiC2vz1BxmiuXv9svc+dzo16BYqRAGi0PF31LxqT2vbBV42qj
+iB8eodSBb2F6SkUmMqRgCZyUmrwAy5dyq035sSZb/XuoYcTRCKefE0Pv7lfN/dyX
+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
++fGw5fCVB/zDZ+s23818Fl+T9rR27+NaTv7xekO24OfRPusbHrQsecFUophwN0n/
+lM9s6GmFdWsTR1aJJ93QvZjsan3r7Ir3X870HaxJK38ylRpxp+GihmDSpZmwyymF
+fjLnQrGCF4hlG89PNO2PPa5GOLnJkS2Ou39XfMMJz5iDlz6eWPf91XEW08PHHksX
+Rp53PXbYluf+waU5Q4e6u5qiEuutj1jecDkqKqYV/TKQO2ugMT0TX5p8043lxa1r
+vtPZH/bsu7taYNMdv9sCt+88XpkxfkjshsoHpWsh23ZfL9IzSJ9aXX1Za/3E1X1z
+N69UJl8qrA5qLGAVf3dPP6Oy6PDz43nPX3Hl8+Zq55ryOuecoG4ra1/hUSps4lhs
+9Y21JOEisbwnpqBCsi/yvt2ursoU1U8LvxFf7k69iXt6QqDw7ud452Qb9Z4x5ZXe
+jt2X2jVKagpWje5nN4/xq+hzbcccxWxsu1/8xavjdV9vqIqtC992C3GbtOHrhJkZ
+vjShdbenAnr3Pnjq/iTjTkgg+/rnL/xkz9454K/ILyasd63ox1GxxtQlDcNyV4Li
+1+U8xt9mDzeuTVe+qysW93Qnh7Z7Yd5RpFHJQsMz+aMj15EdYwPkt8lHqdFHm15r
+9RU0xJvbhaqs0ns/yBe91Tb0jf6nDu4py/seYwpTl02S06rtVhDkB1JtzA+Y+n17
+8pU98aV+xn6f2QdiammNW2KlixTSksRq5OQPpJfOGYszGeD38U3Gn840Gf5+QciW
+LJ2pZ0uUOnXv+OXvLUK7G7xuP8vkrTzA1s/6yClqV7p/85CkaNFkVvEOM+Fenaaq
+d0c8Iw727a1T4nkUauJdx817JSjX4wmF5cnqzuJ0M0O/lK+zLfOnPrtZRGzvUpfg
+KZHbfA+rv+pazuhjSa5jVw+9ylmi6d5+QKF5T0Ki77JJbdnvzJHnT7klKOkdW51o
++6nA0Mmaa4qNuHRzZu+N8YbSn6d7PxqtLT5ufUHU/aOcP1PAmElZrZlSz6vpgwSX
+De+2eeulX2yJfDL9kOQhGhbDGzjooF5n32+RvcV6Xv/bcMrK7BPHgkTUR0VYDutP
+levKXVo+skzm3LY9Bif62u+q2Oc8+7Tjnva2t027jC0icuY/ir901l5O6zpqhHuq
+PPLOPy7u8KpPqa2nLKdzDw9ud9SyJWplxOMil6n4DnFHP2Qv1LrhU6Hffw07G/1Q
+1HS10t2vWzYqr9g9EZPKn5SiULkHn9wptWeydtMDk+y1zXOYB14Gbte/J+2SNJfX
+DHNIS0p+Kz3+ZbO3OPZre4TTO+emOMeeex+qcHFbwwtH1D0Qo87G8uXlx3qJ7wku
+2+NXtE1TznulsrBV3Ki4j3nYcafAlyTMjrOSCtxy/vqL1fNFe6P5eZ/0B5/m63wu
+f7syU0Oc3+jg9d3SHY/dQpzCMXyBDdk/nwXVXrC5Nr5iVCzJeO6OZtYG/l31uzd/
+Zn0xftyl21A21nXKYHhaKczSIHGpqpVsbteH823386cfj3BuuHxSfIzH+bKZJ5vO
+BcvKKDnSq6TT59TWrv1pIWtdci51uGf2pEOAgGq/SGgWae0L/hjTW8x6QxvKIg/h
+3/Ql7N5p/03QdGTH3Pg23RTaYdblrboUw8cnXtyMUM9qaDtgoOH7SNZh3+7j+dXP
+PrftkGrz67+cyzEhtHRwU2bYIcE6z/ZboTx5JVWX7TERjzUvZv08KCN87i1M/znj
+JC19o91EMnS7AqrW+PWsOdNSYopjOTSWWzx09iq36V6J3LVL1zfrmvzw3aE48urb
+I0v3hBv1OVnLgrlehLuVUM70YFnH8a5UNxolmIpf+EIAfr2ff1igp7tHMPpVXDVF
+ZQJBDb+RSvFVpPmF+OONKZ40Whj+9+8nEOQRPhaEBWEH9NegcSzCB9ZinBXBw7YY
+Z4H9sBEQPnZQdP+v+EHYFuN49Hf5MGgcjTFhEJbFOBMG4nxo/Nf3FtDv354AnNAv
+5LJbAHyIEHsQIsAGKez+AAFBcA8QPjYOiDsBcNq49MU/pGKHWtj1we6DdFaI2wJi
+YJ9CBNm0Ib4H0AC7EeFn44e4B7AK7BxQKID9GGAC9hjkZ4G4NSCECLO/gfwKEA8G
+VCH9KeTnhrgrIAN2Jih6fBRgCPYw5EfLswckwU5BhNisIL4P0AG7A65HFOI0YA3Y
+xaBcwEnADOwpyM8M8a2AANR/FeqXhjgM69iVIb0a6ueEuDOwAuxroEzAYWAd2IOQ
+HxqQ3Q5YAvYZqH89xMMBLbBboX5BiHsB8mAXgKLtGQNsBHsS8mMhvh0QQfThUgTZ
+oHfYdwMkSK+H+nkh7gbIgn0bFG3vaMAI7I+QHwfxXcBSsC9C/S4QjwB0we6G+iUg
+7gusBbsclAeIA7aAPUvvf0uAH64/kt7/AQAR0qvo/U8BloN9BRQDHAIMwB6g9/8O
+QBzs0/T+DwM0wW6m978nsBrsPFD0fI8DpmB/off/NkAYPsBMmMX+DwHUIP0Zvf+p
+wEqwb4Ki7XUE2AD2e3r/OwBSYJ+n9/9+gAx2F73/fQBFsEtB0fJg2s6+GewZev+j
+eQTh+h/R+z8IgH7APab3P9qmsB93AxQ9PhKAfsYN0ft/JwDtjEui9/9eANoB10bv
+f28Argt3DxQtDzyPfRPY3+j9bwOI/tb/oYA6pL+g9787IAd2Niha31HAGOzP9P53
+BKDfcKn0/j8A6IHdQ+9/P0AJ7EpQtLx4wBzsn3/w/4cM/n+Zwf/7Gfw/gcH/mxj8
+P5fB/8f/4P+1DP6fxeD/Iwz+f47B/zsZ/L+Ewf+n/+D/NQz+f53B/98y+P9ZBv9/
+yeD/hQz+//UP/v+cwf/vMPj/Jwb/v8Tg/68Z/L+Cwf/n/uD/jxj8/yqD/79h8P9E
+Bv9vYfD/fAb/n/iD/9cx+P8tBv//wOD/Fxj8/xWD/5cx+P+PP/j/Ewb/z2Dw/3cM
+/p/M4P/tDP5fxOD/3//g/w0M/n+Xwf9HGfw/jcH/exn8/z6D/88jfFgMIorFYASx
+/IgEFsPHj8Ui4lgMizDWAJHCYvT5sMyIGBbDJIRdjkhiMXgBLA5ZgsWwi2APIfpw
+6nxYJsh/CPKLo/nF+LFsaH5WYSwFze/Eh2VB8zMLYYlofoIAlhvNzyWCfbiYH+FH
+0JdXsSNsCA7GOxww/uGEsQ4XwoxwI0wID/r3YP+MU/4Zp/wzTvlnnPLPOOWfcco/
+45R/xin/H49T8J6+f1oP2kwJ9MYbuNKogXj0b6LRFR9WKJUdyuWAMrmhHH5EEBFF
+JJBliDSigKgg2sh6xApxQYKQSOQq8gh5gyz8NgmCLK4J/bbx0zcB+iZI34TomzB9
+40NqkeqFv8tmop8Del3ckFMcWY4QEQOEghxCHiIYzCEMhgnDjGHBsGLYMVwYPowY
+Bo8hYPQxTr/X/6vOX3WhdYjAJgqbGGzisC2BTQI2SdikYNNH9P/49zsYBpgYYGaA
+hQEsA3+qh7FcxnJY6bDRYaeDo8NBh5MOFx1uOv9uYPrt7+j5+AXAzXCsHFhOFi5m
+biYeDC/UxY6cBMyAemANcBugAR8BSeAiYA90AzpAObAPmAWYgMPAOqAKWAFcAZyB
+AQBqRE4DW4FmQBnIAwKBLwAHEANsBJ4B8sBNwAt4DywBzgN2QBegBZQC4cAMwApE
+A0bAY0AWuAG4AUOACJAEbAfaABJwD9gNfAN4gDhgC/ACWAtkA77AZ2ApkArsAnoA
+XaASiAB+AhjgEGAAPASWA5cBCtAP8AMJgCXQBBCBXCAAGF/wYXbkOGAK1AKrgSzA
+ExgBxIFzwA6gE9AESoAwYBrAAkeADUANsBK4DlCBt4AwcBbYBrwE1IBCIAT4CnAD
+scBm4DmgCNwBfIBPgBRwCXAAXgNkoALYD8wBgnAFghgckgiaCGoFagXaAtoCqgKq
+ApoPmg8aBBoEOgE6AcoJygl6AvQE6CbQTaB1oHWgCqAKoLdAb4F6g3qDfgD9ACoB
+KgF6AfQC6E7QnaCvQF+BaoNqg5aBloHuBd0L+gP0Byh6F2MDPQp6FNQY1BgU/YXd
+J6ByoHKgGaAZoO6g7qDvQN+BioKKgiaDJoPagNqAtoO2g6qDqoMWgRaBhoKGgn4H
+/Q7KC8oLGg8aD2oOag7aANoAqgSqBHoX9C6oH6gf6CjoKOgy0GWgaaBpoI6gjqC9
+oL2geqB6oPdB74MeAD0AOg86j8Et3Bn0ATzgBPABFgAB8F94yrAhJsAqwAMQA2wB
+DWAPwAIYAjKAKyAEWAOqQDDADCVEAuuBR4A0cBVwAd4s3AnR/7/ALnySxQD0ySIE
+cAGSABMgAKDPzyULTz4s+DQW/BYLvokF/8OCj2HhauD5DqCbMMANSAHMgODCsxcL
+nxX0qYWFPoM7M4aJmYUFi2WFwAaBnR5w9MDBEDgZAtcfAvcfAs+/GXj/zbDwNBAQ
+FBSCIAxBhB5E6UGMIYgzhCV/CBJ/CJL/ZpD6N8NC/2NZ2dAeR3v3V5/9als+euCn
+BwF6EKQHIYYgzBBEGIIoQxD7QxD/Q/g3218S+W38wvzbmIX1t3EKB30swrMwbkN/
+lQoBH0UQNDP6n5LomwdhNo2gbxxER2YW6Lob4I++PQVAfw7rAdD3vxk7/V4vK70+
+Lno9YvTyCfRynejlPaBnPvh/UYD1GMJnAjB/Rvh0QNcAeIALmIXpxuDoYpoW5NNx
+c9Va6aqLrHT5jxt6Cv/1+4uQ/+S9R3/v/z95V1IQPoga/J/mWUz9lebsGYynlxVI
+9adSfs+38Aao3zOh7waC0/Wh+Ib9yuQX+PepBoX5OPvRgv7KHxTsF0iFKmh+Lt6/
+yvm9DRYTgsP8qeg+F7/AQKrLX2fj4kFFG+Tv/a6UYMqvvQjiQaW4wqTGJdAF7+MZ
+5EMJdvFAQny9ff1CffH0NJgbuf913r/qDPX0dfULxQd5hlP/Ot7Fz8c/kBoU5Onn
+i/ehBnv4uf5e76+a/j4fH39KsKczjYrfTQ1EM6HlO4e4ucFR1MBAv8DF+oJgj6eL
+J9U3GAr18QsMQxaugH5EUHAgleLz9/FunlAeQ5ovnIcvlYp2rEsw1EOBMjLH/vaF
+1HH46OaAr/y2bwB9t0DOf+/7CXYwufmHBLsgeUxB/oGevsFuyC4mt0Aq9GoCkw+F
+Br2MIOVM6FUtXp85k5sbLSTIA0GeIo6wzxem4jZMbn7+VF/EAc1JcUVsoczFsvox
+jruDfOkG4sbkhr6ADMp2ZXILptJoiDOTWxCV6o2YMbm50PyCIGUdkwuNSkFrQ2As
+5ejmulDyZqvt67dar3WFLDBqcvT0RV9jFugDI1RHiqtXSFAwHOi5G4HRqqFnEAW6
+19oDPRMzT+dAaPj1cB1ByKYNW7dsMFNRXiwFDZ1SPetQFZlcvDep0BH7giCDQM7E
+4n2FTxDucTCpJ4A6Af5wIzwoAayEY2QQ5JQI7AfSl4ACfeII0gj3Igs4lm8D7F8P
+edWhLNAxIB3uTXxkyAfwwf4+XcinBzbgpAXlwln1wTH+aBrE9eG4MSDdBm5vRlC2
+NeyDcvXhhnvQB47bBvHtUBZoI9h80Cd8aNopyJMA5QIHATxc5yqACGgDpoA5YAO4
+Av7AXuA4kARcA3KBSqAF6Ac+ApPALMD0FT6PgAAgDuABOYAAqAO6wAZgC7ANoAAe
+QAAQBhwCYoGLwB2gBKgGmoFe4COA+QbzYWApsBogAAbfkH9Zkfh9VYQLRoA8MLpe
+XIcRXFhhEFlYWxBfWFVAVxSWwugZDzO2FTAqlYGZkyyM9lfBDEweZh1rYCa0Fkbf
+BJixKSPhNE9n4sIHhoKuw6goI7/uN39F/t61zi8EvB7uanAY/ds+v3QxiW6gaz2/
+4hv+3m0KH2plx9+tvwwLSiDFJ+gvK9DT56+St1LRmyTdsKIGG/59u3GnBjvC2TgG
+ow6BuIf/5VhoFHU29/BF73IPp/q5of8uuLh7+KKDu4dDAS6LEgRCP5TuzBAJWUgF
+QVMXHB8V9CYNkQW3RiXYf/Hk3cMXPN49PMSXXu7ivYC+DvZL16GP0t/iaAP9Zi42
+C33HQkPS478dR2/I36y/jMXWohv/2lq/dob5uvwet/CDy4WnzV/9Hr5hoZXQT8Z6
+2Ae3fiP0WbWwY/vfz5R/wv/sgD4P0B+LQH+PAH0hF/q7qui6LforEuh79dFjltLf
+UYmGU/R9gvRxNNM/Tfg/uvfp04mDjPsxi9OL/7AfB/MRE3TKwYdBNJj/Y4kazOg7
+1rcjVogj/LsB2QoxU8Qc2QK2KfxrBHE0VLCM/lx8ti2+CfWX6tHLYVlI+9eQxITm
+sEKCkUDEE4GbNJTmidAQKpTsi7ghMBxAAheOISCqgOaCbkDQM3KFTzHmr+MNAXi0
+LZTjD+V5Qt7F21k4pHsizvDcdEUokEKBmAuk+sBxgQu5guhH4+lHBsIxgUgY5F0D
+T+i/69gOBP519MI7suCJqwygYy9VeIpjFs47eOE4XyiFBu1DgZqov50HmscV4uhQ
+bh+C/ky4GaS7Lxy9Hkr2h5rRq3BHPJDghTnrenjC4yGfJmxq8JRXhlZA2wGPbISc
+FKhJEfL6ISGQF48Ywx7PhfLDwJIFNi9cjzfEDBZqRs8O/V1m9HzN6XV50s/317X6
+/pfnLb+wjmUBef1gXwi0Z/BvV/p3noXv/y604b8ey9iSv7fjYbhGzEJL+CyUh7Yn
+OoEzhHYyg2sIWrhOf0gPhBQ81BK2cGU0el+i7eG6UBseeoOy0Nf+kBa88KlYbBFj
+eguhOfBwNn4LFmWhLmShLvQzt32h3f7jJxKBsRc6ibde+KT4Qhm0hU/W358LHMsg
+y3+by4PDo33irmypck3lhUqHynuVHypcquKqCqpkVUvVnao+qhGqp1UvqmarPlDt
+VH2nOqHKrCaktlRtjdo6NSs1J7VAtUi1c2pX1XLVqtRG1KbV2EjCJD1SK+kN6bLG
+Ty02bYI2WXujto12hw66RoEuU9Qqs6ucUw1Qj1A/oZ6i3qA+oxNHziM/JKM3GPRe
+MkGoIY4Qp4hMag5qGJIkyZi0hRRMiiMlkypI1aQRkqm6hfp59Ul1Xg1vjViNx5oY
+LR4tRJukXaCzXJdHb1oPXQMxg3IqCdrER0Rm5VplFRUWVTFVWVUl1S2qTqoJqldU
+n6m2qCqpxaulqjGT+EmJpPMkefW96vwazFrGWiladeR+8neyru5rXXSRB11SqSc8
+Vz6ickr1jGoKtEW66jXVTGiPatWnqvWqt9RK1VxIASQ5jZ8aCppBmkWa9ZqbdPfq
+1estrsV4oO/AISQQ24lrlXWVn6i2q35Q1VDjV8/SIGpitF20p3RmdRAyC5mdzEXm
+IwuRxciSZDxZhryKvIZMIKuSNcg6ZH2yIdmEbEa2IFuTbcn2ZCeyK9mDTCP7k4PJ
+e8iLi1DoMtBOFReVMJWjKtGkJFI6aXEhCW3zCeVu1QHNd5o9Wse0L2gv11HSadV5
+o4M+wNH7FIKUEeoIh4i3ifXEd8Q+LbK2qfY82Ua3T5dFL0PvkV6L3he9xQWuhbUv
+wnXCHUI+oRLytBD6CUOED4Qxwg8CO1GAKEdUIWoSdxJ9iLXEIeIEOpmAydniGlo6
+4TahmFBNaCR0E4YJkzDV4CKii2VoWge5m9xHHiQPkz+Sx8iT5CnyLBn1InQNTogg
+RlhFWEPQJ/zzhP5/Hf4X}
+}
\ No newline at end of file
diff --git "a/src/Utils/xddGuidShow/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Utils/xddGuidShow/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 100%
rename from "src/Utils/xddGuidShow/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Utils/xddGuidShow/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
diff --git "a/src/Utils/xddGuidShow/Form/\320\244\320\276\321\200\320\274\320\260/module" "b/src/Utils/xddGuidShow/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
similarity index 100%
rename from "src/Utils/xddGuidShow/Form/\320\244\320\276\321\200\320\274\320\260/module"
rename to "src/Utils/xddGuidShow/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
diff --git a/src/Utils/xddGuidShow/ObjectModule.txt b/src/Utils/xddGuidShow/ObjectModule.bsl
similarity index 100%
rename from src/Utils/xddGuidShow/ObjectModule.txt
rename to src/Utils/xddGuidShow/ObjectModule.bsl
diff --git a/src/Utils/xddGuidShow/maps.txt b/src/Utils/xddGuidShow/maps.txt
new file mode 100644
index 00000000..7d6abefd
--- /dev/null
+++ b/src/Utils/xddGuidShow/maps.txt
@@ -0,0 +1 @@
+Form\УправляемаяФорма\Форма.bsl-->92eac85b-2ca6-453b-8e22-0f36d0ea780b.0 (219, 239)
diff --git a/src/Utils/xddGuidShow/renames.txt b/src/Utils/xddGuidShow/renames.txt
index 09db2da3..534d7e2d 100644
--- a/src/Utils/xddGuidShow/renames.txt
+++ b/src/Utils/xddGuidShow/renames.txt
@@ -1,13 +1,11 @@
44cb9069-2878-4703-b01b-33aa08c11930-->und\44cb9069-2878-4703-b01b-33aa08c11930
92eac85b-2ca6-453b-8e22-0f36d0ea780b-->und\92eac85b-2ca6-453b-8e22-0f36d0ea780b
-92eac85b-2ca6-453b-8e22-0f36d0ea780b.0-->Form\УправляемаяФорма\Форма.txt
-92eac85b-2ca6-453b-8e22-0f36d0ea780b.0-->und\92eac85b-2ca6-453b-8e22-0f36d0ea780b.0
92eac85b-2ca6-453b-8e22-0f36d0ea780b.0-->und\92eac85b-2ca6-453b-8e22-0f36d0ea780b.0
a336df50-4fff-4b45-98a1-a69ce7ae23f3-->und\a336df50-4fff-4b45-98a1-a69ce7ae23f3
a336df50-4fff-4b45-98a1-a69ce7ae23f3.0-->Form\Форма
copyinfo-->und\copyinfo
d3dfaee6-6db7-4643-bc26-98aab6f9dd78.0\info-->und\d3dfaee6-6db7-4643-bc26-98aab6f9dd78.0\info
-d3dfaee6-6db7-4643-bc26-98aab6f9dd78.0\text-->ObjectModule.txt
+d3dfaee6-6db7-4643-bc26-98aab6f9dd78.0\text-->ObjectModule.bsl
root-->und\root
version-->und\version
versions-->und\versions
diff --git "a/src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
similarity index 100%
rename from "src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
rename to "src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
diff --git "a/src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\244\320\276\321\200\320\274\320\260/form" "b/src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\244\320\276\321\200\320\274\320\260/form"
index d25182ed..3736c6bd 100644
--- "a/src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\244\320\276\321\200\320\274\320\260/form"
+++ "b/src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\244\320\276\321\200\320\274\320\260/form"
@@ -1,5 +1,5 @@
{27,
-{16,
+{18,
{
{1,1,
{"ru","Конвертация тестов xUnitFor1C в версию4 из формата версии 3"}
@@ -7,14 +7,14 @@
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -32,8 +32,7 @@
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0}
-},21,0,2,
+{1,0},0,0},25,0,2,
{0,3,1},
{0,6,1},2,
{0,2,2},
@@ -41,38 +40,56 @@
{0,2,3},
{0,3,3},
{0,6,3},0,0,
-{3,1,
-{3,0,
-{0},"",-1,-1,1,0}
+{4,1,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""}
},0,1,
{1,1,
-{3,
+{4,
{1,1,
{"ru","Страница1"}
},
-{3,0,
-{3,0,
-{0},"",-1,-1,1,0}
-},-1,1,1,"Страница1",1}
+{4,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""}
+},-1,1,1,"Страница1",1,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+}
+}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,33,0,1,2,0,0,0,0},
{2,392,1,1,3,0,0,8,0},
-{2,259,0,1,4,0,0,33,0},0,4294967295,5,64,0},
+{2,259,0,1,4,0,0,33,0},0,4294967295,5,64,0,
+{3,4,
+{0}
+},0,0,57,0},
{0}
},
{3,
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,2,
{2,
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -90,15 +107,14 @@
},
{3,0,
{0},4,1,0,00000000-0000-0000-0000-000000000000},
-{1,0}
-},8,2,1,0,1,1,
+{1,0},0,0},9,2,1,0,1,1,
{5,ed01fa45-2335-4c14-a640-86e38fddc832,12,1,0,1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,0,
{0,0,
{0}
}
}
-},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0}
+},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0,0,0}
},
{8,0,0,400,25,1,
{0,
@@ -132,14 +148,14 @@
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,3,
{2,
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -157,15 +173,9 @@
},
{3,0,
{0},7,1,0,00000000-0000-0000-0000-000000000000},
-{1,0}
-},8,2,0,2,0,1,
+{1,0},0,0},9,2,0,2,0,1,
{5,446869d9-b94d-4b96-9a69-26db4a727003,3,1,3,
-{6,15082afb-9836-4847-90b9-46954d7dc19a,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
-{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
-{6,68c603a3-e31a-427c-88b8-492d345a62bc,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
-{6,2,00000000-0000-0000-0000-000000000000,142,
-{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0},
-{6,8d65addf-45e2-4e95-ab96-6b0df61bfe94,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,93562579-671f-42b5-b855-1450bf6d6215,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаКонвертироватьНажатие",
{1,"КнопкаКонвертироватьНажатие",
{1,1,
@@ -177,18 +187,23 @@
{1,1,
{"ru","Кнопка конвертировать нажатие"}
},
-{3,0,
-{0},"",-1,-1,1,0},
+{4,0,
+{0},"",-1,-1,1,0,""},
{0,0,0}
}
-},0},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,8d65addf-45e2-4e95-ab96-6b0df61bfe94,
+},0},
+{6,e5acf1ab-09d1-4e16-acc9-c30b8e4aa29f,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
+{6,2,00000000-0000-0000-0000-000000000000,142,
+{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0},
+{6,bfa336b5-b229-4494-a2a5-a02a20c315f2,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,93562579-671f-42b5-b855-1450bf6d6215,
{8,"ОсновныеДействияФормыКонвертировать",0,1,
{1,1,
{"ru","Выполнить"}
-},1,446869d9-b94d-4b96-9a69-26db4a727003,1,1e2,0,1,1,0,1,0,0},15082afb-9836-4847-90b9-46954d7dc19a,
+},1,446869d9-b94d-4b96-9a69-26db4a727003,1,1e2,0,1,1,0,1,0,0},bfa336b5-b229-4494-a2a5-a02a20c315f2,
{8,"Разделитель",0,1,
-{1,0},0,446869d9-b94d-4b96-9a69-26db4a727003,2,1e2,2,1,1,0,1,0,0},68c603a3-e31a-427c-88b8-492d345a62bc,
+{1,0},0,446869d9-b94d-4b96-9a69-26db4a727003,2,1e2,2,1,1,0,1,0,0},e5acf1ab-09d1-4e16-acc9-c30b8e4aa29f,
{8,"ОсновныеДействияФормыЗакрыть",0,1,
{1,1,
{"ru","Закрыть"}
@@ -197,7 +212,7 @@
{0}
}
}
-},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,643ced3a-fa90-4cfa-855c-4e77e8a13ad8,1}
+},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,448e7628-a6c8-409f-ac77-3fe93138ebc4,1,0,0}
},
{8,0,267,400,292,1,
{0,
@@ -232,14 +247,14 @@
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,6,
{1,
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -257,32 +272,57 @@
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0}
-},21,0,1,
+{1,0},0,0},25,0,1,
{0,8,1},0,2,
{0,5,3},
{0,8,3},0,0,
-{3,1,
-{3,0,
-{0},"",-1,-1,1,0}
+{4,1,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""}
},1,1,
{1,2,
-{3,
+{4,
{1,1,
{"ru","Каталог"}
},
-{3,0,
-{3,0,
-{0},"",-1,-1,1,0}
-},-1,1,1,"Каталог",1},
-{3,
+{4,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""}
+},-1,1,1,"Каталог",1,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+}
+},
+{4,
{1,1,
{"ru","Файлы"}
},
-{3,0,
-{3,0,
-{0},"",-1,-1,1,0}
-},-1,1,1,"Файлы",1}
+{4,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""}
+},-1,1,1,"Файлы",1,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+}
+}
},1,1,0,8,
{2,6,1,1,1,0,0,0,0},
{2,6,0,1,2,0,0,0,0},
@@ -291,7 +331,10 @@
{2,6,1,1,1,1,0,0,0},
{2,6,0,1,2,1,0,0,0},
{2,376,1,1,3,1,0,6,0},
-{2,200,0,1,4,1,0,6,0},0,4294967295,4294967295,5,64,0},
+{2,200,0,1,4,1,0,6,0},0,4294967295,4294967295,5,64,0,
+{3,4,
+{0}
+},0,0,57,0},
{0}
},
{8,8,33,392,259,1,
@@ -324,14 +367,14 @@
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,4,
{3,
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -349,17 +392,20 @@
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0}
-},7,
+{1,0},0,0},9,
{1,1,
{"ru","Каталог:"}
},0,1,0,0,0,
{0,0,0},0,
{1,0},1,
-{3,0,
-{3,0,
-{0},"",-1,-1,1,0}
-},4},
+{4,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""}
+},4,0,0},
{0}
},
{8,6,6,50,25,1,
@@ -399,14 +445,14 @@
},
{
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -424,16 +470,15 @@
},
{3,1,
{-18},0,0,0},
-{1,0}
-},21,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0,
+{1,0},0,0},29,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0,
{"U"},
{"U"},"",0,1,0,0,0,0,
-{3,0,
-{0},"",-1,-1,1,0},
-{3,0,
-{0},"",-1,-1,1,0},0,0,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,0,
{0,0,0},
-{1,0},0,0,0,0}
+{1,0},0,0,0,0,0,0,0,16777215}
},
{1,
{9a7643d2-19e9-45e2-8893-280bc9195a97,
@@ -455,8 +500,8 @@
{1,1,
{"ru","Каталог начало выбора"}
},
-{3,0,
-{0},"",-1,-1,1,0},
+{4,0,
+{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
@@ -495,14 +540,14 @@
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,7,
{3,
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -520,17 +565,20 @@
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0}
-},7,
+{1,0},0,0},9,
{1,1,
{"ru","Файлы:"}
},0,1,0,0,0,
{0,0,0},0,
{1,0},1,
-{3,0,
-{3,0,
-{0},"",-1,-1,1,0}
-},4},
+{4,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""}
+},4,0,0},
{0}
},
{8,6,6,46,25,1,
@@ -570,14 +618,14 @@
},
{
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -595,16 +643,15 @@
},
{3,1,
{-18},0,0,0},
-{1,0}
-},21,0,2,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0,
+{1,0},0,0},29,0,2,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0,
{"U"},
{"U"},"",0,1,0,0,1,0,
-{3,0,
-{0},"",-1,-1,1,0},
-{3,0,
-{0},"",-1,-1,1,0},0,0,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},0,0,0,
{0,0,0},
-{1,0},0,0,0,0}
+{1,0},0,0,0,0,0,0,0,16777215}
},
{1,
{9a7643d2-19e9-45e2-8893-280bc9195a97,
@@ -626,8 +673,8 @@
{1,1,
{"ru","Файлы начало выбора"}
},
-{3,0,
-{0},"",-1,-1,1,0},
+{4,0,
+{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
@@ -666,14 +713,14 @@
{1,
{
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -691,11 +738,10 @@
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0}
-},4,
+{1,0},0,0},5,
{1,1,
{"ru","Искать в подкаталогах"}
-},1,0,1},1,0,0},
+},1,0,1,0},2,0,0,0,0},
{0}
},
{8,6,30,376,49,1,
@@ -732,14 +778,14 @@
{1,
{
{
-{10,1,
+{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
-{6,3,0,1},0,
+{7,3,0,1,100},0,
{3,3,
{-22}
},
@@ -757,11 +803,10 @@
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0}
-},4,
+{1,0},0,0},5,
{1,1,
{"ru","Подробный лог"}
-},1,0,1},1,0,0},
+},1,0,1,0},2,0,0,0,0},
{0}
},
{8,6,54,376,73,1,
@@ -797,7 +842,7 @@
}
}
}
-},400,292,1,0,1,4,4,35},
+},400,292,1,0,1,4,4,42,400,292,96},
{
{1},6,
{5,
@@ -889,8 +934,8 @@
{1,1,
{"ru","При открытии"}
},
-{3,0,
-{0},"",-1,-1,1,0},
+{4,0,
+{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
@@ -898,7 +943,11 @@
},1,4,1,0,0,0,
{0},
{0},
-{3,0,
-{3,0,
-{0},"",-1,-1,1,0}
+{4,0,
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{4,0,
+{0},"",-1,-1,1,0,""}
},1,2,0,0,1,1}
\ No newline at end of file
diff --git "a/src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\244\320\276\321\200\320\274\320\260/module" "b/src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
similarity index 100%
rename from "src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\244\320\276\321\200\320\274\320\260/module"
rename to "src/Utils/xddTestsConvertIntoRebornFormat/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
diff --git a/src/Utils/xddTestsConvertIntoRebornFormat/ObjectModule.txt b/src/Utils/xddTestsConvertIntoRebornFormat/ObjectModule.bsl
similarity index 90%
rename from src/Utils/xddTestsConvertIntoRebornFormat/ObjectModule.txt
rename to src/Utils/xddTestsConvertIntoRebornFormat/ObjectModule.bsl
index 1dfacafb..56f4c7e1 100644
--- a/src/Utils/xddTestsConvertIntoRebornFormat/ObjectModule.txt
+++ b/src/Utils/xddTestsConvertIntoRebornFormat/ObjectModule.bsl
@@ -9,9 +9,18 @@
Перем RegExp_ПолучитьСписокТестов;
Перем RegExp_КонецФункции_ПолучитьСписокТестов;
+Перем ПолноеИмяБраузераТестов;
+Перем ПолныйПутьКФайлуБраузераТестов;
+
//{ Интерфейс конвертера
-Функция Инициализация() Экспорт
+Функция Инициализация(СлужебныеПараметрыЯдра = Неопределено) Экспорт
+
+ Если ТипЗнч(СлужебныеПараметрыЯдра) = Тип("Структура") Тогда
+ СлужебныеПараметрыЯдра.Свойство("ПолноеИмяБраузераТестов", ПолноеИмяБраузераТестов);
+ СлужебныеПараметрыЯдра.Свойство("ПолныйПутьКФайлуБраузераТестов", ПолныйПутьКФайлуБраузераТестов);
+ КонецЕсли;
+
ВременныеФайлы = СоздатьУтилиту("ВременныеФайлы");
КомандныйФайл = СоздатьУтилиту("КомандныйФайл");
Ожидаем = СоздатьУтилиту("УтвержденияBDD");
@@ -21,6 +30,7 @@
ВключитьЛог(Ложь);
Лог = "";
+
КонецФункции
Функция ПреобразоватьКаталог(КаталогТестов, ИскатьВПодкаталогах = Ложь) Экспорт
@@ -97,8 +107,11 @@
//{ приватные методы
Функция СоздатьУтилиту(ИмяУтилиты)
- ФайлОбработки = Новый Файл(ИспользуемоеИмяФайла);
- Возврат ВнешниеОбработки.Создать(ФайлОбработки.Путь+"/../Plugins/"+ИмяУтилиты+".epf", Ложь);
+
+ КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере();
+
+ Возврат КонтекстЯдра.СоздатьОбъектПлагина(ИмяУтилиты);
+
КонецФункции
Функция ПодготовитьВременныйКаталогДляСборкиРазборки()
@@ -151,8 +164,11 @@
Продолжить;
ИначеЕсли КодВозврата = 0 Тогда
ОписаниеИсходника.Вставить("БылРазборДополнительногоКонтейнера", Истина);
- ОписаниеИсходника.Вставить("Файл", Новый Файл(БинарныйФайл.Путь +"/"+БинарныйФайл.ИмяБезРасширения+"/text.data"));
- МассивОписанийФайловМодулей.Добавить(ОписаниеИсходника);
+ НужныйФайл = Новый Файл(БинарныйФайл.Путь +"/"+БинарныйФайл.ИмяБезРасширения+"/text.data");
+ Если НужныйФайл.Существует() Тогда
+ ОписаниеИсходника.Вставить("Файл", НужныйФайл);
+ МассивОписанийФайловМодулей.Добавить(ОписаниеИсходника);
+ КонецЕсли;
Продолжить;
КонецЕсли;
Ожидаем.Что(КодВозврата, "КодВозврата второй -unpack "+БинарныйФайл.Имя).Равно(0);
@@ -704,4 +720,71 @@
КонецФункции
-//}
\ No newline at end of file
+//}
+
+// { Подсистема конфигурации xUnitFor1C
+
+Функция ПолучитьКорневойКаталогФреймворка(Знач АнализируемыйПутьККаталогу)
+
+ РезультатПоиска = НайтиФайлы(АнализируемыйПутьККаталогу, "xddTestRunner.epf");
+ Если РезультатПоиска.Количество() = 0 Тогда
+ ВышестоящийКаталог = ПолучитьПутьВышестоящегоКаталога(АнализируемыйПутьККаталогу);
+ Возврат ПолучитьКорневойКаталогФреймворка(ВышестоящийКаталог);
+ Иначе
+ Возврат РезультатПоиска.Получить(0).Путь;
+ КонецЕсли;
+
+КонецФункции
+Функция ПолучитьПутьВышестоящегоКаталога(Знач ТекущийПутьККаталогу)
+
+ МассивРазделителей = Новый Массив;
+ МассивРазделителей.Добавить("/");
+ МассивРазделителей.Добавить("\");
+
+ ПоследнийСимвол = Прав(ТекущийПутьККаталогу, 1);
+ Если НЕ МассивРазделителей.Найти(ПоследнийСимвол) = Неопределено Тогда
+ ДлинаПутьБезПоследнегоРазделителя = СтрДлина(ТекущийПутьККаталогу) - 1;
+ ТекущийПутьККаталогу = Лев(ТекущийПутьККаталогу, ДлинаПутьБезПоследнегоРазделителя);
+ КонецЕсли;
+
+ Пока СтрДлина(ТекущийПутьККаталогу) > 0 Цикл
+
+ ПоследнийСимвол = Прав(ТекущийПутьККаталогу, 1);
+ Если НЕ МассивРазделителей.Найти(ПоследнийСимвол) = Неопределено Тогда
+ Прервать;
+ Иначе
+ ДлинаПутьБезПоследнегоСимвола = СтрДлина(ТекущийПутьККаталогу) - 1;
+ ТекущийПутьККаталогу = Лев(ТекущийПутьККаталогу, ДлинаПутьБезПоследнегоСимвола);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат ТекущийПутьККаталогу;
+
+КонецФункции
+
+Функция ПолучитьКонтекстЯдраНаСервере()
+
+ // Получаем доступ к серверному контексту обработки с использованием
+ // полного имени метаданных браузера тестов. Иначе нет возможности получить
+ // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте.
+ // При передаче на сервер клиентский контекст теряется.
+ КонтекстЯдра = Неопределено;
+ МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов);
+ Если НЕ МетаданныеЯдра = Неопределено
+ И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "Обработка", "Обработки");
+ Выполнить("КонтекстЯдра = " + ИмяОбработкиКонекстаЯдра + ".Создать()");
+ Иначе
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ВнешняяОбработка", "ВнешниеОбработки");
+ ИмяОбработкиКонекстаЯдра = СтрЗаменить(ИмяОбработкиКонекстаЯдра, ".", Символы.ПС);
+ МенеджерОбъектов = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 1);
+ ИмяОбъекта = СтрПолучитьСтроку(ИмяОбработкиКонекстаЯдра, 2);
+ Выполнить("КонтекстЯдра = " + МенеджерОбъектов + ".Создать("""+ИмяОбъекта+""")");
+ КонецЕсли;
+
+ Возврат КонтекстЯдра;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
\ No newline at end of file
diff --git a/src/Utils/xddTestsConvertIntoRebornFormat/maps.txt b/src/Utils/xddTestsConvertIntoRebornFormat/maps.txt
index c3ebe66c..185ddf65 100644
--- a/src/Utils/xddTestsConvertIntoRebornFormat/maps.txt
+++ b/src/Utils/xddTestsConvertIntoRebornFormat/maps.txt
@@ -1,4 +1,4 @@
-Form\УправляемаяФорма\Форма.txt-->1c85fafa-c8c3-4b1c-a5a5-06833393c6c5.0 (64, 64)
+Form\УправляемаяФорма\Форма.bsl-->1c85fafa-c8c3-4b1c-a5a5-06833393c6c5.0 (121, 121)
Макеты\v8unpack.txt-->d41c4a3c-7890-4572-a6c9-1e1ad5f3d0a8.0
Макеты\БазовыеУтверждения.txt-->fcfede74-2426-4bbc-9d8c-cbb168909665.0
Макеты\ГенераторТестовыхДанных.txt-->ca555899-4850-4863-9cf3-a59edea89072.0
diff --git a/src/Utils/xddTestsConvertIntoRebornFormat/renames.txt b/src/Utils/xddTestsConvertIntoRebornFormat/renames.txt
index a9860a28..256782a3 100644
--- a/src/Utils/xddTestsConvertIntoRebornFormat/renames.txt
+++ b/src/Utils/xddTestsConvertIntoRebornFormat/renames.txt
@@ -5,7 +5,7 @@
66035cac-eeb6-4708-9998-7f619b73e7f1-->und\66035cac-eeb6-4708-9998-7f619b73e7f1
66035cac-eeb6-4708-9998-7f619b73e7f1.0-->und\66035cac-eeb6-4708-9998-7f619b73e7f1.0
6641570f-5fe8-41b8-9fdd-a7d1b233a01c.0\info-->und\6641570f-5fe8-41b8-9fdd-a7d1b233a01c.0\info
-6641570f-5fe8-41b8-9fdd-a7d1b233a01c.0\text-->ObjectModule.txt
+6641570f-5fe8-41b8-9fdd-a7d1b233a01c.0\text-->ObjectModule.bsl
9809c3cc-c2aa-427f-9e39-0d7b776446b0-->und\9809c3cc-c2aa-427f-9e39-0d7b776446b0
9809c3cc-c2aa-427f-9e39-0d7b776446b0.0-->und\9809c3cc-c2aa-427f-9e39-0d7b776446b0.0
ca555899-4850-4863-9cf3-a59edea89072-->und\ca555899-4850-4863-9cf3-a59edea89072
diff --git a/src/Utils/xddTestsConvertIntoRebornFormat/und/1c85fafa-c8c3-4b1c-a5a5-06833393c6c5 b/src/Utils/xddTestsConvertIntoRebornFormat/und/1c85fafa-c8c3-4b1c-a5a5-06833393c6c5
index afd28ef1..31de94fe 100644
--- a/src/Utils/xddTestsConvertIntoRebornFormat/und/1c85fafa-c8c3-4b1c-a5a5-06833393c6c5
+++ b/src/Utils/xddTestsConvertIntoRebornFormat/und/1c85fafa-c8c3-4b1c-a5a5-06833393c6c5
@@ -1,10 +1,15 @@
{1,
{1,
{0,
-{9,
-{0,
+{12,
+{1,
{0,0,1c85fafa-c8c3-4b1c-a5a5-06833393c6c5},"УправляемаяФорма",
-{1,"ru","Управляемая форма"},""},0,1},
+{1,"ru","Управляемая форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
{0}
}
},0}
\ No newline at end of file
diff --git a/src/Utils/xddTestsConvertIntoRebornFormat/und/1c85fafa-c8c3-4b1c-a5a5-06833393c6c5.0 b/src/Utils/xddTestsConvertIntoRebornFormat/und/1c85fafa-c8c3-4b1c-a5a5-06833393c6c5.0
index 3289531d..c2ca01b6 100644
--- a/src/Utils/xddTestsConvertIntoRebornFormat/und/1c85fafa-c8c3-4b1c-a5a5-06833393c6c5.0
+++ b/src/Utils/xddTestsConvertIntoRebornFormat/und/1c85fafa-c8c3-4b1c-a5a5-06833393c6c5.0
@@ -1,9 +1,9 @@
-{2,
-{28,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
+{3,
+{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
-{0},
+{0,0,0},
{0},1,
-{17,
+{21,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -14,10 +14,10 @@
{3,4,
{0}
},
-{6,3,0,1},
+{7,3,0,1,100},
{0,0,0},1,
-{0,0,1},0,1},1,3d3cb80c-508b-41fa-8a18-680cdf5f1712,
-{5,
+{0,0,1},0,1,0,0,0,3,3},1,3d3cb80c-508b-41fa-8a18-680cdf5f1712,
+{10,
{1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -32,13 +32,21 @@
{3,2,
{24}
},
-{6,1,63,
-{0},120,700,0,0,0,"Tahoma",1},
+{7,1,63,
+{0},120,700,0,0,0,"Tahoma",1,100},
{0,0,0},1,
-{4,0,0,3,0,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
},1,
-{17,
+{21,
{2,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
@@ -49,19 +57,68 @@
{3,4,
{0}
},
-{6,3,0,1},
+{7,3,0,1,100},
{0,0,0},1,
-{1,1},0,1},1,2},"","",1,
-{17,
+{1,1},0,1,0,0,0,3,3},1,2,
+{1,
+{1,1,
+{"ru","Конвертация тестов из формата 3.Х в новый формат (4.Х) работает только в режиме обычного приложения.
+
+Запустите 1С в указанном приложении!"}
+},0},0,1,
+{10,
+{3,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"Декорация1ExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},1,0,0,1,0,3,3},"","",1,
+{21,
{0},0,0,0,7,"Navigator",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
},
-{6,3,0,1},
-{0,0,0},0,0,1}
-},"",
+{7,3,0,1,100},
+{0,0,0},0,0,1,0,1,
+{10,
+{0},0,0,0,0,"NavigatorExtendedTooltip",
+{1,0},
+{1,0},1,0,0,2,2,
+{3,4,
+{0}
+},
+{7,3,0,1,100},
+{0,0,0},1,
+{5,0,0,3,0,
+{0,0,0},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,0,
+{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e}
+},0,1,2,
+{1,
+{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2},"",
{4,1,
{9,
{1},0,"Объект",
@@ -98,5 +155,4 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
{0,0},
{0,0},
{0,0},
-{0,0}
-}
\ No newline at end of file
+{0,0},0,0}
\ No newline at end of file
diff --git a/src/Utils/xddTestsConvertIntoRebornFormat/und/eab4f8c5-602e-4d5a-bdfa-910323eb3c1f b/src/Utils/xddTestsConvertIntoRebornFormat/und/eab4f8c5-602e-4d5a-bdfa-910323eb3c1f
index a8cea11c..509d55f2 100644
--- a/src/Utils/xddTestsConvertIntoRebornFormat/und/eab4f8c5-602e-4d5a-bdfa-910323eb3c1f
+++ b/src/Utils/xddTestsConvertIntoRebornFormat/und/eab4f8c5-602e-4d5a-bdfa-910323eb3c1f
@@ -4,9 +4,9 @@
{1,
{4,2bd25281-0454-4bf1-9b52-a17b78c7834f,0de42236-0e00-4267-adec-f129a632c3d5,
{0,
-{0,
+{1,
{0,0,6641570f-5fe8-41b8-9fdd-a7d1b233a01c},"xddTestsConvertIntoRebornFormat",
-{1,"ru","Конвертация тестов xUnitFor1C в версию4 из формата версии 3"},""}
+{1,"ru","Конвертация тестов xUnitFor1C в версию4 из формата версии 3"},"",0,0}
},eefa7064-8a52-4268-a696-7bf0e82d0af8,"",1c85fafa-c8c3-4b1c-a5a5-06833393c6c5},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,7,66035cac-eeb6-4708-9998-7f619b73e7f1,d41c4a3c-7890-4572-a6c9-1e1ad5f3d0a8,fcfede74-2426-4bbc-9d8c-cbb168909665,ca555899-4850-4863-9cf3-a59edea89072,07ad65a2-ee47-46ed-8632-42d4a0bf76b0,9809c3cc-c2aa-427f-9e39-0d7b776446b0,efc43c90-f8d2-444b-a250-5d567bef39ad},
diff --git a/src/Utils/xddTestsConvertIntoRebornFormat/und/eefa7064-8a52-4268-a696-7bf0e82d0af8 b/src/Utils/xddTestsConvertIntoRebornFormat/und/eefa7064-8a52-4268-a696-7bf0e82d0af8
index d6a99c31..4e539061 100644
--- a/src/Utils/xddTestsConvertIntoRebornFormat/und/eefa7064-8a52-4268-a696-7bf0e82d0af8
+++ b/src/Utils/xddTestsConvertIntoRebornFormat/und/eefa7064-8a52-4268-a696-7bf0e82d0af8
@@ -1,10 +1,15 @@
{1,
{1,
{0,
-{9,
-{0,
+{12,
+{1,
{0,0,eefa7064-8a52-4268-a696-7bf0e82d0af8},"Форма",
-{1,"ru","Форма"},""},0,0},
+{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,0,
+{2,
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1},
+{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2}
+}
+},
{0}
}
},0}
\ No newline at end of file
diff --git a/src/Utils/xddTestsConvertIntoRebornFormat/und/versions b/src/Utils/xddTestsConvertIntoRebornFormat/und/versions
index 7f4ee28e..8e21d251 100644
--- a/src/Utils/xddTestsConvertIntoRebornFormat/und/versions
+++ b/src/Utils/xddTestsConvertIntoRebornFormat/und/versions
@@ -1 +1 @@
-{1,26,"",18239fec-439e-4bb4-85d8-25b1f5b22738,"141fdc44-831c-400c-8419-7bc7ffbd3b69",2b088792-66b2-43c0-b887-1c421adb5c5b,"fcfede74-2426-4bbc-9d8c-cbb168909665.0",5ad156d2-e4f0-4d1a-917f-f2446b59ddd3,"copyinfo",b884f2cb-8d35-438c-9f25-f221326fc805,"d41c4a3c-7890-4572-a6c9-1e1ad5f3d0a8.0",39d05639-ddce-4428-870a-98bde02cf6ee,"eefa7064-8a52-4268-a696-7bf0e82d0af8",e9f584f7-915e-424f-b22c-799db7487a1a,"eefa7064-8a52-4268-a696-7bf0e82d0af8.0",bcaee597-5426-4792-9815-83e7449be603,"07ad65a2-ee47-46ed-8632-42d4a0bf76b0.0",b1e885af-774e-4969-a523-db65350ac02c,"9809c3cc-c2aa-427f-9e39-0d7b776446b0",0bcc087a-b388-4c69-8229-b181a9fcd059,"ca555899-4850-4863-9cf3-a59edea89072.0",15c75afe-d85b-4fb4-9ed2-612085a56957,"66035cac-eeb6-4708-9998-7f619b73e7f1.0",1fb2688c-6272-4290-a053-0beffefba90c,"efc43c90-f8d2-444b-a250-5d567bef39ad.0",55c5e554-fa7e-45fc-8e65-7c92412d5045,"ca555899-4850-4863-9cf3-a59edea89072",391d1acd-c551-49f9-8fbd-75d86b26e1c1,"efc43c90-f8d2-444b-a250-5d567bef39ad",a04de733-1e2e-44d4-9727-82eb026f5666,"version",39a02aa0-6352-406b-a329-c2b17c2f7a2c,"root",860316aa-d086-4a95-8a25-1fa87015bc18,"d41c4a3c-7890-4572-a6c9-1e1ad5f3d0a8",d077632e-06ec-4b35-a4f6-c60e5d8d244f,"eab4f8c5-602e-4d5a-bdfa-910323eb3c1f",fa3d5f35-d801-477e-ab58-992a14b88ef8,"versions",21873d54-3b62-4c4c-a813-ee21ba1b3fcd,"07ad65a2-ee47-46ed-8632-42d4a0bf76b0",48de7cdb-371d-432c-b7f0-61d6167168b1,"1c85fafa-c8c3-4b1c-a5a5-06833393c6c5.0",56d368e4-970d-4fc2-9180-79ae2506cad4,"1c85fafa-c8c3-4b1c-a5a5-06833393c6c5",db6eb8f9-8fec-44a2-bd05-2d5a7ce4a382,"9809c3cc-c2aa-427f-9e39-0d7b776446b0.0",6eebdfda-29b4-4ac2-8da7-ed6088bc194e,"66035cac-eeb6-4708-9998-7f619b73e7f1",75943565-18f1-47c1-a78e-f446523491de,"6641570f-5fe8-41b8-9fdd-a7d1b233a01c.0",ff535776-787a-41c4-9e9d-0b2dcfd8b3d7,"fcfede74-2426-4bbc-9d8c-cbb168909665",c5f33640-42d7-4a35-a93b-7b811bb32e78}
\ No newline at end of file
+{1,26,"",ccab8fff-a6c9-4f82-947b-dd4e01fb88fc,"07ad65a2-ee47-46ed-8632-42d4a0bf76b0",48de7cdb-371d-432c-b7f0-61d6167168b1,"07ad65a2-ee47-46ed-8632-42d4a0bf76b0.0",b1e885af-774e-4969-a523-db65350ac02c,"141fdc44-831c-400c-8419-7bc7ffbd3b69",2b088792-66b2-43c0-b887-1c421adb5c5b,"1c85fafa-c8c3-4b1c-a5a5-06833393c6c5",1c72f8f3-ae49-4a4d-a370-4e287181edbe,"1c85fafa-c8c3-4b1c-a5a5-06833393c6c5.0",af4c49e9-d15c-4563-9d9f-939ec0295d0e,"66035cac-eeb6-4708-9998-7f619b73e7f1",75943565-18f1-47c1-a78e-f446523491de,"66035cac-eeb6-4708-9998-7f619b73e7f1.0",1fb2688c-6272-4290-a053-0beffefba90c,"6641570f-5fe8-41b8-9fdd-a7d1b233a01c.0",fff86b9c-7070-43a8-ad71-06c2d7ce0e84,"9809c3cc-c2aa-427f-9e39-0d7b776446b0",0bcc087a-b388-4c69-8229-b181a9fcd059,"9809c3cc-c2aa-427f-9e39-0d7b776446b0.0",6eebdfda-29b4-4ac2-8da7-ed6088bc194e,"ca555899-4850-4863-9cf3-a59edea89072",391d1acd-c551-49f9-8fbd-75d86b26e1c1,"ca555899-4850-4863-9cf3-a59edea89072.0",15c75afe-d85b-4fb4-9ed2-612085a56957,"copyinfo",7165b876-4376-42f7-b0b1-3a0da68ed690,"d41c4a3c-7890-4572-a6c9-1e1ad5f3d0a8",d077632e-06ec-4b35-a4f6-c60e5d8d244f,"d41c4a3c-7890-4572-a6c9-1e1ad5f3d0a8.0",39d05639-ddce-4428-870a-98bde02cf6ee,"eab4f8c5-602e-4d5a-bdfa-910323eb3c1f",091506f2-1cf3-40f8-9fe2-ed9bc2306eff,"eefa7064-8a52-4268-a696-7bf0e82d0af8",b6795d26-b73a-4df1-9fcd-815543a9fb89,"eefa7064-8a52-4268-a696-7bf0e82d0af8.0",88b9df41-daf4-4d58-ad56-9db8b5f5fa2e,"efc43c90-f8d2-444b-a250-5d567bef39ad",a04de733-1e2e-44d4-9727-82eb026f5666,"efc43c90-f8d2-444b-a250-5d567bef39ad.0",55c5e554-fa7e-45fc-8e65-7c92412d5045,"fcfede74-2426-4bbc-9d8c-cbb168909665",c5f33640-42d7-4a35-a93b-7b811bb32e78,"fcfede74-2426-4bbc-9d8c-cbb168909665.0",5ad156d2-e4f0-4d1a-917f-f2446b59ddd3,"root",f473c2ad-1d9b-4ff0-83ab-833fbbbe98f4,"version",c12f2d64-0c77-4d2e-8112-f5608ae8da3d,"versions",0d9fe72d-83fb-4e39-aa8d-1d74c814a5a9}
\ No newline at end of file
diff --git "a/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
new file mode 100644
index 00000000..a414248f
--- /dev/null
+++ "b/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl"
@@ -0,0 +1,1155 @@
+&НаКлиенте
+Перем КэшФормПлагинов;
+&НаКлиенте
+Перем ПодключенныеВнешниеОбработки;
+
+// { События формы
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+ ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
+
+ ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы();
+
+ Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда // Используемое имя файла меняется в зависимости от того
+ // встроена обработка в конфигурацию или нет
+ ИспользуемоеИмяФайла = ОбъектНаСервере.ИспользуемоеИмяФайла;
+ КонецЕсли;
+
+ ОбновитьКомандыИсторииЗагрузкиТестов();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПриОткрытии()
+ ЗагрузитьПлагины();
+ КэшироватьПеречисленияПлагинов();
+ СброситьПодключенныеВнешниеОбработки();
+
+ ЭтоПакетныйЗапуск = ЗначениеЗаполнено(ПараметрЗапуска);
+ Если ЭтоПакетныйЗапуск Тогда
+ ВыполнитьПакетныйЗапуск(ПараметрЗапуска);
+ Иначе
+ ПерезагрузитьПоследниеТестыПоИстории();
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПриЗакрытии()
+
+ // Для пакетного запуска нет смысла вызывать это событие,
+ Если НЕ ЭтоПакетныйЗапуск Тогда
+ ПриЗакрытииНаСервере();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПриЗакрытииНаСервере()
+ ЭтотОбъектНаСервере().СохранитьНастройки();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОбработатьСобытиеВыполненияТестов(Знач ИмяСобытия, Знач Параметр) Экспорт
+ Если ИмяСобытия = Объект.ВозможныеСобытия.ВыполненТестовыйМетод Тогда
+ Если Параметр.Состояние = Объект.СостоянияТестов.НеРеализован Тогда
+ Если Элементы.ИндикаторВыполнения.ЦветРамки <> WebЦвета.Красный Тогда
+ Элементы.ИндикаторВыполнения.ЦветРамки = WebЦвета.Золотой;
+ КонецЕсли;
+ ИначеЕсли Параметр.Состояние = Объект.СостоянияТестов.Сломан Тогда
+ Элементы.ИндикаторВыполнения.ЦветРамки = WebЦвета.Красный;
+ КонецЕсли;
+ ИндикаторВыполнения = ИндикаторВыполнения + 1;
+ КонецЕсли;
+ ОбновитьОтображениеДанных();
+КонецПроцедуры
+// } События формы
+
+// { Управляющие воздействия пользователя
+&НаКлиенте
+Процедура ЗагрузитьТестыПоУмолчанию(Команда)
+ ЗагрузчикПоУмолчанию = ЗагрузчикПоУмолчанию();
+ ИдентификаторЗагрузчикаПоУмолчанию = ЗагрузчикПоУмолчанию.ОписаниеПлагина(Объект.ТипыПлагинов).Идентификатор;
+ Подключаемый_ИнтерактивныйВызовЗагрузчика(Новый Структура("Имя", ИдентификаторЗагрузчикаПоУмолчанию));
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КомандаВыполнитьВсеТесты(Команда)
+ ВыполнитьТестыНаКлиенте();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ВыполнитьТестыНаКлиенте(Знач Фильтр = Неопределено)
+ Если ЗначениеЗаполнено(ЭтаФорма.ДеревоОтЗагрузчика) Тогда
+ ОчиститьСообщения();
+
+ КоличествоТестовыхМетодов = ПолучитьКоличествоТестовыхМетодов(ЭтаФорма.ДеревоОтЗагрузчика, Фильтр);
+ ИнициализироватьИндикаторВыполнения(КоличествоТестовыхМетодов);
+
+ СброситьПодключенныеВнешниеОбработки();
+ РезультатыТестирования = ВыполнитьТесты(Плагин(ИдентификаторЗагрузчика), ЭтаФорма.ДеревоОтЗагрузчика, Фильтр, ЭтаФорма);
+
+ ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДеревоТестов.ПолучитьЭлементы()[0], РезультатыТестирования);
+
+ ГенераторОтчетаMXL = Плагин("ГенераторОтчетаMXL");
+ Отчет = ГенераторОтчетаMXL.СоздатьОтчет(ЭтаФорма, РезультатыТестирования);
+ ГенераторОтчетаMXL.Показать(Отчет);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КомандаВыполнитьВыделенныеТесты(Команда)
+ Фильтр = Новый Массив;
+ ВыделенныеСтроки = Элементы.ДеревоТестов.ВыделенныеСтроки;
+ Для каждого ИдентификаторВыделеннойСтроки Из ВыделенныеСтроки Цикл
+ ВыделеннаяСтрока = ДеревоТестов.НайтиПоИдентификатору(ИдентификаторВыделеннойСтроки);
+ Фильтр.Добавить(Новый УникальныйИдентификатор(ВыделеннаяСтрока.Ключ));
+ КонецЦикла;
+ Если Фильтр.Количество() > 0 Тогда
+ ВыполнитьТестыНаКлиенте(Фильтр);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КомандаПерезагрузитьФорму(Команда)
+ Закрыть();
+
+ Если Объект.ЭтоВстроеннаяОбработка Тогда // Для встроенной в конф. обработки открываем форму
+ ОткрытьФорму(ЭтаФорма.ИмяФормы);
+ Иначе
+ АдресХранилища = "";
+ ПоместитьФайл(АдресХранилища, ЭтаФорма.ИспользуемоеИмяФайла, , Ложь);
+ ПодключитьФайлОбработкиНаСервере(АдресХранилища, Неопределено);
+
+ НоваяФорма = ПолучитьФорму(ЭтаФорма.ИмяФормы,,,Истина);
+ НоваяФорма.ИспользуемоеИмяФайла = ЭтаФорма.ИспользуемоеИмяФайла;
+ НоваяФорма.Открыть();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПерезагрузитьПоследниеТестыПоИстории(Команда = Неопределено)
+ ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов;
+ Если ИсторияЗагрузкиТестов.Количество() > 0 Тогда
+ ЭлементИстории = ИсторияЗагрузкиТестов[0];
+ Попытка
+ ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь);
+ Исключение
+ // TODO
+ Сообщить("Не удалось загрузить тесты из истории <" + ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь + ">" + Символы.ПС + ОписаниеОшибки());
+ КонецПопытки;
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ГенераторМакетовДанных(Команда)
+ ОткрытьИнструмент("СериализаторMXL", ПолучитьПутьКПлагинам());
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПоказатьГУИД(Команда)
+ ОткрытьИнструмент("xddGuidShow");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура КонвертерТестов(Команда)
+ ОткрытьИнструмент("xddTestsConvertIntoRebornFormat");
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПреобразоватьЖурналДействийПользователяВТест(Команда)
+ ОткрытьИнструмент("UILogToScript");
+КонецПроцедуры
+// } Управляющие воздействия пользователя
+
+// { Плагины
+&НаКлиенте
+Процедура ЗагрузитьПлагины()
+ Объект.Плагины = Новый Структура;
+ КэшФормПлагинов = Новый Структура;
+
+ // Для встроенного в состав конфигурации браузера тестов
+ // плагины также загружаем из встроенных обработок
+ Если Объект.ЭтоВстроеннаяОбработка Тогда
+ ЗагрузитьВстроенныеПлагины();
+ Для Каждого Плагин Из Объект.Плагины Цикл
+ КэшФормПлагинов.Вставить(Плагин.Ключ, Истина);
+ КонецЦикла;
+ Иначе
+ КаталогПлагинов = ПолучитьПутьКПлагинам();
+ НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь);
+ ПомещаемыеФайлы = Новый Массив;
+ ИдентификаторыПлагинов = Новый Соответствие;
+ Для каждого ФайлОбработки Из НайденныеФайлы Цикл
+
+ ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя);
+ ПомещаемыеФайлы.Добавить(ПомещаемыйФайл);
+
+ ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
+ ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
+
+ КонецЦикла;
+
+ ЗагруженныеФайлы = Новый Массив;
+ Если ПомещаемыеФайлы.Количество() Тогда
+ ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор);
+ КонецЕсли;
+
+ ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы);
+
+ Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
+ ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя];
+
+ ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя];
+ Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина);
+ КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина);
+
+ КонецЦикла;
+ КонецЕсли;
+
+ ДобавитьКомандыЗагрузчиковНаФорме();
+
+КонецПроцедуры
+
+&НаСервере
+Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы)
+
+ ОписанияПлагинов = Новый Соответствие;
+
+ Для Каждого ОписаниеФайла Из ЗагружаемыеФайлы Цикл
+ ФайлОбъект = Новый Файл(ОписаниеФайла.Имя);
+ ИмяПлагина = ФайлОбъект.ИмяБезРасширения;
+ ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина);
+
+ Попытка
+ ОбъектОбработки = ВнешниеОбработки.Создать(ИмяПлагина, Ложь);
+ ОбъектОбработки.Инициализация(ЭтотОбъектНаСервере());
+ ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов));
+ Исключение
+ Ошибка = "Возникла ошибка при загрузке плагина: "+ОписаниеФайла.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Сообщить(Ошибка);
+ Продолжить;
+ КонецПопытки;
+
+ КонецЦикла;
+
+ Возврат Новый ФиксированноеСоответствие(ОписанияПлагинов);
+
+КонецФункции // ПодключитьПлагиныНаСервере()
+
+&НаКлиенте
+Процедура КэшироватьПеречисленияПлагинов()
+ Объект.ТипыУзловДереваТестов = Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
+КонецПроцедуры
+
+&НаКлиенте
+Функция Плагин(Знач Идентификатор) Экспорт
+
+ ОбъектПлагин = Неопределено;
+ ИдентификаторБезПрефиксовПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы);
+ Если КэшФормПлагинов.Свойство(ИдентификаторБезПрефиксовПодсистемы) Тогда
+ ОбъектПлагин = КэшФормПлагинов[ИдентификаторБезПрефиксовПодсистемы];
+ КонецЕсли;
+
+ Если ОбъектПлагин = Неопределено Тогда
+ ВызватьИсключение НСтр("ru = 'Неизвестный идентификатор плагина: <"+Идентификатор+">'");
+ ИначеЕсли ОбъектПлагин = Истина Тогда
+ // загрузка клиентского плагина "По требованию"
+ ИмяПлагина = Объект.Плагины[ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы)];
+ Попытка
+ Если Объект.ЭтоВстроеннаяОбработка Тогда
+ ОбъектПлагин = ПолучитьФорму("Обработка." + ДополнитьИдентификаторПрефиксомПодсистемы(ИмяПлагина, Объект.ИспользуемыйПрефиксПодсистемы) + ".Форма", , ЭтаФорма);
+ Иначе
+ ОбъектПлагин = ПолучитьФорму("ВнешняяОбработка." + ИмяПлагина + ".Форма", , ЭтаФорма);
+ КонецЕсли;
+ КэшФормПлагинов.Вставить(ИдентификаторБезПрефиксовПодсистемы, ОбъектПлагин);
+ Исключение
+ // TODO добавить поведение при отсутствии управляемой формы у плагина
+ ВызватьИсключение;
+ КонецПопытки;
+
+ КонецЕсли;
+
+ Возврат ОбъектПлагин;
+КонецФункции
+
+&НаСервере
+Процедура ДобавитьКомандыЗагрузчиковНаФорме()
+ ОписанияЗагрузчиков = ПолучитьОписанияЗагрузчиковНаСервере();
+ Для каждого Описание Из ОписанияЗагрузчиков Цикл
+ Команда = ЭтаФорма.Команды.Добавить(Описание.Идентификатор);
+ Команда.Действие = "Подключаемый_ИнтерактивныйВызовЗагрузчика";
+ ПунктМеню = ЭтаФорма.Элементы.Добавить(Команда.Имя, Тип("КнопкаФормы"), ЭтаФорма.Элементы.ПлагиныЗагрузчики);
+ ПунктМеню.Заголовок = Описание.Представление;
+ ПунктМеню.ИмяКоманды = Команда.Имя;
+ КонецЦикла;
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПолучитьОписанияПлагиновПоТипу(Знач ТипПлагина) Экспорт
+ Результат = ПолучитьОписанияПлагиновПоТипуНаСервере(ТипПлагина);
+
+ Возврат Результат;
+КонецФункции
+
+&НаСервере
+Функция ПолучитьОписанияПлагиновПоТипуНаСервере(Знач ТипПлагина)
+ ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
+ Результат = ОбъектНаСервере.ПолучитьОписанияПлагиновПоТипу(ТипПлагина);
+
+ Возврат Результат;
+КонецФункции
+
+&НаСервере
+Функция ПолучитьОписанияЗагрузчиковНаСервере()
+ ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
+ ОписанияЗагрузчиков = ОбъектНаСервере.ПолучитьОписанияПлагиновПоТипу(ОбъектНаСервере.ТипыПлагинов.Загрузчик);
+
+ Возврат ОписанияЗагрузчиков;
+КонецФункции
+
+&НаКлиенте
+Функция ЗагрузчикПоУмолчанию() Экспорт
+ Возврат Плагин("ЗагрузчикКаталога");
+КонецФункции
+// } Плагины
+
+// { Работа с деревом тестов
+&НаКлиенте
+Процедура Подключаемый_ИнтерактивныйВызовЗагрузчика(Команда)
+ ИдентификаторВыбранногоЗагрузчика = Команда.Имя;
+ Путь = Плагин(ИдентификаторВыбранногоЗагрузчика).ВыбратьПутьИнтерактивно();
+ Если ЗначениеЗаполнено(Путь) Тогда
+ ЗагрузитьТесты(ИдентификаторВыбранногоЗагрузчика, Путь);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗагрузитьТесты(Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь)
+ ИнициализироватьИндикаторВыполнения();
+
+ ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика;
+ ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика);
+
+ Попытка
+ ЭтаФорма.ДеревоОтЗагрузчика = ФормаЗагрузчика.Загрузить(ЭтаФорма, Путь);
+ Исключение
+ Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+ Возврат;
+ КонецПопытки;
+
+ ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы();
+ ЭлементыДереваТестов.Очистить();
+ ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика);
+
+ КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов);
+ РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30);
+
+ СохранитьВИсториюЗагрузкиТестовНаСервере(ИдентификаторВыбранногоЗагрузчика, Путь);
+ ОбновитьКомандыИсторииЗагрузкиТестов();
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьДеревоТестов(РодительскаяСтрокаДереваТестов, Знач КонтейнерДереваТестовЗагрузчика)
+ СтрокаКонтейнера = РодительскаяСтрокаДереваТестов.ПолучитьЭлементы().Добавить();
+ СтрокаКонтейнера.Имя = КонтейнерДереваТестовЗагрузчика.Имя;
+ СтрокаКонтейнера.ИконкаУзла = КонтейнерДереваТестовЗагрузчика.ИконкаУзла;
+ СтрокаКонтейнера.Ключ = КонтейнерДереваТестовЗагрузчика.Ключ;
+
+ Для каждого ЭлементКоллекции Из КонтейнерДереваТестовЗагрузчика.Строки Цикл
+ Если ЭлементКоллекции.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда
+ ЗаполнитьДеревоТестов(СтрокаКонтейнера, ЭлементКоллекции);
+ ИначеЕсли ЭлементКоллекции.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
+ СтрокаЭлемента = СтрокаКонтейнера.ПолучитьЭлементы().Добавить();
+ СтрокаЭлемента.Имя = ЭлементКоллекции.Представление;
+ СтрокаЭлемента.Путь = ЭлементКоллекции.Путь;
+ СтрокаЭлемента.ИконкаУзла = ЭлементКоллекции.ИконкаУзла;
+ СтрокаЭлемента.Ключ = ЭлементКоллекции.Ключ;
+ КонецЕсли;
+ КонецЦикла;
+КонецПроцедуры
+
+&НаКлиенте
+Функция ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(РодительскаяСтрока)
+ КоллекцияСтрок = РодительскаяСтрока.ПолучитьЭлементы();
+ Если КоллекцияСтрок.Количество() = 0 Тогда
+ Возврат 1;
+ КонецЕсли;
+ ОбщееКоличествоТестов = 0;
+ Для каждого СтрокаДерева из КоллекцияСтрок Цикл
+ КоличествоТестовВСтроке = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(СтрокаДерева);
+ СтрокаДерева.КоличествоТестов = КоличествоТестовВСтроке;
+ ОбщееКоличествоТестов = ОбщееКоличествоТестов + КоличествоТестовВСтроке;
+ КонецЦикла;
+
+ Возврат ОбщееКоличествоТестов;
+КонецФункции
+
+&НаКлиенте
+Процедура РазвернутьСтрокиДерева(Знач ВключаяПодчиненные = Ложь)
+ Для каждого СтрокаДерева из ДеревоТестов.ПолучитьЭлементы() Цикл
+ Идентификатор = СтрокаДерева.ПолучитьИдентификатор();
+ Элементы.ДеревоТестов.Развернуть(Идентификатор, ВключаяПодчиненные);
+ КонецЦикла;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОбновитьДеревоТестовНаОснованииРезультатовТестирования(УзелДереваТестов, Знач РезультатТестирования)
+ УзелДереваТестов.Состояние = РезультатТестирования.Состояние;
+ УзелДереваТестов.ВремяВыполнения = РезультатТестирования.ВремяВыполнения;
+ Если РезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда
+ Для каждого ДочернийРезультатТестирования Из РезультатТестирования.Строки Цикл
+ ДочернийУзелДереваТестов = НайтиСтрокуВДеревеТестовПоКлючу(УзелДереваТестов, ДочернийРезультатТестирования.Ключ);
+ ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДочернийУзелДереваТестов, ДочернийРезультатТестирования);
+ КонецЦикла;
+ ИначеЕсли РезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
+ Если РезультатТестирования.Свойство("Сообщение") И ЗначениеЗаполнено(РезультатТестирования.Сообщение) Тогда
+ Сообщить(РезультатТестирования.Сообщение, СтатусСообщения.ОченьВажное);
+ КонецЕсли;
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Функция НайтиСтрокуВДеревеТестовПоКлючу(УзелДереваТестов, Знач Ключ)
+ Результат = Неопределено;
+ Для каждого ЭлементКоллекции Из УзелДереваТестов.ПолучитьЭлементы() Цикл
+ Если ЭлементКоллекции.Ключ = Ключ Тогда
+ Результат = ЭлементКоллекции;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Результат;
+КонецФункции
+// } Работа с деревом тестов
+
+// { Выполнение тестов
+&НаКлиенте
+Функция ПолучитьКоличествоТестовыхМетодов(Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено) Экспорт
+ Возврат ПолучитьКоличествоТестовыхМетодовНаСервере(КонтейнерДереваТестов, Фильтр);
+КонецФункции
+
+&НаСервере
+Функция ПолучитьКоличествоТестовыхМетодовНаСервере(Знач КонтейнерДереваТестов, Знач Фильтр)
+ Возврат ЭтотОбъектНаСервере().ПолучитьКоличествоТестовыхМетодов(КонтейнерДереваТестов, Фильтр);
+КонецФункции
+
+&НаКлиенте
+Функция ВыполнитьТесты(Знач Загрузчик, Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено, Знач Подписчик = Неопределено) Экспорт
+ РезультатТестирования = СоздатьКонтейнерРезультатовТестирования(КонтейнерДереваТестов);
+ ФильтрДляДочернихУзлов = Неопределено;
+ Если Не УзелДереваТестовУдовлетворяетФильтру(КонтейнерДереваТестов, Фильтр) Тогда
+ ФильтрДляДочернихУзлов = Фильтр;
+ КонецЕсли;
+
+ Если КонтейнерДереваТестов.СлучайныйПорядокВыполнения Тогда
+ СтрокиКонтейнера = ПеремешатьМассив(КонтейнерДереваТестов.Строки);
+ Иначе
+ СтрокиКонтейнера = КонтейнерДереваТестов.Строки;
+ КонецЕсли;
+
+ Для каждого ДочернийУзел Из СтрокиКонтейнера Цикл
+ ДочернийРезультатТестирования = Неопределено;
+ Если ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда
+ ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик);
+ ИначеЕсли ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
+ Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда
+ КонтекстВыполнения = ПолучитьКонтекстВыполненияПоПути(Загрузчик, ДочернийУзел.Путь);
+ // Заполняем служебные поля, если они имеются
+ Если ПеременнаяСодержитСвойство(КонтекстВыполнения, "ИспользуемыйПрефиксПодсистемы") Тогда
+ КонтекстВыполнения.ИспользуемыйПрефиксПодсистемы = Объект.ИспользуемыйПрефиксПодсистемы;
+ КонецЕсли;
+ Объект.ТекущийКонтейнер = КонтейнерДереваТестов;
+ ДочернийРезультатТестирования = ВыполнитьТестовыйМетод(КонтекстВыполнения, ДочернийУзел);
+ КонтейнерДереваТестов.Контекст = Объект.ТекущийКонтейнер.Контекст;
+
+ Если Подписчик <> Неопределено Тогда
+ ОповеститьОСобытии(Подписчик, Объект.ВозможныеСобытия.ВыполненТестовыйМетод, ДочернийРезультатТестирования);
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+ Если ДочернийРезультатТестирования <> Неопределено Тогда
+ РезультатТестирования.Строки.Добавить(ДочернийРезультатТестирования);
+ РезультатТестирования.Состояние = ВыбратьХудшееСостояниеВыполненияТестов(РезультатТестирования.Состояние, ДочернийРезультатТестирования.Состояние);
+ ЗаполнитьДанныеСтатистики(РезультатТестирования, ДочернийРезультатТестирования);
+ Если Не КонтейнерДереваТестов.СлучайныйПорядокВыполнения И ДочернийРезультатТестирования.Состояние <> Объект.СостоянияТестов.Пройден Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+ Если РезультатТестирования.Строки.Количество() = 0 Тогда
+ РезультатТестирования = Неопределено;
+ КонецЕсли;
+
+ Возврат РезультатТестирования;
+КонецФункции
+
+&НаКлиенте
+Функция УзелДереваТестовУдовлетворяетФильтру(Знач УзелДереваТестов, Знач Фильтр)
+ Возврат (Фильтр = Неопределено) Или (Фильтр.Найти(УзелДереваТестов.Ключ) <> Неопределено);
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьКонтекстВыполненияПоПути(Знач Загрузчик, Знач Путь)
+ КонтекстВыполнения = Загрузчик.ПолучитьКонтекстПоПути(ЭтаФорма, Путь);
+
+ Возврат КонтекстВыполнения;
+КонецФункции
+
+&НаКлиенте
+Функция ЭтоСерверныйКонтекстВыполнения(Знач КонтекстВыполнения)
+ Результат = ТипЗнч(КонтекстВыполнения) = Тип("ФиксированнаяСтруктура");
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Процедура ЗаполнитьДанныеСтатистики(РезультатТестирования, Знач ДочернийРезультатТестирования)
+ Если ДочернийРезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда
+ РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + ДочернийРезультатТестирования.КоличествоТестов;
+ РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + ДочернийРезультатТестирования.КоличествоСломанныхТестов;
+ РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + ДочернийРезультатТестирования.КоличествоНеРеализованныхТестов;
+ РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + ДочернийРезультатТестирования.КоличествоОшибочныхТестов;
+
+ ИначеЕсли ДочернийРезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
+ РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + 1;
+ Если ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан Тогда
+ РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + 1;
+ ИначеЕсли ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован Тогда
+ РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + 1;
+ ИначеЕсли ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка Тогда
+ РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + 1;
+ КонецЕсли;
+ КонецЕсли;
+ РезультатТестирования.ВремяВыполнения = РезультатТестирования.ВремяВыполнения + ДочернийРезультатТестирования.ВремяВыполнения;
+КонецПроцедуры
+
+&НаКлиенте
+Функция ВыбратьХудшееСостояниеВыполненияТестов(Знач Состояние1, Знач Состояние2)
+ Возврат Макс(Состояние1, Состояние2);
+КонецФункции
+
+&НаКлиенте
+Функция ВыполнитьТестовыйМетод(Знач КонтекстВыполнения, Знач ЭлементДереваТестов)
+ Перем РезультатТестирования;
+
+ Если ЭтоСерверныйКонтекстВыполнения(КонтекстВыполнения) Тогда
+ РезультатТестирования = ВыделитьТестовыйМетодНаСервереСОбработкойОшибокПередачиМеждуНаКлиентомИСервером(КонтекстВыполнения, ЭлементДереваТестов);
+ Иначе
+ РезультатТестирования = ВыполнитьТестовыйМетодНаКлиенте(КонтекстВыполнения, ЭлементДереваТестов);
+ КонецЕсли;
+
+ Возврат РезультатТестирования;
+КонецФункции
+
+&НаКлиенте
+Функция ВыполнитьТестовыйМетодНаКлиенте(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) Экспорт
+
+ РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов);
+ НачалоВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах();
+
+ Если ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) Тогда
+
+ Попытка
+ ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПередЗапускомТеста);
+ ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ЭлементДереваТестов.ИмяМетода, ЭлементДереваТестов.Параметры);
+
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.Пройден;
+ Исключение
+ ИнформацияОбОшибке = ИнформацияОбОшибке();
+ ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
+ КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
+ Если ЕстьОшибка_МетодОбъектаНеОбнаружен(КраткийТекстОшибки, ЭлементДереваТестов.ИмяМетода) Тогда
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован;
+ Сообщение = НСтр("ru = 'Отсутствует реализация тестового метода (%1).'");
+ РезультатТестирования.Сообщение = СтрЗаменить(Сообщение, "%1", ЭлементДереваТестов.ИмяМетода);
+ Иначе
+ РезультатТестирования.Сообщение = ТекстОшибки;
+ Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан;
+ ИначеЕсли ЭтоПропущенныйТест(КраткийТекстОшибки) Тогда
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован;
+ Иначе
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
+ КонецЕсли;
+ КонецЕсли;
+ КонецПопытки;
+ Попытка
+ ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПослеЗапускаТеста);
+ Исключение
+ ИнформацияОбОшибке = ИнформацияОбОшибке();
+ РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
+
+ КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
+ Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан;
+ Иначе
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
+ КонецЕсли;
+
+ КонецПопытки;
+ КонецЕсли;
+
+ ОкончаниеВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах();
+ РезультатТестирования.ВремяВыполнения = (ОкончаниеВыполнения - НачалоВыполнения) / 1000;
+
+ Возврат РезультатТестирования;
+КонецФункции
+
+&НаКлиенте
+Функция ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования)
+ Попытка
+ КонтекстВыполнения.Инициализация(ЭтаФорма);
+ Возврат Истина;
+ Исключение
+ РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
+ КонецПопытки;
+ Возврат Ложь;
+КонецФункции
+
+&НаКлиенте
+Функция ВыделитьТестовыйМетодНаСервереСОбработкойОшибокПередачиМеждуНаКлиентомИСервером(Знач КонтекстВыполнения, Знач ЭлементДереваТестов)
+
+ Перем ПолныйТекстОшибки, РезультатТестирования;
+
+ Попытка
+ РезультатТестирования = ВыполнитьТестовыйМетодНаСервере(КонтекстВыполнения, ЭлементДереваТестов);
+ Исключение
+ ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов);
+ РезультатТестирования.Сообщение = ПолныйТекстОшибки;
+ РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
+ КонецПопытки;
+
+ Возврат РезультатТестирования;
+КонецФункции
+
+&НаСервере
+Функция ВыполнитьТестовыйМетодНаСервере(Знач ОписаниеКонтекста, Знач ЭлементДереваТестов)
+ ОбъектНаСервере = ЭтотОбъектНаСервере();
+
+ Если ОписаниеКонтекста.ЭтоВнутренняяОбработка Тогда
+ ЭтоОтчет = (Метаданные.Отчеты.Найти(ОписаниеКонтекста.Идентификатор) <> Неопределено);
+ Иначе
+ ФайлОбработки = Новый Файл(ЭлементДереваТестов.Путь);
+ ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf");
+ КонецЕсли;
+
+ КонтекстВыполнения = СоздатьОбъектПлагина(ОписаниеКонтекста.Идентификатор, ОписаниеКонтекста.ЭтоВнутренняяОбработка, ЭтоОтчет);
+ КонтекстВыполнения.Инициализация(ОбъектНаСервере);
+
+ // Заполняем служебные поля, если они имеются
+ ЗаполнитьСвойствоПриНаличии(КонтекстВыполнения, "ПутьКФайлуПолный", ЭлементДереваТестов.Путь);
+
+ РезультатТестирования = ОбъектНаСервере.ВыполнитьТестовыйМетод(КонтекстВыполнения, ЭлементДереваТестов);
+
+ Возврат РезультатТестирования;
+КонецФункции
+
+&НаКлиенте
+Процедура ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(Знач КонтекстВыполнения, Знач ИмяПроцедуры)
+ Попытка
+ ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры);
+ Исключение
+ ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Если Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда
+ ВызватьИсключение;
+ КонецЕсли;
+ КонецПопытки;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ВыполнитьПроцедуруКонтекста(Знач КонтекстВыполнения, Знач ПроцедураКонтекста, Знач Параметры = Неопределено)
+ СтрокаПараметров = СформироватьСтрокуПараметров(Параметры);
+ ИcполняемыйКод = "КонтекстВыполнения." + ПроцедураКонтекста + "(" + СтрокаПараметров + ");";
+ Выполнить(ИcполняемыйКод);
+КонецПроцедуры
+
+&НаКлиенте
+Функция СформироватьСтрокуПараметров(Знач Параметры)
+ СтрокаПараметров = "";
+ Если ТипЗнч(Параметры) = Тип("Массив") Тогда
+ Для Сч = 0 По Параметры.Количество() - 1 Цикл
+ СтрокаПараметров = СтрокаПараметров + ",Параметры[" + Формат(Сч, "ЧН=0; ЧГ=") + "]";
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат Сред(СтрокаПараметров, 2);
+КонецФункции
+
+&НаКлиенте
+Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода)
+ Результат = Ложь;
+ Если Найти(ТекстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0
+ ИЛИ Найти(ТекстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда
+ Результат = Истина;
+ КонецЕсли;
+
+ Возврат Результат;
+КонецФункции
+
+Функция ЭтоОшибкаПроверки(ТекстОшибки)
+
+ Возврат Найти(ТекстОшибки, "["+ Объект.СтатусыРезультатаТестирования.ОшибкаПроверки + "]") = 1;
+
+КонецФункции
+
+Функция ЭтоПропущенныйТест(ТекстОшибки)
+
+ Возврат Найти(ТекстОшибки, "["+ Объект.СтатусыРезультатаТестирования.ТестПропущен + "]") > 0;
+
+КонецФункции
+
+// } Выполнение тестов
+
+// { Генерация результатов тестирования
+&НаКлиенте
+Функция СоздатьКонтейнерРезультатовТестирования(Знач КонтейнерДереваТестов)
+ ГруппаРезультатовТестирования = Новый Структура;
+ ГруппаРезультатовТестирования.Вставить("Ключ", КонтейнерДереваТестов.Ключ);
+ ГруппаРезультатовТестирования.Вставить("Тип", КонтейнерДереваТестов.Тип);
+ ГруппаРезультатовТестирования.Вставить("Имя", КонтейнерДереваТестов.Имя);
+ ГруппаРезультатовТестирования.Вставить("Состояние", Объект.СостоянияТестов.НеВыполнен);
+ ГруппаРезультатовТестирования.Вставить("КоличествоТестов", 0);
+ ГруппаРезультатовТестирования.Вставить("КоличествоСломанныхТестов", 0);
+ ГруппаРезультатовТестирования.Вставить("КоличествоОшибочныхТестов", 0);
+ ГруппаРезультатовТестирования.Вставить("КоличествоНеРеализованныхТестов", 0);
+ ГруппаРезультатовТестирования.Вставить("ВремяВыполнения", 0);
+ ГруппаРезультатовТестирования.Вставить("Строки", Новый Массив);
+
+ Возврат ГруппаРезультатовТестирования;
+КонецФункции
+
+&НаКлиенте
+Функция СоздатьЭлементРезультатовТестирования(Знач ЭлементДереваТестов)
+ РезультатТестирования = Новый Структура;
+ РезультатТестирования.Вставить("Ключ", ЭлементДереваТестов.Ключ);
+ РезультатТестирования.Вставить("Тип", ЭлементДереваТестов.Тип);
+ РезультатТестирования.Вставить("Путь", ЭлементДереваТестов.Путь);
+ РезультатТестирования.Вставить("ИмяМетода", ЭлементДереваТестов.ИмяМетода);
+ РезультатТестирования.Вставить("Представление", ЭлементДереваТестов.Представление);
+ РезультатТестирования.Вставить("Параметры", ЭлементДереваТестов.Параметры);
+ РезультатТестирования.Вставить("Состояние", Объект.СостоянияТестов.НеВыполнен);
+ РезультатТестирования.Вставить("ВремяВыполнения", 0);
+ РезультатТестирования.Вставить("Сообщение", "");
+
+ Возврат РезультатТестирования;
+КонецФункции
+// } Генерация результатов тестирования
+
+// { История загрузки тестов
+&НаСервере
+Процедура СохранитьВИсториюЗагрузкиТестовНаСервере(Знач ИдентификаторЗагрузчика, Знач Путь)
+ ЭтотОбъектНаСервере = ЭтотОбъектНаСервере();
+ ЭтотОбъектНаСервере.СохранитьВИсториюЗагрузкиТестов(ИдентификаторЗагрузчика, Путь);
+ ЗначениеВРеквизитФормы(ЭтотОбъектНаСервере, "Объект");
+КонецПроцедуры
+
+&НаСервере
+Процедура ОбновитьКомандыИсторииЗагрузкиТестов()
+ ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов;
+ ПодменюИсторияЗагрузкиТестов = Элементы.ПодменюИсторияЗагрузкиТестов;
+ Для Сч = 0 По ИсторияЗагрузкиТестов.Количество() - 1 Цикл
+ ИмяКоманды = "История_" + Сч;
+ НайденнаяКоманда = Команды.Найти(ИмяКоманды);
+ Если НайденнаяКоманда = Неопределено Тогда
+ НоваяКоманда = Команды.Добавить(ИмяКоманды);
+ НоваяКоманда.Действие = "Подключаемый_ЗагрузитьТестыИзИстории";
+ ПунктМеню = Элементы.Добавить(НоваяКоманда.Имя, Тип("КнопкаФормы"), ПодменюИсторияЗагрузкиТестов);
+ ПунктМеню.ИмяКоманды = НоваяКоманда.Имя;
+ Иначе
+ ПунктМеню = Элементы.Найти(ИмяКоманды);
+ КонецЕсли;
+ ЭлементИстории = ИсторияЗагрузкиТестов[Сч];
+ ПунктМеню.Заголовок = ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь;
+ КонецЦикла;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_ЗагрузитьТестыИзИстории(Команда)
+ ИндексИстории = Число(Сред(Команда.Имя, Найти(Команда.Имя, "_") + 1));
+ ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов;
+ ЭлементИстории = ИсторияЗагрузкиТестов[ИндексИстории];
+ ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь);
+КонецПроцедуры
+// } История загрузки тестов
+
+// { Пакетный запуск
+&НаКлиенте
+Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска)
+ Перем РезультатыТестирования;
+
+ ПарсерКоманднойСтроки = ЭтаФорма.Плагин("ПарсерКоманднойСтроки");
+ ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска);
+
+ Параметры_xddRun = Неопределено;
+ Если ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда
+ РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun);
+ КонецЕсли;
+
+ Параметры_xddReport = Неопределено;
+ Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда
+ СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования);
+ КонецЕсли;
+
+ Если ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown) Тогда
+ ЗавершитьРаботуСистемы(Ложь);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun)
+ Попытка
+ ИдентификаторЗагрузчика = Параметры_xddRun[0];
+ Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика);
+
+ ПутьКТестам = Параметры_xddRun[1];
+ ДеревоТестовОтЗагрузчика = Загрузчик.Загрузить(ЭтаФорма, ПутьКТестам);
+
+ РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика);
+ Исключение
+ ОписаниеОшибки = "Ошибка загрузки и выполнения тестов в пакетном режиме
+ |" + ОписаниеОшибки();
+ ЗафиксироватьОшибкуВЖурналеРегистрации(ОписаниеОшибки);
+ КонецПопытки;
+
+ Возврат РезультатыТестирования;
+КонецФункции
+
+&НаКлиенте
+Процедура СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Знач Параметры_xddReport, Знач РезультатыТестирования)
+ Попытка
+ ИдентификаторГенератораОтчета = Параметры_xddReport[0];
+ ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета);
+
+ Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования);
+
+ ПутьКОтчету = Параметры_xddReport[1];
+ ГенераторОтчета.Экспортировать(Отчет, ПутьКОтчету);
+ Исключение
+ ОписаниеОшибки = "Ошибка формирования и экспорта отчета о тестировании в пакетном режиме
+ |" + ОписаниеОшибки();
+ ЗафиксироватьОшибкуВЖурналеРегистрации(ОписаниеОшибки);
+ КонецПопытки;
+КонецПроцедуры
+
+&НаСервере
+Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ОписаниеОшибки)
+ ЗаписьЖурналаРегистрации(ЭтотОбъектНаСервере().Метаданные().Имя, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
+КонецПроцедуры
+// } Пакетный запуск
+
+// { Контекст
+&НаКлиенте
+Процедура СохранитьКонтекст(Знач Контекст) Экспорт
+ Если Объект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда
+ ВызватьИсключение Объект.ВозможныеИсключения.СохранятьКонтекстТолькоВСтрогомРежиме;
+ КонецЕсли;
+ Объект.ТекущийКонтейнер.Контекст = Контекст;
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПолучитьКонтекст() Экспорт
+ Если Объект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда
+ ВызватьИсключение Объект.ВозможныеИсключения.ПолучатьКонтекстТолькоВСтрогомРежиме;
+ КонецЕсли;
+
+ Возврат Объект.ТекущийКонтейнер.Контекст;
+КонецФункции
+// } Контекст
+
+Процедура ВызватьОшибкуПроверки(СообщениеОшибки = "") Экспорт
+
+ Префикс = "["+ Объект.СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
+ ВызватьИсключение Префикс + " " + СообщениеОшибки;
+
+КонецПроцедуры
+
+Процедура ПропуститьТест(Знач Сообщение = "") Экспорт
+
+ Префикс = "[" + Объект.СтатусыРезультатаТестирования.ТестПропущен + "]";
+ Если ПустаяСтрока(Сообщение) Тогда
+ Сообщение = НСтр("ru = 'Тест пропущен'");
+ КонецЕсли;
+ ВызватьИсключение Префикс + " " + Сообщение;
+
+КонецПроцедуры
+
+// Выводит сообщение. В тестах ВСЕГДА должна использоваться ВМЕСТО метода Сообщить().
+//
+Функция ВывестиСообщение(ТекстСообщения, Статус=Неопределено) Экспорт
+
+ Сообщить(ТекстСообщения, Статус);
+
+КонецФункции
+
+// { Внешние интерфейсные инструменты
+&НаКлиенте
+Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормы = "Форма")
+
+ // Для встроенного в состав конфигурации браузера тестов
+ // инструменты находятся также в составке конфигурации
+ Если Объект.ЭтоВстроеннаяОбработка Тогда
+ // Преобразование имени инструмента к имени обработки
+ Если ИмяИнструмента = "UILogToScript" Тогда
+ ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя";
+ КонецЕсли;
+ ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы);
+ ФормаИнструмента = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы);
+ Иначе
+ Если Не ПустаяСтрока(ПутьИнструмента) Тогда
+ ПутьКВнешнимИнструментам = ПутьИнструмента + "\";
+ Иначе
+ ПутьКВнешнимИнструментам = ПолучитьПутьКВнешнимИнструментам();
+ КонецЕсли;
+ ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf";
+ ФайлИнструмента = Новый Файл(ПутьИнструмента);
+ Если Не ФайлИнструмента.Существует() Тогда
+ Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">");
+ Возврат;
+ КонецЕсли;
+ АдресХранилища = "";
+ ПоместитьФайл(АдресХранилища, ФайлИнструмента.ПолноеИмя, , Ложь);
+ ПодключитьФайлОбработкиНаСервере(АдресХранилища, ИмяИнструмента);
+
+ ФормаИнструмента = ПолучитьФорму("ВнешняяОбработка." + ИмяИнструмента + "." + ИмяФормы);
+ Если ФормаИнструмента = Неопределено Тогда
+ Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!");
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+ ФормаИнструмента.Открыть();
+ ФормаИнструмента = Неопределено;
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПолучитьПутьКПлагинам()
+ // Для встроенного в состав конфигурации браузера тестов
+ // используемое имя файла не используется
+ Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда
+ ФайлЯдра = Новый Файл(ЭтаФорма["ИспользуемоеИмяФайла"]);
+ Результат = ФайлЯдра.Путь + "Plugins\";
+ КонецЕсли;
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Функция ПолучитьПутьКВнешнимИнструментам()
+ ФайлЯдра = Новый Файл(ЭтаФорма.ИспользуемоеИмяФайла);
+ Результат = ФайлЯдра.Путь + "Utils\";
+
+ Возврат Результат;
+КонецФункции
+// } Внешние интерфейстные инструменты
+
+// { Helpers
+&НаКлиенте
+Процедура ПодключитьВнешнююОбработку(ФайлОбработки) Экспорт
+ Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда
+
+ ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf");
+ АдресХранилища = "";
+ ПоместитьФайл(АдресХранилища, ФайлОбработки.ПолноеИмя, , Ложь, ЭтаФорма.УникальныйИдентификатор);
+
+ ПодключитьФайлОбработкиНаСервере(АдресХранилища, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет);
+
+ ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаСервереБезКонтекста
+Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь)
+ Если ЭтоОтчет = Истина Тогда
+ ВнешниеОтчеты.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь);
+ Иначе
+ ВнешниеОбработки.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПолучитьОписаниеКонтекстаВыполнения(Знач Идентификатор, Знач ЭтоВнутренняяОбработка = Ложь) Экспорт
+ ОписаниеКонтекстаВыполнения = Новый Структура("Идентификатор, ЭтоВнутренняяОбработка", Идентификатор, ЭтоВнутренняяОбработка);
+
+ Возврат Новый ФиксированнаяСтруктура(ОписаниеКонтекстаВыполнения);
+КонецФункции
+
+&НаСервере
+Функция ЭтотОбъектНаСервере()
+ Возврат РеквизитФормыВЗначение("Объект");
+КонецФункции
+
+&НаКлиенте
+Процедура ИнициализироватьИндикаторВыполнения(Знач КоличествоТестовыхМетодов = 0)
+ Элементы.ИндикаторВыполнения.МаксимальноеЗначение = КоличествоТестовыхМетодов;
+ ИндикаторВыполнения = 0;
+ Элементы.ИндикаторВыполнения.ЦветРамки = Новый Цвет(0, 174, 0); // Зеленый
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОповеститьОСобытии(Знач Подписчик, Знач Событие, Знач ПараметрыСобытия)
+ Выполнить("Подписчик.ОбработатьСобытиеВыполненияТестов(Событие, ПараметрыСобытия);");
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПеремешатьМассив(Знач ИсходныйМассив) Экспорт
+ Результат = Новый Массив;
+ Для Каждого Элемент Из ИсходныйМассив Цикл
+ Результат.Добавить(Элемент);
+ КонецЦикла;
+
+ // алгоритм перемешивания взят из книги Кнута "Искусство программирования" т.2
+ ГСЧ = Новый ГенераторСлучайныхЧисел();
+ ПоследнийИндекс = Результат.ВГраница();
+ Для Индекс = 1 По ПоследнийИндекс Цикл
+ ТекущийИндекс = ПоследнийИндекс - Индекс + 1;
+ НовыйИндекс = ГСЧ.СлучайноеЧисло(0, ТекущийИндекс);
+ Если НовыйИндекс <> ТекущийИндекс Тогда
+ Значение = Результат[НовыйИндекс];
+ Результат[НовыйИндекс] = Результат[ТекущийИндекс];
+ Результат[ТекущийИндекс] = Значение;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Функция НайтиРезультатТестированияПоИдентификатору(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные = Ложь) Экспорт
+ Результат = НайтиРезультатТестированияПоИдентификатору_НаСервере(КонтейнерРезультатовТестирования, ИдентификаторТеста, ВключатьПодчиненные);
+
+ Возврат Результат;
+КонецФункции
+
+&НаСервере
+Функция НайтиРезультатТестированияПоИдентификатору_НаСервере(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные) Экспорт
+ Результат = ЭтотОбъектНаСервере().НайтиРезультатТестированияПоИдентификатору(КонтейнерРезультатовТестирования, ИдентификаторТеста, ВключатьПодчиненные);
+
+ Возврат Результат;
+КонецФункции
+
+&НаКлиенте
+Процедура СброситьПодключенныеВнешниеОбработки()
+ ПодключенныеВнешниеОбработки = Новый Соответствие;
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПараметрыМетода(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт
+ ВсеПараметры = Новый Массив;
+ ВсеПараметры.Добавить(Парам1);
+ ВсеПараметры.Добавить(Парам2);
+ ВсеПараметры.Добавить(Парам3);
+ ВсеПараметры.Добавить(Парам4);
+ ВсеПараметры.Добавить(Парам5);
+ ВсеПараметры.Добавить(Парам6);
+ ВсеПараметры.Добавить(Парам7);
+ ВсеПараметры.Добавить(Парам8);
+ ВсеПараметры.Добавить(Парам9);
+
+ ИндексСПоследнимПараметром = 0;
+ Для Сч = 0 По ВсеПараметры.ВГраница() Цикл
+ Индекс = ВсеПараметры.ВГраница() - Сч;
+ Если ВсеПараметры[Индекс] <> Неопределено Тогда
+ ИндексСПоследнимПараметром = Индекс;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ ПараметрыМетода = Новый Массив;
+ Для Сч = 0 По ИндексСПоследнимПараметром Цикл
+ ПараметрыМетода.Добавить(ВсеПараметры[Сч]);
+ КонецЦикла;
+
+ Возврат ПараметрыМетода;
+КонецФункции
+
+&НаСервере
+Процедура ЗагрузитьВстроенныеПлагины()
+
+ ОбъектНаСервере = ЭтотОбъектНаСервере();
+ Объект.Плагины = ОбъектНаСервере.ПолучитьПлагины();
+
+КонецПроцедуры
+
+// } Helpers
+
+// { Подсистема конфигурации xUnitFor1C
+
+// Универсальная функция для проверки наличия
+// свойств у значения любого типа данных
+// Переменные:
+// 1. Переменная - переменная любого типа,
+// для которой необходимо проверить наличие свойства
+// 2. ИмяСвойства - переменная типа "Строка",
+// содержащая искомое свойства
+//
+&НаКлиентеНаСервереБезКонтекста
+Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства)
+ // Инициализируем структуру для теста
+ // с ключом (значение переменной "ИмяСвойства")
+ // и значением произвольного GUID'а
+ GUIDПроверка = Новый УникальныйИдентификатор;
+ СтруктураПроверка = Новый Структура;
+ СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
+ // Заполняем созданную структуру из переданного
+ // значения переменной
+ ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
+ // Если значение для свойства структуры осталось
+ // NULL, то искомое свойство не найдено,
+ // и наоборот.
+ Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда
+ Возврат Ложь;
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+КонецФункции
+&НаКлиентеНаСервереБезКонтекста
+Функция ЗаполнитьСвойствоПриНаличии(ОбъектЗаполнения, ИмяСвойство, ЗначениеСвойства)
+
+ Если ПеременнаяСодержитСвойство(ОбъектЗаполнения, ИмяСвойство) Тогда
+ ОбъектЗаполнения[ИмяСвойство] = ЗначениеСвойства;
+ КонецЕсли;
+
+КонецФункции
+
+&НаКлиенте
+Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+ Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
+ Возврат Идентификатор;
+ Иначе
+ Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+&НаКлиенте
+Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+ Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
+ Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса);
+ Иначе
+ Возврат Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+
+&НаСервере
+Функция СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию = Ложь, ЭтоОтчет = Ложь)
+
+ ОбъектНаСервере = ЭтотОбъектНаСервере();
+
+ Возврат ОбъектНаСервере.СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию, ЭтоОтчет);
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
diff --git "a/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
deleted file mode 100644
index e0581d0d..00000000
--- "a/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.txt"
+++ /dev/null
@@ -1 +0,0 @@
-&НаКлиенте
Перем КэшФормПлагинов;
&НаКлиенте
Перем ПодключенныеВнешниеОбработки;
// { События формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы();
ИспользуемоеИмяФайла = ОбъектНаСервере.ИспользуемоеИмяФайла;
ОбновитьКомандыИсторииЗагрузкиТестов();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии()
ЗагрузитьПлагины();
КэшироватьПеречисленияПлагинов();
СброситьПодключенныеВнешниеОбработки();
ЭтоПакетныйЗапуск = ЗначениеЗаполнено(ПараметрЗапуска);
Если ЭтоПакетныйЗапуск Тогда
ВыполнитьПакетныйЗапуск(ПараметрЗапуска);
Иначе
ПерезагрузитьПоследниеТестыПоИстории();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии()
ПриЗакрытииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриЗакрытииНаСервере()
ЭтотОбъектНаСервере().СохранитьНастройки();
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьСобытиеВыполненияТестов(Знач ИмяСобытия, Знач Параметр) Экспорт
Если ИмяСобытия = Объект.ВозможныеСобытия.ВыполненТестовыйМетод Тогда
Если Параметр.Состояние = Объект.СостоянияТестов.НеРеализован Тогда
Если Элементы.ИндикаторВыполнения.ЦветРамки <> WebЦвета.Красный Тогда
Элементы.ИндикаторВыполнения.ЦветРамки = WebЦвета.Золотой;
КонецЕсли;
ИначеЕсли Параметр.Состояние = Объект.СостоянияТестов.Сломан Тогда
Элементы.ИндикаторВыполнения.ЦветРамки = WebЦвета.Красный;
КонецЕсли;
ИндикаторВыполнения = ИндикаторВыполнения + 1;
КонецЕсли;
ОбновитьОтображениеДанных();
КонецПроцедуры
// } События формы
// { Управляющие воздействия пользователя
&НаКлиенте
Процедура ЗагрузитьТестыПоУмолчанию(Команда)
ЗагрузчикПоУмолчанию = ЗагрузчикПоУмолчанию();
ИдентификаторЗагрузчикаПоУмолчанию = ЗагрузчикПоУмолчанию.ОписаниеПлагина(Объект.ТипыПлагинов).Идентификатор;
Подключаемый_ИнтерактивныйВызовЗагрузчика(Новый Структура("Имя", ИдентификаторЗагрузчикаПоУмолчанию));
КонецПроцедуры
&НаКлиенте
Процедура КомандаВыполнитьВсеТесты(Команда)
ВыполнитьТестыНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьТестыНаКлиенте(Знач Фильтр = Неопределено)
Если ЗначениеЗаполнено(ЭтаФорма.ДеревоОтЗагрузчика) Тогда
ОчиститьСообщения();
КоличествоТестовыхМетодов = ПолучитьКоличествоТестовыхМетодов(ЭтаФорма.ДеревоОтЗагрузчика, Фильтр);
ИнициализироватьИндикаторВыполнения(КоличествоТестовыхМетодов);
СброситьПодключенныеВнешниеОбработки();
РезультатыТестирования = ВыполнитьТесты(Плагин(ИдентификаторЗагрузчика), ЭтаФорма.ДеревоОтЗагрузчика, Фильтр, ЭтаФорма);
ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДеревоТестов.ПолучитьЭлементы()[0], РезультатыТестирования);
ГенераторОтчетаMXL = Плагин("ГенераторОтчетаMXL");
Отчет = ГенераторОтчетаMXL.СоздатьОтчет(ЭтаФорма, РезультатыТестирования);
ГенераторОтчетаMXL.Показать(Отчет);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КомандаВыполнитьВыделенныеТесты(Команда)
Фильтр = Новый Массив;
ВыделенныеСтроки = Элементы.ДеревоТестов.ВыделенныеСтроки;
Для каждого ИдентификаторВыделеннойСтроки Из ВыделенныеСтроки Цикл
ВыделеннаяСтрока = ДеревоТестов.НайтиПоИдентификатору(ИдентификаторВыделеннойСтроки);
Фильтр.Добавить(Новый УникальныйИдентификатор(ВыделеннаяСтрока.Ключ));
КонецЦикла;
Если Фильтр.Количество() > 0 Тогда
ВыполнитьТестыНаКлиенте(Фильтр);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КомандаПерезагрузитьФорму(Команда)
Закрыть();
АдресХранилища = "";
ПоместитьФайл(АдресХранилища, ЭтаФорма.ИспользуемоеИмяФайла, , Ложь);
ПодключитьФайлОбработкиНаСервере(АдресХранилища, Неопределено);
НоваяФорма = ПолучитьФорму(ЭтаФорма.ИмяФормы,,,Истина);
НоваяФорма.ИспользуемоеИмяФайла = ЭтаФорма.ИспользуемоеИмяФайла;
НоваяФорма.Открыть();
КонецПроцедуры
&НаКлиенте
Процедура ПерезагрузитьПоследниеТестыПоИстории(Команда = Неопределено)
ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов;
Если ИсторияЗагрузкиТестов.Количество() > 0 Тогда
ЭлементИстории = ИсторияЗагрузкиТестов[0];
Попытка
ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь);
Исключение
// TODO
Сообщить("Не удалось загрузить тесты из истории <" + ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь + ">" + Символы.ПС + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ГенераторМакетовДанных(Команда)
ОткрытьИнструмент("СериализаторMXL", ПолучитьПутьКПлагинам());
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьГУИД(Команда)
ОткрытьИнструмент("xddGuidShow");
КонецПроцедуры
&НаКлиенте
Процедура КонвертерТестов(Команда)
ОткрытьИнструмент("xddTestsConvertIntoRebornFormat");
КонецПроцедуры
// } Управляющие воздействия пользователя
// { Плагины
&НаКлиенте
Процедура ЗагрузитьПлагины()
Объект.Плагины = Новый Структура;
КэшФормПлагинов = Новый Структура;
КаталогПлагинов = ПолучитьПутьКПлагинам();
НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь);
ПомещаемыеФайлы = Новый Массив;
ИдентификаторыПлагинов = Новый Соответствие;
Для каждого ФайлОбработки Из НайденныеФайлы Цикл
ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя);
ПомещаемыеФайлы.Добавить(ПомещаемыйФайл);
ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
КонецЦикла;
ЗагруженныеФайлы = Новый Массив;
Если ПомещаемыеФайлы.Количество() Тогда
ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы);
Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя];
ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя];
Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина);
КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина);
КонецЦикла;
ДобавитьКомандыЗагрузчиковНаФорме();
КонецПроцедуры
&НаСервере
Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы)
ОписанияПлагинов = Новый Соответствие;
Для Каждого ОписаниеФайла Из ЗагружаемыеФайлы Цикл
ФайлОбъект = Новый Файл(ОписаниеФайла.Имя);
ИмяПлагина = ФайлОбъект.ИмяБезРасширения;
ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина);
Попытка
ОбъектОбработки = ВнешниеОбработки.Создать(ИмяПлагина, Ложь);
ОбъектОбработки.Инициализация(ЭтотОбъектНаСервере());
ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов));
Исключение
Ошибка = "Возникла ошибка при загрузке плагина: "+ОписаниеФайла.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Сообщить(Ошибка);
Продолжить;
КонецПопытки;
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(ОписанияПлагинов);
КонецФункции // ПодключитьПлагиныНаСервере()
&НаКлиенте
Процедура КэшироватьПеречисленияПлагинов()
Объект.ТипыУзловДереваТестов = Плагин("ПостроительДереваТестов").Объект.ТипыУзловДереваТестов;
КонецПроцедуры
&НаКлиенте
Функция Плагин(Знач Идентификатор) Экспорт
ОбъектПлагин = КэшФормПлагинов[Идентификатор];
Если ОбъектПлагин = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Неизвестный идентификатор плагина: <"+Идентификатор+">'");
ИначеЕсли ОбъектПлагин = Истина Тогда
// загрузка клиентского плагина "По требованию"
ИмяПлагина = Объект.Плагины[Идентификатор];
Попытка
ОбъектПлагин = ПолучитьФорму("ВнешняяОбработка." + ИмяПлагина + ".Форма", , ЭтаФорма);
КэшФормПлагинов.Вставить(Идентификатор, ОбъектПлагин);
Исключение
// TODO добавить поведение при отсутствии управляемой формы у плагина
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
Возврат ОбъектПлагин;
КонецФункции
&НаСервере
Процедура ДобавитьКомандыЗагрузчиковНаФорме()
ОписанияЗагрузчиков = ПолучитьОписанияЗагрузчиковНаСервере();
Для каждого Описание Из ОписанияЗагрузчиков Цикл
Команда = ЭтаФорма.Команды.Добавить(Описание.Идентификатор);
Команда.Действие = "Подключаемый_ИнтерактивныйВызовЗагрузчика";
ПунктМеню = ЭтаФорма.Элементы.Добавить(Команда.Имя, Тип("КнопкаФормы"), ЭтаФорма.Элементы.ПлагиныЗагрузчики);
ПунктМеню.Заголовок = Описание.Представление;
ПунктМеню.ИмяКоманды = Команда.Имя;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьОписанияПлагиновПоТипу(Знач ТипПлагина) Экспорт
Результат = ПолучитьОписанияПлагиновПоТипуНаСервере(ТипПлагина);
Возврат Результат;
КонецФункции
&НаСервере
Функция ПолучитьОписанияПлагиновПоТипуНаСервере(Знач ТипПлагина)
ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
Результат = ОбъектНаСервере.ПолучитьОписанияПлагиновПоТипу(ТипПлагина);
Возврат Результат;
КонецФункции
&НаСервере
Функция ПолучитьОписанияЗагрузчиковНаСервере()
ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
ОписанияЗагрузчиков = ОбъектНаСервере.ПолучитьОписанияПлагиновПоТипу(ОбъектНаСервере.ТипыПлагинов.Загрузчик);
Возврат ОписанияЗагрузчиков;
КонецФункции
&НаКлиенте
Функция ЗагрузчикПоУмолчанию() Экспорт
Возврат Плагин("ЗагрузчикКаталога");
КонецФункции
// } Плагины
// { Работа с деревом тестов
&НаКлиенте
Процедура Подключаемый_ИнтерактивныйВызовЗагрузчика(Команда)
ИдентификаторВыбранногоЗагрузчика = Команда.Имя;
Путь = Плагин(ИдентификаторВыбранногоЗагрузчика).ВыбратьПутьИнтерактивно();
Если ЗначениеЗаполнено(Путь) Тогда
ЗагрузитьТесты(ИдентификаторВыбранногоЗагрузчика, Путь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьТесты(Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь)
ИнициализироватьИндикаторВыполнения();
ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика;
ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика);
Попытка
ЭтаФорма.ДеревоОтЗагрузчика = ФормаЗагрузчика.Загрузить(ЭтаФорма, Путь);
Исключение
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы();
ЭлементыДереваТестов.Очистить();
ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика);
КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов);
РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30);
СохранитьВИсториюЗагрузкиТестовНаСервере(ИдентификаторВыбранногоЗагрузчика, Путь);
ОбновитьКомандыИсторииЗагрузкиТестов();
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДеревоТестов(РодительскаяСтрокаДереваТестов, Знач КонтейнерДереваТестовЗагрузчика)
СтрокаКонтейнера = РодительскаяСтрокаДереваТестов.ПолучитьЭлементы().Добавить();
СтрокаКонтейнера.Имя = КонтейнерДереваТестовЗагрузчика.Имя;
СтрокаКонтейнера.ИконкаУзла = КонтейнерДереваТестовЗагрузчика.ИконкаУзла;
СтрокаКонтейнера.Ключ = КонтейнерДереваТестовЗагрузчика.Ключ;
Для каждого ЭлементКоллекции Из КонтейнерДереваТестовЗагрузчика.Строки Цикл
Если ЭлементКоллекции.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда
ЗаполнитьДеревоТестов(СтрокаКонтейнера, ЭлементКоллекции);
ИначеЕсли ЭлементКоллекции.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
СтрокаЭлемента = СтрокаКонтейнера.ПолучитьЭлементы().Добавить();
СтрокаЭлемента.Имя = ЭлементКоллекции.Представление;
СтрокаЭлемента.Путь = ЭлементКоллекции.Путь;
СтрокаЭлемента.ИконкаУзла = ЭлементКоллекции.ИконкаУзла;
СтрокаЭлемента.Ключ = ЭлементКоллекции.Ключ;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Функция ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(РодительскаяСтрока)
КоллекцияСтрок = РодительскаяСтрока.ПолучитьЭлементы();
Если КоллекцияСтрок.Количество() = 0 Тогда
Возврат 1;
КонецЕсли;
ОбщееКоличествоТестов = 0;
Для каждого СтрокаДерева из КоллекцияСтрок Цикл
КоличествоТестовВСтроке = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(СтрокаДерева);
СтрокаДерева.КоличествоТестов = КоличествоТестовВСтроке;
ОбщееКоличествоТестов = ОбщееКоличествоТестов + КоличествоТестовВСтроке;
КонецЦикла;
Возврат ОбщееКоличествоТестов;
КонецФункции
&НаКлиенте
Процедура РазвернутьСтрокиДерева(Знач ВключаяПодчиненные = Ложь)
Для каждого СтрокаДерева из ДеревоТестов.ПолучитьЭлементы() Цикл
Идентификатор = СтрокаДерева.ПолучитьИдентификатор();
Элементы.ДеревоТестов.Развернуть(Идентификатор, ВключаяПодчиненные);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьДеревоТестовНаОснованииРезультатовТестирования(УзелДереваТестов, Знач РезультатТестирования)
УзелДереваТестов.Состояние = РезультатТестирования.Состояние;
УзелДереваТестов.ВремяВыполнения = РезультатТестирования.ВремяВыполнения;
Если РезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда
Для каждого ДочернийРезультатТестирования Из РезультатТестирования.Строки Цикл
ДочернийУзелДереваТестов = НайтиСтрокуВДеревеТестовПоКлючу(УзелДереваТестов, ДочернийРезультатТестирования.Ключ);
ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДочернийУзелДереваТестов, ДочернийРезультатТестирования);
КонецЦикла;
ИначеЕсли РезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
Если РезультатТестирования.Свойство("Сообщение") И ЗначениеЗаполнено(РезультатТестирования.Сообщение) Тогда
Сообщить(РезультатТестирования.Сообщение, СтатусСообщения.ОченьВажное);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция НайтиСтрокуВДеревеТестовПоКлючу(УзелДереваТестов, Знач Ключ)
Результат = Неопределено;
Для каждого ЭлементКоллекции Из УзелДереваТестов.ПолучитьЭлементы() Цикл
Если ЭлементКоллекции.Ключ = Ключ Тогда
Результат = ЭлементКоллекции;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
// } Работа с деревом тестов
// { Выполнение тестов
&НаКлиенте
Функция ПолучитьКоличествоТестовыхМетодов(Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено) Экспорт
Возврат ПолучитьКоличествоТестовыхМетодовНаСервере(КонтейнерДереваТестов, Фильтр);
КонецФункции
&НаСервере
Функция ПолучитьКоличествоТестовыхМетодовНаСервере(Знач КонтейнерДереваТестов, Знач Фильтр)
Возврат ЭтотОбъектНаСервере().ПолучитьКоличествоТестовыхМетодов(КонтейнерДереваТестов, Фильтр);
КонецФункции
&НаКлиенте
Функция ВыполнитьТесты(Знач Загрузчик, Знач КонтейнерДереваТестов, Знач Фильтр = Неопределено, Знач Подписчик = Неопределено) Экспорт
РезультатТестирования = СоздатьКонтейнерРезультатовТестирования(КонтейнерДереваТестов);
ФильтрДляДочернихУзлов = Неопределено;
Если Не УзелДереваТестовУдовлетворяетФильтру(КонтейнерДереваТестов, Фильтр) Тогда
ФильтрДляДочернихУзлов = Фильтр;
КонецЕсли;
Если КонтейнерДереваТестов.СлучайныйПорядокВыполнения Тогда
СтрокиКонтейнера = ПеремешатьМассив(КонтейнерДереваТестов.Строки);
Иначе
СтрокиКонтейнера = КонтейнерДереваТестов.Строки;
КонецЕсли;
Для каждого ДочернийУзел Из СтрокиКонтейнера Цикл
ДочернийРезультатТестирования = Неопределено;
Если ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда
ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик);
ИначеЕсли ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда
КонтекстВыполнения = ПолучитьКонтекстВыполненияПоПути(Загрузчик, ДочернийУзел.Путь);
Объект.ТекущийКонтейнер = КонтейнерДереваТестов;
ДочернийРезультатТестирования = ВыполнитьТестовыйМетод(КонтекстВыполнения, ДочернийУзел);
КонтейнерДереваТестов.Контекст = Объект.ТекущийКонтейнер.Контекст;
Если Подписчик <> Неопределено Тогда
ОповеститьОСобытии(Подписчик, Объект.ВозможныеСобытия.ВыполненТестовыйМетод, ДочернийРезультатТестирования);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ДочернийРезультатТестирования <> Неопределено Тогда
РезультатТестирования.Строки.Добавить(ДочернийРезультатТестирования);
РезультатТестирования.Состояние = ВыбратьХудшееСостояниеВыполненияТестов(РезультатТестирования.Состояние, ДочернийРезультатТестирования.Состояние);
ЗаполнитьДанныеСтатистики(РезультатТестирования, ДочернийРезультатТестирования);
Если Не КонтейнерДереваТестов.СлучайныйПорядокВыполнения И ДочернийРезультатТестирования.Состояние <> Объект.СостоянияТестов.Пройден Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если РезультатТестирования.Строки.Количество() = 0 Тогда
РезультатТестирования = Неопределено;
КонецЕсли;
Возврат РезультатТестирования;
КонецФункции
&НаКлиенте
Функция УзелДереваТестовУдовлетворяетФильтру(Знач УзелДереваТестов, Знач Фильтр)
Возврат (Фильтр = Неопределено) Или (Фильтр.Найти(УзелДереваТестов.Ключ) <> Неопределено);
КонецФункции
&НаКлиенте
Функция ПолучитьКонтекстВыполненияПоПути(Знач Загрузчик, Знач Путь)
КонтекстВыполнения = Загрузчик.ПолучитьКонтекстПоПути(ЭтаФорма, Путь);
Возврат КонтекстВыполнения;
КонецФункции
&НаКлиенте
Функция ЭтоСерверныйКонтекстВыполнения(Знач КонтекстВыполнения)
Результат = ТипЗнч(КонтекстВыполнения) = Тип("ФиксированнаяСтруктура");
Возврат Результат;
КонецФункции
&НаКлиенте
Процедура ЗаполнитьДанныеСтатистики(РезультатТестирования, Знач ДочернийРезультатТестирования)
Если ДочернийРезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Контейнер Тогда
РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + ДочернийРезультатТестирования.КоличествоТестов;
РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + ДочернийРезультатТестирования.КоличествоСломанныхТестов;
РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + ДочернийРезультатТестирования.КоличествоНеРеализованныхТестов;
РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + ДочернийРезультатТестирования.КоличествоОшибочныхТестов;
ИначеЕсли ДочернийРезультатТестирования.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
РезультатТестирования.КоличествоТестов = РезультатТестирования.КоличествоТестов + 1;
Если ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан Тогда
РезультатТестирования.КоличествоСломанныхТестов = РезультатТестирования.КоличествоСломанныхТестов + 1;
ИначеЕсли ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован Тогда
РезультатТестирования.КоличествоНеРеализованныхТестов = РезультатТестирования.КоличествоНеРеализованныхТестов + 1;
ИначеЕсли ДочернийРезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка Тогда
РезультатТестирования.КоличествоОшибочныхТестов = РезультатТестирования.КоличествоОшибочныхТестов + 1;
КонецЕсли;
КонецЕсли;
РезультатТестирования.ВремяВыполнения = РезультатТестирования.ВремяВыполнения + ДочернийРезультатТестирования.ВремяВыполнения;
КонецПроцедуры
&НаКлиенте
Функция ВыбратьХудшееСостояниеВыполненияТестов(Знач Состояние1, Знач Состояние2)
Возврат Макс(Состояние1, Состояние2);
КонецФункции
&НаКлиенте
Функция ВыполнитьТестовыйМетод(Знач КонтекстВыполнения, Знач ЭлементДереваТестов)
Перем РезультатТестирования;
Если ЭтоСерверныйКонтекстВыполнения(КонтекстВыполнения) Тогда
РезультатТестирования = ВыделитьТестовыйМетодНаСервереСОбработкойОшибокПередачиМеждуНаКлиентомИСервером(КонтекстВыполнения, ЭлементДереваТестов);
Иначе
РезультатТестирования = ВыполнитьТестовыйМетодНаКлиенте(КонтекстВыполнения, ЭлементДереваТестов);
КонецЕсли;
Возврат РезультатТестирования;
КонецФункции
&НаКлиенте
Функция ВыполнитьТестовыйМетодНаКлиенте(Знач КонтекстВыполнения, Знач ЭлементДереваТестов) Экспорт
РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов);
НачалоВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах();
Если ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования) Тогда
Попытка
ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПередЗапускомТеста);
ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ЭлементДереваТестов.ИмяМетода, ЭлементДереваТестов.Параметры);
РезультатТестирования.Состояние = Объект.СостоянияТестов.Пройден;
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
Если ЕстьОшибка_МетодОбъектаНеОбнаружен(КраткийТекстОшибки, ЭлементДереваТестов.ИмяМетода) Тогда
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован;
Сообщение = НСтр("ru = 'Отсутствует реализация тестового метода (%1).'");
РезультатТестирования.Сообщение = СтрЗаменить(Сообщение, "%1", ЭлементДереваТестов.ИмяМетода);
Иначе
РезультатТестирования.Сообщение = ТекстОшибки;
Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда
РезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан;
ИначеЕсли ЭтоПропущенныйТест(КраткийТекстОшибки) Тогда
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеРеализован;
Иначе
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
КонецЕсли;
КонецЕсли;
КонецПопытки;
Попытка
ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПослеЗапускаТеста);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда
РезультатТестирования.Состояние = Объект.СостоянияТестов.Сломан;
Иначе
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
КонецЕсли;
КонецПопытки;
КонецЕсли;
ОкончаниеВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах();
РезультатТестирования.ВремяВыполнения = (ОкончаниеВыполнения - НачалоВыполнения) / 1000;
Возврат РезультатТестирования;
КонецФункции
&НаКлиенте
Функция ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования)
Попытка
КонтекстВыполнения.Инициализация(ЭтаФорма);
Возврат Истина;
Исключение
РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
КонецПопытки;
Возврат Ложь;
КонецФункции
&НаКлиенте
Функция ВыделитьТестовыйМетодНаСервереСОбработкойОшибокПередачиМеждуНаКлиентомИСервером(Знач КонтекстВыполнения, Знач ЭлементДереваТестов)
Перем ПолныйТекстОшибки, РезультатТестирования;
Попытка
РезультатТестирования = ВыполнитьТестовыйМетодНаСервере(КонтекстВыполнения, ЭлементДереваТестов);
Исключение
ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
РезультатТестирования = СоздатьЭлементРезультатовТестирования(ЭлементДереваТестов);
РезультатТестирования.Сообщение = ПолныйТекстОшибки;
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
КонецПопытки;
Возврат РезультатТестирования;
КонецФункции
&НаСервере
Функция ВыполнитьТестовыйМетодНаСервере(Знач ОписаниеКонтекста, Знач ЭлементДереваТестов)
ОбъектНаСервере = ЭтотОбъектНаСервере();
Если ОписаниеКонтекста.ЭтоВнутренняяОбработка Тогда
КонтекстВыполнения = Обработки[ОписаниеКонтекста.Идентификатор].Создать();
Иначе
КонтекстВыполнения = ВнешниеОбработки.Создать(ОписаниеКонтекста.Идентификатор, Ложь);
КонецЕсли;
КонтекстВыполнения.Инициализация(ОбъектНаСервере);
РезультатТестирования = ОбъектНаСервере.ВыполнитьТестовыйМетод(КонтекстВыполнения, ЭлементДереваТестов);
Возврат РезультатТестирования;
КонецФункции
&НаКлиенте
Процедура ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(Знач КонтекстВыполнения, Знач ИмяПроцедуры)
Попытка
ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры);
Исключение
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Если Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда
ВызватьИсключение;
КонецЕсли;
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПроцедуруКонтекста(Знач КонтекстВыполнения, Знач ПроцедураКонтекста, Знач Параметры = Неопределено)
СтрокаПараметров = СформироватьСтрокуПараметров(Параметры);
ИcполняемыйКод = "КонтекстВыполнения." + ПроцедураКонтекста + "(" + СтрокаПараметров + ");";
Выполнить(ИcполняемыйКод);
КонецПроцедуры
&НаКлиенте
Функция СформироватьСтрокуПараметров(Знач Параметры)
СтрокаПараметров = "";
Если ТипЗнч(Параметры) = Тип("Массив") Тогда
Для Сч = 0 По Параметры.Количество() - 1 Цикл
СтрокаПараметров = СтрокаПараметров + ",Параметры[" + Формат(Сч, "ЧН=0; ЧГ=") + "]";
КонецЦикла;
КонецЕсли;
Возврат Сред(СтрокаПараметров, 2);
КонецФункции
&НаКлиенте
Функция ЕстьОшибка_МетодОбъектаНеОбнаружен(Знач ТекстОшибки, Знач ИмяМетода)
Результат = Ложь;
Если Найти(ТекстОшибки, "Метод объекта не обнаружен (" + ИмяМетода + ")") > 0
ИЛИ Найти(ТекстОшибки, "Object method not found (" + ИмяМетода + ")") > 0 Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ЭтоОшибкаПроверки(ТекстОшибки)
Возврат Найти(ТекстОшибки, "["+ Объект.СтатусыРезультатаТестирования.ОшибкаПроверки + "]") = 1;
КонецФункции
Функция ЭтоПропущенныйТест(ТекстОшибки)
Возврат Найти(ТекстОшибки, "["+ Объект.СтатусыРезультатаТестирования.ТестПропущен + "]") > 0;
КонецФункции
// } Выполнение тестов
// { Генерация результатов тестирования
&НаКлиенте
Функция СоздатьКонтейнерРезультатовТестирования(Знач КонтейнерДереваТестов)
ГруппаРезультатовТестирования = Новый Структура;
ГруппаРезультатовТестирования.Вставить("Ключ", КонтейнерДереваТестов.Ключ);
ГруппаРезультатовТестирования.Вставить("Тип", КонтейнерДереваТестов.Тип);
ГруппаРезультатовТестирования.Вставить("Имя", КонтейнерДереваТестов.Имя);
ГруппаРезультатовТестирования.Вставить("Состояние", Объект.СостоянияТестов.НеВыполнен);
ГруппаРезультатовТестирования.Вставить("КоличествоТестов", 0);
ГруппаРезультатовТестирования.Вставить("КоличествоСломанныхТестов", 0);
ГруппаРезультатовТестирования.Вставить("КоличествоОшибочныхТестов", 0);
ГруппаРезультатовТестирования.Вставить("КоличествоНеРеализованныхТестов", 0);
ГруппаРезультатовТестирования.Вставить("ВремяВыполнения", 0);
ГруппаРезультатовТестирования.Вставить("Строки", Новый Массив);
Возврат ГруппаРезультатовТестирования;
КонецФункции
&НаКлиенте
Функция СоздатьЭлементРезультатовТестирования(Знач ЭлементДереваТестов)
РезультатТестирования = Новый Структура;
РезультатТестирования.Вставить("Ключ", ЭлементДереваТестов.Ключ);
РезультатТестирования.Вставить("Тип", ЭлементДереваТестов.Тип);
РезультатТестирования.Вставить("Путь", ЭлементДереваТестов.Путь);
РезультатТестирования.Вставить("ИмяМетода", ЭлементДереваТестов.ИмяМетода);
РезультатТестирования.Вставить("Представление", ЭлементДереваТестов.Представление);
РезультатТестирования.Вставить("Параметры", ЭлементДереваТестов.Параметры);
РезультатТестирования.Вставить("Состояние", Объект.СостоянияТестов.НеВыполнен);
РезультатТестирования.Вставить("ВремяВыполнения", 0);
РезультатТестирования.Вставить("Сообщение", "");
Возврат РезультатТестирования;
КонецФункции
// } Генерация результатов тестирования
// { История загрузки тестов
&НаСервере
Процедура СохранитьВИсториюЗагрузкиТестовНаСервере(Знач ИдентификаторЗагрузчика, Знач Путь)
ЭтотОбъектНаСервере = ЭтотОбъектНаСервере();
ЭтотОбъектНаСервере.СохранитьВИсториюЗагрузкиТестов(ИдентификаторЗагрузчика, Путь);
ЗначениеВРеквизитФормы(ЭтотОбъектНаСервере, "Объект");
КонецПроцедуры
&НаСервере
Процедура ОбновитьКомандыИсторииЗагрузкиТестов()
ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов;
ПодменюИсторияЗагрузкиТестов = Элементы.ПодменюИсторияЗагрузкиТестов;
Для Сч = 0 По ИсторияЗагрузкиТестов.Количество() - 1 Цикл
ИмяКоманды = "История_" + Сч;
НайденнаяКоманда = Команды.Найти(ИмяКоманды);
Если НайденнаяКоманда = Неопределено Тогда
НоваяКоманда = Команды.Добавить(ИмяКоманды);
НоваяКоманда.Действие = "Подключаемый_ЗагрузитьТестыИзИстории";
ПунктМеню = Элементы.Добавить(НоваяКоманда.Имя, Тип("КнопкаФормы"), ПодменюИсторияЗагрузкиТестов);
ПунктМеню.ИмяКоманды = НоваяКоманда.Имя;
Иначе
ПунктМеню = Элементы.Найти(ИмяКоманды);
КонецЕсли;
ЭлементИстории = ИсторияЗагрузкиТестов[Сч];
ПунктМеню.Заголовок = ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗагрузитьТестыИзИстории(Команда)
ИндексИстории = Число(Сред(Команда.Имя, Найти(Команда.Имя, "_") + 1));
ИсторияЗагрузкиТестов = Объект.Настройки.ИсторияЗагрузкиТестов;
ЭлементИстории = ИсторияЗагрузкиТестов[ИндексИстории];
ЗагрузитьТесты(ЭлементИстории.ИдентификаторЗагрузчика, ЭлементИстории.Путь);
КонецПроцедуры
// } История загрузки тестов
// { Пакетный запуск
&НаКлиенте
Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска)
Перем РезультатыТестирования;
ПарсерКоманднойСтроки = ЭтаФорма.Плагин("ПарсерКоманднойСтроки");
ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска);
Параметры_xddRun = Неопределено;
Если ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда
РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun);
КонецЕсли;
Параметры_xddReport = Неопределено;
Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда
СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования);
КонецЕсли;
Если ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown) Тогда
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun)
Попытка
ИдентификаторЗагрузчика = Параметры_xddRun[0];
Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика);
ПутьКТестам = Параметры_xddRun[1];
ДеревоТестовОтЗагрузчика = Загрузчик.Загрузить(ЭтаФорма, ПутьКТестам);
РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика);
Исключение
ОписаниеОшибки = "Ошибка загрузки и выполнения тестов в пакетном режиме
|" + ОписаниеОшибки();
ЗафиксироватьОшибкуВЖурналеРегистрации(ОписаниеОшибки);
КонецПопытки;
Возврат РезультатыТестирования;
КонецФункции
&НаКлиенте
Процедура СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Знач Параметры_xddReport, Знач РезультатыТестирования)
Попытка
ИдентификаторГенератораОтчета = Параметры_xddReport[0];
ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета);
Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования);
ПутьКОтчету = Параметры_xddReport[1];
ГенераторОтчета.Экспортировать(Отчет, ПутьКОтчету);
Исключение
ОписаниеОшибки = "Ошибка формирования и экспорта отчета о тестировании в пакетном режиме
|" + ОписаниеОшибки();
ЗафиксироватьОшибкуВЖурналеРегистрации(ОписаниеОшибки);
КонецПопытки;
КонецПроцедуры
&НаСервере
Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ОписаниеОшибки)
ЗаписьЖурналаРегистрации(ЭтотОбъектНаСервере().Метаданные().Имя, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
КонецПроцедуры
// } Пакетный запуск
// { Контекст
&НаКлиенте
Процедура СохранитьКонтекст(Знач Контекст) Экспорт
Если Объект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда
ВызватьИсключение Объект.ВозможныеИсключения.СохранятьКонтекстТолькоВСтрогомРежиме;
КонецЕсли;
Объект.ТекущийКонтейнер.Контекст = Контекст;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьКонтекст() Экспорт
Если Объект.ТекущийКонтейнер.СлучайныйПорядокВыполнения Тогда
ВызватьИсключение Объект.ВозможныеИсключения.ПолучатьКонтекстТолькоВСтрогомРежиме;
КонецЕсли;
Возврат Объект.ТекущийКонтейнер.Контекст;
КонецФункции
// } Контекст
Процедура ВызватьОшибкуПроверки(СообщениеОшибки = "") Экспорт
Префикс = "["+ Объект.СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
ВызватьИсключение Префикс + " " + СообщениеОшибки;
КонецПроцедуры
Процедура ПропуститьТест(Знач Сообщение = "") Экспорт
Префикс = "[" + Объект.СтатусыРезультатаТестирования.ТестПропущен + "]";
Если ПустаяСтрока(Сообщение) Тогда
Сообщение = НСтр("ru = 'Тест пропущен'");
КонецЕсли;
ВызватьИсключение Префикс + " " + Сообщение;
КонецПроцедуры
// Выводит сообщение. В тестах ВСЕГДА должна использоваться ВМЕСТО метода Сообщить().
//
Функция ВывестиСообщение(ТекстСообщения, Статус=Неопределено) Экспорт
Сообщить(ТекстСообщения, Статус);
КонецФункции
// { Внешние интерфейсные инструменты
&НаКлиенте
Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормы = "Форма")
Если Не ПустаяСтрока(ПутьИнструмента) Тогда
ПутьКВнешнимИнструментам = ПутьИнструмента + "\";
Иначе
ПутьКВнешнимИнструментам = ПолучитьПутьКВнешнимИнструментам();
КонецЕсли;
ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf";
ФайлИнструмента = Новый Файл(ПутьИнструмента);
Если Не ФайлИнструмента.Существует() Тогда
Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">");
Возврат;
КонецЕсли;
АдресХранилища = "";
ПоместитьФайл(АдресХранилища, ФайлИнструмента.ПолноеИмя, , Ложь);
ПодключитьФайлОбработкиНаСервере(АдресХранилища, Неопределено);
ФормаИнструмента = ПолучитьФорму("ВнешняяОбработка." + ИмяИнструмента + "." + ИмяФормы);
Если ФормаИнструмента = Неопределено Тогда
Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!");
Возврат;
КонецЕсли;
ФормаИнструмента.Открыть();
ФормаИнструмента = Неопределено;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьПутьКПлагинам()
ФайлЯдра = Новый Файл(ЭтаФорма.ИспользуемоеИмяФайла);
Результат = ФайлЯдра.Путь + "Plugins\";
Возврат Результат;
КонецФункции
&НаКлиенте
Функция ПолучитьПутьКВнешнимИнструментам()
ФайлЯдра = Новый Файл(ЭтаФорма.ИспользуемоеИмяФайла);
Результат = ФайлЯдра.Путь + "Utils\";
Возврат Результат;
КонецФункции
// } Внешние интерфейстные инструменты
// { Helpers
&НаКлиенте
Процедура ПодключитьВнешнююОбработку(ФайлОбработки) Экспорт
Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда
АдресХранилища = "";
ПоместитьФайл(АдресХранилища, ФайлОбработки.ПолноеИмя, , Ложь, ЭтаФорма.УникальныйИдентификатор);
ПодключитьФайлОбработкиНаСервере(АдресХранилища, ФайлОбработки.ИмяБезРасширения);
ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки)
ВнешниеОбработки.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь);
КонецПроцедуры
&НаКлиенте
Функция ПолучитьОписаниеКонтекстаВыполнения(Знач Идентификатор, Знач ЭтоВнутренняяОбработка = Ложь) Экспорт
ОписаниеКонтекстаВыполнения = Новый Структура("Идентификатор, ЭтоВнутренняяОбработка", Идентификатор, ЭтоВнутренняяОбработка);
Возврат Новый ФиксированнаяСтруктура(ОписаниеКонтекстаВыполнения);
КонецФункции
&НаСервере
Функция ЭтотОбъектНаСервере()
Возврат РеквизитФормыВЗначение("Объект");
КонецФункции
&НаКлиенте
Процедура ИнициализироватьИндикаторВыполнения(Знач КоличествоТестовыхМетодов = 0)
Элементы.ИндикаторВыполнения.МаксимальноеЗначение = КоличествоТестовыхМетодов;
ИндикаторВыполнения = 0;
Элементы.ИндикаторВыполнения.ЦветРамки = Новый Цвет(0, 174, 0); // Зеленый
КонецПроцедуры
&НаКлиенте
Процедура ОповеститьОСобытии(Знач Подписчик, Знач Событие, Знач ПараметрыСобытия)
Выполнить("Подписчик.ОбработатьСобытиеВыполненияТестов(Событие, ПараметрыСобытия);");
КонецПроцедуры
&НаКлиенте
Функция ПеремешатьМассив(Знач ИсходныйМассив) Экспорт
Результат = Новый Массив;
Для Каждого Элемент Из ИсходныйМассив Цикл
Результат.Добавить(Элемент);
КонецЦикла;
// алгоритм перемешивания взят из книги Кнута "Искусство программирования" т.2
ГСЧ = Новый ГенераторСлучайныхЧисел();
ПоследнийИндекс = Результат.ВГраница();
Для Индекс = 1 По ПоследнийИндекс Цикл
ТекущийИндекс = ПоследнийИндекс - Индекс + 1;
НовыйИндекс = ГСЧ.СлучайноеЧисло(0, ТекущийИндекс);
Если НовыйИндекс <> ТекущийИндекс Тогда
Значение = Результат[НовыйИндекс];
Результат[НовыйИндекс] = Результат[ТекущийИндекс];
Результат[ТекущийИндекс] = Значение;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
&НаКлиенте
Функция НайтиРезультатТестированияПоИдентификатору(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные = Ложь) Экспорт
Результат = НайтиРезультатТестированияПоИдентификатору_НаСервере(КонтейнерРезультатовТестирования, ИдентификаторТеста, ВключатьПодчиненные);
Возврат Результат;
КонецФункции
&НаСервере
Функция НайтиРезультатТестированияПоИдентификатору_НаСервере(Знач КонтейнерРезультатовТестирования, Знач ИдентификаторТеста, Знач ВключатьПодчиненные) Экспорт
Результат = ЭтотОбъектНаСервере().НайтиРезультатТестированияПоИдентификатору(КонтейнерРезультатовТестирования, ИдентификаторТеста, ВключатьПодчиненные);
Возврат Результат;
КонецФункции
&НаКлиенте
Процедура СброситьПодключенныеВнешниеОбработки()
ПодключенныеВнешниеОбработки = Новый Соответствие;
КонецПроцедуры
&НаКлиенте
Функция ПараметрыМетода(Знач Парам1, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено, Знач Парам6 = Неопределено, Знач Парам7 = Неопределено, Знач Парам8 = Неопределено, Знач Парам9 = Неопределено) Экспорт
ВсеПараметры = Новый Массив;
ВсеПараметры.Добавить(Парам1);
ВсеПараметры.Добавить(Парам2);
ВсеПараметры.Добавить(Парам3);
ВсеПараметры.Добавить(Парам4);
ВсеПараметры.Добавить(Парам5);
ВсеПараметры.Добавить(Парам6);
ВсеПараметры.Добавить(Парам7);
ВсеПараметры.Добавить(Парам8);
ВсеПараметры.Добавить(Парам9);
ИндексСПоследнимПараметром = 0;
Для Сч = 0 По ВсеПараметры.ВГраница() Цикл
Индекс = ВсеПараметры.ВГраница() - Сч;
Если ВсеПараметры[Индекс] <> Неопределено Тогда
ИндексСПоследнимПараметром = Индекс;
Прервать;
КонецЕсли;
КонецЦикла;
ПараметрыМетода = Новый Массив;
Для Сч = 0 По ИндексСПоследнимПараметром Цикл
ПараметрыМетода.Добавить(ВсеПараметры[Сч]);
КонецЦикла;
Возврат ПараметрыМетода;
КонецФункции
// } Helpers
\ No newline at end of file
diff --git "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form" "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form"
index 716a0379..58e955e1 100644
--- "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form"
+++ "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form"
@@ -216,7 +216,9 @@
{8,
{8,
{16,
-{1,0},
+{1,1,
+{"ru","Колонка1"}
+},
{1,0},
{1,0},26,0,-1,-1,-1,12590594,
{3,0,
@@ -318,60 +320,60 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
{3,3,
{0},"",-1,-1,0,
{
-{#base64:iVBORw0KGgoAAAANSUhEUgAAAHAAAAAQCAYAAADOFPsRAAAACXBIWXMAAA7EAAAO
-xAGVKw4bAAAAB3RJTUUH3wkIDgYGUr9hfQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAM
-dEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRF
-WHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVY
-dERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3Vy
-Y2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAAI
-zUlEQVRYhe2Yf1BVZRrHP++558pBsCCoxRW3IdEk0rqU/WBHiUJzGq9ZrmlqjEZr
-aq6zme0sTrobVvxhbtaqoWnZFmntbpk40+IUVow46ySIRjpo4g8MkptcucI93HvO
-efePy0XuBS7hyuw/+8y8c87zPuf7vuec73me9/seIaVkoC3fmT7qwTnzikqLty0s
-LKmpHah5ass/lXUHSmlqOo/nUgstbg93Tckle9YiMVBz/q9NHegJ8p3poyY9nlt0
-38OZ2S1NtUX5zvQBI/FExW4emPEkFy80cbH5J5oazlH6901kz1oUEbfhnQ9k8ZFm
-9PaAr9k0dFPvjPfkT3fAc/PzxNXAv7mrvN9ZtGjqeAGgHtmUs9MyfA9LywRAKDaE
-TT0ydmHZ2P4OGm75zvRRObNmFmU/cmuW1V7HlJmpWdfE2weMxGHp97Bnx1t8f/IU
-3rZW9HYf46c/1SfuaH0DKQL0KB1NaOjSjWbX0GXvfl1j3FXDHzvVyOtLZ2BaVp/3
-alMUHl28gkVTxwOgWobv4dsWvgN+o+MKG5XrZ4+peiNTChFeeQRCUVDUQcfGPP15
-WqSJ8p3po3Jmziy6f9q4LLP1OyEvHbZk9E1iwuTrshDjeySxtXSn9OcvASCusr7f
-Za81OZOSSi+bt7wtFhSsl/OmPkDm7Wl9jpOZ4WD2Q/f3a64XXl171fBBW/z21/zY
-EsjUaLtK8TN9j6lKywJ/O77aNUgpsA+bTsbC90HpeG4hAg1AAKpK9cbc0d9unnTH
-rQv2HAwfUAghgZUT7nGs5lBN8b5DO5UVS8dapv+MUFWfRE1Rfj15SLa/dXQ3Er2F
-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
-WhMgEG/VAAAAAElFTkSuQmCC}
+{#base64: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}
},0},
{3,0,
{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
@@ -695,7 +697,7 @@ XFhJtSKWz30vMgcItzCmDw==},0}
{1,0}
},8,2,0,0,1,1,
{5,d4746b64-45af-49b5-a280-c2206705887b,9,1,1,
-{6,cc36d702-3c52-4147-ab99-b2f3cd2aa348,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,d3594f71-1f62-4eaa-bb07-ee1a13be4998,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаВыполнитьВыделенныеТестыНажатие",
{1,"КнопкаВыполнитьВыделенныеТестыНажатие",
{1,1,
@@ -801,8 +803,8 @@ gg==}
},0},
{0,118,8}
},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,cc36d702-3c52-4147-ab99-b2f3cd2aa348,
-{8,"ВыполнитьТест",0,3,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,d3594f71-1f62-4eaa-bb07-ee1a13be4998,
+{8,"ВыполнитьТест",0,4,
{1,2,
{"#","Выполнить тест"},
{"ru","Выполнить тест"}
@@ -1150,14 +1152,14 @@ RU5ErkJggg==}
},0},
{0,0,0},0,2,
{5,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,27,1,1,
-{6,42a3606d-8950-4fd7-b850-943b3a2f1d27,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{6,eb8dd50c-f147-4b62-80a1-171f30af71fe,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26},0},2,
{5,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26,1,0,
{0,0,
{0}
}
},
-{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,1,42a3606d-8950-4fd7-b850-943b3a2f1d27,
+{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,1,eb8dd50c-f147-4b62-80a1-171f30af71fe,
{8,"ИсторияЗагрузкиТестов",0,1,
{1,1,
{"ru","История загрузки тестов"}
@@ -1287,7 +1289,26 @@ AAAASUVORK5CYII=}
},0},
{0,0,0},0,2,
{5,41c23139-b710-4b93-a93e-1a3fe9843cfe,5,1,3,
-{6,c991810f-3f09-4357-9e9f-15124490b527,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,0eddd7cc-9cff-409d-a156-0d04fc40d296,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
+{6,eb4033ab-8924-45ac-b5a7-9ba3807e100e,1,e1692cc2-605b-4535-84dd-28440238746c,
+{3,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования",
+{1,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования",
+{1,1,
+{"ru","Перезагрузить браузер тестирования"}
+},
+{1,1,
+{"ru","Перезагрузить браузер тестирования"}
+},
+{1,1,
+{"ru","Перезагрузить браузер тестирования"}
+},
+{3,0,
+{0},"",-1,-1,1,0},
+{0,0,0}
+}
+},0},
+{6,9563860a-4345-466f-a621-c905d3d39a33,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПерезагрузитьПоследниеТестыПоИстории",
{1,"ПерезагрузитьПоследниеТестыПоИстории",
{1,1,
@@ -1342,35 +1363,16 @@ BguK5OCb5OCdsRjPzXIg/qV4LWdl5AGyvOJa/LLzgL7Lh5bic2AxDUSCuJ8sg4fZ
fpcIxAUgkUoIHsoxHlpxsReNeI9EIrDkX2QLIpCML+Wkf5z+LcAAUD/gDNueXkgA
AAAASUVORK5CYII=}
},0}
-},
-{6,1756061c-070b-4d61-a685-98b5831d8407,1,e1692cc2-605b-4535-84dd-28440238746c,
-{3,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования",
-{1,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования",
-{1,1,
-{"ru","Перезагрузить браузер тестирования"}
-},
-{1,1,
-{"ru","Перезагрузить браузер тестирования"}
-},
-{1,1,
-{"ru","Перезагрузить браузер тестирования"}
-},
-{3,0,
-{0},"",-1,-1,1,0},
-{0,0,0}
-}
-},0},
-{6,68394fe2-09ab-4cdc-860d-b6509936f835,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
-{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1,
-{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,c991810f-3f09-4357-9e9f-15124490b527,
+},1,
+{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,9563860a-4345-466f-a621-c905d3d39a33,
{8,"ПерезагрузитьТесты",0,1,
{1,1,
{"ru","Перезагрузить тесты"}
-},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},68394fe2-09ab-4cdc-860d-b6509936f835,
+},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},0eddd7cc-9cff-409d-a156-0d04fc40d296,
{8,"Разделитель",0,1,
{1,1,
{"ru","Действие"}
-},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},1756061c-070b-4d61-a685-98b5831d8407,
+},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},eb4033ab-8924-45ac-b5a7-9ba3807e100e,
{8,"ПерезагрузитьБраузерТестирования",0,1,
{1,1,
{"#","Перезагрузить браузер тестирования"}
@@ -2001,7 +2003,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{0},"",-1,-1,1,0},
{0,0,0},0,2,
{5,28c47454-3a17-4ec8-b47f-d5008bf3ea41,5,1,3,
-{6,6413723a-f363-4dc1-8242-04ba67f9c8ed,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,6e3cd77c-7c6e-4d8f-9d68-431947025a27,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаИнструментыГенераторМакетовДанных",
{1,"КнопкаИнструментыГенераторМакетовДанных",
{1,1,
@@ -2027,7 +2029,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{3,1,
{0,01ec9d9a-7497-4d88-b93f-066c633a4866},"",-1,-1,1,0}
},
-{6,aca3150f-03ff-4178-a9cb-330b016d2ab4,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,36ee916f-5b94-49b2-9f4e-5ff12a36aafd,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаИнструментыКонвертерТестов",
{1,"КнопкаИнструментыКонвертерТестов",
{1,1,
@@ -2044,7 +2046,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{0,0,0}
}
},0},
-{6,06b4e225-3051-451b-90d9-e1ffb404eded,1,e1692cc2-605b-4535-84dd-28440238746c,
+{6,b6affdd3-56e0-4f22-80e2-5a33812ad712,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаИнструментыПоказатьГУИД",
{1,"КнопкаИнструментыПоказатьГУИД",
{1,1,
@@ -2061,15 +2063,15 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{0,0,0}
}
},0},1,
-{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,6413723a-f363-4dc1-8242-04ba67f9c8ed,
+{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,6e3cd77c-7c6e-4d8f-9d68-431947025a27,
{8,"ГенераторМакетовДанных",0,1,
{1,1,
{"#","Генератор макетов данных"}
-},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},06b4e225-3051-451b-90d9-e1ffb404eded,
+},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},b6affdd3-56e0-4f22-80e2-5a33812ad712,
{8,"ПоказатьГУИД",0,1,
{1,1,
{"#","Показать ГУИД"}
-},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},aca3150f-03ff-4178-a9cb-330b016d2ab4,
+},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},36ee916f-5b94-49b2-9f4e-5ff12a36aafd,
{8,"КонвертерТестов",0,1,
{1,1,
{"ru","Конвертер тестов в формат 4-й версии"}
@@ -2201,7 +2203,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==}
{0}
}
}
-},859,552,1,0,1,4,4,1300},
+},859,552,1,0,1,4,4,1312},
{
{1},27,
{4,
diff --git "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module" "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
similarity index 83%
rename from "src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module"
rename to "src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
index d3d09e73..fec2d943 100644
--- "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module"
+++ "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl"
@@ -1,4 +1,5 @@
-// { События формы
+Перем ЭтоПакетныйЗапуск Экспорт; // Флаг определяет выполнен ли пакетный запуск
+// { События формы
Процедура ПриОткрытии()
ЗагрузитьПлагины();
КэшироватьПеречисленияПлагинов();
@@ -72,6 +73,7 @@
КонецПроцедуры
Процедура КнопкаПерезагрузитьПерезагрузитьБраузерТестирования(Кнопка)
+
Для каждого МетаФорма Из ЭтаФорма.Метаданные().Формы Цикл
ТекФорма = ПолучитьФорму(МетаФорма); // может возвращать неопределено, если есть управляемая форма
Если ТекФорма <> Неопределено И ТекФорма.Открыта() Тогда
@@ -79,11 +81,18 @@
ТекФорма.Закрыть();
Если ТекФорма = ЭтаФорма Тогда
НайденноеИмяФайла = Неопределено;
- Выполнить("НайденноеИмяФайла = ЭтотОбъект.ИспользуемоеИмяФайла;");
- ВнешниеОбработки.Создать(НайденноеИмяФайла, Ложь).ПолучитьФорму(МетаФорма.Имя).Открыть();
+ // Для встроенного в состав конфигурации браузера тестов
+ // открываем форму обработки заново
+ Если ЭтоВстроеннаяОбработка Тогда
+ ЭтотОбъект.ПолучитьФорму(МетаФорма.Имя).Открыть();
+ Иначе
+ Выполнить("НайденноеИмяФайла = ЭтотОбъект.ИспользуемоеИмяФайла;");
+ ВнешниеОбработки.Создать(НайденноеИмяФайла, Ложь).ПолучитьФорму(МетаФорма.Имя).Открыть();
+ КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
+
КонецПроцедуры
Процедура СброситьЦиклическиеСсылки()
@@ -121,20 +130,26 @@
Процедура ЗагрузитьПлагины()
ЭтотОбъект.Плагины = Новый Структура;
- КаталогПлагинов = ПолучитьПутьКПлагинам();
- НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь);
- Для каждого ФайлОбработки Из НайденныеФайлы Цикл
- Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь);
- Попытка
- ОписаниеПлагина = Обработка.ОписаниеПлагина(ЭтотОбъект.ТипыПлагинов);
- Обработка.Инициализация(ЭтотОбъект);
- ЭтотОбъект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, Обработка);
- Исключение
- Ошибка = "Возникла ошибка при загрузке плагина: "+ФайлОбработки.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- Сообщить(Ошибка);
- Продолжить;
- КонецПопытки;
- КонецЦикла;
+ // Если браузер тестов встроен в состав конфигурации, то плагины
+ // получаем из встроеной подсистемы xUnitFor1C.Plugins
+ Если ЭтотОбъект.ЭтоВстроеннаяОбработка Тогда
+ ЭтотОбъект.Плагины = ЭтотОбъект.ПолучитьПлагины();
+ Иначе
+ КаталогПлагинов = ПолучитьПутьКПлагинам();
+ НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь);
+ Для каждого ФайлОбработки Из НайденныеФайлы Цикл
+ Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь);
+ Попытка
+ ОписаниеПлагина = Обработка.ОписаниеПлагина(ЭтотОбъект.ТипыПлагинов);
+ Обработка.Инициализация(ЭтотОбъект);
+ ЭтотОбъект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, Обработка);
+ Исключение
+ Ошибка = "Возникла ошибка при загрузке плагина: "+ФайлОбработки.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
+ Сообщить(Ошибка);
+ Продолжить;
+ КонецПопытки;
+ КонецЦикла;
+ КонецЕсли;
ДобавитьКомандыЗагрузчиковНаФорме();
КонецПроцедуры
@@ -322,30 +337,45 @@
// { Внешние интерфейстные инструменты
Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормы = "Форма")
- Если Не ПустаяСтрока(ПутьИнструмента) Тогда
- ПутьКВнешнимИнструментам = ПутьИнструмента + "\";
+ // Если браузер тестов встроен в конфигурацию, то обработки инструментов
+ // получаем также из состава конфигурации
+ Если ЭтотОбъект.ЭтоВстроеннаяОбработка Тогда
+ // Преобразование имени инструмента к имени обработки
+ Если ИмяИнструмента = "UILogToScript" Тогда
+ ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя";
+ КонецЕсли;
+ НоваяФорма = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы);
Иначе
- ПутьКВнешнимИнструментам = ПолучитьПутьКВнешнимИнструментам();
- КонецЕсли;
- ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf";
- ФайлИнструмента = Новый Файл(ПутьИнструмента);
- Если Не ФайлИнструмента.Существует() Тогда
- Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">");
- Возврат;
- КонецЕсли;
- Обработка = ВнешниеОбработки.Создать(ФайлИнструмента.ПолноеИмя, Ложь);
- НоваяФорма = Обработка.ПолучитьФорму(ИмяФормы);
- Если НоваяФорма = Неопределено Тогда
- Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!");
- Возврат;
+ Если Не ПустаяСтрока(ПутьИнструмента) Тогда
+ ПутьКВнешнимИнструментам = ПутьИнструмента + "\";
+ Иначе
+ ПутьКВнешнимИнструментам = ПолучитьПутьКВнешнимИнструментам();
+ КонецЕсли;
+ ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf";
+ ФайлИнструмента = Новый Файл(ПутьИнструмента);
+ Если Не ФайлИнструмента.Существует() Тогда
+ Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">");
+ Возврат;
+ КонецЕсли;
+ Обработка = ВнешниеОбработки.Создать(ФайлИнструмента.ПолноеИмя, Ложь);
+ НоваяФорма = Обработка.ПолучитьФорму(ИмяФормы);
+ Если НоваяФорма = Неопределено Тогда
+ Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!");
+ Возврат;
+ КонецЕсли;
КонецЕсли;
НоваяФорма.Открыть();
НоваяФорма = Неопределено;
КонецПроцедуры
Функция ПолучитьПутьКПлагинам()
- ФайлЯдра = Новый Файл(ЭтаФорма.ИспользуемоеИмяФайла);
- Результат = ФайлЯдра.Путь + "Plugins\";
+ // Для встроенной в состав конфигурации обработки
+ // имя используемого файла не получаем, т.к. плагины
+ // получаются из встроенной подсистемы
+ Если НЕ ЭтотОбъект.ЭтоВстроеннаяОбработка Тогда
+ ФайлЯдра = Новый Файл(ЭтаФорма["ИспользуемоеИмяФайла"]);
+ Результат = ФайлЯдра.Путь + "Plugins\";
+ КонецЕсли;
Возврат Результат;
КонецФункции
diff --git a/src/xddTestRunner/ObjectModule.txt b/src/xddTestRunner/ObjectModule.bsl
similarity index 71%
rename from src/xddTestRunner/ObjectModule.txt
rename to src/xddTestRunner/ObjectModule.bsl
index 31ee5f28..24ab7ed3 100644
--- a/src/xddTestRunner/ObjectModule.txt
+++ b/src/xddTestRunner/ObjectModule.bsl
@@ -1,4 +1,21 @@
-Процедура Инициализация()
+
+Процедура Инициализация()
+
+ ЭтоВстроеннаяОбработка = ОбработкаЯвляетсяВстроеннойВКонфигурацию();
+ Если ЭтоВстроеннаяОбработка Тогда
+ // Для встроенной в состав конфигурации обработки
+ // может быть использван префикс, который определяет имена объектов
+ // фреймворка xUnitFor1C в составе конфигурации
+ // Например: Обработки.<префикс>xddTestRunner
+ // Если префикс не задан, то должны использоваться оригинальные
+ // имена обработок и подсистем.
+ // Для подсистем нужно добавлять префикс тольяо для главной - "xUnitFor1C"
+ ИспользуемыйПрефиксПодсистемы = "";
+ Иначе
+ ПолныйПутьКФайлуБраузераТестов = ЭтотОбъект["ИспользуемоеИмяФайла"];
+ КонецЕсли;
+ ПолноеИмяБраузераТестов = Метаданные().ПолноеИмя();
+
ТипыПлагинов = ТипыПлагинов();
СостоянияТестов = СостоянияТестов();
СтатусыРезультатаТестирования = СтатусыРезультатаТестирования();
@@ -8,8 +25,8 @@
ЗагрузитьНастройки();
КонецПроцедуры
-Функция Версия() Экспорт
- Возврат "4.0.0.4";
+Функция Версия() Экспорт
+ Возврат "4.0.0.7";
КонецФункции
Функция ЗаголовокФормы() Экспорт
@@ -26,19 +43,24 @@
Возврат Новый ФиксированнаяСтруктура(Результат);
КонецФункции
-Функция Плагин(Знач Идентификатор) Экспорт
- Плагин = Плагины[Идентификатор];
+Функция Плагин(Знач Идентификатор) Экспорт
+
+ ИдентификаторПлагинаСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы(Идентификатор);
+ ИдентификаторПлагинаБезПрефиксаПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор);
+ Плагин = Плагины[ИдентификаторПлагинаБезПрефиксаПодсистемы];
Если ТипЗнч(Плагин) = Тип("Строка") Тогда
- Плагин = ВнешниеОбработки.Создать(Плагин, Ложь);
+ Плагин = СоздатьОбъектПлагина(Плагин);
КонецЕсли;
Возврат Плагин;
+
КонецФункции
Функция ПолучитьОписанияПлагиновПоТипу(Знач ТипПлагина) Экспорт
Результат = Новый Массив;
Для каждого КлючЗначение Из Плагины Цикл
Плагин = Плагин(КлючЗначение.Ключ);
+ Плагин.Инициализация(ЭтотОбъект);
ОписаниеПлагина = Плагин.ОписаниеПлагина(ТипыПлагинов);
Если ОписаниеПлагина.Тип = ТипПлагина Тогда
Результат.Добавить(ОписаниеПлагина);
@@ -95,6 +117,8 @@
ИначеЕсли ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Элемент Тогда
Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда
Контекст = Загрузчик.ПолучитьКонтекстПоПути(ЭтотОбъект, ДочернийУзел.Путь);
+ // Заполняем служебные поля, если они имеются
+ ЗаполнитьСвойствоПриНаличии(Контекст, "ПутьКФайлуПолный", ДочернийУзел.Путь);
ЭтотОбъект.ТекущийКонтейнер = КонтейнерДереваТестов;
ДочернийРезультатТестирования = ВыполнитьТестовыйМетод(Контекст, ДочернийУзел);
@@ -317,7 +341,9 @@
// { Настройки браузера тестирования
Процедура ЗагрузитьНастройки() Экспорт
ЭтотОбъект.Настройки = ПолучитьПустыеНастройкиБраузераТестирования();
- СчитанныеНастройки = ХранилищеОбщихНастроек.Загрузить(Метаданные().Имя);
+ // Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки
+ // может совпадать с именем обработки, встроенной в состав конфигурации
+ СчитанныеНастройки = ХранилищеОбщихНастроек.Загрузить(ЭтотОбъект.Метаданные().ПолноеИмя());
Если ТипЗнч(СчитанныеНастройки) = Тип("Структура") Тогда
Для каждого СчитанныеКлючЗначение Из СчитанныеНастройки Цикл
Если ЭтотОбъект.Настройки.Свойство(СчитанныеКлючЗначение.Ключ) И ТипЗнч(СчитанныеКлючЗначение.Значение) = ТипЗнч(ЭтотОбъект.Настройки[СчитанныеКлючЗначение.Ключ]) Тогда
@@ -328,7 +354,14 @@
КонецПроцедуры
Процедура СохранитьНастройки() Экспорт
- ХранилищеОбщихНастроек.Сохранить(Метаданные().Имя, , ЭтотОбъект.Настройки);
+ Попытка
+ // Ключом настроек должно быть не имя обработки, а полное имя метаданных, т.к. имя внешней обработки
+ // может совпадать с именем обработки, встроенной в состав конфигурации
+ ХранилищеОбщихНастроек.Сохранить(ЭтотОбъект.Метаданные().ПолноеИмя(), , ЭтотОбъект.Настройки);
+ Исключение
+ // TODO: При пакетном запуске и тестировании в тонком клиенте возникает ошибка типа XDTO
+ // Могут возникнуть ошибки, пропускаем
+ КонецПопытки;
КонецПроцедуры
Функция ПолучитьПустыеНастройкиБраузераТестирования()
@@ -489,4 +522,206 @@
КонецФункции
// } Helpers
+// { Подсистема конфигурации xUnitFor1C
+
+Функция ПолучитьГлавнуюПодсистему() Экспорт
+
+ КоллекцияПодсистем = Метаданные.Подсистемы;
+
+ ГлавнаяПодсистема = Неопределено;
+
+ ИмяГлавнойПодсистемы = ИспользуемыйПрефиксПодсистемы + "xUnitFor1C";
+ Для Каждого Подсистема Из КоллекцияПодсистем Цикл
+ Если Подсистема.Имя = ИмяГлавнойПодсистемы Тогда
+ ГлавнаяПодсистема = Подсистема;
+ Прервать;
+ Иначе
+ ГлавнаяПодсистема = НайтиПодсистемуПоИмени(Подсистема.Подсистемы, ИмяГлавнойПодсистемы);
+ Если ЗначениеЗаполнено(ГлавнаяПодсистема) Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если ГлавнаяПодсистема = Неопределено Тогда
+ ВызватьИсключение "Не удалось главную подсистему """ + ИмяГлавнойПодсистемы + """!";
+ КонецЕсли;
+
+ Возврат ГлавнаяПодсистема;
+
+КонецФункции
+
+Функция НайтиПодсистемуПоИмени(КоллекцияПодсистем, ИмяПодсистемыДляПоиска)
+
+ Для Каждого Подсистема Из КоллекцияПодсистем Цикл
+ Если Подсистема.Имя = ИмяПодсистемыДляПоиска Тогда
+ Возврат Подсистема;
+ Иначе
+ Возврат НайтиПодсистемуПоИмени(Подсистема.Подсистемы, ИмяПодсистемыДляПоиска);
+ КонецЕсли;
+ КонецЦикла;
+
+КонецФункции
+
+Функция ПолучитьПлагины() Экспорт
+
+ ГлавнаяПодсистема = ПолучитьГлавнуюПодсистему();
+
+ СтруктураПлагинов = Новый Структура;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+
+ КоллекцияПлагинов = ГлавнаяПодсистема.Подсистемы.Plugins.Состав;
+ Для Каждого Плагин Из КоллекцияПлагинов Цикл
+ ИмяПлагина = Прав(Плагин.Имя, СтрДлина(Плагин.Имя) - ДлинаПрефикса);
+ СтруктураПлагинов.Вставить(ИмяПлагина, Плагин.Имя);
+ КонецЦикла;
+
+ Возврат СтруктураПлагинов;
+
+КонецФункции
+
+Функция ПолучитьУтилиты() Экспорт
+
+ ГлавнаяПодсистема = ПолучитьГлавнуюПодсистему();
+
+ СтруктураПлагинов = Новый Структура;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+
+ КоллекцияПлагинов = ГлавнаяПодсистема.Подсистемы.Utils.Состав;
+ Для Каждого Плагин Из КоллекцияПлагинов Цикл
+ ИмяПлагина = Прав(Плагин.Имя, СтрДлина(Плагин.Имя) - ДлинаПрефикса);
+ СтруктураПлагинов.Вставить(ИмяПлагина, Плагин.Имя);
+ КонецЦикла;
+
+ Возврат СтруктураПлагинов;
+
+КонецФункции
+
+Функция ОбработкаЯвляетсяВстроеннойВКонфигурацию() Экспорт
+
+ ПолноеИмяТекущейОбработки = ЭтотОбъект.Метаданные().ПолноеИмя();
+ ВстроеннаяВКонфигурациюОбработка = Метаданные.НайтиПоПолномуИмени(ПолноеИмяТекущейОбработки);
+
+ ОбработкаВстроенаяВСоставКонфигурации = НЕ (ВстроеннаяВКонфигурациюОбработка = Неопределено);
+
+ Возврат ОбработкаВстроенаяВСоставКонфигурации;
+
+КонецФункции
+
+Функция СлужебныеПараметрыОбработки() Экспорт
+
+ СтруктураПараметров = Новый Структура;
+ СтруктураПараметров.Вставить("ПолноеИмяБраузераТестов", ПолноеИмяБраузераТестов);
+ СтруктураПараметров.Вставить("ПолныйПутьКФайлуБраузераТестов", ПолныйПутьКФайлуБраузераТестов);
+
+ Возврат СтруктураПараметров;
+
+КонецФункции
+
+// Универсальная функция для проверки наличия
+// свойств у значения любого типа данных
+// Переменные:
+// 1. Переменная - переменная любого типа,
+// для которой необходимо проверить наличие свойства
+// 2. ИмяСвойства - переменная типа "Строка",
+// содержащая искомое свойства
+//
+Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства)
+ // Инициализируем структуру для теста
+ // с ключом (значение переменной "ИмяСвойства")
+ // и значением произвольного GUID'а
+ GUIDПроверка = Новый УникальныйИдентификатор;
+ СтруктураПроверка = Новый Структура;
+ СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
+ // Заполняем созданную структуру из переданного
+ // значения переменной
+ ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
+ // Если значение для свойства структуры осталось
+ // NULL, то искомое свойство не найдено,
+ // и наоборот.
+ Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда
+ Возврат Ложь;
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+КонецФункции
+Функция ЗаполнитьСвойствоПриНаличии(ОбъектЗаполнения, ИмяСвойство, ЗначениеСвойства)
+
+ Если ПеременнаяСодержитСвойство(ОбъектЗаполнения, ИмяСвойство) Тогда
+ ОбъектЗаполнения[ИмяСвойство] = ЗначениеСвойства;
+ КонецЕсли;
+
+КонецФункции
+
+Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+ Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
+ Возврат Идентификатор;
+ Иначе
+ Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+ Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
+ Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса);
+ Иначе
+ Возврат Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+
+Функция СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию = Ложь, ЭтоОтчет = Ложь) Экспорт
+
+ ОбъектПлагина = Неопределено;
+
+ Если ЭтотОбъект.ЭтоВстроеннаяОбработка
+ ИЛИ ВстроенаВКонфигурацию = Истина Тогда
+
+ ИдентификаторСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы(Идентификатор);
+ ИдентификаторБезПрефиксаПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор);
+
+ Если ЭтоОтчет = Истина Тогда
+ МенеджерВидаОбъектов = Отчеты;
+ МетаданныеВидаОбъектов = Метаданные.Отчеты;
+ Иначе
+ МенеджерВидаОбъектов = Обработки;
+ МетаданныеВидаОбъектов = Метаданные.Обработки;
+ КонецЕсли;
+
+ Если НЕ МетаданныеВидаОбъектов.Найти(ИдентификаторСПрефиксомПодсистемы) = Неопределено Тогда
+ ОбъектПлагина = МенеджерВидаОбъектов[ИдентификаторСПрефиксомПодсистемы].Создать();
+ ИначеЕсли НЕ МетаданныеВидаОбъектов.Найти(ИдентификаторБезПрефиксаПодсистемы) = Неопределено Тогда
+ ОбъектПлагина = МенеджерВидаОбъектов[ИдентификаторБезПрефиксаПодсистемы].Создать();
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Если ОбъектПлагина = Неопределено Тогда
+ Если ЭтоОтчет = Истина Тогда
+ ОбъектПлагина = ВнешниеОтчеты.Создать(Идентификатор, Ложь);
+ Иначе
+ ОбъектПлагина = ВнешниеОбработки.Создать(Идентификатор, Ложь);
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат ОбъектПлагина;
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
+
Инициализация();
diff --git a/src/xddTestRunner/maps.txt b/src/xddTestRunner/maps.txt
index daf3d6ba..b92b0d7d 100644
--- a/src/xddTestRunner/maps.txt
+++ b/src/xddTestRunner/maps.txt
@@ -1 +1 @@
-Form\УправляемаяФорма\Форма.txt-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (1 461, 2 457)
+Form\УправляемаяФорма\Форма.bsl-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (1 484, 2 639)
diff --git a/src/xddTestRunner/renames.txt b/src/xddTestRunner/renames.txt
index 12526305..aa353b5a 100644
--- a/src/xddTestRunner/renames.txt
+++ b/src/xddTestRunner/renames.txt
@@ -1,5 +1,5 @@
11ad5c96-c434-4088-bf66-ddff06c57ed8.0\info-->und\11ad5c96-c434-4088-bf66-ddff06c57ed8.0\info
-11ad5c96-c434-4088-bf66-ddff06c57ed8.0\text-->ObjectModule.txt
+11ad5c96-c434-4088-bf66-ddff06c57ed8.0\text-->ObjectModule.bsl
11ad5c96-c434-4088-bf66-ddff06c57ed8.1-->und\11ad5c96-c434-4088-bf66-ddff06c57ed8.1
5070e3c3-f74b-4ecd-9756-1136a230eca2-->und\5070e3c3-f74b-4ecd-9756-1136a230eca2
a1ce7ef7-f372-4589-b899-7fbf88efa7bf-->und\a1ce7ef7-f372-4589-b899-7fbf88efa7bf
diff --git a/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1 b/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1
index df671b2e..05c68f59 100644
--- a/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1
+++ b/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1
@@ -4,314 +4,314 @@ cmFuc2l0aW9uYWwvL0VOIj48aHRtbD48aGVhZD48bWV0YSBjb250ZW50PSJ0ZXh0
L2h0bWw7Y2hhcnNldD11dGYtOCIgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIj48
L21ldGE+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0idjhoZWxwOi8vc2VydmljZV9ib29rL3NlcnZpY2Vfc3R5bGUiPjwvbGluaz48
-bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1TSFRNTCAxMS4wMC45NjAw
-LjE4MTI1Ij48L21ldGE+PC9oZWFkPjxib2R5Pg0KPHA+PGEgaHJlZj0iaHR0cHM6
-Ly9naXRodWIuY29tL3hEcml2ZW5EZXZlbG9wbWVudC94VW5pdEZvcjFDL3dpa2ki
-Pmh0dHBzOi8vZ2l0aHViLmNvbS94RHJpdmVuRGV2ZWxvcG1lbnQveFVuaXRGb3Ix
-Qy93aWtpPC9hPjwvcD4NCjxoMT48L2gxPg0KPHA+eFVuaXRGb3IxQyAtINC90LDQ
-sdC+0YAg0LjQvdGB0YLRgNGD0LzQtdC90YLQvtCyINC00LvRjyDQstGL0L/QvtC7
-0L3QtdC90LjRjyDRgtC10YHRgtC40YDQvtCy0LDQvdC40Y8gKNC80L7QtNGD0LvR
-jNC90L7Qs9C+L9GO0L3QuNGCLCDQv9GA0LjQtdC80L7Rh9C90L7Qs9C+LCDRgdGG
-0LXQvdCw0YDQvdC+0LPQviDQtNC70Y8gMdChIDguMywg0LjQvdGC0LXQs9GA0LDR
-htC40L7QvdC90L7Qs9C+KSDQsiAx0KE60J/RgNC10LTQv9GA0LjRj9GC0LjQuCA4
-LjwvcD4NCjxwPnhVbml0Rm9yMUMg0YDQsNCx0L7RgtCw0LXRgiDRgSDQu9GO0LHR
-i9C80Lgg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNGP0LzQuCwg0L/QvtC70L3QvtGB
-0YLRjNGOINC90LXQt9Cw0LLQuNGB0LjQvNCwLCDQvdC+INC80L7QttC10YIg0LHR
-i9GC0Ywg0LLRgdGC0YDQvtC10L3QsCDQsiDQutC+0L3RhNC40LPRg9GA0LDRhtC4
-0Y4uPC9wPg0KPHA+0J/QvtC30LLQvtC70Y/QtdGCINC+0YLQutGA0YvQstCw0YLR
-jC/RgtC10YHRgtC40YDQvtCy0LDRgtGMINCyINGA0LDQt9C90YvRhSDRgNC10LbQ
-uNC80LDRhSAtINC+0LHRi9GH0L3QvtC1INC/0YDQuNC70L7QttC10L3QuNC1LCDR
-gtC+0L3QutC40Lkg0Lgg0YLQvtC70YHRgtGL0Lkg0LrQu9C40LXQvdGCINGD0L/R
-gNCw0LLQu9GP0LXQvNC+0LPQviDQv9GA0LjQu9C+0LbQtdC90LjRjy4gPC9wPg0K
-PHA+0KLQtdGB0YLRiyDQvNC+0LPRg9GCINCx0YvRgtGMINC60LDQuiDQstC+INCy
-0L3QtdGI0L3QuNGFINC+0LHRgNCw0LHQvtGC0LrQsNGFLCDRgtCw0Log0Lgg0LLQ
-viDQstGB0YLRgNC+0LXQvdC90YvRhSDQvtCx0YDQsNCx0L7RgtC60LDRhS4gPC9w
-Pg0KPHA+0JvRjtCx0YvQtSDQvdCw0LHQvtGA0Ysg0YLQtdGB0YLQvtCyINC80L7Q
-s9GD0YIg0L/RgNC+0LPQvtC90Y/RgtGM0YHRjyDQsiDQv9C+0LvQvdC+0YHRgtGM
-0Y4g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60L7QvCDRgNC10LbQuNC80LUg0YfQ
-tdGA0LXQtyA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20veERyaXZlbkRldmVs
-b3BtZW50L3hVbml0Rm9yMUMvd2lraS8lRDAlOTclRDAlQjAlRDAlQkYlRDElODMl
-RDElODElRDAlQkEtJUQxJTgyJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUJFJUQwJUIy
-LSVEMCVCOCVEMCVCNy0lRDAlQkElRDAlQkUlRDAlQkMlRDAlQjAlRDAlQkQlRDAl
-QjQlRDAlQkQlRDAlQkUlRDAlQjktJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQw
-JUJBJUQwJUI4LSVEMCVCOC0lRDAlQkYlRDAlQkUlRDAlQkIlRDElODMlRDElODcl
-RDAlQjUlRDAlQkQlRDAlQjglRDAlQjUtJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJC
-JUQwJUJFJUQwJUIyLSVEMSU4MCVEMCVCNSVEMCVCNyVEMSU4MyVEMCVCQiVEMSU4
-QyVEMSU4MiVEMCVCMCVEMSU4MiVEMCVCRSVEMCVCMiI+0YHQv9C10YbQuNCw0LvR
-jNC90YPRjiDQutC+0LzQsNC90LTQvdGD0Y4g0YHRgtGA0L7QutGDINC30LDQv9GD
-0YHQutCwPC9hPi4g0JDQstGC0L7Qt9Cw0L/Rg9GB0Log0LjRgdC/0L7Qu9GM0LfR
-g9C10YLRgdGPINCyINGA0LDQt9C70LjRh9C90YvRhSBidWlsZC3RgdC10YDQstC1
-0YDQsNGFINC4INCyINGB0LjRgdGC0LXQvNCw0YUgQ29udGludW91cyBJbnRlZ3Jh
-dGlvbi48L3A+DQo8cD48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20veERyaXZl
-bkRldmVsb3BtZW50L3hVbml0Rm9yMUMvd2lraSI+0JTQu9GPINC00L7Qv9C+0LvQ
-vdC40YLQtdC70YzQvdC+0Lkg0LjQvdGE0L7RgNC80LDRhtC40Lgg0YHQvC4gV2lr
-aSDQv9GA0L7QtdC60YLQsDwvYT48L3A+DQo8aDI+PGEgYXJpYS1oaWRkZW49InRy
-dWUiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiMlRDAlQTclRDElODIlRDAlQkUtJUQw
-JUJBLSVEMSU4NyVEMCVCNSVEMCVCQyVEMSU4MyIgbmFtZT0idXNlci1jb250ZW50
-LSVEMCVBNyVEMSU4MiVEMCVCRS0lRDAlQkEtJUQxJTg3JUQwJUI1JUQwJUJDJUQx
-JTgzIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bhbj48
-L2E+0KfRgtC+INC6INGH0LXQvNGDPC9oMj4NCjx1bCBjbGFzcz0idGFzay1saXN0
-Ij48ZW0+DQo8bGkgc3R5bGU9IkJPWC1TSVpJTkc6IGJvcmRlci1ib3giPjxlbSBz
-dHlsZT0iQk9YLVNJWklORzogYm9yZGVyLWJveCI+eGRkVGVzdFJ1bm5lci5lcGY8
-L2VtPjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPsKgPC9zcGFu
-Pi0g0LHRgNCw0YPQt9C10YAg0Lgg0LjRgdC/0L7Qu9C90LjRgtC10LvRjCDRgtC1
-0YHRgtC+0LIg0LTQu9GPINC+0LHRi9GH0L3QvtCz0L4g0L/RgNC40LvQvtC20LXQ
-vdC40Y8g0Lgg0YPQv9GA0LDQstC70Y/QtdC80L7Qs9C+INC/0YDQuNC70L7QttC1
-0L3QuNGPIDHQoTrQn9GA0LXQtNC/0YDQuNGP0YLQuNGPIDggKNGC0L7Qu9GB0YLR
-i9C5INC4INGC0L7QvdC60LjQuSDQutC70LjQtdC90YLRiykgDQo8L2xpPjxsaSBz
-dHlsZT0iQk9YLVNJWklORzogYm9yZGVyLWJveCI+PGVtIHN0eWxlPSJCT1gtU0la
-SU5HOiBib3JkZXItYm94Ij54ZGREYXRhRml4dHVyZUdlbi5lcGY8L2VtPjxzcGFu
-IGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPsKgPC9zcGFuPi0g0LPQtdC9
-0LXRgNCw0YbQuNGPINC80LDQutC10YLQsCDQtNCw0L3QvdGL0YUg0LTQu9GPINC4
-0YHQv9C+0LvRjNC30L7QstCw0L3QuNGPINCyINGC0LXRgdGC0LDRhS4g0JzQsNC6
-0LXRgiDQvNC+0LbQvdC+INCz0LXQvdC10YDQuNGC0Ywg0LjQtyDQsdC+0LXQstC+
-0Lkg0LHQsNC30Ysg0L3QsCDQvtGB0L3QvtCy0LUg0YDQtdCw0LvRjNC90YvRhSDQ
-tNCw0L3QvdGL0YUuIA0KPC9saT48bGkgc3R5bGU9IkJPWC1TSVpJTkc6IGJvcmRl
-ci1ib3giPjxlbSBzdHlsZT0iQk9YLVNJWklORzogYm9yZGVyLWJveCI+eGRkVGVz
-dFJ1bm5lci5qczwvZW0+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFj
-ZSI+wqA8L3NwYW4+LSDRgdC60YDQuNC/0YIg0LTQu9GPINCh0L3QtdCz0L7Qv9Cw
-0YLQsCwg0L/QvtC30LLQvtC70Y/RjtGJ0LjQuSDQstGL0L/QvtC70L3Rj9GC0Ywg
-0YLQtdGB0YLRiyDQv9GA0Y/QvNC+INC40Lcg0LrQvtC90YTQuNCz0YPRgNCw0YLQ
-vtGA0LAgDQo8L2xpPjxsaSBzdHlsZT0iQk9YLVNJWklORzogYm9yZGVyLWJveCI+
-PGVtIHN0eWxlPSJCT1gtU0laSU5HOiBib3JkZXItYm94Ij5UZXN0cy88L2VtPjxz
-cGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPsKgPC9zcGFuPi0g0LrQ
-sNGC0LDQu9C+0LMg0YEg0L/RgNC40LzQtdGA0LDQvNC4INGC0LXRgdGC0L7QsiDQ
-uCDRgSDRgtC10YHRgtCw0LzQuCDQtNC70Y8g0YHQsNC80L7RgtC10YHRgtC40YDQ
-vtCy0LDQvdC40Y8geGRkVGVzdFJ1bm5lci5lcGYgKNC/0L7QtNC/0LDQv9C60LAg
-c2VsZnRlc3RzKSANCjwvbGk+PGxpIHN0eWxlPSJCT1gtU0laSU5HOiBib3JkZXIt
-Ym94Ij48ZW0gc3R5bGU9IkJPWC1TSVpJTkc6IGJvcmRlci1ib3giPlRlc3RzXENv
-bW1vbkFwcFzRgtC10YHRgtGLX9Ce0YLQutGA0YvRgtC40LXQpNC+0YDQvNCa0L7Q
-vdGE0LjQs9GD0YDQsNGG0LjQuC5lcGY8L2VtPjxzcGFuIGNsYXNzPSJBcHBsZS1j
-b252ZXJ0ZWQtc3BhY2UiPsKgPC9zcGFuPi0g0YLQtdGB0YLRiyDQvtGC0LrRgNGL
-0YLQuNGPINCy0YHQtdGFINGE0L7RgNC8INGB0L/RgNCw0LLQvtGH0L3QuNC60L7Q
-siwg0LTQvtC60YPQvNC10L3RgtC+0LIsINC+0YLRh9C10YLQvtCyINC4INC+0LHR
-gNCw0LHQvtGC0L7Qui4g0JTQu9GPINGB0L/RgNCw0LLQvtGH0L3QuNC60L7QsiDQ
-uCDQtNC+0LrRg9C80LXQvdGC0L7QsiDQsiDRgtGA0LDQvdC30LDQutGG0LjQuCDR
-gdC+0LfQtNCw0Y7RgtGB0Y8g0L3QvtCy0YvQtSDQuNC70Lgg0LrQvtC/0LjRgNGD
-0Y7RgtGB0Y8g0LjQu9C4INC/0LXRgNC10LfQsNC/0LjRgdGL0LLQsNGO0YLRgdGP
-INGB0YPRidC10YHRgtCy0YPRjtGJ0LjQtSDRjdC70LXQvNC10L3RgtGLLiANCjwv
-bGk+PGxpIHN0eWxlPSJCT1gtU0laSU5HOiBib3JkZXItYm94Ij48ZW0gc3R5bGU9
-IkJPWC1TSVpJTkc6IGJvcmRlci1ib3giPlRlc3RzXENvbW1vbkFwcFzQotC10YHR
-gl/Ql9Cw0L/Rg9GB0LrQotC10YHRgtC+0LLQktCh0LXQsNC90YHQtdCU0YDRg9Cz
-0LjRhdCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LmVwZjwvZW0+PHNwYW4gY2xh
-c3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+wqA8L3NwYW4+LSDQv9GA0LjQvNC1
-0YDRiyDQt9Cw0L/Rg9GB0LrQsCDRgtC10YHRgtC+0LIg0LTQu9GPINC/0L7Qu9GM
-0LfQvtCy0LDRgtC10LvQtdC5INGBINC+0LPRgNCw0L3QuNGH0LXQvdC90YvQvNC4
-INC/0YDQsNCy0LDQvNC4LiDQn9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0YHQvtC3
-0LTQsNGO0YLRgdGPINC90LAg0LvQtdGC0YMg0LjQtyDQv9GA0L7RgdGC0YvRhSDQ
-vNCw0LrQtdGC0L7Qsi4gDQo8L2xpPjxsaSBzdHlsZT0iQk9YLVNJWklORzogYm9y
-ZGVyLWJveCI+PGVtIHN0eWxlPSJCT1gtU0laSU5HOiBib3JkZXItYm94Ij5UZXN0
-c1xDb21tb25BcHBc0KLQtdGB0YJf0J/RgNC+0LLQtdGA0LjRgtGM0J7RgtGH0LXR
-gtCd0LDQodC+0L7RgtCy0LXRgtGB0YLQstC40LXQrdGC0LDQu9C+0L3Rgy5lcGY8
-L2VtPjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPsKgPC9zcGFu
-Pi0g0L/RgNC40LzQtdGAINGC0LXRgdGC0LAg0L7RgtGH0LXRgtCwINC/0YPRgtC1
-0Lwg0YHRgNCw0LLQvdC10L3QuNGPINGBINGN0YLQsNC70L7QvdC90YvQvCDQvtC2
-0LjQtNCw0L3QuNC10Lwg0LjQtyDQvNCw0LrQtdGC0LAuPC9saT48L2VtPjwvdWw+
-PGgyPjxhIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iYW5jaG9yIiBocmVmPSIj
-JUQwJTkyJUQwJUJFJUQwJUI3JUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJF
-JUQxJTgxJUQxJTgyJUQwJUI4LXVuaXR0ZXN0cnVubmVyZXBmIiBuYW1lPSJ1c2Vy
-LWNvbnRlbnQtJUQwJTkyJUQwJUJFJUQwJUI3JUQwJUJDJUQwJUJFJUQwJUI2JUQw
-JUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4LXVuaXR0ZXN0cnVubmVyZXBmIj48
-c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bhbj48L2E+0JrQ
-sNC6INC/0L7QvNC+0YfRjCDQv9GA0L7QtdC60YLRgzwvaDI+DQo8cD7QnNGLINGA
-0LDQtNGLINC70Y7QsdC+0Lkg0L/QvtC80L7RidC4OiA8L3A+DQo8b2wgY2xhc3M9
-InRhc2stbGlzdCI+PGxpPg0KPHA+0JXRgdC70Lgg0LLRiyDQt9Cw0L3QuNC80LDQ
-tdGC0LXRgdGMINGA0LDQt9GA0LDQsdC+0YLQutC+0Lkg0L3QsCAx0KE60J/RgNC1
-0L/RgNC40Y/RgtC40LggOCDQv9GA0L7QsdGD0LnRgtC1INC/0LjRgdCw0YLRjCDQ
-uCDQstGL0L/QvtC70L3Rj9GC0Ywg0YLQtdGB0YLRiyDQv9GA0Lgg0L/QvtC80L7R
-idC4IHhVbml0Rm9yMUMsINGB0L7QvtCx0YnQsNC50YLQtSDQvdCw0Lwg0L7QsSDQ
-vtCx0L3QsNGA0YPQttC10L3QvdGL0YUg0L7RiNC40LHQutCw0YUsINC/0LjRiNC4
-0YLQtSDQv9C+0LbQtdC70LDQvdC40Y8uINCU0LvRjyDRg9C/0YDQsNCy0LvQtdC9
-0LjRjyDRgdC+0L7QsdGJ0LXQvdC40Y/QvNC4INC+0LEg0L7RiNC40LHQutCw0YUg
-0Lgg0L/QvtC20LXQu9Cw0L3QuNGP0LzQuCDQvNGLINC40YHQv9C+0LvRjNC30YPQ
-tdC8IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rdW50YXNob3YvMUNVbml0
-L2lzc3Vlcz9zb3J0PWNyZWF0ZWQmYW1wO3N0YXRlPW9wZW4iPtCx0LDQsy3RgtGA
-0LXQutC10YAgR2l0SHViJ9CwPC9hPi48L3A+DQo8L2xpPjxsaT4NCjxwPtCV0YHQ
-u9C4INGDINCy0LDRgSDQtdGB0YLRjCDQstGA0LXQvNGPINGA0LDQt9C+0LHRgNCw
-0YLRjNGB0Y8g0LIg0LjRgdGF0L7QtNC90L7QvCDQutC+0LTQtSwg0LLRiyDQvNC+
-0LbQtdGC0LUg0LLQt9GP0YLRjCDQvdCwINGB0LXQsdGPINGA0LXQsNC70LjQt9Cw
-0YbQuNGOINC+0LTQvdC+0Lkg0LjQtyA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5j
-b20va3VudGFzaG92L3hVbml0Rm9yMUMvaXNzdWVzP3NvcnQ9Y3JlYXRlZCZhbXA7
-c3RhdGU9b3BlbiI+0L7RgtC60YDRi9GC0YvRhSDQt9Cw0LTQsNGHPC9hPi48L3A+
-DQo8L2xpPjxsaT4NCjxwPtCV0YHQu9C4INCy0Ysg0YPQttC1INC40YHQv9C+0LvR
-jNC30YPQtdGC0LUgeFVuaXRGb3IxQyDQvdCwINC/0YDQsNC60YLQuNC60LUsINC9
-0LDQv9C40YjQuNGC0LUg0L7QsSDRjdGC0L7QvCDRgdGC0LDRgtGM0Y4sINC90LDQ
-v9GA0LjQvNC10YAsINC90LAgPGEgaHJlZj0iaHR0cDovL2luZm9zdGFydC5ydSI+
-0JjQvdGE0L7RgdGC0LDRgNGC0LU8L2E+LjwvcD48L2xpPjwvb2w+PGgyPjxhIGFy
-aWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iYW5jaG9yIiBocmVmPSIjJUQwJUExJUQw
-JUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1LSVEMSU4NCVE
-MCVCMCVEMCVCOSVEMCVCQiVEMCVCRSVEMCVCMi0lRDElODIlRDAlQjUlRDElODEl
-RDElODIlRDAlQkUlRDAlQjIiIG5hbWU9InVzZXItY29udGVudC0lRDAlQTElRDAl
+bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1TSFRNTCAxMS4wMC4xMDU4
+Ni40MjAiPjwvbWV0YT48L2hlYWQ+PGJvZHk+DQo8cD48YSBocmVmPSJodHRwczov
+L2dpdGh1Yi5jb20veERyaXZlbkRldmVsb3BtZW50L3hVbml0Rm9yMUMvd2lraSI+
+aHR0cHM6Ly9naXRodWIuY29tL3hEcml2ZW5EZXZlbG9wbWVudC94VW5pdEZvcjFD
+L3dpa2k8L2E+PC9wPg0KPGgxPjwvaDE+DQo8cD54VW5pdEZvcjFDIC0g0L3QsNCx
+0L7RgCDQuNC90YHRgtGA0YPQvNC10L3RgtC+0LIg0LTQu9GPINCy0YvQv9C+0LvQ
+vdC10L3QuNGPINGC0LXRgdGC0LjRgNC+0LLQsNC90LjRjyAo0LzQvtC00YPQu9GM
+0L3QvtCz0L4v0Y7QvdC40YIsINC/0YDQuNC10LzQvtGH0L3QvtCz0L4sINGB0YbQ
+tdC90LDRgNC90L7Qs9C+INC00LvRjyAx0KEgOC4zLCDQuNC90YLQtdCz0YDQsNGG
+0LjQvtC90L3QvtCz0L4pINCyIDHQoTrQn9GA0LXQtNC/0YDQuNGP0YLQuNC4IDgu
+PC9wPg0KPHA+eFVuaXRGb3IxQyDRgNCw0LHQvtGC0LDQtdGCINGBINC70Y7QsdGL
+0LzQuCDQutC+0L3RhNC40LPRg9GA0LDRhtC40Y/QvNC4LCDQv9C+0LvQvdC+0YHR
+gtGM0Y4g0L3QtdC30LDQstC40YHQuNC80LAsINC90L4g0LzQvtC20LXRgiDQsdGL
+0YLRjCDQstGB0YLRgNC+0LXQvdCwINCyINC60L7QvdGE0LjQs9GD0YDQsNGG0LjR
+ji48L3A+DQo8cD7Qn9C+0LfQstC+0LvRj9C10YIg0L7RgtC60YDRi9Cy0LDRgtGM
+L9GC0LXRgdGC0LjRgNC+0LLQsNGC0Ywg0LIg0YDQsNC30L3Ri9GFINGA0LXQttC4
+0LzQsNGFIC0g0L7QsdGL0YfQvdC+0LUg0L/RgNC40LvQvtC20LXQvdC40LUsINGC
+0L7QvdC60LjQuSDQuCDRgtC+0LvRgdGC0YvQuSDQutC70LjQtdC90YIg0YPQv9GA
+0LDQstC70Y/QtdC80L7Qs9C+INC/0YDQuNC70L7QttC10L3QuNGPLiA8L3A+DQo8
+cD7QotC10YHRgtGLINC80L7Qs9GD0YIg0LHRi9GC0Ywg0LrQsNC6INCy0L4g0LLQ
+vdC10YjQvdC40YUg0L7QsdGA0LDQsdC+0YLQutCw0YUsINGC0LDQuiDQuCDQstC+
+INCy0YHRgtGA0L7QtdC90L3Ri9GFINC+0LHRgNCw0LHQvtGC0LrQsNGFLiA8L3A+
+DQo8cD7Qm9GO0LHRi9C1INC90LDQsdC+0YDRiyDRgtC10YHRgtC+0LIg0LzQvtCz
+0YPRgiDQv9GA0L7Qs9C+0L3Rj9GC0YzRgdGPINCyINC/0L7Qu9C90L7RgdGC0YzR
+jiDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQvtC8INGA0LXQttC40LzQtSDRh9C1
+0YDQtdC3IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS94RHJpdmVuRGV2ZWxv
+cG1lbnQveFVuaXRGb3IxQy93aWtpLyVEMCU5NyVEMCVCMCVEMCVCRiVEMSU4MyVE
+MSU4MSVEMCVCQS0lRDElODIlRDAlQjUlRDElODElRDElODIlRDAlQkUlRDAlQjIt
+JUQwJUI4JUQwJUI3LSVEMCVCQSVEMCVCRSVEMCVCQyVEMCVCMCVEMCVCRCVEMCVC
+NCVEMCVCRCVEMCVCRSVEMCVCOS0lRDElODElRDElODIlRDElODAlRDAlQkUlRDAl
+QkElRDAlQjgtJUQwJUI4LSVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4MyVEMSU4NyVE
+MCVCNSVEMCVCRCVEMCVCOCVEMCVCNS0lRDElODQlRDAlQjAlRDAlQjklRDAlQkIl
+RDAlQkUlRDAlQjItJUQxJTgwJUQwJUI1JUQwJUI3JUQxJTgzJUQwJUJCJUQxJThD
+JUQxJTgyJUQwJUIwJUQxJTgyJUQwJUJFJUQwJUIyIj7RgdC/0LXRhtC40LDQu9GM
+0L3Rg9GOINC60L7QvNCw0L3QtNC90YPRjiDRgdGC0YDQvtC60YMg0LfQsNC/0YPR
+gdC60LA8L2E+LiDQkNCy0YLQvtC30LDQv9GD0YHQuiDQuNGB0L/QvtC70YzQt9GD
+0LXRgtGB0Y8g0LIg0YDQsNC30LvQuNGH0L3Ri9GFIGJ1aWxkLdGB0LXRgNCy0LXR
+gNCw0YUg0Lgg0LIg0YHQuNGB0YLQtdC80LDRhSBDb250aW51b3VzIEludGVncmF0
+aW9uLjwvcD4NCjxwPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS94RHJpdmVu
+RGV2ZWxvcG1lbnQveFVuaXRGb3IxQy93aWtpIj7QlNC70Y8g0LTQvtC/0L7Qu9C9
+0LjRgtC10LvRjNC90L7QuSDQuNC90YTQvtGA0LzQsNGG0LjQuCDRgdC8LiBXaWtp
+INC/0YDQvtC10LrRgtCwPC9hPjwvcD4NCjxoMj48YSBhcmlhLWhpZGRlbj0idHJ1
+ZSIgY2xhc3M9ImFuY2hvciIgaHJlZj0iIyVEMCVBNyVEMSU4MiVEMCVCRS0lRDAl
+QkEtJUQxJTg3JUQwJUI1JUQwJUJDJUQxJTgzIiBuYW1lPSJ1c2VyLWNvbnRlbnQt
+JUQwJUE3JUQxJTgyJUQwJUJFLSVEMCVCQS0lRDElODclRDAlQjUlRDAlQkMlRDEl
+ODMiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFuPjwv
+YT7Qp9GC0L4g0Log0YfQtdC80YM8L2gyPg0KPHVsIGNsYXNzPSJ0YXNrLWxpc3Qi
+PjxlbT4NCjxsaSBzdHlsZT0iQk9YLVNJWklORzogYm9yZGVyLWJveCI+PGVtIHN0
+eWxlPSJCT1gtU0laSU5HOiBib3JkZXItYm94Ij54ZGRUZXN0UnVubmVyLmVwZjwv
+ZW0+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+wqA8L3NwYW4+
+LSDQsdGA0LDRg9C30LXRgCDQuCDQuNGB0L/QvtC70L3QuNGC0LXQu9GMINGC0LXR
+gdGC0L7QsiDQtNC70Y8g0L7QsdGL0YfQvdC+0LPQviDQv9GA0LjQu9C+0LbQtdC9
+0LjRjyDQuCDRg9C/0YDQsNCy0LvRj9C10LzQvtCz0L4g0L/RgNC40LvQvtC20LXQ
+vdC40Y8gMdChOtCf0YDQtdC00L/RgNC40Y/RgtC40Y8gOCAo0YLQvtC70YHRgtGL
+0Lkg0Lgg0YLQvtC90LrQuNC5INC60LvQuNC10L3RgtGLKSANCjwvbGk+PGxpIHN0
+eWxlPSJCT1gtU0laSU5HOiBib3JkZXItYm94Ij48ZW0gc3R5bGU9IkJPWC1TSVpJ
+Tkc6IGJvcmRlci1ib3giPnhkZERhdGFGaXh0dXJlR2VuLmVwZjwvZW0+PHNwYW4g
+Y2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+wqA8L3NwYW4+LSDQs9C10L3Q
+tdGA0LDRhtC40Y8g0LzQsNC60LXRgtCwINC00LDQvdC90YvRhSDQtNC70Y8g0LjR
+gdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0LIg0YLQtdGB0YLQsNGFLiDQnNCw0LrQ
+tdGCINC80L7QttC90L4g0LPQtdC90LXRgNC40YLRjCDQuNC3INCx0L7QtdCy0L7Q
+uSDQsdCw0LfRiyDQvdCwINC+0YHQvdC+0LLQtSDRgNC10LDQu9GM0L3Ri9GFINC0
+0LDQvdC90YvRhS4gDQo8L2xpPjxsaSBzdHlsZT0iQk9YLVNJWklORzogYm9yZGVy
+LWJveCI+PGVtIHN0eWxlPSJCT1gtU0laSU5HOiBib3JkZXItYm94Ij54ZGRUZXN0
+UnVubmVyLmpzPC9lbT48c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNl
+Ij7CoDwvc3Bhbj4tINGB0LrRgNC40L/RgiDQtNC70Y8g0KHQvdC10LPQvtC/0LDR
+gtCwLCDQv9C+0LfQstC+0LvRj9GO0YnQuNC5INCy0YvQv9C+0LvQvdGP0YLRjCDR
+gtC10YHRgtGLINC/0YDRj9C80L4g0LjQtyDQutC+0L3RhNC40LPRg9GA0LDRgtC+
+0YDQsCANCjwvbGk+PGxpIHN0eWxlPSJCT1gtU0laSU5HOiBib3JkZXItYm94Ij48
+ZW0gc3R5bGU9IkJPWC1TSVpJTkc6IGJvcmRlci1ib3giPlRlc3RzLzwvZW0+PHNw
+YW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+wqA8L3NwYW4+LSDQutCw
+0YLQsNC70L7QsyDRgSDQv9GA0LjQvNC10YDQsNC80Lgg0YLQtdGB0YLQvtCyINC4
+INGBINGC0LXRgdGC0LDQvNC4INC00LvRjyDRgdCw0LzQvtGC0LXRgdGC0LjRgNC+
+0LLQsNC90LjRjyB4ZGRUZXN0UnVubmVyLmVwZiAo0L/QvtC00L/QsNC/0LrQsCBz
+ZWxmdGVzdHMpIA0KPC9saT48bGkgc3R5bGU9IkJPWC1TSVpJTkc6IGJvcmRlci1i
+b3giPjxlbSBzdHlsZT0iQk9YLVNJWklORzogYm9yZGVyLWJveCI+VGVzdHNcQ29t
+bW9uQXBwXNGC0LXRgdGC0Ytf0J7RgtC60YDRi9GC0LjQtdCk0L7RgNC80JrQvtC9
+0YTQuNCz0YPRgNCw0YbQuNC4LmVwZjwvZW0+PHNwYW4gY2xhc3M9IkFwcGxlLWNv
+bnZlcnRlZC1zcGFjZSI+wqA8L3NwYW4+LSDRgtC10YHRgtGLINC+0YLQutGA0YvR
+gtC40Y8g0LLRgdC10YUg0YTQvtGA0Lwg0YHQv9GA0LDQstC+0YfQvdC40LrQvtCy
+LCDQtNC+0LrRg9C80LXQvdGC0L7Qsiwg0L7RgtGH0LXRgtC+0LIg0Lgg0L7QsdGA
+0LDQsdC+0YLQvtC6LiDQlNC70Y8g0YHQv9GA0LDQstC+0YfQvdC40LrQvtCyINC4
+INC00L7QutGD0LzQtdC90YLQvtCyINCyINGC0YDQsNC90LfQsNC60YbQuNC4INGB
+0L7Qt9C00LDRjtGC0YHRjyDQvdC+0LLRi9C1INC40LvQuCDQutC+0L/QuNGA0YPR
+jtGC0YHRjyDQuNC70Lgg0L/QtdGA0LXQt9Cw0L/QuNGB0YvQstCw0Y7RgtGB0Y8g
+0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC1INGN0LvQtdC80LXQvdGC0YsuIA0KPC9s
+aT48bGkgc3R5bGU9IkJPWC1TSVpJTkc6IGJvcmRlci1ib3giPjxlbSBzdHlsZT0i
+Qk9YLVNJWklORzogYm9yZGVyLWJveCI+VGVzdHNcQ29tbW9uQXBwXNCi0LXRgdGC
+X9CX0LDQv9GD0YHQutCi0LXRgdGC0L7QstCS0KHQtdCw0L3RgdC10JTRgNGD0LPQ
+uNGF0J/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuZXBmPC9lbT48c3BhbiBjbGFz
+cz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj7CoDwvc3Bhbj4tINC/0YDQuNC80LXR
+gNGLINC30LDQv9GD0YHQutCwINGC0LXRgdGC0L7QsiDQtNC70Y8g0L/QvtC70YzQ
+t9C+0LLQsNGC0LXQu9C10Lkg0YEg0L7Qs9GA0LDQvdC40YfQtdC90L3Ri9C80Lgg
+0L/RgNCw0LLQsNC80LguINCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCDRgdC+0LfQ
+tNCw0Y7RgtGB0Y8g0L3QsCDQu9C10YLRgyDQuNC3INC/0YDQvtGB0YLRi9GFINC8
+0LDQutC10YLQvtCyLiANCjwvbGk+PGxpIHN0eWxlPSJCT1gtU0laSU5HOiBib3Jk
+ZXItYm94Ij48ZW0gc3R5bGU9IkJPWC1TSVpJTkc6IGJvcmRlci1ib3giPlRlc3Rz
+XENvbW1vbkFwcFzQotC10YHRgl/Qn9GA0L7QstC10YDQuNGC0YzQntGC0YfQtdGC
+0J3QsNCh0L7QvtGC0LLQtdGC0YHRgtCy0LjQtdCt0YLQsNC70L7QvdGDLmVwZjwv
+ZW0+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+wqA8L3NwYW4+
+LSDQv9GA0LjQvNC10YAg0YLQtdGB0YLQsCDQvtGC0YfQtdGC0LAg0L/Rg9GC0LXQ
+vCDRgdGA0LDQstC90LXQvdC40Y8g0YEg0Y3RgtCw0LvQvtC90L3Ri9C8INC+0LbQ
+uNC00LDQvdC40LXQvCDQuNC3INC80LDQutC10YLQsC48L2xpPjwvZW0+PC91bD48
+aDI+PGEgYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiMl
+RDAlOTIlRDAlQkUlRDAlQjclRDAlQkMlRDAlQkUlRDAlQjYlRDAlQkQlRDAlQkUl
+RDElODElRDElODIlRDAlQjgtdW5pdHRlc3RydW5uZXJlcGYiIG5hbWU9InVzZXIt
+Y29udGVudC0lRDAlOTIlRDAlQkUlRDAlQjclRDAlQkMlRDAlQkUlRDAlQjYlRDAl
+QkQlRDAlQkUlRDElODElRDElODIlRDAlQjgtdW5pdHRlc3RydW5uZXJlcGYiPjxz
+cGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFuPjwvYT7QmtCw
+0Log0L/QvtC80L7Rh9GMINC/0YDQvtC10LrRgtGDPC9oMj4NCjxwPtCc0Ysg0YDQ
+sNC00Ysg0LvRjtCx0L7QuSDQv9C+0LzQvtGJ0Lg6IDwvcD4NCjxvbCBjbGFzcz0i
+dGFzay1saXN0Ij48bGk+DQo8cD7QldGB0LvQuCDQstGLINC30LDQvdC40LzQsNC1
+0YLQtdGB0Ywg0YDQsNC30YDQsNCx0L7RgtC60L7QuSDQvdCwIDHQoTrQn9GA0LXQ
+v9GA0LjRj9GC0LjQuCA4INC/0YDQvtCx0YPQudGC0LUg0L/QuNGB0LDRgtGMINC4
+INCy0YvQv9C+0LvQvdGP0YLRjCDRgtC10YHRgtGLINC/0YDQuCDQv9C+0LzQvtGJ
+0LggeFVuaXRGb3IxQywg0YHQvtC+0LHRidCw0LnRgtC1INC90LDQvCDQvtCxINC+
+0LHQvdCw0YDRg9C20LXQvdC90YvRhSDQvtGI0LjQsdC60LDRhSwg0L/QuNGI0LjR
+gtC1INC/0L7QttC10LvQsNC90LjRjy4g0JTQu9GPINGD0L/RgNCw0LLQu9C10L3Q
+uNGPINGB0L7QvtCx0YnQtdC90LjRj9C80Lgg0L7QsSDQvtGI0LjQsdC60LDRhSDQ
+uCDQv9C+0LbQtdC70LDQvdC40Y/QvNC4INC80Ysg0LjRgdC/0L7Qu9GM0LfRg9C1
+0LwgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1bnRhc2hvdi8xQ1VuaXQv
+aXNzdWVzP3NvcnQ9Y3JlYXRlZCZhbXA7c3RhdGU9b3BlbiI+0LHQsNCzLdGC0YDQ
+tdC60LXRgCBHaXRIdWIn0LA8L2E+LjwvcD4NCjwvbGk+PGxpPg0KPHA+0JXRgdC7
+0Lgg0YMg0LLQsNGBINC10YHRgtGMINCy0YDQtdC80Y8g0YDQsNC30L7QsdGA0LDR
+gtGM0YHRjyDQsiDQuNGB0YXQvtC00L3QvtC8INC60L7QtNC1LCDQstGLINC80L7Q
+ttC10YLQtSDQstC30Y/RgtGMINC90LAg0YHQtdCx0Y8g0YDQtdCw0LvQuNC30LDR
+htC40Y4g0L7QtNC90L7QuSDQuNC3IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
+bS9rdW50YXNob3YveFVuaXRGb3IxQy9pc3N1ZXM/c29ydD1jcmVhdGVkJmFtcDtz
+dGF0ZT1vcGVuIj7QvtGC0LrRgNGL0YLRi9GFINC30LDQtNCw0Yc8L2E+LjwvcD4N
+CjwvbGk+PGxpPg0KPHA+0JXRgdC70Lgg0LLRiyDRg9C20LUg0LjRgdC/0L7Qu9GM
+0LfRg9C10YLQtSB4VW5pdEZvcjFDINC90LAg0L/RgNCw0LrRgtC40LrQtSwg0L3Q
+sNC/0LjRiNC40YLQtSDQvtCxINGN0YLQvtC8INGB0YLQsNGC0YzRjiwg0L3QsNC/
+0YDQuNC80LXRgCwg0L3QsCA8YSBocmVmPSJodHRwOi8vaW5mb3N0YXJ0LnJ1Ij7Q
+mNC90YTQvtGB0YLQsNGA0YLQtTwvYT4uPC9wPjwvbGk+PC9vbD48aDI+PGEgYXJp
+YS1oaWRkZW49InRydWUiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiMlRDAlQTElRDAl
QkUlRDAlQjclRDAlQjQlRDAlQjAlRDAlQkQlRDAlQjglRDAlQjUtJUQxJTg0JUQw
JUIwJUQwJUI5JUQwJUJCJUQwJUJFJUQwJUIyLSVEMSU4MiVEMCVCNSVEMSU4MSVE
-MSU4MiVEMCVCRSVEMCVCMiI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1s
-aW5rIj48L3NwYW4+PC9hPtCh0L7Qt9C00LDQvdC40LUg0YTQsNC50LvQvtCyLdGC
-0LXRgdGC0L7QsjwvaDI+DQo8cCBjbGFzcz0ibWFya2Rvd24tYm9keSI+0KHQvtC3
-0LTQsNC10Lwg0L3QvtCy0YPRjiDQstC90LXRiNC90Y7RjiDQvtCx0YDQsNCx0L7R
-gtC60YMsINGCLtC9LiA8c3Ryb25nPtGC0LXRgdGC0L7QstGL0Lkg0L3QsNCx0L7R
-gDwvc3Ryb25nPjwvcD4NCjxwIGNsYXNzPSJtYXJrZG93bi1ib2R5Ij7QkiDQvNC+
-0LTRg9C70LUg0Y3RgtC+0Lkg0L7QsdGA0LDQsdC+0YLQutC4INGA0LDQt9C80LXR
-idCw0Y7RgtGB0Y8gPHN0cm9uZz7RgtC10YHRgtC+0LLRi9C1INGB0LvRg9GH0LDQ
-uDwvc3Ryb25nPiAo0Y3QutGB0L/QvtGA0YLQvdGL0LUg0LzQtdGC0L7QtNGLINCx
-0LXQtyDQv9Cw0YDQsNC80LXRgtGA0L7Qsiwg0YfRjNC1INC40LzRjyDQvdCw0YfQ
-uNC90LDQtdGC0YHRjyDQvdCwINCi0LXRgdGCKTwvcD4NCjxwIGNsYXNzPSJtYXJr
-ZG93bi1ib2R5Ij7QotC10YHRgtC+0LLRi9C5INGB0LvRg9GH0LDQuSDRgdGH0LjR
-gtCw0LXRgtGB0Y8g0YPRgdC/0LXRiNC90L4g0LLRi9C/0L7Qu9C90LXQvdC90YvQ
-vCwg0LXRgdC70Lgg0LIg0L/RgNC+0YbQtdGB0YHQtSDQtdCz0L4g0LLRi9C/0L7Q
-u9C90LXQvdC40Y8g0L3QtSDQsdGL0LvQviDQuNGB0LrQu9GO0YfQtdC90LjRjy48
-L3A+DQo8cCBjbGFzcz0ibWFya2Rvd24tYm9keSI+0KHQvtC+0YLQstC10YLRgdGC
-0LLQtdC90L3Qviwg0LTQu9GPINGC0L7Qs9C+LCDRh9GC0L7QsdGLINGC0LXRgdGC
-INGD0L/QsNC7LCDQvdGD0LbQvdC+INCy0YvQsdGA0L7RgdC40YLRjCDQuNGB0LrQ
-u9GO0YfQtdC90LjQtSAx0KEuINCU0LvRjyDRjdGC0L7Qs9C+INC40YHQv9C+0LvR
-jNC30YPRjtGC0YHRjyDQstGL0LfQvtCy0Ysg0YHQv9C10YbQuNCw0LvRjNC90YvR
-hSDQvNC10YLQvtC00L7Qsi3Rg9GC0LLQtdGA0LbQtNC10L3QuNC5INC40Lcg0YTR
-gNC10LnQvNCy0L7RgNC60LAgeFVuaXRGb3IxQy4g0KHQvC4gPGEgaHJlZj0iaHR0
-cHM6Ly9naXRodWIuY29tL3hVbml0Rm9yMUMveFVuaXRGb3IxQy93aWtpLyVEMCU5
-QyVEMCVCNSVEMSU4MiVEMCVCRSVEMCVCNCVEMSU4Qi0lRDAlQkYlRDElODAlRDAl
-QkUlRDAlQjIlRDAlQjUlRDElODAlRDAlQkElRDAlQjgtJUQxJTgzJUQxJTgyJUQw
-JUIyJUQwJUI1JUQxJTgwJUQwJUI2JUQwJUI0JUQwJUI1JUQwJUJEJUQwJUI4JUQx
-JThGIj7QnNC10YLQvtC00Ysg0L/RgNC+0LLQtdGA0LrQuC/Rg9GC0LLQtdGA0LbQ
-tNC10L3QuNC5PC9hPjwvcD4NCjxoMiBjbGFzcz0ibWFya2Rvd24tYm9keSI+PGEg
-YXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiMlRDAlOUYl
-RDElODAlRDAlQjUlRDAlQjQlRDAlQkUlRDAlQkYlRDElODAlRDAlQjUlRDAlQjQl
-RDAlQjUlRDAlQkIlRDAlQjUlRDAlQkQlRDAlQkQlRDElOEIlRDAlQjUtJUQwJUJD
-JUQwJUI1JUQxJTgyJUQwJUJFJUQwJUI0JUQxJThCLSVEMSU4MiVEMCVCNSVEMSU4
-MSVEMSU4MiVEMCVCMCIgbmFtZT0idXNlci1jb250ZW50LSVEMCU5RiVEMSU4MCVE
-MCVCNSVEMCVCNCVEMCVCRSVEMCVCRiVEMSU4MCVEMCVCNSVEMCVCNCVEMCVCNSVE
-MCVCQiVEMCVCNSVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCNS0lRDAlQkMlRDAlQjUl
-RDElODIlRDAlQkUlRDAlQjQlRDElOEItJUQxJTgyJUQwJUI1JUQxJTgxJUQxJTgy
-JUQwJUIwIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bh
-bj48L2E+0J/RgNC10LTQvtC/0YDQtdC00LXQu9C10L3QvdGL0LUg0LzQtdGC0L7Q
-tNGLINGC0LXRgdGC0LA8L2gyPg0KPGRpdiBjbGFzcz0ibWFya2Rvd24tYm9keSI+
-DQo8dWwgY2xhc3M9InRhc2stbGlzdCI+PGxpPg0KPHA+0J/QtdGA0LXQvNC10L3Q
-vdCw0Y8g0K7QotC10YHRgjwvcD4NCjx1bCBjbGFzcz0idGFzay1saXN0Ij48bGk+
-0YHQvtC00LXRgNC20LjRgiDQsiDRgdC10LHQtSDRgdGB0YvQu9C60YMg0L3QsCDR
-jdC60LfQtdC80L/Qu9GP0YAg0YTRgNC10LnQvNCy0L7RgNC60LAgeFVuaXRGb3Ix
-QyAtINC+0LHRitC10LrRgiDQvtCx0YDQsNCx0L7RgtC60LggVW5pdFRlc3RSdW5u
-ZXIgDQo8L2xpPjxsaT7RgSDQv9C+0LzQvtGJ0YzRjiDRjdGC0L7QuSDQv9C10YDQ
-tdC80LXQvdC90L7QuSDQvNC+0LbQvdC+INC40YHQv9C+0LvRjNC30L7QstCw0YLR
-jCDQv9GA0LXQtNC+0L/RgNC10LTQtdC70LXQvdC90YvQtSDQvNC10YLQvtC00Ysg
-eFVuaXRGb3IxQy4g0J3QsNC/0YDQuNC80LXRgCwg0YHQvC4gPGEgaHJlZj0iaHR0
-cHM6Ly9naXRodWIuY29tL3hVbml0Rm9yMUMveFVuaXRGb3IxQy93aWtpLyVEMCU5
-QyVEMCVCNSVEMSU4MiVEMCVCRSVEMCVCNCVEMSU4Qi0lRDAlQkYlRDElODAlRDAl
-QkUlRDAlQjIlRDAlQjUlRDElODAlRDAlQkElRDAlQjgtJUQxJTgzJUQxJTgyJUQw
-JUIyJUQwJUI1JUQxJTgwJUQwJUI2JUQwJUI0JUQwJUI1JUQwJUJEJUQwJUI4JUQx
-JThGIj7QnNC10YLQvtC00Ysg0L/RgNC+0LLQtdGA0LrQuC/Rg9GC0LLQtdGA0LbQ
-tNC10L3QuNC5PC9hPiANCjwvbGk+PGxpPtC40LzRjyDQrtCi0LXRgdGCINC90LXQ
-vtCx0Y/Qt9Cw0YLQtdC70YzQvdC+LCDQvNC+0LbQvdC+INC40YHQv9C+0LvRjNC3
-0L7QstCw0YLRjCDQu9GO0LHQvtC1INC00YDRg9Cz0L7QtSDQuNC80Y8g0L/QtdGA
-0LXQvNC10L3QvdC+0LkgDQo8L2xpPjxsaT7Qt9C90LDRh9C10L3QuNC1INGN0YLQ
-vtC5INC/0LXRgNC10LzQtdC90L3QvtC5INC00L7Qu9C20L3QviDQsdGL0YLRjCDQ
-t9Cw0L/QvtC70L3QtdC90L4g0LIg0LzQtdGC0L7QtNC1INCf0L7Qu9GD0YfQuNGC
-0YzQodC/0LjRgdC+0LrQotC10YHRgtC+0LIgPC9saT48L3VsPjwvbGk+PGxpPg0K
-PHA+0JzQtdGC0L7QtCDQn9C+0LvRg9GH0LjRgtGM0KHQv9C40YHQvtC60KLQtdGB
-0YLQvtCyPC9wPg0KPHVsIGNsYXNzPSJ0YXNrLWxpc3QiPjxsaT7QtNC+0LvQttC1
-0L0g0LLQtdGA0L3Rg9GC0Ywg0LzQsNGB0YHQuNCyINC+0L/QuNGB0LDQvdC40Lkg
-0YLQtdGB0YLQvtCy0YvRhSDRgdC70YPRh9Cw0LXQsiANCjwvbGk+PGxpPtC40LzQ
-tdC90L3QviDRjdGC0L7RgiDQvNCw0YHRgdC40LIg0Lgg0Y/QstC70Y/QtdGC0YHR
-jyDRgdC/0LjRgdC60L7QvCDQstGL0L/QvtC70L3Rj9C10LzRi9GFINGC0LXRgdGC
-0L7QsiA8L2xpPjwvdWw+PC9saT48bGk+DQo8cD7QnNC10YLQvtC0INCf0LXRgNC1
-0LTQl9Cw0L/Rg9GB0LrQvtC80KLQtdGB0YLQsDwvcD4NCjx1bCBjbGFzcz0idGFz
-ay1saXN0Ij48bGk+0LLRi9C30YvQstCw0LXRgtGB0Y8gPGVtPtC/0LXRgNC10LQg
-0LfQsNC/0YPRgdC60L7QvCDQutCw0LbQtNC+0LPQviDRgtC10YHRgtCwPC9lbT4g
-PC9saT48L3VsPjwvbGk+PGxpPg0KPHA+0J/QvtGB0LvQtdCX0LDQv9GD0YHQutCw
-0KLQtdGB0YLQsDwvcD4NCjx1bCBjbGFzcz0idGFzay1saXN0Ij48bGk+0LLRi9C3
-0YvQstCw0LXRgtGB0Y8gPGVtPtC/0L7RgdC70LUg0LfQsNC/0YPRgdC60LAg0LrQ
-sNC20LTQvtCz0L4g0YLQtdGB0YLQsDwvZW0+IA0KPC9saT48bGk+0LzQtdGC0L7Q
-tCDQstGL0LfRi9Cy0LDQtdGC0YHRjyDQvdC10LfQsNCy0LjRgdC40LzQviDQvtGC
-INGC0L7Qs9C+LCDRg9GB0L/QtdGI0L3QviDQv9GA0L7RiNC10Lsg0YLQtdGB0YIg
-0LjQu9C4INGD0L/QsNC7LiA8L2xpPjwvdWw+PC9saT48L3VsPjwvZGl2Pg0KPGgy
-PjxhIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iYW5jaG9yIiBocmVmPSIjJUQw
-JTkxJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUIyJUQxJThCJUQwJUI1LSVEMCVCRiVE
-MSU4MCVEMCVCOCVEMCVCNSVEMCVCQyVEMSU4Qi0lRDAlQkQlRDAlQjAlRDAlQkYl
-RDAlQjglRDElODElRDAlQjAlRDAlQkQlRDAlQjglRDElOEYtJUQxJTgyJUQwJUI1
-JUQxJTgxJUQxJTgyJUQwJUJFJUQwJUIyIiBuYW1lPSJ1c2VyLWNvbnRlbnQtJUQw
-JTkxJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUIyJUQxJThCJUQwJUI1LSVEMCVCRiVE
-MSU4MCVEMCVCOCVEMCVCNSVEMCVCQyVEMSU4Qi0lRDAlQkQlRDAlQjAlRDAlQkYl
-RDAlQjglRDElODElRDAlQjAlRDAlQkQlRDAlQjglRDElOEYtJUQxJTgyJUQwJUI1
-JUQxJTgxJUQxJTgyJUQwJUJFJUQwJUIyIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBv
-Y3RpY29uLWxpbmsiPjwvc3Bhbj48L2E+0JHQsNC30L7QstGL0LUg0L/RgNC40LXQ
-vNGLINC90LDQv9C40YHQsNC90LjRjyDRgtC10YHRgtC+0LI8L2gyPg0KPHA+0JTQ
-u9GPINCz0LDRgNCw0L3RgtC40YDQvtCy0LDQvdC40Y8g0L3QtdC30LDQstC40YHQ
-uNC80L7RgdGC0Lgg0YLQtdGB0YLQvtCyICjRjdGC0L4g0L7QtNC90L4g0LjQtyDQ
-vtGB0L3QvtCy0L3Ri9GFINGC0YDQtdCx0L7QstCw0L3QuNC5INC6INGC0LXRgdGC
-0LDQvCkg0YDQtdC60L7QvNC10L3QtNGD0LXRgtGB0Y8g0LjRgdC/0L7Qu9GM0LfQ
-vtCy0LDRgtGMIDxzdHJvbmc+0LzQtdGF0LDQvdC40LfQvCDRgtGA0LDQvdC30LDQ
-utGG0LjQuTwvc3Ryb25nPi48L3A+DQo8cD7Qn9C10YDQtdC0INC30LDQv9GD0YHQ
-utC+0Lwg0YLQtdGB0YLQsCDQvdCw0YfQuNC90LDQtdC8INGC0YDQsNC90LfQsNC6
-0YbQuNGOLCDQv9C+0YHQu9C1INCy0YvQv9C+0LvQvdC10L3QuNGPINGC0LXRgdGC
-0LAg0YLRgNCw0L3Qt9Cw0LrRhtC40Y8g0L7RgtC80LXQvdGP0LXRgtGB0Y8uINCS
-INC40YLQvtCz0LUg0LIg0LHQsNC30LUg0L3QtSDQvtGB0YLQsNC10YLRgdGPINC9
-0LjQutCw0LrQuNGFINGB0LvQtdC00L7QsiDRgtC10YHRgtC40YDQvtCy0LDQvdC4
-0Y8g0Lgg0YLQtdGB0YLRiyDRgNCw0LHQvtGC0LDRjtGCINC90LXQt9Cw0LLQuNGB
-0LjQvNC+LjwvcD4NCjxwPtCc0L7QttC90L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDR
-gtGMINGB0LvQtdC00YPRjtGJ0LjQuSDRiNCw0LHQu9C+0L0g0LzQtdGC0L7QtNC+
-0LIg0YLQtdGB0YLQsDwvcD4NCjxkaXYgY2xhc3M9ImhpZ2hsaWdodCBoaWdobGln
-aHQtc2giPjxwcmU+0J/RgNC+0YbQtdC00YPRgNCwINCf0LXRgNC10LTQl9Cw0L/R
-g9GB0LrQvtC80KLQtdGB0YLQsDxzcGFuIGNsYXNzPSJvIj4oKTwvc3Bhbj4g0K3Q
-utGB0L/QvtGA0YINCiAgICDQndCw0YfQsNGC0YzQotGA0LDQvdC30LDQutGG0LjR
-jjxzcGFuIGNsYXNzPSJvIj4oKTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bh
-bj4NCtCa0L7QvdC10YbQn9GA0L7RhtC10LTRg9GA0YsNCg0K0J/RgNC+0YbQtdC0
-0YPRgNCwINCf0L7RgdC70LXQl9Cw0L/Rg9GB0LrQsNCi0LXRgdGC0LA8c3BhbiBj
-bGFzcz0ibyI+KCk8L3NwYW4+INCt0LrRgdC/0L7RgNGCDQogICAg0JXRgdC70Lgg
-0KLRgNCw0L3Qt9Cw0LrRhtC40Y/QkNC60YLQuNCy0L3QsDxzcGFuIGNsYXNzPSJv
-Ij4oKTwvc3Bhbj4g0KLQvtCz0LTQsA0KICAgICAgICDQntGC0LzQtdC90LjRgtGM
-0KLRgNCw0L3Qt9Cw0LrRhtC40Y48c3BhbiBjbGFzcz0ibyI+KCk8L3NwYW4+PHNw
-YW4gY2xhc3M9InAiPjs8L3NwYW4+DQogICAg0JrQvtC90LXRhtCV0YHQu9C4PHNw
-YW4gY2xhc3M9InAiPjs8L3NwYW4+DQrQmtC+0L3QtdGG0J/RgNC+0YbQtdC00YPR
-gNGLDQo8L3ByZT48L2Rpdj4NCjxoMj48YSBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xh
-c3M9ImFuY2hvciIgaHJlZj0iIyVEMCU5MSVEMCVCMCVEMCVCNyVEMCVCRSVEMCVC
-MiVEMSU4QiVEMCVCOS0lRDElODglRDAlQjAlRDAlQjElRDAlQkIlRDAlQkUlRDAl
-QkQtJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUIwLSVEMSU4MiVEMCVCNSVE
-MSU4MSVEMSU4MiVEMCVCMCIgbmFtZT0idXNlci1jb250ZW50LSVEMCU5MSVEMCVC
-MCVEMCVCNyVEMCVCRSVEMCVCMiVEMSU4QiVEMCVCOS0lRDElODglRDAlQjAlRDAl
-QjElRDAlQkIlRDAlQkUlRDAlQkQtJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQw
-JUIwLSVEMSU4MiVEMCVCNSVEMSU4MSVEMSU4MiVEMCVCMCI+PHNwYW4gY2xhc3M9
-Im9jdGljb24gb2N0aWNvbi1saW5rIj48L3NwYW4+PC9hPtCR0LDQt9C+0LLRi9C5
-INGI0LDQsdC70L7QvSDRhNCw0LnQu9CwLdGC0LXRgdGC0LA8L2gyPg0KPGRpdiBj
-bGFzcz0iaGlnaGxpZ2h0IGhpZ2hsaWdodC1zaCI+PHByZT7Qn9C10YDQtdC8INCu
-0KLQtdGB0YI8c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4gLy8g0YHRgdGL0LvQutCw
-INC90LAg0Y3QutC30LXQvNC/0LvRj9GAINGE0YDQtdC50LzQstC+0YDQutCwIHhV
-bml0Rm9yMUMgLSDQvtCx0YrQtdC60YIg0L7QsdGA0LDQsdC+0YLQutC4IFVuaXRU
-ZXN0UnVubmVyDQoNCi8vPHNwYW4gY2xhc3M9Im8iPns8L3NwYW4+INC+0YHQvdC+
-0LLQvdCw0Y8g0L/RgNC+0YbQtdC00YPRgNCwINC00LvRjyDRjtC90LjRgi3RgtC1
-0YHRgtC40YDQvtCy0LDQvdC40Y8geFVuaXRGb3IxQw0K0KTRg9C90LrRhtC40Y8g
-0J/QvtC70YPRh9C40YLRjNCh0L/QuNGB0L7QutCi0LXRgdGC0L7QsjxzcGFuIGNs
-YXNzPSJvIj4oPC9zcGFuPtCu0L3QuNGC0KLQtdGB0YLQuNGA0L7QstCw0L3QuNC1
-PHNwYW4gY2xhc3M9Im8iPik8L3NwYW4+INCt0LrRgdC/0L7RgNGCDQoNCiAgICDQ
-rtCi0LXRgdGCIDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiDQrtC90LjRgtCi0LXR
-gdGC0LjRgNC+0LLQsNC90LjQtTxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPg0KDQog
-ICAg0JLRgdC10KLQtdGB0YLRiyA8c3BhbiBjbGFzcz0ibyI+PTwvc3Bhbj4g0J3Q
-vtCy0YvQuSDQnNCw0YHRgdC40LI8c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4NCg0K
-ICAgINCS0YHQtdCi0LXRgdGC0Ysu0JTQvtCx0LDQstC40YLRjDxzcGFuIGNsYXNz
-PSJvIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJzMiI+ItCi0LXRgdGC0JTQvtC70LbQ
-tdC9X9Ch0LvQvtC20LjRgtGM0JTQstCw0JjQlNCy0LAiPC9zcGFuPjxzcGFuIGNs
-YXNzPSJvIj4pPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPg0KDQoNCiAg
-ICDQktC+0LfQstGA0LDRgiDQktGB0LXQotC10YHRgtGLPHNwYW4gY2xhc3M9InAi
-Pjs8L3NwYW4+DQoNCtCa0L7QvdC10YbQpNGD0L3QutGG0LjQuA0KLy88c3BhbiBj
-bGFzcz0ibyI+fTwvc3Bhbj4NCg0KLy88c3BhbiBjbGFzcz0ibyI+ezwvc3Bhbj4g
-0J7QodCd0J7QktCd0J7QmSDQkdCb0J7Qmg0KDQovLzxzcGFuIGNsYXNzPSJvIj59
-PC9zcGFuPiDQmtCe0J3QldCmINCe0KHQndCe0JLQndCe0JPQniDQkdCb0J7QmtCQ
-DQoNCi8vPHNwYW4gY2xhc3M9Im8iPns8L3NwYW4+INCR0JvQntCaINCu0J3QmNCi
-LdCi0JXQodCi0J7QkiAtINGB0LDQvNC4INGC0LXRgdGC0YsNCg0K0J/RgNC+0YbQ
-tdC00YPRgNCwINCf0LXRgNC10LTQl9Cw0L/Rg9GB0LrQvtC80KLQtdGB0YLQsDxz
-cGFuIGNsYXNzPSJvIj4oKTwvc3Bhbj4g0K3QutGB0L/QvtGA0YINCiAgICDQndCw
-0YfQsNGC0YzQotGA0LDQvdC30LDQutGG0LjRjjxzcGFuIGNsYXNzPSJvIj4oKTwv
-c3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4NCtCa0L7QvdC10YbQn9GA0L7R
-htC10LTRg9GA0YsNCg0K0J/RgNC+0YbQtdC00YPRgNCwINCf0L7RgdC70LXQl9Cw
-0L/Rg9GB0LrQsNCi0LXRgdGC0LA8c3BhbiBjbGFzcz0ibyI+KCk8L3NwYW4+INCt
-0LrRgdC/0L7RgNGCDQogICAg0JXRgdC70Lgg0KLRgNCw0L3Qt9Cw0LrRhtC40Y/Q
-kNC60YLQuNCy0L3QsDxzcGFuIGNsYXNzPSJvIj4oKTwvc3Bhbj4g0KLQvtCz0LTQ
-sA0KICAgICAgICDQntGC0LzQtdC90LjRgtGM0KLRgNCw0L3Qt9Cw0LrRhtC40Y48
-c3BhbiBjbGFzcz0ibyI+KCk8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+
-DQogICAg0JrQvtC90LXRhtCV0YHQu9C4PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+
-DQrQmtC+0L3QtdGG0J/RgNC+0YbQtdC00YPRgNGLDQoNCtCf0YDQvtGG0LXQtNGD
-0YDQsCDQotC10YHRgtCU0L7Qu9C20LXQvV/QodC70L7QttC40YLRjNCU0LLQsNCY
-0JTQstCwPHNwYW4gY2xhc3M9Im8iPigpPC9zcGFuPiDQrdC60YHQv9C+0YDRgg0K
-ICAgINCu0KLQtdGB0YIu0J/RgNC+0LLQtdGA0LjRgtGM0KDQsNCy0LXQvdGB0YLQ
-stC+PHNwYW4gY2xhc3M9Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9Im0iPjI8L3Nw
-YW4+ICsgMiwgNCwgPHNwYW4gY2xhc3M9InMyIj4iMiArIDIsIDQiPC9zcGFuPjxz
-cGFuIGNsYXNzPSJvIj4pPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPg0K
-0JrQvtC90LXRhtCf0YDQvtGG0LXQtNGD0YDRiw0KDQovLzxzcGFuIGNsYXNzPSJv
-Ij59PC9zcGFuPiDQmtCe0J3QldCmINCR0JvQntCa0JAg0K7QndCY0KIt0KLQldCh
-0KLQntCSDQo8L3ByZT48L2Rpdj48L2JvZHk+PC9odG1sPg==},0}
\ No newline at end of file
+MSU4MiVEMCVCRSVEMCVCMiIgbmFtZT0idXNlci1jb250ZW50LSVEMCVBMSVEMCVC
+RSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCNS0lRDElODQlRDAl
+QjAlRDAlQjklRDAlQkIlRDAlQkUlRDAlQjItJUQxJTgyJUQwJUI1JUQxJTgxJUQx
+JTgyJUQwJUJFJUQwJUIyIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxp
+bmsiPjwvc3Bhbj48L2E+0KHQvtC30LTQsNC90LjQtSDRhNCw0LnQu9C+0LIt0YLQ
+tdGB0YLQvtCyPC9oMj4NCjxwIGNsYXNzPSJtYXJrZG93bi1ib2R5Ij7QodC+0LfQ
+tNCw0LXQvCDQvdC+0LLRg9GOINCy0L3QtdGI0L3RjtGOINC+0LHRgNCw0LHQvtGC
+0LrRgywg0YIu0L0uIDxzdHJvbmc+0YLQtdGB0YLQvtCy0YvQuSDQvdCw0LHQvtGA
+PC9zdHJvbmc+PC9wPg0KPHAgY2xhc3M9Im1hcmtkb3duLWJvZHkiPtCSINC80L7Q
+tNGD0LvQtSDRjdGC0L7QuSDQvtCx0YDQsNCx0L7RgtC60Lgg0YDQsNC30LzQtdGJ
+0LDRjtGC0YHRjyA8c3Ryb25nPtGC0LXRgdGC0L7QstGL0LUg0YHQu9GD0YfQsNC4
+PC9zdHJvbmc+ICjRjdC60YHQv9C+0YDRgtC90YvQtSDQvNC10YLQvtC00Ysg0LHQ
+tdC3INC/0LDRgNCw0LzQtdGC0YDQvtCyLCDRh9GM0LUg0LjQvNGPINC90LDRh9C4
+0L3QsNC10YLRgdGPINC90LAg0KLQtdGB0YIpPC9wPg0KPHAgY2xhc3M9Im1hcmtk
+b3duLWJvZHkiPtCi0LXRgdGC0L7QstGL0Lkg0YHQu9GD0YfQsNC5INGB0YfQuNGC
+0LDQtdGC0YHRjyDRg9GB0L/QtdGI0L3QviDQstGL0L/QvtC70L3QtdC90L3Ri9C8
+LCDQtdGB0LvQuCDQsiDQv9GA0L7RhtC10YHRgdC1INC10LPQviDQstGL0L/QvtC7
+0L3QtdC90LjRjyDQvdC1INCx0YvQu9C+INC40YHQutC70Y7Rh9C10L3QuNGPLjwv
+cD4NCjxwIGNsYXNzPSJtYXJrZG93bi1ib2R5Ij7QodC+0L7RgtCy0LXRgtGB0YLQ
+stC10L3QvdC+LCDQtNC70Y8g0YLQvtCz0L4sINGH0YLQvtCx0Ysg0YLQtdGB0YIg
+0YPQv9Cw0LssINC90YPQttC90L4g0LLRi9Cx0YDQvtGB0LjRgtGMINC40YHQutC7
+0Y7Rh9C10L3QuNC1IDHQoS4g0JTQu9GPINGN0YLQvtCz0L4g0LjRgdC/0L7Qu9GM
+0LfRg9GO0YLRgdGPINCy0YvQt9C+0LLRiyDRgdC/0LXRhtC40LDQu9GM0L3Ri9GF
+INC80LXRgtC+0LTQvtCyLdGD0YLQstC10YDQttC00LXQvdC40Lkg0LjQtyDRhNGA
+0LXQudC80LLQvtGA0LrQsCB4VW5pdEZvcjFDLiDQodC8LiA8YSBocmVmPSJodHRw
+czovL2dpdGh1Yi5jb20veFVuaXRGb3IxQy94VW5pdEZvcjFDL3dpa2kvJUQwJTlD
+JUQwJUI1JUQxJTgyJUQwJUJFJUQwJUI0JUQxJThCLSVEMCVCRiVEMSU4MCVEMCVC
+RSVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCQSVEMCVCOC0lRDElODMlRDElODIlRDAl
+QjIlRDAlQjUlRDElODAlRDAlQjYlRDAlQjQlRDAlQjUlRDAlQkQlRDAlQjglRDEl
+OEYiPtCc0LXRgtC+0LTRiyDQv9GA0L7QstC10YDQutC4L9GD0YLQstC10YDQttC0
+0LXQvdC40Lk8L2E+PC9wPg0KPGgyIGNsYXNzPSJtYXJrZG93bi1ib2R5Ij48YSBh
+cmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9ImFuY2hvciIgaHJlZj0iIyVEMCU5RiVE
+MSU4MCVEMCVCNSVEMCVCNCVEMCVCRSVEMCVCRiVEMSU4MCVEMCVCNSVEMCVCNCVE
+MCVCNSVEMCVCQiVEMCVCNSVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCNS0lRDAlQkMl
+RDAlQjUlRDElODIlRDAlQkUlRDAlQjQlRDElOEItJUQxJTgyJUQwJUI1JUQxJTgx
+JUQxJTgyJUQwJUIwIiBuYW1lPSJ1c2VyLWNvbnRlbnQtJUQwJTlGJUQxJTgwJUQw
+JUI1JUQwJUI0JUQwJUJFJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUI1JUQw
+JUJCJUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQwJUI1LSVEMCVCQyVEMCVCNSVE
+MSU4MiVEMCVCRSVEMCVCNCVEMSU4Qi0lRDElODIlRDAlQjUlRDElODElRDElODIl
+RDAlQjAiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFu
+PjwvYT7Qn9GA0LXQtNC+0L/RgNC10LTQtdC70LXQvdC90YvQtSDQvNC10YLQvtC0
+0Ysg0YLQtdGB0YLQsDwvaDI+DQo8ZGl2IGNsYXNzPSJtYXJrZG93bi1ib2R5Ij4N
+Cjx1bCBjbGFzcz0idGFzay1saXN0Ij48bGk+DQo8cD7Qn9C10YDQtdC80LXQvdC9
+0LDRjyDQrtCi0LXRgdGCPC9wPg0KPHVsIGNsYXNzPSJ0YXNrLWxpc3QiPjxsaT7R
+gdC+0LTQtdGA0LbQuNGCINCyINGB0LXQsdC1INGB0YHRi9C70LrRgyDQvdCwINGN
+0LrQt9C10LzQv9C70Y/RgCDRhNGA0LXQudC80LLQvtGA0LrQsCB4VW5pdEZvcjFD
+IC0g0L7QsdGK0LXQutGCINC+0LHRgNCw0LHQvtGC0LrQuCBVbml0VGVzdFJ1bm5l
+ciANCjwvbGk+PGxpPtGBINC/0L7QvNC+0YnRjNGOINGN0YLQvtC5INC/0LXRgNC1
+0LzQtdC90L3QvtC5INC80L7QttC90L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM
+INC/0YDQtdC00L7Qv9GA0LXQtNC10LvQtdC90L3Ri9C1INC80LXRgtC+0LTRiyB4
+VW5pdEZvcjFDLiDQndCw0L/RgNC40LzQtdGALCDRgdC8LiA8YSBocmVmPSJodHRw
+czovL2dpdGh1Yi5jb20veFVuaXRGb3IxQy94VW5pdEZvcjFDL3dpa2kvJUQwJTlD
+JUQwJUI1JUQxJTgyJUQwJUJFJUQwJUI0JUQxJThCLSVEMCVCRiVEMSU4MCVEMCVC
+RSVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCQSVEMCVCOC0lRDElODMlRDElODIlRDAl
+QjIlRDAlQjUlRDElODAlRDAlQjYlRDAlQjQlRDAlQjUlRDAlQkQlRDAlQjglRDEl
+OEYiPtCc0LXRgtC+0LTRiyDQv9GA0L7QstC10YDQutC4L9GD0YLQstC10YDQttC0
+0LXQvdC40Lk8L2E+IA0KPC9saT48bGk+0LjQvNGPINCu0KLQtdGB0YIg0L3QtdC+
+0LHRj9C30LDRgtC10LvRjNC90L4sINC80L7QttC90L4g0LjRgdC/0L7Qu9GM0LfQ
+vtCy0LDRgtGMINC70Y7QsdC+0LUg0LTRgNGD0LPQvtC1INC40LzRjyDQv9C10YDQ
+tdC80LXQvdC90L7QuSANCjwvbGk+PGxpPtC30L3QsNGH0LXQvdC40LUg0Y3RgtC+
+0Lkg0L/QtdGA0LXQvNC10L3QvdC+0Lkg0LTQvtC70LbQvdC+INCx0YvRgtGMINC3
+0LDQv9C+0LvQvdC10L3QviDQsiDQvNC10YLQvtC00LUg0J/QvtC70YPRh9C40YLR
+jNCh0L/QuNGB0L7QutCi0LXRgdGC0L7QsiA8L2xpPjwvdWw+PC9saT48bGk+DQo8
+cD7QnNC10YLQvtC0INCf0L7Qu9GD0YfQuNGC0YzQodC/0LjRgdC+0LrQotC10YHR
+gtC+0LI8L3A+DQo8dWwgY2xhc3M9InRhc2stbGlzdCI+PGxpPtC00L7Qu9C20LXQ
+vSDQstC10YDQvdGD0YLRjCDQvNCw0YHRgdC40LIg0L7Qv9C40YHQsNC90LjQuSDR
+gtC10YHRgtC+0LLRi9GFINGB0LvRg9GH0LDQtdCyIA0KPC9saT48bGk+0LjQvNC1
+0L3QvdC+INGN0YLQvtGCINC80LDRgdGB0LjQsiDQuCDRj9Cy0LvRj9C10YLRgdGP
+INGB0L/QuNGB0LrQvtC8INCy0YvQv9C+0LvQvdGP0LXQvNGL0YUg0YLQtdGB0YLQ
+vtCyIDwvbGk+PC91bD48L2xpPjxsaT4NCjxwPtCc0LXRgtC+0LQg0J/QtdGA0LXQ
+tNCX0LDQv9GD0YHQutC+0LzQotC10YHRgtCwPC9wPg0KPHVsIGNsYXNzPSJ0YXNr
+LWxpc3QiPjxsaT7QstGL0LfRi9Cy0LDQtdGC0YHRjyA8ZW0+0L/QtdGA0LXQtCDQ
+t9Cw0L/Rg9GB0LrQvtC8INC60LDQttC00L7Qs9C+INGC0LXRgdGC0LA8L2VtPiA8
+L2xpPjwvdWw+PC9saT48bGk+DQo8cD7Qn9C+0YHQu9C10JfQsNC/0YPRgdC60LDQ
+otC10YHRgtCwPC9wPg0KPHVsIGNsYXNzPSJ0YXNrLWxpc3QiPjxsaT7QstGL0LfR
+i9Cy0LDQtdGC0YHRjyA8ZW0+0L/QvtGB0LvQtSDQt9Cw0L/Rg9GB0LrQsCDQutCw
+0LbQtNC+0LPQviDRgtC10YHRgtCwPC9lbT4gDQo8L2xpPjxsaT7QvNC10YLQvtC0
+INCy0YvQt9GL0LLQsNC10YLRgdGPINC90LXQt9Cw0LLQuNGB0LjQvNC+INC+0YIg
+0YLQvtCz0L4sINGD0YHQv9C10YjQvdC+INC/0YDQvtGI0LXQuyDRgtC10YHRgiDQ
+uNC70Lgg0YPQv9Cw0LsuIDwvbGk+PC91bD48L2xpPjwvdWw+PC9kaXY+DQo8aDI+
+PGEgYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiMlRDAl
+OTElRDAlQjAlRDAlQjclRDAlQkUlRDAlQjIlRDElOEIlRDAlQjUtJUQwJUJGJUQx
+JTgwJUQwJUI4JUQwJUI1JUQwJUJDJUQxJThCLSVEMCVCRCVEMCVCMCVEMCVCRiVE
+MCVCOCVEMSU4MSVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4Ri0lRDElODIlRDAlQjUl
+RDElODElRDElODIlRDAlQkUlRDAlQjIiIG5hbWU9InVzZXItY29udGVudC0lRDAl
+OTElRDAlQjAlRDAlQjclRDAlQkUlRDAlQjIlRDElOEIlRDAlQjUtJUQwJUJGJUQx
+JTgwJUQwJUI4JUQwJUI1JUQwJUJDJUQxJThCLSVEMCVCRCVEMCVCMCVEMCVCRiVE
+MCVCOCVEMSU4MSVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4Ri0lRDElODIlRDAlQjUl
+RDElODElRDElODIlRDAlQkUlRDAlQjIiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9j
+dGljb24tbGluayI+PC9zcGFuPjwvYT7QkdCw0LfQvtCy0YvQtSDQv9GA0LjQtdC8
+0Ysg0L3QsNC/0LjRgdCw0L3QuNGPINGC0LXRgdGC0L7QsjwvaDI+DQo8cD7QlNC7
+0Y8g0LPQsNGA0LDQvdGC0LjRgNC+0LLQsNC90LjRjyDQvdC10LfQsNCy0LjRgdC4
+0LzQvtGB0YLQuCDRgtC10YHRgtC+0LIgKNGN0YLQviDQvtC00L3QviDQuNC3INC+
+0YHQvdC+0LLQvdGL0YUg0YLRgNC10LHQvtCy0LDQvdC40Lkg0Log0YLQtdGB0YLQ
+sNC8KSDRgNC10LrQvtC80LXQvdC00YPQtdGC0YHRjyDQuNGB0L/QvtC70YzQt9C+
+0LLQsNGC0YwgPHN0cm9uZz7QvNC10YXQsNC90LjQt9C8INGC0YDQsNC90LfQsNC6
+0YbQuNC5PC9zdHJvbmc+LjwvcD4NCjxwPtCf0LXRgNC10LQg0LfQsNC/0YPRgdC6
+0L7QvCDRgtC10YHRgtCwINC90LDRh9C40L3QsNC10Lwg0YLRgNCw0L3Qt9Cw0LrR
+htC40Y4sINC/0L7RgdC70LUg0LLRi9C/0L7Qu9C90LXQvdC40Y8g0YLQtdGB0YLQ
+sCDRgtGA0LDQvdC30LDQutGG0LjRjyDQvtGC0LzQtdC90Y/QtdGC0YHRjy4g0JIg
+0LjRgtC+0LPQtSDQsiDQsdCw0LfQtSDQvdC1INC+0YHRgtCw0LXRgtGB0Y8g0L3Q
+uNC60LDQutC40YUg0YHQu9C10LTQvtCyINGC0LXRgdGC0LjRgNC+0LLQsNC90LjR
+jyDQuCDRgtC10YHRgtGLINGA0LDQsdC+0YLQsNGO0YIg0L3QtdC30LDQstC40YHQ
+uNC80L4uPC9wPg0KPHA+0JzQvtC20L3QviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC
+0Ywg0YHQu9C10LTRg9GO0YnQuNC5INGI0LDQsdC70L7QvSDQvNC10YLQvtC00L7Q
+siDRgtC10YHRgtCwPC9wPg0KPGRpdiBjbGFzcz0iaGlnaGxpZ2h0IGhpZ2hsaWdo
+dC1zaCI+PHByZT7Qn9GA0L7RhtC10LTRg9GA0LAg0J/QtdGA0LXQtNCX0LDQv9GD
+0YHQutC+0LzQotC10YHRgtCwPHNwYW4gY2xhc3M9Im8iPigpPC9zcGFuPiDQrdC6
+0YHQv9C+0YDRgg0KICAgINCd0LDRh9Cw0YLRjNCi0YDQsNC90LfQsNC60YbQuNGO
+PHNwYW4gY2xhc3M9Im8iPigpPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFu
+Pg0K0JrQvtC90LXRhtCf0YDQvtGG0LXQtNGD0YDRiw0KDQrQn9GA0L7RhtC10LTR
+g9GA0LAg0J/QvtGB0LvQtdCX0LDQv9GD0YHQutCw0KLQtdGB0YLQsDxzcGFuIGNs
+YXNzPSJvIj4oKTwvc3Bhbj4g0K3QutGB0L/QvtGA0YINCiAgICDQldGB0LvQuCDQ
+otGA0LDQvdC30LDQutGG0LjRj9CQ0LrRgtC40LLQvdCwPHNwYW4gY2xhc3M9Im8i
+PigpPC9zcGFuPiDQotC+0LPQtNCwDQogICAgICAgINCe0YLQvNC10L3QuNGC0YzQ
+otGA0LDQvdC30LDQutGG0LjRjjxzcGFuIGNsYXNzPSJvIj4oKTwvc3Bhbj48c3Bh
+biBjbGFzcz0icCI+Ozwvc3Bhbj4NCiAgICDQmtC+0L3QtdGG0JXRgdC70Lg8c3Bh
+biBjbGFzcz0icCI+Ozwvc3Bhbj4NCtCa0L7QvdC10YbQn9GA0L7RhtC10LTRg9GA
+0YsNCjwvcHJlPjwvZGl2Pg0KPGgyPjxhIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFz
+cz0iYW5jaG9yIiBocmVmPSIjJUQwJTkxJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUIy
+JUQxJThCJUQwJUI5LSVEMSU4OCVEMCVCMCVEMCVCMSVEMCVCQiVEMCVCRSVEMCVC
+RC0lRDElODQlRDAlQjAlRDAlQjklRDAlQkIlRDAlQjAtJUQxJTgyJUQwJUI1JUQx
+JTgxJUQxJTgyJUQwJUIwIiBuYW1lPSJ1c2VyLWNvbnRlbnQtJUQwJTkxJUQwJUIw
+JUQwJUI3JUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5LSVEMSU4OCVEMCVCMCVEMCVC
+MSVEMCVCQiVEMCVCRSVEMCVCRC0lRDElODQlRDAlQjAlRDAlQjklRDAlQkIlRDAl
+QjAtJUQxJTgyJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUIwIj48c3BhbiBjbGFzcz0i
+b2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bhbj48L2E+0JHQsNC30L7QstGL0Lkg
+0YjQsNCx0LvQvtC9INGE0LDQudC70LAt0YLQtdGB0YLQsDwvaDI+DQo8ZGl2IGNs
+YXNzPSJoaWdobGlnaHQgaGlnaGxpZ2h0LXNoIj48cHJlPtCf0LXRgNC10Lwg0K7Q
+otC10YHRgjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPiAvLyDRgdGB0YvQu9C60LAg
+0L3QsCDRjdC60LfQtdC80L/Qu9GP0YAg0YTRgNC10LnQvNCy0L7RgNC60LAgeFVu
+aXRGb3IxQyAtINC+0LHRitC10LrRgiDQvtCx0YDQsNCx0L7RgtC60LggVW5pdFRl
+c3RSdW5uZXINCg0KLy88c3BhbiBjbGFzcz0ibyI+ezwvc3Bhbj4g0L7RgdC90L7Q
+stC90LDRjyDQv9GA0L7RhtC10LTRg9GA0LAg0LTQu9GPINGO0L3QuNGCLdGC0LXR
+gdGC0LjRgNC+0LLQsNC90LjRjyB4VW5pdEZvcjFDDQrQpNGD0L3QutGG0LjRjyDQ
+n9C+0LvRg9GH0LjRgtGM0KHQv9C40YHQvtC60KLQtdGB0YLQvtCyPHNwYW4gY2xh
+c3M9Im8iPig8L3NwYW4+0K7QvdC40YLQotC10YHRgtC40YDQvtCy0LDQvdC40LU8
+c3BhbiBjbGFzcz0ibyI+KTwvc3Bhbj4g0K3QutGB0L/QvtGA0YINCg0KICAgINCu
+0KLQtdGB0YIgPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+INCu0L3QuNGC0KLQtdGB
+0YLQuNGA0L7QstCw0L3QuNC1PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+DQoNCiAg
+ICDQktGB0LXQotC10YHRgtGLIDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiDQndC+
+0LLRi9C5INCc0LDRgdGB0LjQsjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPg0KDQog
+ICAg0JLRgdC10KLQtdGB0YLRiy7QlNC+0LHQsNCy0LjRgtGMPHNwYW4gY2xhc3M9
+Im8iPig8L3NwYW4+PHNwYW4gY2xhc3M9InMyIj4i0KLQtdGB0YLQlNC+0LvQttC1
+0L1f0KHQu9C+0LbQuNGC0YzQlNCy0LDQmNCU0LLQsCI8L3NwYW4+PHNwYW4gY2xh
+c3M9Im8iPik8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+DQoNCg0KICAg
+INCS0L7Qt9Cy0YDQsNGCINCS0YHQtdCi0LXRgdGC0Ys8c3BhbiBjbGFzcz0icCI+
+Ozwvc3Bhbj4NCg0K0JrQvtC90LXRhtCk0YPQvdC60YbQuNC4DQovLzxzcGFuIGNs
+YXNzPSJvIj59PC9zcGFuPg0KDQovLzxzcGFuIGNsYXNzPSJvIj57PC9zcGFuPiDQ
+ntCh0J3QntCS0J3QntCZINCR0JvQntCaDQoNCi8vPHNwYW4gY2xhc3M9Im8iPn08
+L3NwYW4+INCa0J7QndCV0KYg0J7QodCd0J7QktCd0J7Qk9CeINCR0JvQntCa0JAN
+Cg0KLy88c3BhbiBjbGFzcz0ibyI+ezwvc3Bhbj4g0JHQm9Ce0Jog0K7QndCY0KIt
+0KLQldCh0KLQntCSIC0g0YHQsNC80Lgg0YLQtdGB0YLRiw0KDQrQn9GA0L7RhtC1
+0LTRg9GA0LAg0J/QtdGA0LXQtNCX0LDQv9GD0YHQutC+0LzQotC10YHRgtCwPHNw
+YW4gY2xhc3M9Im8iPigpPC9zcGFuPiDQrdC60YHQv9C+0YDRgg0KICAgINCd0LDR
+h9Cw0YLRjNCi0YDQsNC90LfQsNC60YbQuNGOPHNwYW4gY2xhc3M9Im8iPigpPC9z
+cGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPg0K0JrQvtC90LXRhtCf0YDQvtGG
+0LXQtNGD0YDRiw0KDQrQn9GA0L7RhtC10LTRg9GA0LAg0J/QvtGB0LvQtdCX0LDQ
+v9GD0YHQutCw0KLQtdGB0YLQsDxzcGFuIGNsYXNzPSJvIj4oKTwvc3Bhbj4g0K3Q
+utGB0L/QvtGA0YINCiAgICDQldGB0LvQuCDQotGA0LDQvdC30LDQutGG0LjRj9CQ
+0LrRgtC40LLQvdCwPHNwYW4gY2xhc3M9Im8iPigpPC9zcGFuPiDQotC+0LPQtNCw
+DQogICAgICAgINCe0YLQvNC10L3QuNGC0YzQotGA0LDQvdC30LDQutGG0LjRjjxz
+cGFuIGNsYXNzPSJvIj4oKTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4N
+CiAgICDQmtC+0L3QtdGG0JXRgdC70Lg8c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4N
+CtCa0L7QvdC10YbQn9GA0L7RhtC10LTRg9GA0YsNCg0K0J/RgNC+0YbQtdC00YPR
+gNCwINCi0LXRgdGC0JTQvtC70LbQtdC9X9Ch0LvQvtC20LjRgtGM0JTQstCw0JjQ
+lNCy0LA8c3BhbiBjbGFzcz0ibyI+KCk8L3NwYW4+INCt0LrRgdC/0L7RgNGCDQog
+ICAg0K7QotC10YHRgi7Qn9GA0L7QstC10YDQuNGC0YzQoNCw0LLQtdC90YHRgtCy
+0L48c3BhbiBjbGFzcz0ibyI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibSI+Mjwvc3Bh
+bj4gKyAyLCA0LCA8c3BhbiBjbGFzcz0iczIiPiIyICsgMiwgNCI8L3NwYW4+PHNw
+YW4gY2xhc3M9Im8iPik8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+DQrQ
+mtC+0L3QtdGG0J/RgNC+0YbQtdC00YPRgNGLDQoNCi8vPHNwYW4gY2xhc3M9Im8i
+Pn08L3NwYW4+INCa0J7QndCV0KYg0JHQm9Ce0JrQkCDQrtCd0JjQoi3QotCV0KHQ
+otCe0JINCjwvcHJlPjwvZGl2PjwvYm9keT48L2h0bWw+},0}
\ No newline at end of file
diff --git a/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2 b/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2
index 87d8675d..1a1a3bbb 100644
--- a/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2
+++ b/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2
@@ -11,7 +11,7 @@
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,0},
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,a1ce7ef7-f372-4589-b899-7fbf88efa7bf,ed07b230-8bf7-4423-b861-a31f23c7471f},
-{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,9,
+{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,13,
{
{0,
{25,
@@ -182,6 +182,90 @@
{0,0},0,
{0},
{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,e554f66d-117f-465a-adf3-0247ca468be3},"ЭтоВстроеннаяОбработка",
+{1,"ru","Это встроенная обработка"},""},
+{"Pattern",
+{"B"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,25c6bd62-5cc5-41a3-b726-eaa6f64ed54a},"ИспользуемыйПрефиксПодсистемы",
+{1,"ru","Используемый префикс подсистемы"},"Префикс для объектов, встроенных в состав конфигурации. Если браузер тестов, плагины и утилиты встроены в конфигурцаию, то они должны иметь один префикс."},
+{"Pattern",
+{"S",10,1}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,661aabb5-acfd-4925-b0d1-ca22e2481a9b},"ПолноеИмяБраузераТестов",
+{1,"ru","Полное имя браузера тестов"},""},
+{"Pattern",
+{"S",512,1}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
+},0},
+{
+{0,
+{25,
+{2,
+{0,
+{0,0,459571ca-47ca-4c56-ad46-8ea05b580771},"ПолныйПутьКФайлуБраузераТестов",
+{1,"ru","Полный путь к файлу браузера тестов"},""},
+{"Pattern",
+{"S"}
+}
+},0,
+{0},
+{0},0,"",0,
+{"U"},
+{"U"},0,00000000-0000-0000-0000-000000000000,2,0,
+{5004,0},
+{3,0,0},
+{0,0},0,
+{0},
+{"S",""},0}
},0}
}
}
diff --git a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0
index 081468db..81955dca 100644
--- a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0
+++ b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0
@@ -400,7 +400,7 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW
{6,
{3,0,
{0},"",-1,-1,1,0},
-{0},2,3},3,a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{0},2,3},4,a9f3b1ac-f51b-431e-b102-55a69acdecad,
{19,
{71,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
{0,
@@ -469,6 +469,29 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW
{0,0,0},0,
{3,0,
{0},"",-1,-1,1,0},1,
+{"Pattern"},"",2},a9f3b1ac-f51b-431e-b102-55a69acdecad,
+{19,
+{431,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
+{0,
+{0,
+{"B",1},0}
+},0,"ФормаПреобразоватьЖурналДействийПользователяВТест",
+{1,0},1,
+{6,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
+{0},3,0,0,0,2,2,0,0,0,
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{3,4,
+{0}
+},
+{6,3,0,1},
+{0,0,0},0,
+{3,0,
+{0},"",-1,-1,1,0},1,
{"Pattern"},"",2},1},a9f3b1ac-f51b-431e-b102-55a69acdecad,
{19,
{137,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
@@ -547,67 +570,67 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW
{1,0},
{1,
{2}
-},0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,2,2,1,1,0,0,0,1,2,2,0,1,1,
+},0,1,1,0,0,0,0,0,0,3,0,0,1,1,1,1,0,1,2,2,1,1,0,0,0,1,2,2,0,1,1,
{1,
{6}
},
{3,3,
{0},"",-1,-1,0,
{
-{#base64:iVBORw0KGgoAAAANSUhEUgAAAHAAAAAQCAYAAADOFPsRAAAACXBIWXMAAA7EAAAO
-xAGVKw4bAAAAB3RJTUUH3wkIDgYGUr9hfQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAM
-dEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRF
-WHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVY
-dERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3Vy
-Y2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAAI
-zUlEQVRYhe2Yf1BVZRrHP++558pBsCCoxRW3IdEk0rqU/WBHiUJzGq9ZrmlqjEZr
-aq6zme0sTrobVvxhbtaqoWnZFmntbpk40+IUVow46ySIRjpo4g8MkptcucI93HvO
-efePy0XuBS7hyuw/+8y8c87zPuf7vuec73me9/seIaVkoC3fmT7qwTnzikqLty0s
-LKmpHah5ass/lXUHSmlqOo/nUgstbg93Tckle9YiMVBz/q9NHegJ8p3poyY9nlt0
-38OZ2S1NtUX5zvQBI/FExW4emPEkFy80cbH5J5oazlH6901kz1oUEbfhnQ9k8ZFm
-9PaAr9k0dFPvjPfkT3fAc/PzxNXAv7mrvN9ZtGjqeAGgHtmUs9MyfA9LywRAKDaE
-TT0ydmHZ2P4OGm75zvRRObNmFmU/cmuW1V7HlJmpWdfE2weMxGHp97Bnx1t8f/IU
-3rZW9HYf46c/1SfuaH0DKQL0KB1NaOjSjWbX0GXvfl1j3FXDHzvVyOtLZ2BaVp/3
-alMUHl28gkVTxwOgWobv4dsWvgN+o+MKG5XrZ4+peiNTChFeeQRCUVDUQcfGPP15
-WqSJ8p3po3Jmziy6f9q4LLP1OyEvHbZk9E1iwuTrshDjeySxtXSn9OcvASCusr7f
-Za81OZOSSi+bt7wtFhSsl/OmPkDm7Wl9jpOZ4WD2Q/f3a64XXl171fBBW/z21/zY
-EsjUaLtK8TN9j6lKywJ/O77aNUgpsA+bTsbC90HpeG4hAg1AAKpK9cbc0d9unnTH
-rQv2HAwfUAghgZUT7nGs5lBN8b5DO5UVS8dapv+MUFWfRE1Rfj15SLa/dXQ3Er2F
-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
-WhMgEG/VAAAAAElFTkSuQmCC}
+{#base64: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}
},0},
{3,4,
{0}
@@ -1173,8 +1196,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОбъектНаСервере = РеквизитФормыВЗначение(""Объект"");
+
ЭтаФорма.Заголовок = ОбъектНаСервере.ЗаголовокФормы();
- ИспользуемоеИмяФайла = ОбъектНаСервере.ИспользуемоеИмяФайла;
+
+ Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда // Используемое имя файла меняется в зависимости от того
+ // встроена обработка в конфигурацию или нет
+ ИспользуемоеИмяФайла = ОбъектНаСервере.ИспользуемоеИмяФайла;
+ КонецЕсли;
ОбновитьКомандыИсторииЗагрузкиТестов();
КонецПроцедуры
@@ -1195,7 +1223,12 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
&НаКлиенте
Процедура ПриЗакрытии()
- ПриЗакрытииНаСервере();
+
+ // Для пакетного запуска нет смысла вызывать это событие,
+ Если НЕ ЭтоПакетныйЗапуск Тогда
+ ПриЗакрытииНаСервере();
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -1268,13 +1301,18 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
Процедура КомандаПерезагрузитьФорму(Команда)
Закрыть();
- АдресХранилища = """";
- ПоместитьФайл(АдресХранилища, ЭтаФорма.ИспользуемоеИмяФайла, , Ложь);
- ПодключитьФайлОбработкиНаСервере(АдресХранилища, Неопределено);
+ Если Объект.ЭтоВстроеннаяОбработка Тогда // Для встроенной в конф. обработки открываем форму
+ ОткрытьФорму(ЭтаФорма.ИмяФормы);
+ Иначе
+ АдресХранилища = """";
+ ПоместитьФайл(АдресХранилища, ЭтаФорма.ИспользуемоеИмяФайла, , Ложь);
+ ПодключитьФайлОбработкиНаСервере(АдресХранилища, Неопределено);
+
+ НоваяФорма = ПолучитьФорму(ЭтаФорма.ИмяФормы,,,Истина);
+ НоваяФорма.ИспользуемоеИмяФайла = ЭтаФорма.ИспользуемоеИмяФайла;
+ НоваяФорма.Открыть();
+ КонецЕсли;
- НоваяФорма = ПолучитьФорму(ЭтаФорма.ИмяФормы,,,Истина);
- НоваяФорма.ИспользуемоеИмяФайла = ЭтаФорма.ИспользуемоеИмяФайла;
- НоваяФорма.Открыть();
КонецПроцедуры
&НаКлиенте
@@ -1305,6 +1343,11 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
Процедура КонвертерТестов(Команда)
ОткрытьИнструмент(""xddTestsConvertIntoRebornFormat"");
КонецПроцедуры
+
+&НаКлиенте
+Процедура ПреобразоватьЖурналДействийПользователяВТест(Команда)
+ ОткрытьИнструмент(""UILogToScript"");
+КонецПроцедуры
// } Управляющие воздействия пользователя
// { Плагины
@@ -1313,36 +1356,45 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
Объект.Плагины = Новый Структура;
КэшФормПлагинов = Новый Структура;
- КаталогПлагинов = ПолучитьПутьКПлагинам();
- НайденныеФайлы = НайтиФайлы(КаталогПлагинов, ""*.epf"", Ложь);
- ПомещаемыеФайлы = Новый Массив;
- ИдентификаторыПлагинов = Новый Соответствие;
- Для каждого ФайлОбработки Из НайденныеФайлы Цикл
+ // Для встроенного в состав конфигурации браузера тестов
+ // плагины также загружаем из встроенных обработок
+ Если Объект.ЭтоВстроеннаяОбработка Тогда
+ ЗагрузитьВстроенныеПлагины();
+ Для Каждого Плагин Из Объект.Плагины Цикл
+ КэшФормПлагинов.Вставить(Плагин.Ключ, Истина);
+ КонецЦикла;
+ Иначе
+ КаталогПлагинов = ПолучитьПутьКПлагинам();
+ НайденныеФайлы = НайтиФайлы(КаталогПлагинов, ""*.epf"", Ложь);
+ ПомещаемыеФайлы = Новый Массив;
+ ИдентификаторыПлагинов = Новый Соответствие;
+ Для каждого ФайлОбработки Из НайденныеФайлы Цикл
+
+ ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя);
+ ПомещаемыеФайлы.Добавить(ПомещаемыйФайл);
+
+ ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
+ ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
+
+ КонецЦикла;
- ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя);
- ПомещаемыеФайлы.Добавить(ПомещаемыйФайл);
+ ЗагруженныеФайлы = Новый Массив;
+ Если ПомещаемыеФайлы.Количество() Тогда
+ ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор);
+ КонецЕсли;
- ИмяПлагина = ФайлОбработки.ИмяБезРасширения;
- ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина);
+ ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы);
- КонецЦикла;
-
- ЗагруженныеФайлы = Новый Массив;
- Если ПомещаемыеФайлы.Количество() Тогда
- ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор);
+ Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
+ ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя];
+
+ ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя];
+ Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина);
+ КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина);
+
+ КонецЦикла;
КонецЕсли;
-
- ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы);
-
- Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
- ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя];
-
- ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя];
- Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина);
- КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина);
- КонецЦикла;
-
ДобавитьКомандыЗагрузчиковНаФорме();
КонецПроцедуры
@@ -1381,15 +1433,24 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
&НаКлиенте
Функция Плагин(Знач Идентификатор) Экспорт
- ОбъектПлагин = КэшФормПлагинов[Идентификатор];
+ ОбъектПлагин = Неопределено;
+ ИдентификаторБезПрефиксовПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы);
+ Если КэшФормПлагинов.Свойство(ИдентификаторБезПрефиксовПодсистемы) Тогда
+ ОбъектПлагин = КэшФормПлагинов[ИдентификаторБезПрефиксовПодсистемы];
+ КонецЕсли;
+
Если ОбъектПлагин = Неопределено Тогда
ВызватьИсключение НСтр(""ru = 'Неизвестный идентификатор плагина: <""+Идентификатор+"">'"");
ИначеЕсли ОбъектПлагин = Истина Тогда
// загрузка клиентского плагина ""По требованию""
- ИмяПлагина = Объект.Плагины[Идентификатор];
+ ИмяПлагина = Объект.Плагины[ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы)];
Попытка
- ОбъектПлагин = ПолучитьФорму(""ВнешняяОбработка."" + ИмяПлагина + "".Форма"", , ЭтаФорма);
- КэшФормПлагинов.Вставить(Идентификатор, ОбъектПлагин);
+ Если Объект.ЭтоВстроеннаяОбработка Тогда
+ ОбъектПлагин = ПолучитьФорму(""Обработка."" + ДополнитьИдентификаторПрефиксомПодсистемы(ИмяПлагина, Объект.ИспользуемыйПрефиксПодсистемы) + "".Форма"", , ЭтаФорма);
+ Иначе
+ ОбъектПлагин = ПолучитьФорму(""ВнешняяОбработка."" + ИмяПлагина + "".Форма"", , ЭтаФорма);
+ КонецЕсли;
+ КэшФормПлагинов.Вставить(ИдентификаторБезПрефиксовПодсистемы, ОбъектПлагин);
Исключение
// TODO добавить поведение при отсутствии управляемой формы у плагина
ВызватьИсключение;
@@ -1582,6 +1643,10 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
ИначеЕсли ДочернийУзел.Тип = Объект.ТипыУзловДереваТестов.Элемент Тогда
Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда
КонтекстВыполнения = ПолучитьКонтекстВыполненияПоПути(Загрузчик, ДочернийУзел.Путь);
+ // Заполняем служебные поля, если они имеются
+ Если ПеременнаяСодержитСвойство(КонтекстВыполнения, ""ИспользуемыйПрефиксПодсистемы"") Тогда
+ КонтекстВыполнения.ИспользуемыйПрефиксПодсистемы = Объект.ИспользуемыйПрефиксПодсистемы;
+ КонецЕсли;
Объект.ТекущийКонтейнер = КонтейнерДереваТестов;
ДочернийРезультатТестирования = ВыполнитьТестовыйМетод(КонтекстВыполнения, ДочернийУзел);
КонтейнерДереваТестов.Контекст = Объект.ТекущийКонтейнер.Контекст;
@@ -1753,12 +1818,18 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
ОбъектНаСервере = ЭтотОбъектНаСервере();
Если ОписаниеКонтекста.ЭтоВнутренняяОбработка Тогда
- КонтекстВыполнения = Обработки[ОписаниеКонтекста.Идентификатор].Создать();
+ ЭтоОтчет = (Метаданные.Отчеты.Найти(ОписаниеКонтекста.Идентификатор) <> Неопределено);
Иначе
- КонтекстВыполнения = ВнешниеОбработки.Создать(ОписаниеКонтекста.Идентификатор, Ложь);
+ ФайлОбработки = Новый Файл(ЭлементДереваТестов.Путь);
+ ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = "".erf"");
КонецЕсли;
+
+ КонтекстВыполнения = СоздатьОбъектПлагина(ОписаниеКонтекста.Идентификатор, ОписаниеКонтекста.ЭтоВнутренняяОбработка, ЭтоОтчет);
КонтекстВыполнения.Инициализация(ОбъектНаСервере);
+ // Заполняем служебные поля, если они имеются
+ ЗаполнитьСвойствоПриНаличии(КонтекстВыполнения, ""ПутьКФайлуПолный"", ЭлементДереваТестов.Путь);
+
РезультатТестирования = ОбъектНаСервере.ВыполнитьТестовыйМетод(КонтекстВыполнения, ЭлементДереваТестов);
Возврат РезультатТестирования;
@@ -2004,25 +2075,37 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
// { Внешние интерфейсные инструменты
&НаКлиенте
Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = """", Знач ИмяФормы = ""Форма"")
- Если Не ПустаяСтрока(ПутьИнструмента) Тогда
- ПутьКВнешнимИнструментам = ПутьИнструмента + ""\"";
- Иначе
- ПутьКВнешнимИнструментам = ПолучитьПутьКВнешнимИнструментам();
- КонецЕсли;
- ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + "".epf"";
- ФайлИнструмента = Новый Файл(ПутьИнструмента);
- Если Не ФайлИнструмента.Существует() Тогда
- Сообщить(""Инструмент <"" + ИмяИнструмента + ""> не найден в каталоге <"" + ФайлИнструмента.Путь + "">"");
- Возврат;
- КонецЕсли;
- АдресХранилища = """";
- ПоместитьФайл(АдресХранилища, ФайлИнструмента.ПолноеИмя, , Ложь);
- ПодключитьФайлОбработкиНаСервере(АдресХранилища, Неопределено);
- ФормаИнструмента = ПолучитьФорму(""ВнешняяОбработка."" + ИмяИнструмента + ""."" + ИмяФормы);
- Если ФормаИнструмента = Неопределено Тогда
- Сообщить(""Инструмент <"" + ИмяИнструмента + "">: не удалось получить основную форму!"");
- Возврат;
+ // Для встроенного в состав конфигурации браузера тестов
+ // инструменты находятся также в составке конфигурации
+ Если Объект.ЭтоВстроеннаяОбработка Тогда
+ // Преобразование имени инструмента к имени обработки
+ Если ИмяИнструмента = ""UILogToScript"" Тогда
+ ИмяИнструмента = ""ПреобразованиеЖурналаДействийПользователя"";
+ КонецЕсли;
+ ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы);
+ ФормаИнструмента = ПолучитьФорму(""Обработка."" + ИмяИнструмента + ""."" + ИмяФормы);
+ Иначе
+ Если Не ПустаяСтрока(ПутьИнструмента) Тогда
+ ПутьКВнешнимИнструментам = ПутьИнструмента + ""\"";
+ Иначе
+ ПутьКВнешнимИнструментам = ПолучитьПутьКВнешнимИнструментам();
+ КонецЕсли;
+ ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + "".epf"";
+ ФайлИнструмента = Новый Файл(ПутьИнструмента);
+ Если Не ФайлИнструмента.Существует() Тогда
+ Сообщить(""Инструмент <"" + ИмяИнструмента + ""> не найден в каталоге <"" + ФайлИнструмента.Путь + "">"");
+ Возврат;
+ КонецЕсли;
+ АдресХранилища = """";
+ ПоместитьФайл(АдресХранилища, ФайлИнструмента.ПолноеИмя, , Ложь);
+ ПодключитьФайлОбработкиНаСервере(АдресХранилища, ИмяИнструмента);
+
+ ФормаИнструмента = ПолучитьФорму(""ВнешняяОбработка."" + ИмяИнструмента + ""."" + ИмяФормы);
+ Если ФормаИнструмента = Неопределено Тогда
+ Сообщить(""Инструмент <"" + ИмяИнструмента + "">: не удалось получить основную форму!"");
+ Возврат;
+ КонецЕсли;
КонецЕсли;
ФормаИнструмента.Открыть();
ФормаИнструмента = Неопределено;
@@ -2030,8 +2113,12 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
&НаКлиенте
Функция ПолучитьПутьКПлагинам()
- ФайлЯдра = Новый Файл(ЭтаФорма.ИспользуемоеИмяФайла);
- Результат = ФайлЯдра.Путь + ""Plugins\"";
+ // Для встроенного в состав конфигурации браузера тестов
+ // используемое имя файла не используется
+ Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда
+ ФайлЯдра = Новый Файл(ЭтаФорма[""ИспользуемоеИмяФайла""]);
+ Результат = ФайлЯдра.Путь + ""Plugins\"";
+ КонецЕсли;
Возврат Результат;
КонецФункции
@@ -2049,18 +2136,24 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
&НаКлиенте
Процедура ПодключитьВнешнююОбработку(ФайлОбработки) Экспорт
Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда
+
+ ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = "".erf"");
АдресХранилища = """";
ПоместитьФайл(АдресХранилища, ФайлОбработки.ПолноеИмя, , Ложь, ЭтаФорма.УникальныйИдентификатор);
- ПодключитьФайлОбработкиНаСервере(АдресХранилища, ФайлОбработки.ИмяБезРасширения);
+ ПодключитьФайлОбработкиНаСервере(АдресХранилища, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет);
ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
-Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки)
- ВнешниеОбработки.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь);
+Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь)
+ Если ЭтоОтчет = Истина Тогда
+ ВнешниеОтчеты.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь);
+ Иначе
+ ВнешниеОбработки.Подключить(АдресХранилища, ИдентификаторОбработки, Ложь);
+ КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -2159,9 +2252,98 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
Возврат ПараметрыМетода;
КонецФункции
+&НаСервере
+Процедура ЗагрузитьВстроенныеПлагины()
+
+ ОбъектНаСервере = ЭтотОбъектНаСервере();
+ Объект.Плагины = ОбъектНаСервере.ПолучитьПлагины();
+
+КонецПроцедуры
+
// } Helpers
+
+// { Подсистема конфигурации xUnitFor1C
+
+// Универсальная функция для проверки наличия
+// свойств у значения любого типа данных
+// Переменные:
+// 1. Переменная - переменная любого типа,
+// для которой необходимо проверить наличие свойства
+// 2. ИмяСвойства - переменная типа ""Строка"",
+// содержащая искомое свойства
+//
+&НаКлиентеНаСервереБезКонтекста
+Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства)
+ // Инициализируем структуру для теста
+ // с ключом (значение переменной ""ИмяСвойства"")
+ // и значением произвольного GUID'а
+ GUIDПроверка = Новый УникальныйИдентификатор;
+ СтруктураПроверка = Новый Структура;
+ СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
+ // Заполняем созданную структуру из переданного
+ // значения переменной
+ ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
+ // Если значение для свойства структуры осталось
+ // NULL, то искомое свойство не найдено,
+ // и наоборот.
+ Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда
+ Возврат Ложь;
+ Иначе
+ Возврат Истина;
+ КонецЕсли;
+КонецФункции
+&НаКлиентеНаСервереБезКонтекста
+Функция ЗаполнитьСвойствоПриНаличии(ОбъектЗаполнения, ИмяСвойство, ЗначениеСвойства)
+
+ Если ПеременнаяСодержитСвойство(ОбъектЗаполнения, ИмяСвойство) Тогда
+ ОбъектЗаполнения[ИмяСвойство] = ЗначениеСвойства;
+ КонецЕсли;
+
+КонецФункции
+
+&НаКлиенте
+Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+ Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
+ Возврат Идентификатор;
+ Иначе
+ Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+&НаКлиенте
+Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
+ Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
+ Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса);
+ Иначе
+ Возврат Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+
+&НаСервере
+Функция СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию = Ложь, ЭтоОтчет = Ложь)
+
+ ОбъектНаСервере = ЭтотОбъектНаСервере();
+
+ Возврат ОбъектНаСервере.СоздатьОбъектПлагина(Идентификатор, ВстроенаВКонфигурацию, ЭтоОтчет);
+
+КонецФункции
+
+// } Подсистема конфигурации xUnitFor1C
",
-{4,6,
+{4,7,
{9,
{1},0,"Объект",
{1,0},
@@ -2406,6 +2588,27 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs
{0,0},0,0,0,0,
{0,0},
{0,0}
+},
+{9,
+{18},0,"ЭтоПакетныйЗапуск",
+{1,1,
+{"ru","Это пакетный запуск"}
+},
+{"Pattern",
+{"B"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0},
+{0,0},0,0,0,0,
+{0,0},
+{0,0}
},0,0,
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
@@ -2426,7 +2629,7 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
{"#",4772b3b4-f4a3-49c0-a1a5-8cb5961511a3}
},0}
},
-{0,9,
+{0,10,
{6,
{3,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"КомандаВыполнитьВсеТесты",
{1,1,
@@ -2579,6 +2782,23 @@ L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
{3,0,
{0},"",-1,-1,1,0},"КонвертерТестов",3,0,0,
{0,0}
+},
+{6,
+{6,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ПреобразоватьЖурналДействийПользователяВТест",
+{1,1,
+{"ru","Преобразовать журнал действий пользователя в тест"}
+},
+{1,1,
+{"ru","Преобразовать журнал действий пользователя в тест"}
+},
+{0,
+{0,
+{"B",1},0}
+},
+{0,0,0},
+{3,0,
+{0},"",-1,-1,1,0},"ПреобразоватьЖурналДействийПользователяВТест",3,0,0,
+{0,0}
}
},
{0,0},
diff --git a/src/xddTestRunner/und/versions b/src/xddTestRunner/und/versions
index 13faa9eb..57781a1a 100644
--- a/src/xddTestRunner/und/versions
+++ b/src/xddTestRunner/und/versions
@@ -1 +1 @@
-{1,13,"",0ffe2b2d-e3b9-4cac-8b85-f80cffb167a6,"versions",deec4bca-1769-45a5-945c-a61148400a8b,"5070e3c3-f74b-4ecd-9756-1136a230eca2",21c72837-4750-45ff-9b86-8708ff9c9aa8,"root",6769578c-7013-4b9c-a4c5-c8cdf32115cb,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",8817c168-d7f2-4f3e-b488-6eb1bd457f88,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",bf181a17-2087-44af-9d3b-a812b9fa83df,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",5a214455-0554-41dd-955b-9b03ba618641,"version",cc1f7be7-c78f-4be7-a05d-52904b4e3b23,"ed07b230-8bf7-4423-b861-a31f23c7471f",cad33af0-89f5-46a6-91b1-99db503a353b,"copyinfo",dd60c0b6-b2c6-430b-bc5d-c6c51e832052,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",1dad3e2a-1064-4d94-80b9-1e9d25d7da3c,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",2ec2ecf1-2d8f-4397-8f30-3213cf9df6f5,"ed07b230-8bf7-4423-b861-a31f23c7471f.1",d2376067-c9d3-4379-9abc-b96f699d83ed}
\ No newline at end of file
+{1,13,"",53513183-b5e6-48c6-b910-acd3ddb71b4c,"5070e3c3-f74b-4ecd-9756-1136a230eca2",b3c3cda7-e613-4c33-92f2-df5d84140d55,"versions",06ece515-0adc-4679-9f77-e6e4e454c0fd,"root",e14effe3-80b4-40c1-83c8-e9f8bf196144,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",3e7291b8-f1b6-41f0-adff-92ae966de8c7,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",39acb49a-f77c-4884-b0d1-ccfeb1f38de4,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",05005cb2-b26d-48d7-9cb1-39a334d52ce2,"version",7e4b9421-000d-4e90-b7ba-76ec85e5755d,"ed07b230-8bf7-4423-b861-a31f23c7471f",3a7b99b3-a937-425a-9393-5efe54cf8f04,"copyinfo",6a9e4076-f0ad-4028-a08e-79ddd6650a81,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",a4a92461-5d7d-4bbc-a7ca-4cf54920f68d,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",1d099565-a3f5-4e4d-b3bb-be4b1d53e798,"ed07b230-8bf7-4423-b861-a31f23c7471f.1",d2376067-c9d3-4379-9abc-b96f699d83ed}
\ No newline at end of file
diff --git a/xddTestRunner.epf b/xddTestRunner.epf
index efd3c3d9..faece028 100644
Binary files a/xddTestRunner.epf and b/xddTestRunner.epf differ