diff --git a/Plugins/JSON.epf b/Plugins/JSON.epf new file mode 100644 index 00000000..315955bf Binary files /dev/null and b/Plugins/JSON.epf differ 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\260AllureXML.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\260AllureXML.epf" index 103aa3be..b0eeaa62 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\260AllureXML.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\260AllureXML.epf" differ 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 3516fd98..81a0200a 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\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260.epf" "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260.epf" index 3f3e2576..1a32d8ff 100644 Binary files "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260.epf" and "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\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 7a974725..984cbcb0 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\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.epf" "b/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.epf" index cf76588f..c11794c2 100644 Binary files "a/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.epf" and "b/Plugins/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.epf" differ diff --git "a/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" "b/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" index 1e51b3b2..91d24efb 100644 Binary files "a/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" and "b/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" differ diff --git "a/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.epf" "b/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.epf" index 40e58c98..9dbac85e 100644 Binary files "a/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.epf" and "b/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.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 c8d87b48..da6e16ba 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/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" index aa2335d2..ff56cade 100644 Binary files "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" 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/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" "b/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" index 2b556001..b0529f96 100644 Binary files "a/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" and "b/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" differ diff --git "a/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.json" "b/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.json" index 21fdca71..c239e803 100644 --- "a/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.json" +++ "b/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.json" @@ -1,5 +1,5 @@ { "Тесты_Настройки": { - "Ключ": "значение для Тесты_Настройки", + "Ключ": "значение для Тесты_Настройки" } } diff --git "a/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270_\320\237\320\276\321\202\320\276\320\274\320\276\320\272.json" "b/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270_\320\237\320\276\321\202\320\276\320\274\320\276\320\272.json" index 7a228e17..2e3655d1 100644 --- "a/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270_\320\237\320\276\321\202\320\276\320\274\320\276\320\272.json" +++ "b/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270_\320\237\320\276\321\202\320\276\320\274\320\276\320\272.json" @@ -1,3 +1,3 @@ { - "Ключ": "значение для Тесты_Настройки", + "Ключ": "значение для Тесты_Настройки" } diff --git a/smoke.example.json b/smoke.example.json index 39d3ac01..4e9ccd45 100644 --- a/smoke.example.json +++ b/smoke.example.json @@ -1,20 +1,40 @@ { "smoke": { + + "СпособГруппировки": "ПоВидуОбъекта", "ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций" : true, + "ВыводитьСообщенияВЖурналРегистрации": true, + "Справочники": { "Списки": [ - "ПростойСправочник" + "ПростойСправочник.Форма.ФормаВыбора" ], + "Новые": [ "ПростойСправочник2" - ] + ], + + "Подчиненные": { + "ПодчиненныйСДвумяВладельцами": "ПростойСправочник2" + }, + + "ЗначенияРеквизитовНовых" : { + "СправочникСОбязательнымРеквизитом": { + "ОбязательныйРеквизит": "Привет, Мир!" + } + } }, + + "Документы": false, + "Отчеты": [ "Отчет1" ], + "Обработки": [ "xddGuidShow", - "ТестОбработка_Форма_ИсключениеПриОткрытии" + "ТестОбработка_Форма_ИсключениеПриОткрытии", + "СериализаторMXL.Форма.УправляемаяФорма" ] } } \ No newline at end of file diff --git "a/src/Plugins/JSON/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/JSON/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..b92a1156 --- /dev/null +++ "b/src/Plugins/JSON/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,82 @@ + +// { Plugin interface +&НаКлиенте +Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт + Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); +КонецФункции + +&НаСервере +Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) + Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); +КонецФункции +// } Plugin interface + +// { Helpers +&НаСервере +Функция ЭтотОбъектНаСервере() + Возврат РеквизитФормыВЗначение("Объект"); +КонецФункции +// } Helpers + +// ───────────────────────────────────────────────────────────────────────────── +// { JSON API + +// JSON парсер. +// +// Параметры: +// Значение - Строка. Строка данных в формате JSON для парсинга; +// +// Стандарт - Неопределено, Булево. Режим работы: +// - Истина - стандартный режим (значение по умолчанию); +// - Ложь - альтернативный режим; +// - Неопределено - автоопределение режима; +// +// ПредставленияСсылок - Неопределено, Булево. Режим передачи ссылочных типов, с их представлением или без: +// - Истина - ссылки передаются вместе со своим представлением, как объекты с двумя свойствами содержащими саму ссылку и ее представление; +// - Ложь - ссылки передаются без представления (значение по умолчанию). +// - Неопределено - автоопределение режима. +// +// Возвращаемое значение: +// Набор данных согласно содержимому входящих данных. +// +&НаКлиенте +Функция ПрочитатьJSON(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) Экспорт + Возврат ПрочитатьJSONнаСервере(Значение, Стандарт, ПредставленияСсылок); +КонецФункции + +&НаСервере +Функция ПрочитатьJSONнаСервере(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) + + Возврат ЭтотОбъектНаСервере().ПрочитатьJSON(Значение, Стандарт, ПредставленияСсылок); + +КонецФункции // ПрочитатьJSON() + +// JSON сериализатор. +// +// Параметры: +// Значение. Набор данных сериализуемых в формат JSON; +// +// Стандарт - Булево. Режим работы: +// - Истина - стандартный режим (значение по умолчанию); +// - Ложь - альтернативный режим; +// +// ПредставленияСсылок - Булево. Режим передачи ссылочных типов, с их представлением или без: +// - Истина - ссылки передаются вместе со своим представлением, как объекты с двумя свойствами содержащими саму ссылку и ее представление; +// - Ложь - ссылки передаются без представления (значение по умолчанию). +// +// Возвращаемое значение: +// Строка. Строка данных в формате JSON согласно содержимому входящих данных. +// +&НаКлиенте +Функция ЗаписатьJSON(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) Экспорт + Возврат ЗаписатьJSONнаСервере(Значение, Стандарт, ПредставленияСсылок); +КонецФункции + +&НаСервере +Функция ЗаписатьJSONнаСервере(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) + + Возврат ЭтотОбъектНаСервере().ЗаписатьJSON(Значение, Стандарт, ПредставленияСсылок); + +КонецФункции // ЗаписатьJSON() + +// } JSON API \ No newline at end of file diff --git a/src/Plugins/JSON/ObjectModule.bsl b/src/Plugins/JSON/ObjectModule.bsl new file mode 100644 index 00000000..48bac127 --- /dev/null +++ b/src/Plugins/JSON/ObjectModule.bsl @@ -0,0 +1,1616 @@ + Перем мНастройка_АвтоматическоеПриведениеОбъектаКСтруктуре; + +// { Plugin interface +Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт + Результат = Новый Структура; + Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); + Результат.Вставить("Идентификатор", Метаданные().Имя); + Результат.Вставить("Представление", "1C:JSON"); + Возврат Новый ФиксированнаяСтруктура(Результат); +КонецФункции + +Процедура Инициализация(КонтекстЯдраПараметр) Экспорт +КонецПроцедуры +// } Plugin interface + +// ───────────────────────────────────────────────────────────────────────────── + +// 1С:JSON. JavaScript Object Notation парсер и сериализатор. + +// Copyright © 2010-2013 Александр Переверзев + +// Данная лицензия разрешает лицам, получившим копию данного программного +// обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное +// Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, +// включая неограниченное право на использование, копирование, изменение, +// добавление, публикацию, распространение, сублицензирование и/или продажу копий +// Программного Обеспечения, также как и лицам, которым предоставляется данное +// Программное Обеспечение, при соблюдении следующих условий: + +// Указанное выше уведомление об авторском праве и данные условия должны быть +// включены во все копии или значимые части данного Программного Обеспечения. + +// ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО +// ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ +// ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И +// ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ +// ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ ТРЕБОВАНИЙ ПО +// ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ +// СВЯЗАННЫМ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ +// ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. + + +// Александр Переверзев +// e-mail: a.v.pereverzev@gmail.com +// Версия: 2.0.0.17 + + +// Особенности: +// Парсер и сериализатор поддерживают два режима (формата) работы: +// - Стандартный – полная поддержка стандарта JSON (подробнее см. и +// ); +// - Альтернативный – направлен на применение в проектах подразумевающих постоянный двусторонний +// обмен данными, по каналам связи Интернет, и требующих повышенную скорость обработки данных, +// минимизацию пересылаемых пакетов данных и однозначную идентификацию ссылочных типов во входящих данных. +// +// Независимо от режима работы сериализатор, по требованию (см. Настройки), позволяет автоматически передавать +// не только уникальный идентификатор ссылки, но и ее представление, а парсер в свою очередь, +// анализируя входные данные, опускает представления ссылок, не включая их в результирующий набор данных. +// +// При работе с проектами, в исходящих строковых данных которых не гарантируется отсутствие символов из диапазонов: +// [0x007f, 0x009f], 0x00ad, [0x0600, 0x0604], 0x070f, [0x17b4, 0x17b5], +// [0x200c, 0x200f], [0x2028, 0x202f] [0x2060, 0x206f], 0xfeff, [0xfff0, 0xffff], +// рекомендуется не отключать настройку (см. Настройки) полного маскирования символов +// (подробнее см. и ). +// +// Независимо от режима работы сериализатор, по требованию (см. Настройки), может маскировать кириллические символы +// современных алфавитов славянских языков "АБВГҐДЂЃЕЀЁЄЖЗЅИЍІЇЙЈКЛЉМНЊОПРСТЋЌУЎФХЦЧЏШЩЪЫЬЭЮЯ" (включая нижний регистр) +// (подробнее см. и ). +// +// Поддерживаются все среды исполнения с ограничением сериализуемых типов. Используется кроссплатформенный код. + + + +// История изменения: +// Версия 2.0.0.17: +// - (Новое) Маскирование кириллических символов современных алфавитов славянских языков (по требованию); +// - (Новое) Поддержка сериализатором типов: ДвоичныеДанные, Картинка, ХранилищеЗначения; +// - (Изменение) Рефакторинг переменных и процедур; +// - (Исправление) Сериализация типа COMSafeArray; +// - (Исправление) Удалены лишние ключевые слова "Экспорт". +// - (Оптимизация) Уменьшение проверок связанных с режимом и параметрами парсинга и сериализцаии; +// - (Оптимизация) Проверка необходимости анализа форматирования вынесена из процедуры анализа форматирования; +// - (Оптимизация) Изменен алгоритм автоматического приведение объекта к структуре или соответствию в зависимости от имен свойств; +// - (Оптимизация) Отказ от явного приведения типов в пользу неявного в операторах условий; +// - (Оптимизация) Отказ от оператора "Попытка Исключение" при преобразовании строки к уникальному идентификатору; +// - (Оптимизация) Изменен порядок проверки типов при парсинге. +// Версия 2.0.0.15 +// - Релиз. + + + +// Методы: +// ПрочитатьJSON – парсер; +// ЗаписатьJSON – сериализатор. + +// Настройки и параметры: +// +// Параметры функций: +// Стандарт – определяет режим работы парсера и сериализатора: +// - Истина – стандартный режим (значение по умолчанию); +// - Ложь – альтернативный режим; +// - Неопределено – автоматическое определение режима входящих данных +// (только парсер, не рекомендуется – влияет на производительность). +// +// ПредставленияСсылок – позволяет автоматически передавать не только значение ссылки, но и ее представление: +// - Истина - ссылка парсится и сериализуется как объект с двумя свойствами "Ссылка" и "Представление"; +// - Ложь - ссылка парсится и сериализуется как уникальный идентификатор ссылки (значение по умолчанию); +// - Неопределено – автоматическое определение формата ссылок во входящих данных +// (только парсер, не рекомендуется – влияет на производительность). +// +// Настройки: +// АвтоматическоеПриведениеОбъектаКСтруктуре – автоматическое приведение объекта к структуре, а не к соответствию. +// Настройка изменяется в функции "АвтоматическоеПриведениеОбъектаКСтруктуре" (по умолчанию отключена). +// Автоматическое приведение к структуре выполняется только для объектов имена свойств, которых могут быть +// использованы как ключи структуры, все остальные объекты преобразуются в соответствие. +// +// ПолноеМаскированиеСимволов – маскирование символов некорректно обрабатываемых JavaScript-ом. +// Настройка изменяется в функции "НастройкаПолноеМаскированиеСимволов" (по умолчанию включена). +// Не рекомендуется к использованию, так как влияет на производительность, но гарантирует безопасную передачу данных. +// Маскирование специальных символов из диапазона [0x0000, 0x001f] выполняется в не зависимости от настройки. +// +// МаскированиеКириллицы – маскирование кириллических символов современных алфавитов славянских языков. +// Настройка изменяется в функции "НастройкаМаскированиеКириллицы" (по умолчанию отключена). +// Не рекомендуется к использованию, так как влияет на производительность. +// Маскирование специальных символов из диапазона [0x0000, 0x001f] выполняется в не зависимости от настройки. +// +// НеявноеПриведениеПримитивныхЗначенийКлюча – неявное приведение примитивных значений ключей соответствий к строке. +// Настройка изменяется в функции "НеявноеПриведениеПримитивныхЗначенийКлюча" (по умолчанию отключена). + + +// Альтернативный режим: +// - Не поддерживается форматирование, как во входящих, так и в исходящих данных; +// - Сериализация ссылочных типов в строковое служебное представление. + + +// Приятности: +// Парсер: +// - Устойчивость к некорректным данным и не подверженность injection атакам; +// - Продвинутый синтаксический анализатор (указывает место и тип ошибки в данных); +// - Поддержка форматирования во входящих данных (только стандартный режим); +// - Безопасный разбор форматирования - незамаскированные символы форматирования в строковых значениях не будут утеряны; +// - Поддержка строк в одинарных и в двойных кавычках; +// - Автоматическое приведение объекта к структуре или соответствию в зависимости от имен свойств¹; +// - Автоматическое преобразование к типу Дата строки вида "9999-99-99T99:99:99Z"; +// - Автоматическое преобразование к типу УникальныйИдентификатор строки вида "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; +// - Автоматического определение режима (стандартного или альтернативного) входящих данных; +// - Автоматического определение необходимости отсечения представления ссылок; +// - Однозначная идентификация ссылок (только альтернативный режим). +// Сериализатор: +// - Поддержка форматирования исходящих данных (только стандартный режим); +// - Широкий состав сериализуемых типов данных, в том числе ссылок; +// - Автоматическое приведение значений ключей соответствий к строковому представлению в формате 1С²; +// - Автоматическое преобразование неподдерживаемых типов к строке; +// - Маскирование кириллических символов современных алфавитов славянских языков; +// - Нечувствительность к локализации³. +// ---- +// ¹ Если все имена свойства входящего объекта могут быть использованы как ключи структуры, +// то такой объект будет автоматически приведен к структуре, а не к соответствию. Управляется настройкой. +// ² Управляется настройкой. +// ³ При сериализации некоторых типов, исходящие объекты которых имеют обязательные свойства, +// такие представления и имена таких свойств всегда имеют русскую локализацию. + + +// Неприятности: +// - Нестандартно форматированный код (Alt+Shift+F в помощь) на гране читаемости; +// - Сериализатор ориентирован, на средние-крупные пакеты данных. + +// Сериализуемые типы: +// Сервер, толстый клиент, тонкий клиент, веб-клиент: +// - Неопределено; +// - Null; +// - Примитивные типы (все); +// - Универсальные коллекции значений (клиентские); +// - УникальныйИдентификатор; +// - ДвоичныеДанные; +// - Картинка. +// Сервер, толстый клиент: +// - Универсальные коллекции значений (серверные); +// - ЛюбаяСсылка; +// - Запрос; +// - РезультатЗапроса; +// - ВыборкаИзРезультатаЗапроса; +// - ПостроительЗапроса; +// - ПостроительОтчета; +// - ХранилищеЗначения. +// Сервер: +// - ДанныеФормыКоллекция; +// - ДанныеФормыСтруктураСКоллекцией; +// - ДанныеФормыДерево. + +// Порядок сериализации типов: +// - Неопределено - сериализуется как Null; +// - Null - согласно стандарту; +// - Примитивные типы - согласно стандарту; +// - Массивы и COMSafeArray - массив, согласно стандарту: +// [ Значение, ... ] +// +// - Структуры и соответствия – объект, согласно стандарту; +// { Ключ:Значение, ... } +// +// - СписокЗначений - массив объектов с тремя свойствами "Значение", "Представление" и "Пометка"; +// [ { "Значение":Значение, "Представление":Представление, "Пометка":Пометка }, ... ] +// +// - КлючИЗначение - объект с двумя свойствами "Ключ" и "Значени"; +// { "Ключ":Ключ, "Значение":Значение } +// +// - ТаблицаЗначений - массив объектов: +// [ { Колонка:Значение, ... }, ... ] +// +// - ДеревоЗначений - массив объектов с обязательным свойством "Строки": +// [ { Колонка:Значение, ... , "Строки":[ { Колонка:Значение, ... , "Строки":[ ... ] } , ... ] }, ... ] +// +// - УникальныйИдентификатор - приведение к строке вида "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; +// +// - ЛюбаяСсылка: +// - Стандартный режим - получение уникального идентификатора ссылки (в том числе и для перечислений) и его сериализация; +// - Альтернативный режим - приведение к строке служебного вида "¦ref¦ ... ¦"; +// +// При сериализации ссылок в режиме автоматически передачи не только сериализованного значения ссылки, +// но и ее представления. Каждая ссылка передается как объект с двумя свойствами "Ссылка" и "Представление"; +// { "Ссылка":Ссылка, "Представление":Представление } +// +// - Запрос - автоматически выполняется и сериализуется как таблица значений; +// - РезультатЗапроса - сериализуется как таблица значений; +// - ВыборкаИзРезультатаЗапроса - сериализуется как структура значений текущей запись результата запроса; +// - ПостроительЗапроса - автоматически выполняется и сериализуется как таблица значений; +// - ПостроительОтчета - автоматически выполняется и сериализуется как таблица значений; +// - ДанныеФормыКоллекция - сериализуется как таблица значений; +// - ДанныеФормыСтруктураСКоллекцией - сериализуется как таблица значений; +// - ДанныеФормыДерево - сериализуется как дерево значений; +// - ДвоичныеДанные - кодируется по алгоритму base64¹ и сериализуется как строка; +// - Картинка - автоматически преобразуется и сериализуется как двоичные данные; +// - ХранилищеЗначения - автоматически извлекается сохраненное значение и сериализуется в зависимости от типа извлеченного значения. +// ---- +// ¹ Следуя рекомендациям стандарта, сериализатор при кодировании по алгоритму base64, не добавляет переводы строк +// в результирующие данные (подробнее см. ). + +// Производительность: +// Производительность парсера исключительно зависит от набора входящих данных, а также от наличия форматирования. +// Наихудшим вариантом является форматированный массив чисел, наилучшим - неформатированный массив строк. +// +// Intel Core 2 Duo T5870 @ 2GHz - форматированный массив со всеми приблизительно равномерно встречающимися типами данных: +// Парсер: 35 Кбайт/с. +// Сериализатор: 165 Кбайт/с. + +// Примечание: +// Мало комментариев - без комментариев. + +// Всем удачного программирования :) + + +// ───────────────────────────────────────────────────────────────────────────── +// JSON + +// JSON парсер. +// +// Параметры: +// Значение - Строка. Строка данных в формате JSON для парсинга; +// +// Стандарт - Неопределено, Булево. Режим работы: +// - Истина - стандартный режим (значение по умолчанию); +// - Ложь - альтернативный режим; +// - Неопределено - автоопределение режима; +// +// ПредставленияСсылок - Неопределено, Булево. Режим передачи ссылочных типов, с их представлением или без: +// - Истина - ссылки передаются вместе со своим представлением, как объекты с двумя свойствами содержащими саму ссылку и ее представление; +// - Ложь - ссылки передаются без представления (значение по умолчанию). +// - Неопределено - автоопределение режима. +// +// Возвращаемое значение: +// Набор данных согласно содержимому входящих данных. +// +Функция Прочитать(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) Экспорт + + Возврат jsonПрочитатьИнициализация(Значение, Стандарт, ПредставленияСсылок); + +КонецФункции // ПрочитатьJSON() + +// JSON сериализатор. +// +// Параметры: +// Значение. Набор данных сериализуемых в формат JSON; +// +// Стандарт - Булево. Режим работы: +// - Истина - стандартный режим (значение по умолчанию); +// - Ложь - альтернативный режим; +// +// ПредставленияСсылок - Булево. Режим передачи ссылочных типов, с их представлением или без: +// - Истина - ссылки передаются вместе со своим представлением, как объекты с двумя свойствами содержащими саму ссылку и ее представление; +// - Ложь - ссылки передаются без представления (значение по умолчанию). +// +// Возвращаемое значение: +// Строка. Строка данных в формате JSON согласно содержимому входящих данных. +// +Функция Записать(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) Экспорт + + Возврат jsonЗаписатьИнициализация(Значение, Стандарт, ПредставленияСсылок); + +КонецФункции // ЗаписатьJSON() + + +// ───────────────────────────────────────────────────────────────────────────── +// НАСТРОЙКИ + +// Функция управляющая настройкой "АвтоматическоеПриведениеОбъектаКСтруктуре". +// +// Возвращаемое значение: +// Булево. Значение настройки: +// - Истина - выполняется автоматическое приведение объекта к структуре; +// - Ложь - автоматическое приведение объекта к структуре не выполняется, все объекты преобразуются в соответствие. +// +// Примечание: +// Автоматическое приведение к структуре выполняется только для объектов имена свойств которых могут быть +// использованы как ключи структуры, все остальные объекты преобразуются в соответствие. +// +Функция НастройкаАвтоматическоеПриведениеОбъектаКСтруктуре(Значение = Неопределено) Экспорт + + Если мНастройка_АвтоматическоеПриведениеОбъектаКСтруктуре = Неопределено Тогда + мНастройка_АвтоматическоеПриведениеОбъектаКСтруктуре = Ложь; + КонецЕсли; + + Если ТипЗнч(Значение) = Тип("Булево") Тогда + мНастройка_АвтоматическоеПриведениеОбъектаКСтруктуре = Значение; + КонецЕсли; + + Возврат мНастройка_АвтоматическоеПриведениеОбъектаКСтруктуре; + +КонецФункции // НастройкаАвтоматическоеПриведениеОбъектаКСтруктуре() + +// Функция управляющая настройкой "ПолноеМаскированиеСимволов". +// +// Возвращаемое значение: +// Булево. Значение настройки: +// - Истина - выполняется полное маскирование символов некорректно обрабатываемых JavaScript-ом; +// - Ложь - маскирование выполняется только согласно стандарту и дополнительно маскируются специальные символы. +// +// Примечание: +// Маскирование специальных символов из диапазона [0x0000, 0x001f] выполняется в не зависимости от настройки. +// +Функция НастройкаПолноеМаскированиеСимволов() + + Возврат Истина; // Измените для неполного маскирования символов. + +КонецФункции // НастройкаПолноеМаскированиеСимволов() + +// Функция управляющая настройкой "МаскированиеКириллицы". +// +// Возвращаемое значение: +// Булево. Значение настройки: +// - Истина - выполняется маскирование кириллических символов; +// - Ложь - маскирование выполняется только согласно стандарту и дополнительно маскируются специальные символы. +// +// Примечание: +// Маскирование специальных символов из диапазона [0x0000, 0x001f] выполняется в не зависимости от настройки. +// +Функция НастройкаМаскированиеКириллицы() + + Возврат Ложь; // Измените для маскирования кириллических символов. + +КонецФункции // НастройкаМаскированиеКириллицы() + +// Функция управляющая настройкой "НеявноеПриведениеПримитивныхЗначенийКлюча". +// +// Возвращаемое значение: +// Булево. Значение настройки: +// - Истина - выполняется неявное приведение примитивных типов значений ключей соответствий к их строковому представлению в формате 1С; +// - Ложь - неявное приведение примитивных типов значений ключей соответствий к строковому представлению не выполняется. +// +// Примечание: +// Неявно приводимые типы: Null, Булево, Число, Дата, Строка, УникальныйИдентификатор. +// +Функция НастройкаНеявноеПриведениеПримитивныхЗначенийКлюча() + + Возврат Ложь; // Измените для использования неявного приведения примитивных значений ключей соответствий к строке. + +КонецФункции // НастройкаНеявноеПриведениеПримитивныхЗначенийКлюча() + + +// ───────────────────────────────────────────────────────────────────────────── +// ПАРСЕР + +Функция jsonПрочитатьИнициализация(Значение, Знач Стандарт, Знач ПредставленияСсылок) + + // Проверка параметров. + Если (Не Стандарт = Истина) И (Не Стандарт = Ложь) И (Не Стандарт = Неопределено) Тогда ВызватьИсключение ИсключениеНекорректныйПараметр("Стандарт"); КонецЕсли; + Если (Не ПредставленияСсылок = Истина) И (Не ПредставленияСсылок = Ложь) И (Не ПредставленияСсылок = Неопределено) Тогда ВызватьИсключение ИсключениеНекорректныйПараметр("ПредставленияСсылок"); КонецЕсли; + + // Использование более общего случая параметров. + Альтернативный = (Стандарт = Неопределено) Или (Не Стандарт); Стандарт = (Стандарт = Неопределено) Или Стандарт; ПредставленияСсылок = (ПредставленияСсылок = Неопределено) Или ПредставленияСсылок; + + // Схема подстановок шестнадцатиричной системы. + СхемаПодстановок = Новый Соответствие; ШестнадцатиричнаяСистема = "0123456789abcdef"; ДесятичноеЧисло = 0; + Для ВторойРазряд = 1 По 16 Цикл Для ПервыйРазряд = 1 По 16 Цикл СхемаПодстановок.Вставить(Сред(ШестнадцатиричнаяСистема, ВторойРазряд, 1) + Сред(ШестнадцатиричнаяСистема, ПервыйРазряд, 1), ДесятичноеЧисло); ДесятичноеЧисло = ДесятичноеЧисло + 1; КонецЦикла; КонецЦикла; + + // Вспомогательные данные. + ВспомогательныеДанные = Новый Структура("ТипСтроки,СхемаПодстановок,АвтоматическиПриводитьКСтруктуре", + Тип("Строка"), + СхемаПодстановок, + (НастройкаАвтоматическоеПриведениеОбъектаКСтруктуре() = Истина)); + + // Стартовые значения. + Индекс = 1; Длина = СтрДлина(Значение); + + // Форматирование (первый шаг парсера). + Если Стандарт Тогда СимволыФорматирования = " " + Символы.ВК + Символы.ПС + Символы.Таб; jsonПрочитатьПропуститьФорматирование(Значение, Стандарт, Индекс, Длина, СимволыФорматирования); КонецЕсли; + Если (Индекс > Длина) Тогда ВызватьИсключение ИсключениеПустойПакетДанных(); КонецЕсли; + + // Парсер. + Возврат jsonПрочитать(Значение, Стандарт, Альтернативный, ПредставленияСсылок, Индекс, Длина, ВспомогательныеДанные, СимволыФорматирования, Истина); + +КонецФункции // jsonПрочитатьИнициализация() + +Функция jsonПрочитать(Значение, Стандарт, Альтернативный, ПредставленияСсылок, Индекс, Длина, ВспомогательныеДанные, СимволыФорматирования, ПервыйУровень) + + Символ = Сред(Значение, Индекс, 1); + Если (Символ = """") Или (Символ = "'") Тогда // " , ' + + // Строка. + Подстрока = Сред(Значение, Индекс + 1); Начало = Индекс; Пока Истина Цикл + Позиция = Найти(Подстрока, Символ); + + Если (Позиция > 0) Тогда + Индекс = Индекс + Позиция; Откат = Позиция - 1; Маскировка = Ложь; Пока (Сред(Подстрока, Откат, 1) = "\") И Откат Цикл Маскировка = Не Маскировка; Откат = Откат - 1; КонецЦикла; + Если Маскировка Тогда Подстрока = Сред(Подстрока, Позиция + 1); Иначе Прервать; КонецЕсли; + Иначе + ВызватьИсключение ИсключениеНеожиданноеОкончаниеПакетаДанных(); + КонецЕсли; + + КонецЦикла; + + // Строка. + Результат = jsonПрочитатьСтроку(Сред(Значение, Начало + 1, Индекс - Начало - 1), Стандарт, Начало, ВспомогательныеДанные.СхемаПодстановок, (Символ = "'")); + + Если jsonПрочитатьОпределитьДату(Результат) Тогда + // Дата. + Результат = jsonПрочитатьДату(Результат, Начало); + ИначеЕсли jsonПрочитатьОпределитьИдентификатор(Результат) Тогда + // Идентификатор. + Результат = jsonПрочитатьИдентификатор(Результат, Начало); + Иначе + Если Альтернативный И jsonПрочитатьОпределитьВнутреннийТип(Результат) Тогда + // Внутренний тип. + Результат = jsonПрочитатьВнутреннийТип(Результат, Начало); + КонецЕсли; + КонецЕсли; + + // Корректировка индекса. + Индекс = Индекс + 1; + + ИначеЕсли (Символ = "[") Тогда // [ + + // Массив. + Результат = Новый Массив; + + Индекс = Индекс + 1; Если Стандарт Тогда jsonПрочитатьПропуститьФорматирование(Значение, Стандарт, Индекс, Длина, СимволыФорматирования); КонецЕсли; Если (Индекс > Длина) Тогда ВызватьИсключение ИсключениеНеожиданноеОкончаниеМассива(Длина); КонецЕсли; + Символ = Сред(Значение, Индекс, 1); Если (Символ = "]") Тогда // ] + + // Пустой массив. + Индекс = Индекс + 1; + + Иначе + + Пока (Индекс <= Длина) Цикл + + // Значение. + Результат.Добавить(jsonПрочитать(Значение, Стандарт, Альтернативный, ПредставленияСсылок, Индекс, Длина, ВспомогательныеДанные, СимволыФорматирования, Ложь)); + + Символ = Сред(Значение, Индекс, 1); + Если (Символ = "]") Тогда // ] + // Окончание массива. + Индекс = Индекс + 1; Прервать; + Иначе + // Продолжение массива. + Если (Символ = ",") Тогда // , + Индекс = Индекс + 1; Если Стандарт Тогда jsonПрочитатьПропуститьФорматирование(Значение, Стандарт, Индекс, Длина, СимволыФорматирования); КонецЕсли; Если (Индекс >= Длина) Тогда ВызватьИсключение ИсключениеНеожиданноеОкончаниеМассива(Длина); КонецЕсли; + Иначе + ВызватьИсключение ИсключениеНедопустимыйСимвол(Индекс, ","); + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + ИначеЕсли (Символ = "{") Тогда // { + + // Объект. + Индекс = Индекс + 1; Если Стандарт Тогда jsonПрочитатьПропуститьФорматирование(Значение, Стандарт, Индекс, Длина, СимволыФорматирования); КонецЕсли; Если (Индекс > Длина) Тогда ВызватьИсключение ИсключениеНеожиданноеОкончаниеМассива(Длина); КонецЕсли; + Символ = Сред(Значение, Индекс, 1); Если (Символ = "}") Тогда // } + + // Пустой объект. + Индекс = Индекс + 1; + + // Структура или соответствие. + Если ВспомогательныеДанные.АвтоматическиПриводитьКСтруктуре Тогда Результат = Новый Структура; Иначе Результат = Новый Соответствие; КонецЕсли; + + Иначе + + Результат = Новый Соответствие; + + ТипСтроки = ВспомогательныеДанные.ТипСтроки; Пока (Индекс <= Длина) Цикл + + // Ключ. + Начало = Индекс; КлючЭлемента = jsonПрочитать(Значение, Стандарт, Альтернативный, ПредставленияСсылок, Индекс, Длина, ВспомогательныеДанные, СимволыФорматирования, Ложь); Если (Не ТипЗнч(КлючЭлемента) = ТипСтроки) Тогда ВызватьИсключение ИсключениеНедопустимыйТипКлюча(Начало, КлючЭлемента); КонецЕсли; + + Символ = Сред(Значение, Индекс, 1); + Если (Символ = ":") Тогда // : + Индекс = Индекс + 1; Если Стандарт Тогда jsonПрочитатьПропуститьФорматирование(Значение, Стандарт, Индекс, Длина, СимволыФорматирования); КонецЕсли; Если (Индекс >= Длина) Тогда ВызватьИсключение ИсключениеНеожиданноеОкончаниеОбъетка(Длина); КонецЕсли; + Иначе + ВызватьИсключение ИсключениеНедопустимыйСимвол(Индекс, ":"); + КонецЕсли; + + // Значение. + ЗначениеЭлемента = jsonПрочитать(Значение, Стандарт, Альтернативный, ПредставленияСсылок, Индекс, Длина, ВспомогательныеДанные, СимволыФорматирования, Ложь); + + // Коллекция. + Результат.Вставить(КлючЭлемента, ЗначениеЭлемента); + + Символ = Сред(Значение, Индекс, 1); + Если (Символ = "}") Тогда // } + // Окончание объекта. + Индекс = Индекс + 1; Прервать; + Иначе + // Продолжение объекта. + Если (Символ = ",") Тогда // , + Индекс = Индекс + 1; Если Стандарт Тогда jsonПрочитатьПропуститьФорматирование(Значение, Стандарт, Индекс, Длина, СимволыФорматирования); КонецЕсли; Если (Индекс >= Длина) Тогда ВызватьИсключение ИсключениеНеожиданноеОкончаниеОбъетка(Длина); КонецЕсли; + Иначе + ВызватьИсключение ИсключениеНедопустимыйСимвол(Индекс, ","); + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + // Структура или соответствие. + Если ВспомогательныеДанные.АвтоматическиПриводитьКСтруктуре Тогда + + РезультатСтруктура = Новый Структура; + Для Каждого Элемент Из Результат Цикл Попытка РезультатСтруктура.Вставить(Элемент.Ключ, Элемент.Значение); Исключение РезультатСтруктура = Результат; АвтоматическоеПриведениеНеВыполнено = Истина; Прервать; КонецПопытки; КонецЦикла; + Результат = РезультатСтруктура; + + // Ссылка. + Если ПредставленияСсылок Тогда Результат = jsonПрочитатьСсылку(Результат, (АвтоматическоеПриведениеНеВыполнено = Истина)); КонецЕсли; + + Иначе + + // Ссылка. + Если ПредставленияСсылок Тогда Результат = jsonПрочитатьСсылку(Результат, Истина); КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Иначе + + // Остальные примитивные типы. + Если (Символ = "n") Тогда + + // Null. + Если (Сред(Значение, Индекс, 4) = "null") Тогда Индекс = Индекс + 4; Результат = Null; Иначе ВызватьИсключение ИсключениеНекорректныйТипNull(Индекс); КонецЕсли; + + ИначеЕсли (Символ = "t") Тогда + + // Истина. + Если (Сред(Значение, Индекс, 4) = "true") Тогда Индекс = Индекс + 4; Результат = Истина; Иначе ВызватьИсключение ИсключениеНекорректныйТипБулево(Индекс); КонецЕсли; + + ИначеЕсли (Символ = "f") Тогда + + // Ложь. + Если (Сред(Значение, Индекс, 5) = "false") Тогда Индекс = Индекс + 5; Результат = Ложь; Иначе ВызватьИсключение ИсключениеНекорректныйТипБулево(Индекс); КонецЕсли; + + ИначеЕсли (Символ = "u") Тогда + + // Неопределено. + Если (Сред(Значение, Индекс, 9) = "undefined") Тогда Индекс = Индекс + 9; Результат = Неопределено; Иначе ВызватьИсключение ИсключениеНекорректныйТипНеопределено(Индекс); КонецЕсли; + + Иначе + + // Число. + Начало = Индекс; Пока Найти("-+0123456789.", Символ) И (Индекс <= Длина) Цикл Индекс = Индекс + 1; Символ = Сред(Значение, Индекс, 1); КонецЦикла; + + // Преобразование числа. + Попытка + Результат = Число(Сред(Значение, Начало, Индекс - Начало)); + Исключение + ВызватьИсключение ИсключениеНекорректныйФорматЧисла(Начало, Сред(Значение, Начало, Индекс - Начало)); + КонецПопытки; + + // Экспоненциальная часть. + Если (Символ = "E") Или (Символ = "e") Тогда + + // Степень. + Индекс = Индекс + 1; Позиция = Индекс; Символ = Сред(Значение, Индекс, 1); Пока Найти("-+0123456789", Символ) И (Индекс <= Длина) Цикл Индекс = Индекс + 1; Символ = Сред(Значение, Индекс, 1); КонецЦикла; + + // Преобразование степени. + Попытка + Степень = Число(Сред(Значение, Позиция, Индекс - Позиция)); + Исключение + ВызватьИсключение ИсключениеНекорректныйФорматЧисла(Начало, Сред(Значение, Начало, Индекс - Начало)); + КонецПопытки; + + // Возвидение числа в степень. + Результат = Результат * Pow(10, Степень); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + // Форматирование. + Если Стандарт Тогда jsonПрочитатьПропуститьФорматирование(Значение, Стандарт, Индекс, Длина, СимволыФорматирования); КонецЕсли; Если ПервыйУровень Тогда Если (Индекс <= Длина) Тогда ВызватьИсключение ИсключениеНекорректныйПакетДанных(Индекс); КонецЕсли; Иначе Если (Индекс > Длина) Тогда ВызватьИсключение ИсключениеНеожиданноеОкончаниеПакетаДанных(); КонецЕсли; КонецЕсли; + + Возврат Результат; + +КонецФункции // jsonПрочитать() + +Функция jsonПрочитатьОпределитьДату(Значение) + + // Проверка. + Если (СтрДлина(Значение) = 20) Тогда + Если (Сред(Значение, 05, 1) = "-") И // - + (Сред(Значение, 08, 1) = "-") И // - + (Сред(Значение, 11, 1) = "T") И // T + (Сред(Значение, 14, 1) = ":") И // : + (Сред(Значение, 17, 1) = ":") И // : + (Сред(Значение, 20, 1) = "Z") Тогда // Z + // Год. + Если Найти("0123456789", Сред(Значение, 01, 1)) И + Найти("0123456789", Сред(Значение, 02, 1)) И + Найти("0123456789", Сред(Значение, 03, 1)) И + Найти("0123456789", Сред(Значение, 04, 1)) И + // Месяц. + Найти("0123456789", Сред(Значение, 06, 1)) И + Найти("0123456789", Сред(Значение, 07, 1)) И + // День. + Найти("0123456789", Сред(Значение, 09, 1)) И + Найти("0123456789", Сред(Значение, 10, 1)) И + // Час. + Найти("0123456789", Сред(Значение, 12, 1)) И + Найти("0123456789", Сред(Значение, 13, 1)) И + // Минута. + Найти("0123456789", Сред(Значение, 15, 1)) И + Найти("0123456789", Сред(Значение, 16, 1)) И + // Секунда. + Найти("0123456789", Сред(Значение, 18, 1)) И + Найти("0123456789", Сред(Значение, 19, 1)) Тогда + Возврат Истина; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Возврат Ложь; + +КонецФункции // jsonПрочитатьОпределитьДату() + +Функция jsonПрочитатьОпределитьИдентификатор(Значение) + + // Проверка. + Если (СтрДлина(Значение) = 36) Тогда + Если (Сред(Значение, 09, 1) = "-") И // - + (Сред(Значение, 14, 1) = "-") И // - + (Сред(Значение, 19, 1) = "-") И // - + (Сред(Значение, 24, 1) = "-") Тогда // - + // Первая часть. + Для Индекс = 01 По 08 Цикл Если Не Найти("0123456789ABCDEFabcdef", Сред(Значение, Индекс, 1)) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; + // Вторая часть. + Для Индекс = 10 По 13 Цикл Если Не Найти("0123456789ABCDEFabcdef", Сред(Значение, Индекс, 1)) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; + // Третья часть. + Для Индекс = 15 По 18 Цикл Если Не Найти("0123456789ABCDEFabcdef", Сред(Значение, Индекс, 1)) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; + // Четвертая часть. + Для Индекс = 20 По 23 Цикл Если Не Найти("0123456789ABCDEFabcdef", Сред(Значение, Индекс, 1)) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; + // Пятая часть. + Для Индекс = 25 По 36 Цикл Если Не Найти("0123456789ABCDEFabcdef", Сред(Значение, Индекс, 1)) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; + Возврат Истина; + КонецЕсли; + КонецЕсли; + + Возврат Ложь; + +КонецФункции // jsonПрочитатьОпределитьИдентификатор() + +Функция jsonПрочитатьОпределитьВнутреннийТип(Значение) + + // Поиск. + Возврат (Лев(Значение, 1) = "¦") И (Сред(Значение, 5, 1) = "¦") И (Прав(Значение, 1) = "¦"); // ¦xxx¦ ... ¦ + +КонецФункции // jsonПрочитатьОпределитьВнутреннийТип() + +Функция jsonПрочитатьСтроку(Значение, Стандарт, Индекс, СхемаПодстановок, ОдинарнаяКавычка) + + // Последоавтельность перемаскировки. + ПоследоавтельностьПеремаскировки = "\" + Символ(65535); + + // Демаскирование служебных символов. + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Значение, + "\\", ПоследоавтельностьПеремаскировки), // Перемаскирование последовательности. + "\/", "/"), // x2f + "\b", Символ(008)), // x08 + "\t", Символы.Таб), // x09 + "\n", Символы.ПС), // x0a + "\f", Символы.ПФ), // x0c + "\r", Символы.ВК), // x0d + "\""", """"); // x22 + + // Демаскирование Юникод символов. + Позиция = Найти(Результат, "\u"); Пока Позиция Цикл + СтаршийБайт = СхемаПодстановок[НРег(Сред(Результат, Позиция + 2, 2))]; МладшийБайт = СхемаПодстановок[НРег(Сред(Результат, Позиция + 4, 2))]; Если (СтаршийБайт = Неопределено) Или (МладшийБайт = Неопределено) Тогда ВызватьИсключение ИсключениеНекорректныйФорматСтроки(Индекс); КонецЕсли; + Результат = СтрЗаменить(Результат, Сред(Результат, Позиция, 6), Символ(256 * СтаршийБайт + МладшийБайт)); Позиция = Найти(Результат, "\u"); + КонецЦикла; + + // Одинарная кавычка. + Если ОдинарнаяКавычка Тогда Результат = СтрЗаменить(Результат, "\'", "'"); КонецЕсли; + + // Демаскирование перемаскированой последовательности. + Возврат СтрЗаменить(Результат, ПоследоавтельностьПеремаскировки, "\"); + +КонецФункции // jsonПрочитатьСтроку() + +Функция jsonПрочитатьДату(Значение, Индекс) + + // Поиск. + Попытка + Возврат Дата(Лев(Значение, 4) + Сред(Значение, 06, 2) + Сред(Значение, 09, 2) + + Сред(Значение, 12, 2) + Сред(Значение, 15, 2) + Сред(Значение, 18, 2)); + Исключение + ВызватьИсключение ИсключениеНекорректныйФорматДаты(Индекс, Значение); + КонецПопытки; + +КонецФункции // jsonПрочитатьДату() + +Функция jsonПрочитатьСсылку(Значение, Соответствие) + + Перем Ссылка; + + // Ссылка. + Если (Значение.Количество() = 2) Тогда + Если Соответствие Тогда + Ссылка = Значение.Получить("Ссылка"); Если (Не Ссылка = Неопределено) И (Не Значение.Получить("Представление") = Неопределено) Тогда Возврат Ссылка; КонецЕсли; + Иначе + Если Значение.Свойство("Представление") И Значение.Свойство("Ссылка", Ссылка) Тогда Возврат Ссылка; КонецЕсли; + КонецЕсли; + КонецЕсли; + + Возврат Значение; + +КонецФункции // jsonПрочитатьСсылку() + +Функция jsonПрочитатьИдентификатор(Значение, Индекс) + + // Поиск. + Возврат Новый УникальныйИдентификатор(Значение); + +КонецФункции // jsonПрочитатьИдентификатор() + +Функция jsonПрочитатьВнутреннийТип(Значение, Индекс) +#Если ВебКлиент Или ТонкийКлиент Тогда + ВызватьИсключение ИсключениеНевозможноПреобразоватьЗначениеНаКлиенте(Индекс, Значение); +#Иначе + + // Поиск. + Тип = Сред(Значение, 2, 3); Данные = Сред(Значение, 6, СтрДлина(Значение) - 6); + + Если (Тип = "ref") Тогда + Попытка + Возврат ЗначениеИзСтрокиВнутр("{""#""," + СтрЗаменить(СтрЗаменить(Данные, "×", ":"), "÷", ",") + "}"); + Исключение + ВызватьИсключение ИсключениеНевозможноПреобразоватьЗначение(Индекс, Значение); + КонецПопытки; + КонецЕсли; + + ВызватьИсключение ИсключениеНеопознанныйТип(Индекс, Тип); + +#КонецЕсли +КонецФункции // jsonПрочитатьВнутреннийТип() + +Процедура jsonПрочитатьПропуститьФорматирование(Значение, Стандарт, Индекс, Длина, СимволыФорматирования) + + // Пропуск форматирования. + Пока (Индекс <= Длина) И Найти(СимволыФорматирования, Сред(Значение, Индекс, 1)) Цикл Индекс = Индекс + 1; КонецЦикла; + // Пробел его не видно, \r, \n, \t . + +КонецПроцедуры // jsonПрочитатьПропуститьФорматирование() + + +// ───────────────────────────────────────────────────────────────────────────── +// СЕРИАЛИЗАТОР + +Функция jsonЗаписатьИнициализация(Значение, Знач Стандарт, Знач ПредставленияСсылок) + + // Проверка параметров. + Если (Не Стандарт = Истина) И (Не Стандарт = Ложь) Тогда ВызватьИсключение ИсключениеНекорректныйПараметр("Стандарт"); КонецЕсли; + Если (Не ПредставленияСсылок = Истина) И (Не ПредставленияСсылок = Ложь) Тогда ВызватьИсключение ИсключениеНекорректныйПараметр("ПредставленияСсылок"); КонецЕсли; + + ВспомогательныеДанные = Новый Структура("ПримитивныеТипы,Массивы,Структуры,Соответсвия,Построители,КлиентскиеТипы,ТипДопустимыхКлючей", + Новый ОписаниеТипов("Null,Булево,Число,Дата,УникальныйИдентификатор"), // ПримитивныеТипы. + #Если ВебКлиент Или ТонкийКлиент Тогда + Новый ОписаниеТипов("Массив,ФиксированныйМассив"), // Массивы. + Новый ОписаниеТипов("Структура,ФиксированнаяСтруктура"), // Структуры. + Новый ОписаниеТипов("Структура,ФиксированнаяСтруктура,Соответствие,ФиксированноеСоответствие"), // Соответсвия. + #Иначе + #Если НаСервере Тогда + Новый ОписаниеТипов("Массив,ФиксированныйМассив,ФиксированнаяКоллекция"), // Массивы. + Новый ОписаниеТипов("Структура,ФиксированнаяСтруктура"), // Структуры. + Новый ОписаниеТипов("Структура,ФиксированнаяСтруктура,Соответствие,ФиксированноеСоответствие"), // Соответсвия. + #Иначе + Новый ОписаниеТипов("Массив,ФиксированныйМассив"), // Массивы. + Новый ОписаниеТипов("Структура"), // Структуры. + Новый ОписаниеТипов("Структура,Соответствие"), // Соответсвия. + #КонецЕсли + #КонецЕсли + #Если ВебКлиент Или ТонкийКлиент Тогда + Неопределено, // Построители. + #Иначе + Новый ОписаниеТипов("ПостроительЗапроса,ПостроительОтчета"), // Построители. + #КонецЕсли + #Если НаСервере Тогда + Новый ОписаниеТипов("ДанныеФормыКоллекция,ДанныеФормыСтруктураСКоллекцией,ДанныеФормыДерево"), // КлиентскиеТипы. + #Иначе + Неопределено, // КлиентскиеТипы. + #КонецЕсли + Новый ОписаниеТипов("Строка")); // ТипДопустимыхКлючей. + + // Типы допустимых ключей. + Если (НастройкаНеявноеПриведениеПримитивныхЗначенийКлюча() = Истина) Тогда ВспомогательныеДанные.ТипДопустимыхКлючей = Новый ОписаниеТипов("Null,Булево,Число,Дата,Строка,УникальныйИдентификатор"); КонецЕсли; + + // форматирование. + Если Стандарт Тогда Смещение = ""; Отступ = " "; Табуляция = " "; ПереносСтроки = Символы.ПС; Иначе Смещение = ""; Отступ = ""; Табуляция = ""; ПереносСтроки = ""; КонецЕсли; + + // Сериализация. + Возврат jsonЗаписать(Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, (НастройкаПолноеМаскированиеСимволов() = Истина), (НастройкаМаскированиеКириллицы() = Истина)); + +КонецФункции // jsonЗаписатьИнициализация() + +Функция jsonЗаписать(Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Колонки, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы) + + // Определение типа. + Тип = ТипЗнч(Значение); + + // Строка. + Если (Тип = Тип("Строка")) Тогда Возврат jsonЗаписатьСтроку(Значение, ПолноеМаскированиеСимволов, МаскированиеКириллицы); КонецЕсли; + + // Неопределено и примитивные типы. + Если ВспомогательныеДанные.ПримитивныеТипы.СодержитТип(Тип) Тогда + #Если ВебКлиент Или ТонкийКлиент Тогда + Если (Значение = Null) Или (Значение = Неопределено) Тогда Возврат "null"; ИначеЕсли (Тип = Тип("Дата")) Тогда Возврат """" + Формат(Значение, "ДФ=yyyy-MM-ddTHH:mm:ss; ДП=") + "Z""" ИначеЕсли (Тип = Тип("УникальныйИдентификатор")) Тогда Возврат """" + Значение + """"; Иначе Возврат Формат(Значение, "ЧРД=.; ЧН=; ЧГ=; БЛ=false; БИ=true"); КонецЕсли; + #Иначе + Если (Значение = Null) Или (Значение = Неопределено) Тогда Возврат "null"; ИначеЕсли (Тип = Тип("Дата")) Тогда Возврат """" + XMLСтрока(Значение) + "Z""" ИначеЕсли (Тип = Тип("УникальныйИдентификатор")) Тогда Возврат """" + XMLСтрока(Значение) + """"; Иначе Возврат XMLСтрока(Значение); КонецЕсли; + #КонецЕсли + КонецЕсли; + + // Структуры и строка дерева значений (структурой). + Если ВспомогательныеДанные.Структуры.СодержитТип(Тип) Тогда + Если Значение.Количество() Тогда + + // форматирование. + СледующееСмещение = Смещение + Табуляция; + + Если (Колонки = Неопределено) Тогда + + // Структуры. + Если МаскированиеКириллицы Тогда + + Первый = Истина; Для Каждого Элемент Из Значение Цикл + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + jsonЗаписатьСтроку(Элемент.Ключ, ПолноеМаскированиеСимволов, МаскированиеКириллицы) + ":" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + jsonЗаписатьСтроку(Элемент.Ключ, ПолноеМаскированиеСимволов, МаскированиеКириллицы) + ":" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + + Иначе + + Первый = Истина; Для Каждого Элемент Из Значение Цикл + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + """" + Элемент.Ключ + """:" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + """" + Элемент.Ключ + """:" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + + КонецЕсли; + + Иначе + + // Строка дерева значений (структурой). + Если МаскированиеКириллицы Тогда + + Первый = Истина; Для Каждого Элемент Из Значение Цикл + Если (Элемент.Ключ = "Строки") Тогда Продолжить; КонецЕсли; + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + jsonЗаписатьСтроку(Элемент.Ключ, ПолноеМаскированиеСимволов, МаскированиеКириллицы) + ":" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + jsonЗаписатьСтроку(Элемент.Ключ, ПолноеМаскированиеСимволов, МаскированиеКириллицы) + ":" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + """\u0421\u0442\u0440\u043e\u043a\u0438"":" + Отступ + jsonЗаписать(Значение.Строки, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Колонки, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + """\u0421\u0442\u0440\u043e\u043a\u0438"":" + Отступ + jsonЗаписать(Значение.Строки, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Колонки, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + + Иначе + + Первый = Истина; Для Каждого Элемент Из Значение Цикл + Если (Элемент.Ключ = "Строки") Тогда Продолжить; КонецЕсли; + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + """" + Элемент.Ключ + """:" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + """" + Элемент.Ключ + """:" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + """Строки"":" + Отступ + jsonЗаписать(Значение.Строки, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Колонки, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + """Строки"":" + Отступ + jsonЗаписать(Значение.Строки, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Колонки, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + Возврат "{" + Результат + ПереносСтроки + Смещение + "}"; + + Иначе + + // Пустая структура. + Возврат "{}"; + + КонецЕсли; + КонецЕсли; + + // Соответсвия. + Если ВспомогательныеДанные.Соответсвия.СодержитТип(Тип) Тогда + Если Значение.Количество() Тогда + + // форматирование. + СледующееСмещение = Смещение + Табуляция; + + // Соответсвия. + ТипДопустимыхКлючей = ВспомогательныеДанные.ТипДопустимыхКлючей; + + Если МаскированиеКириллицы Тогда + + Первый = Истина; Для Каждого Элемент Из Значение Цикл + Ключ = Элемент.Ключ; Если ТипДопустимыхКлючей.СодержитТип(ТипЗнч(Ключ)) Тогда Ключ = jsonЗаписатьСтроку(Строка(Ключ), ПолноеМаскированиеСимволов, МаскированиеКириллицы); Иначе ВызватьИсключение ИсключениеНедопустимыйТипКлюча(Неопределено, Ключ); КонецЕсли; + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + Ключ + ":" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + Ключ + ":" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + + Иначе + + Первый = Истина; Для Каждого Элемент Из Значение Цикл + Ключ = Элемент.Ключ; Тип = ТипЗнч(Ключ); Если (Тип = Тип("Строка")) Тогда Ключ = jsonЗаписатьСтроку(Ключ, ПолноеМаскированиеСимволов, МаскированиеКириллицы); ИначеЕсли ТипДопустимыхКлючей.СодержитТип(Тип) Тогда Ключ = """" + Ключ + """"; Иначе ВызватьИсключение ИсключениеНедопустимыйТипКлюча(Неопределено, Ключ); КонецЕсли; + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + Ключ + ":" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + Ключ + ":" + Отступ + jsonЗаписать(Элемент.Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + + КонецЕсли; + Возврат "{" + Результат + ПереносСтроки + Смещение + "}"; + + Иначе + + // Пустое соответсвие. + Возврат "{}"; + + КонецЕсли; + КонецЕсли; + + // Массивы. + Если ВспомогательныеДанные.Массивы.СодержитТип(Тип) Тогда + Если Значение.Количество() Тогда + + // форматирование. + СледующееСмещение = Смещение + Табуляция; + + Первый = Истина; Для Каждого Элемент Из Значение Цикл + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + jsonЗаписать(Элемент, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + jsonЗаписать(Элемент, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + + Возврат "[" + Результат + ПереносСтроки + Смещение + "]"; + + Иначе + + // Пустой массив. + Возврат "[]"; + + КонецЕсли; + КонецЕсли; + + // Список значений. + Если (Тип = Тип("СписокЗначений")) Тогда + Если Значение.Количество() Тогда + + // форматирование. + СледующееСмещение = Смещение + Табуляция; + + Структура = Новый Структура("Значение,Представление,Пометка"); + Первый = Истина; Для Каждого Элемент Из Значение Цикл + ЗаполнитьЗначенияСвойств(Структура, Элемент); + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + jsonЗаписать(Структура, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + jsonЗаписать(Структура, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + + Возврат "[" + Результат + ПереносСтроки + Смещение + "]"; + + Иначе + + // Пустой список значений. + Возврат "[]"; + + КонецЕсли; + КонецЕсли; + + // Таблица значений. + #Если ВебКлиент Или ТонкийКлиент Тогда + #Иначе + Если (Тип = Тип("ТаблицаЗначений")) Тогда + Если Значение.Количество() Тогда + + // форматирование. + СледующееСмещение = Смещение + Табуляция; + + Структура = Новый Структура; НаборКолонок = Значение.Колонки; Для Каждого Колонка Из НаборКолонок Цикл Структура.Вставить(Колонка.Имя); КонецЦикла; + + Первый = Истина; Для Каждого Элемент Из Значение Цикл + ЗаполнитьЗначенияСвойств(Структура, Элемент); + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + jsonЗаписать(Структура, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + jsonЗаписать(Структура, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + Возврат "[" + Результат + ПереносСтроки + Смещение + "]"; + + Иначе + + // Пустая таблица значений. + Возврат "[]"; + + КонецЕсли; + КонецЕсли; + + // Коллекция строк дерева значений. + Если (Тип = Тип("КоллекцияСтрокДереваЗначений")) Тогда + Если Значение.Количество() Тогда + + // форматирование. + СледующееСмещение = Смещение + Табуляция; + + Структура = Колонки; Первый = Истина; Для Каждого Элемент Из Значение Цикл + ЗаполнитьЗначенияСвойств(Структура, Элемент); Структура.Строки = Элемент.Строки; + Если Первый Тогда + Результат = ПереносСтроки + СледующееСмещение + jsonЗаписать(Структура, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Колонки, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Первый = Ложь; + Иначе + Результат = Результат + "," + ПереносСтроки + СледующееСмещение + jsonЗаписать(Структура, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Колонки, СледующееСмещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЦикла; + Возврат "[" + Результат + ПереносСтроки + Смещение + "]"; + + Иначе + + // Пустая коллекция строк. + Возврат "[]"; + + КонецЕсли; + КонецЕсли; + + // Дерево значений. + Если (Тип = Тип("ДеревоЗначений")) Тогда + + Структура = Новый Структура("Строки"); НаборКолонок = Значение.Колонки; Для Каждого Колонка Из НаборКолонок Цикл Структура.Вставить(Колонка.Имя); КонецЦикла; + Возврат jsonЗаписать(Значение.Строки, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Структура, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + + КонецЕсли; + + // Запрос. + Если (Тип = Тип("Запрос")) Тогда Попытка Возврат jsonЗаписать(Значение.Выполнить().Выгрузить(), Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); Исключение ВызватьИсключение ИсключениеНевозможноВыполнитьЗапрос(ИнформацияОбОшибке().Причина.Описание); КонецПопытки; КонецЕсли; + + // Результат запроса. + Если (Тип = Тип("РезультатЗапроса")) Тогда Возврат jsonЗаписать(Значение.Выгрузить(), Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); КонецЕсли; + + // Выборка из результата запроса. + Если (Тип = Тип("ВыборкаИзРезультатаЗапроса")) Тогда + + Структура = Новый Структура; НаборКолонок = Значение.Владелец().Колонки; Для Каждого Колонка Из НаборКолонок Цикл Структура.Вставить(Колонка.Имя); КонецЦикла; + ЗаполнитьЗначенияСвойств(Структура, Значение); + Возврат jsonЗаписать(Структура, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + + КонецЕсли; + + // Построители. + Если ВспомогательныеДанные.Построители.СодержитТип(Тип) Тогда Попытка Значение.Выполнить(); Исключение ВызватьИсключение ИсключениеНевозможноВыполнитьЗапрос(ИнформацияОбОшибке().Причина.Описание); КонецПопытки; Возврат jsonЗаписать(Значение.Результат, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); КонецЕсли; + + // Хранилище значения. + Если (Тип = Тип("ХранилищеЗначения")) Тогда Возврат jsonЗаписать(Значение.Получить(), Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); КонецЕсли; + #КонецЕсли + + // Двоичные данные. + Если (Тип = Тип("ДвоичныеДанные")) Тогда + #Если ВебКлиент Или ТонкийКлиент Тогда + Возврат """" + СтрЗаменить(СтрЗаменить(СтрЗаменить(Base64Строка(Значение), Символы.ВК, ""), Символы.ПС, ""), "/", "\/") + """"; + #Иначе + Возврат """" + СтрЗаменить(СтрЗаменить(СтрЗаменить(XMLСтрока(Значение), Символы.ВК, ""), Символы.ПС, ""), "/", "\/") + """"; + #КонецЕсли + КонецЕсли; + + // Картинка. + Если (Тип = Тип("Картинка")) Тогда + #Если ВебКлиент Или ТонкийКлиент Тогда + Возврат """" + СтрЗаменить(СтрЗаменить(СтрЗаменить(Base64Строка(Значение.ПолучитьДвоичныеДанные()), Символы.ВК, ""), Символы.ПС, ""), "/", "\/") + """"; + #Иначе + Возврат """" + СтрЗаменить(СтрЗаменить(СтрЗаменить(XMLСтрока(Значение.ПолучитьДвоичныеДанные()), Символы.ВК, ""), Символы.ПС, ""), "/", "\/") + """"; + #КонецЕсли + КонецЕсли; + + // Ключ и значение. + Если (Тип = Тип("КлючИЗначение")) Тогда Возврат jsonЗаписать(Новый Структура("Ключ,Значение", Значение.Ключ, Значение.Значение), Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); КонецЕсли; + + // Клиентские типы. + #Если НаСервере Тогда + Если ВспомогательныеДанные.КлиентскиеТипы.СодержитТип(Тип) Тогда + Если (Тип = Тип("ДанныеФормыДерево")) Тогда + Возврат jsonЗаписать(ДанныеФормыВЗначение(Значение, Тип("ДеревоЗначений")), Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + Иначе + Возврат jsonЗаписать(Значение.Выгрузить(), Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + КонецЕсли; + #КонецЕсли + + // COMSafeArray. + #Если ВебКлиент Тогда + #Иначе + Если (Тип = Тип("COMSafeArray")) Тогда Возврат jsonЗаписать(Значение.Выгрузить(), Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); КонецЕсли; + #КонецЕсли + + // Ссылки. + #Если ВебКлиент Или ТонкийКлиент Тогда + #Иначе + Перечисление = Перечисления.ТипВсеСсылки().СодержитТип(Тип); + Если Перечисление Или + Справочники.ТипВсеСсылки().СодержитТип(Тип) Или + Документы.ТипВсеСсылки().СодержитТип(Тип) Или + ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(Тип) Или + ПланыСчетов.ТипВсеСсылки().СодержитТип(Тип) Или + ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(Тип) Или + Задачи.ТипВсеСсылки().СодержитТип(Тип) Или + БизнесПроцессы.ТипВсеСсылки().СодержитТип(Тип) Или + БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип(Тип) Или + ПланыОбмена.ТипВсеСсылки().СодержитТип(Тип) Тогда + Возврат jsonЗаписатьСсылку(Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Перечисление, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + КонецЕсли; + #КонецЕсли + + // Неподдерживаемые типы. + Возврат jsonЗаписатьСтроку(Значение, ПолноеМаскированиеСимволов, МаскированиеКириллицы); + +КонецФункции // jsonЗаписать() + +Функция jsonЗаписатьСтроку(Значение, ПолноеМаскированиеСимволов, МаскированиеКириллицы) + + // Маскирование служебных символов. + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Значение, + "\", "\\"), // x5c + "/", "\/"), // x2f + Символ(008), "\b"), // x08 + Символы.Таб, "\t"), // x09 + Символы.ПС, "\n"), // x0a + Символы.ПФ, "\f"), // x0c + Символы.ВК, "\r"), // x0d + """", "\"""); // x22 + + // Маскирование специальных символов. + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Результат, + Символ(00), "\u0000"), + Символ(01), "\u0001"), + Символ(02), "\u0002"), + Символ(03), "\u0003"), + Символ(04), "\u0004"), + Символ(05), "\u0005"), + Символ(06), "\u0006"), + Символ(07), "\u0007"), + Символ(11), "\u000b"), + Символ(14), "\u000e"), + Символ(15), "\u000f"), + Символ(16), "\u0010"), + Символ(17), "\u0011"), + Символ(18), "\u0012"), + Символ(19), "\u0013"), + Символ(20), "\u0014"), + Символ(21), "\u0015"), + Символ(22), "\u0016"), + Символ(23), "\u0017"), + Символ(24), "\u0018"), + Символ(25), "\u0019"), + Символ(26), "\u001a"), + Символ(27), "\u001b"), + Символ(28), "\u001c"), + Символ(29), "\u001d"), + Символ(30), "\u001e"), + Символ(31), "\u001f"); + + Если ПолноеМаскированиеСимволов Тогда + + // Маскирование сиволов обрабатываемых JavaScript-ом не правильно. + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Результат, + Символ(127), "\u007f"), + Символ(128), "\u0080"), + Символ(129), "\u0081"), + Символ(130), "\u0082"), + Символ(131), "\u0083"), + Символ(132), "\u0084"), + Символ(133), "\u0085"), + Символ(134), "\u0086"), + Символ(135), "\u0087"), + Символ(136), "\u0088"), + Символ(137), "\u0089"), + Символ(138), "\u008a"), + Символ(139), "\u008b"), + Символ(140), "\u008c"), + Символ(141), "\u008d"), + Символ(142), "\u008e"), + Символ(143), "\u008f"), + Символ(144), "\u0090"), + Символ(145), "\u0091"), + Символ(146), "\u0092"), + Символ(147), "\u0093"), + Символ(148), "\u0094"), + Символ(149), "\u0095"), + Символ(150), "\u0096"), + Символ(151), "\u0097"), + Символ(152), "\u0098"), + Символ(153), "\u0099"), + Символ(154), "\u009a"), + Символ(155), "\u009b"), + Символ(156), "\u009c"), + Символ(157), "\u009d"), + Символ(158), "\u009e"), + Символ(159), "\u009f"), + Символ(173), "\u00ad"); + + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Результат, + Символ(1536), "\u0600"), + Символ(1537), "\u0601"), + Символ(1538), "\u0602"), + Символ(1539), "\u0603"), + Символ(1540), "\u0604"), + Символ(1807), "\u070f"), + Символ(6068), "\u17b4"), + Символ(6069), "\u17b5"), + Символ(8204), "\u200c"), + Символ(8205), "\u200d"), + Символ(8206), "\u200e"), + Символ(8207), "\u200f"), + Символ(8232), "\u2028"), + Символ(8233), "\u2029"), + Символ(8234), "\u202a"), + Символ(8235), "\u202b"), + Символ(8236), "\u202c"), + Символ(8237), "\u202d"), + Символ(8238), "\u202e"), + Символ(8239), "\u202f"), + Символ(8288), "\u2060"), + Символ(8289), "\u2061"), + Символ(8290), "\u2062"), + Символ(8291), "\u2063"), + Символ(8292), "\u2064"), + Символ(8293), "\u2065"), + Символ(8294), "\u2066"), + Символ(8295), "\u2067"); + + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Результат, + Символ(8296), "\u2068"), + Символ(8297), "\u2069"), + Символ(8268), "\u206a"), + Символ(8299), "\u206b"), + Символ(8300), "\u206c"), + Символ(8301), "\u206d"), + Символ(8302), "\u206e"), + Символ(8303), "\u206f"), + Символ(65279), "\ufeff"), + Символ(65520), "\ufff0"), + Символ(65521), "\ufff1"), + Символ(65522), "\ufff2"), + Символ(65523), "\ufff3"), + Символ(65524), "\ufff4"), + Символ(65525), "\ufff5"), + Символ(65526), "\ufff6"), + Символ(65527), "\ufff7"), + Символ(65528), "\ufff8"), + Символ(65529), "\ufff9"), + Символ(65530), "\ufffa"), + Символ(65531), "\ufffb"), + Символ(65532), "\ufffc"), + Символ(65533), "\ufffd"), + Символ(65534), "\ufffe"), + Символ(65535), "\uffff"); + + КонецЕсли; + + Если МаскированиеКириллицы Тогда + + // Маскирование кириллических символов. + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Результат, + "А", "\u0410"), + "Б", "\u0411"), + "В", "\u0412"), + "Г", "\u0413"), + "Д", "\u0414"), + "Е", "\u0415"), + "Ж", "\u0416"), + "З", "\u0417"), + "И", "\u0418"), + "Й", "\u0419"), + "К", "\u041a"), + "Л", "\u041b"), + "М", "\u041c"), + "Н", "\u041d"), + "О", "\u041e"), + "П", "\u041f"), + "Р", "\u0420"), + "С", "\u0421"), + "Т", "\u0422"), + "У", "\u0423"), + "Ф", "\u0424"), + "Х", "\u0425"), + "Ц", "\u0426"), + "Ч", "\u0427"), + "Ш", "\u0428"), + "Щ", "\u0429"), + "Ъ", "\u042a"), + "Ы", "\u042b"), + "Ь", "\u042c"), + "Э", "\u042d"), + "Ю", "\u042e"), + "Я", "\u042f"); + + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Результат, + "а", "\u0430"), + "б", "\u0431"), + "в", "\u0432"), + "г", "\u0433"), + "д", "\u0434"), + "е", "\u0435"), + "ж", "\u0436"), + "з", "\u0437"), + "и", "\u0438"), + "й", "\u0439"), + "к", "\u043a"), + "л", "\u043b"), + "м", "\u043c"), + "н", "\u043d"), + "о", "\u043e"), + "п", "\u043f"), + "р", "\u0440"), + "с", "\u0441"), + "т", "\u0442"), + "у", "\u0443"), + "ф", "\u0444"), + "х", "\u0445"), + "ц", "\u0446"), + "ч", "\u0447"), + "ш", "\u0448"), + "щ", "\u0449"), + "ъ", "\u044a"), + "ы", "\u044b"), + "ь", "\u044c"), + "э", "\u044d"), + "ю", "\u044e"), + "я", "\u044f"); + + Результат = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Результат, + "’", "\u2019"), + "Ґ", "\u0490"), + "Ђ", "\u0402"), + "Ѓ", "\u0403"), + "Ѐ", "\u0400"), + "Ё", "\u0401"), + "Є", "\u0404"), + "Ѕ", "\u0405"), + "Ѝ", "\u040d"), + "І", "\u0406"), + "Ї", "\u0407"), + "Ј", "\u0408"), + "Љ", "\u0409"), + "Њ", "\u040a"), + "Ћ", "\u040b"), + "Ќ", "\u040c"), + "Ў", "\u040e"), + "Џ", "\u040f"), + "ґ", "\u0491"), + "ђ", "\u0452"), + "ѓ", "\u0453"), + "ѐ", "\u0450"), + "ё", "\u0451"), + "є", "\u0454"), + "ѕ", "\u0455"), + "ѝ", "\u045d"), + "і", "\u0456"), + "ї", "\u0457"), + "ј", "\u0458"), + "љ", "\u0459"), + "њ", "\u045a"), + "ћ", "\u045b"), + "ќ", "\u045c"), + "ў", "\u045e"), + "џ", "\u045f"); + + КонецЕсли; + + // Кавычки. + Возврат """" + Результат + """"; + +КонецФункции // jsonЗаписатьСтроку() + +Функция jsonЗаписатьСсылку(Значение, Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Перечисление, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы) +#Если ВебКлиент Или ТонкийКлиент Тогда +#Иначе + + // Идентификатор. + Если Стандарт Тогда + Если Перечисление Тогда Идентификатор = Лев(Прав(ЗначениеВСтрокуВнутр(Значение), 33), 32); Идентификатор = Прав(Идентификатор, 8) + "-" + Сред(Идентификатор, 21, 4) + "-" + Сред(Идентификатор, 17, 4) + "-" + Лев(Идентификатор, 4) + "-" + Сред(Идентификатор, 5, 12); Иначе Идентификатор = XMLСтрока(Значение); КонецЕсли; + Иначе + Идентификатор = ЗначениеВСтрокуВнутр(Значение); Идентификатор = "¦ref¦" + СтрЗаменить(СтрЗаменить(Сред(Идентификатор, 6, СтрДлина(Идентификатор) - 6), ":", "×"), ",", "÷") + "¦"; + КонецЕсли; + + // Включая представление ссылки. + Если ПредставленияСсылок Тогда Возврат jsonЗаписать(Новый Структура("Ссылка,Представление", Идентификатор, Строка(Значение)), Стандарт, ПредставленияСсылок, ВспомогательныеДанные, Неопределено, Смещение, Отступ, Табуляция, ПереносСтроки, ПолноеМаскированиеСимволов, МаскированиеКириллицы); КонецЕсли; + + // Ссылка. + Возврат """" + Идентификатор + """"; + +#КонецЕсли +КонецФункции // jsonЗаписатьСсылку() + + +// ───────────────────────────────────────────────────────────────────────────── +// ЛОКАЛИЗАЦИЯ + +Функция СформироватьСтрокуПоШаблону(Строка, Параметры) + + Результат = Строка; + + Для Каждого Параметр Из Параметры Цикл + Результат = СтрЗаменить(Результат, "[" + Параметр.Ключ + "]", Строка(Параметр.Значение)); + КонецЦикла; + + Возврат Результат; + +КонецФункции // СформироватьСтрокуПоШаблону() + + +Функция ИсключениеПустойПакетДанных() + + Возврат НСтр("ru = 'JSON: Пустой пакет данных.'; uk = 'JSON: Порожній пакет даних.'"); + +КонецФункции // ИсключениеНеожиданноеОкончаниеСтроки() + +Функция ИсключениеНекорректныйПакетДанных(Индекс) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Некорректный пакет данных в позиции [Индекс].'; uk = 'JSON: Некоректний пакет даних у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + +КонецФункции // ИсключениеНекорректныйПакетДанных() + +Функция ИсключениеНеожиданноеОкончаниеПакетаДанных() + + Возврат НСтр("ru = 'JSON: Неожиданное окончание пакета данных.'; uk = 'JSON: Несподіване закінчення пакета даних.'"); + +КонецФункции // ИсключениеНеожиданноеОкончаниеПакетаДанных() + +Функция ИсключениеНеожиданноеОкончаниеМассива(Индекс) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Неожиданное окончание массива в позиции [Индекс].'; uk = 'JSON: Несподіване закінчення масиву у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + +КонецФункции // ИсключениеНеожиданноеОкончаниеМассива() + +Функция ИсключениеНеожиданноеОкончаниеОбъетка(Индекс) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Неожиданное окончание объекта в позиции [Индекс].'; uk = 'JSON: Несподіване закінчення об''єкту у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + +КонецФункции // ИсключениеНеожиданноеОкончаниеОбъетка() + +Функция ИсключениеНекорректныйТипNull(Индекс) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Некорректный тип Null в позиции [Индекс].'; uk = 'JSON: Некоректний тип Null у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + +КонецФункции // ИсключениеНекорректныйТипNull() + +Функция ИсключениеНекорректныйТипБулево(Индекс) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Некорректный тип Булево в позиции [Индекс].'; uk = 'JSON: Некоректний тип Булево у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + +КонецФункции // ИсключениеНекорректныйТипБулево() + +Функция ИсключениеНекорректныйТипНеопределено(Индекс) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Некорректный тип Неопределено в позиции [Индекс].'; uk = 'JSON: Некоректний тип Невизначено у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + +КонецФункции // ИсключениеНекорректныйТипНеопределено() + +Функция ИсключениеНекорректныйФорматСтроки(Индекс) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Некорректный формат строки в позиции [Индекс].'; uk = 'JSON: Некоректний формат рядка у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + +КонецФункции // ИсключениеНекорректныйФорматСтроки() + +Функция ИсключениеНекорректныйФорматДаты(Индекс, Значение) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Некорректный формат даты [Значение] в позиции [Индекс].'; uk = 'JSON: Некоректний формат дати [Значение] у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс, Символ(034) + Значение + Символ(034))); + +КонецФункции // ИсключениеНекорректныйФорматДаты() + +Функция ИсключениеНекорректныйФорматЧисла(Индекс, Значение) + + Если ПустаяСтрока(Значение) Тогда + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Неверный формат данных в позиции [Индекс].'; uk = 'JSON: Невірний формат даних у позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + + Иначе + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Некорректный формат числа [Значение] в позиции [Индекс].'; uk = 'JSON: Некоректний формат числа [Значение] у позиції [Индекс].'"), + Новый Структура("Индекс,Значение", Индекс, Символ(034) + Значение + Символ(034))); + + КонецЕсли; + +КонецФункции // ИсключениеНекорректныйФорматЧисла() + +Функция ИсключениеНедопустимыйСимвол(Индекс, Символ) + + Если (Символ = Неопределено) Тогда + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Недопустимый символ в позиции [Индекс].'; uk = 'JSON: Неприпустимий символ в позиції [Индекс].'"), + Новый Структура("Индекс", Индекс)); + + Иначе + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Недопустимый символ в позиции [Индекс], ожидается [Символ].'; uk = 'JSON: Неприпустимий символ в позиції [Индекс], очікується [Символ].'"), + Новый Структура("Индекс,Символ", Индекс, Символ(034) + Символ + Символ(034))); + + КонецЕсли; + +КонецФункции // ИсключениеНедопустимыйСимвол() + +Функция ИсключениеНеопознанныйТип(Индекс, Тип) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Недопустимый тип [Тип] в позиции [Индекс].'; uk = 'JSON: Неприпустимий тип [Тип] у позиції [Индекс].'"), + Новый Структура("Индекс,Тип", Индекс, Символ(034) + Тип + Символ(034))); + +КонецФункции // ИсключениеНеопознанныйТип() + +Функция ИсключениеНевозможноПреобразоватьЗначение(Индекс, Значение) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Невозможно преобразовать значение [Значение] в позиции [Индекс].'; uk = 'JSON: Неможливо перетворити значення [Значение] у позиції [Индекс].'"), + Новый Структура("Индекс,Значение", Индекс, Символ(034) + Значение + Символ(034))); + +КонецФункции // ИсключениеНевозможноПреобразоватьЗначение() + +Функция ИсключениеНевозможноПреобразоватьЗначениеНаКлиенте(Индекс, Значение) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Невозможно на клиенте преобразовать значение [Значение] в позиции [Индекс].'; uk = 'JSON: Неможливо на клієнті перетворити значення [Значение] у позиції [Индекс].'"), + Новый Структура("Индекс,Значение", Индекс, Символ(034) + Значение + Символ(034))); + +КонецФункции // ИсключениеНевозможноПреобразоватьЗначениеНаКлиенте() + + +Функция ИсключениеНекорректныйПараметр(Параметр) + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Недопустимое значение параметра [Параметр].'; uk = 'JSON: Неприпустиме значення параметра [Параметр].'"), + Новый Структура("Параметр", Символ(034) + Параметр + Символ(034))); + +КонецФункции // ИсключениеНекорректныйПараметр() + + +Функция ИсключениеНедопустимыйТипКлюча(Индекс, Значение) + + Если (Индекс = Неопределено) Тогда + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Недопустимый тип значения ключа [Тип].'; uk = 'JSON: Неприпустимий тип значення ключа [Тип].'"), + Новый Структура("Тип", ТипЗнч(Значение))); + + Иначе + + Возврат СформироватьСтрокуПоШаблону(НСтр("ru = 'JSON: Недопустимый тип значения ключа [Тип] в позиции [Индекс].'; uk = 'JSON: Неприпустимий тип значення ключа [Тип] в позиції [Индекс].'"), + Новый Структура("Индекс,Тип", Индекс, Символ(034) + ТипЗнч(Значение) + Символ(034))); + + КонецЕсли; + +КонецФункции // ИсключениеНедопустимыйТипКлюча() + +Функция ИсключениеНевозможноВыполнитьЗапрос(Описание) + + Позиция = Найти(Описание, "}: "); Если Позиция Тогда Позиция = Позиция + 3; Иначе Позиция = 1; КонецЕсли; + Длина = Найти(Описание, Символы.ПС); Если Длина Тогда Длина = Длина - Позиция; Иначе Длина = СтрДлина(Описание); КонецЕсли; + Возврат НСтр("ru = 'JSON: Невозможно выполнить запрос. '; uk = 'JSON: Неможливо виконати запит. '") + Сред(Описание, Позиция, Длина) + "."; + +КонецФункции // ИсключениеНевозможноВыполнитьЗапрос() diff --git a/src/Plugins/JSON/maps.txt b/src/Plugins/JSON/maps.txt new file mode 100644 index 00000000..cffb4113 --- /dev/null +++ b/src/Plugins/JSON/maps.txt @@ -0,0 +1,2 @@ +Form\Форма\Форма.bsl-->41d7ae5c-a2dd-4493-a296-26417b78fed0.0 (50, 131) +Макеты\Макет.txt-->cadc77d3-254f-43b4-90f1-9755cfc479b0.0 diff --git a/src/Plugins/JSON/renames.txt b/src/Plugins/JSON/renames.txt new file mode 100644 index 00000000..186fbb1c --- /dev/null +++ b/src/Plugins/JSON/renames.txt @@ -0,0 +1,11 @@ +41d7ae5c-a2dd-4493-a296-26417b78fed0-->und\41d7ae5c-a2dd-4493-a296-26417b78fed0 +41d7ae5c-a2dd-4493-a296-26417b78fed0.0-->und\41d7ae5c-a2dd-4493-a296-26417b78fed0.0 +89ae406c-4f6b-4501-842f-bd65f4e952bc-->und\89ae406c-4f6b-4501-842f-bd65f4e952bc +a4f339bc-7376-43c4-af35-6b4b76e8d3b5.0\info-->und\a4f339bc-7376-43c4-af35-6b4b76e8d3b5.0\info +a4f339bc-7376-43c4-af35-6b4b76e8d3b5.0\text-->ObjectModule.bsl +cadc77d3-254f-43b4-90f1-9755cfc479b0-->und\cadc77d3-254f-43b4-90f1-9755cfc479b0 +cadc77d3-254f-43b4-90f1-9755cfc479b0.0-->und\cadc77d3-254f-43b4-90f1-9755cfc479b0.0 +copyinfo-->und\copyinfo +root-->und\root +version-->und\version +versions-->und\versions diff --git a/src/Plugins/JSON/und/41d7ae5c-a2dd-4493-a296-26417b78fed0 b/src/Plugins/JSON/und/41d7ae5c-a2dd-4493-a296-26417b78fed0 new file mode 100644 index 00000000..7282ffca --- /dev/null +++ b/src/Plugins/JSON/und/41d7ae5c-a2dd-4493-a296-26417b78fed0 @@ -0,0 +1,15 @@ +{1, +{1, +{0, +{12, +{1, +{0,0,41d7ae5c-a2dd-4493-a296-26417b78fed0},"Форма", +{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/Plugins/JSON/und/41d7ae5c-a2dd-4493-a296-26417b78fed0.0 b/src/Plugins/JSON/und/41d7ae5c-a2dd-4493-a296-26417b78fed0.0 new file mode 100644 index 00000000..f0b30640 --- /dev/null +++ b/src/Plugins/JSON/und/41d7ae5c-a2dd-4493-a296-26417b78fed0.0 @@ -0,0 +1,169 @@ +{3, +{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, +{1,0},0,0,1,1,1,0,1,0, +{0,1,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,1,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,100,1,1,0}," +// { Plugin interface +&НаКлиенте +Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт + Возврат ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов); +КонецФункции + +&НаСервере +Функция ОписаниеПлагинаНаСервере(ВозможныеТипыПлагинов) + Возврат ЭтотОбъектНаСервере().ОписаниеПлагина(ВозможныеТипыПлагинов); +КонецФункции +// } Plugin interface + +// { Helpers +&НаСервере +Функция ЭтотОбъектНаСервере() + Возврат РеквизитФормыВЗначение(""Объект""); +КонецФункции +// } Helpers + +// ───────────────────────────────────────────────────────────────────────────── +// { JSON API + +// JSON парсер. +// +// Параметры: +// Значение - Строка. Строка данных в формате JSON для парсинга; +// +// Стандарт - Неопределено, Булево. Режим работы: +// - Истина - стандартный режим (значение по умолчанию); +// - Ложь - альтернативный режим; +// - Неопределено - автоопределение режима; +// +// ПредставленияСсылок - Неопределено, Булево. Режим передачи ссылочных типов, с их представлением или без: +// - Истина - ссылки передаются вместе со своим представлением, как объекты с двумя свойствами содержащими саму ссылку и ее представление; +// - Ложь - ссылки передаются без представления (значение по умолчанию). +// - Неопределено - автоопределение режима. +// +// Возвращаемое значение: +// Набор данных согласно содержимому входящих данных. +// +&НаКлиенте +Функция ПрочитатьJSON(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) Экспорт + Возврат ПрочитатьJSONнаСервере(Значение, Стандарт, ПредставленияСсылок); +КонецФункции + +&НаСервере +Функция ПрочитатьJSONнаСервере(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) + + Возврат ЭтотОбъектНаСервере().ПрочитатьJSON(Значение, Стандарт, ПредставленияСсылок); + +КонецФункции // ПрочитатьJSON() + +// JSON сериализатор. +// +// Параметры: +// Значение. Набор данных сериализуемых в формат JSON; +// +// Стандарт - Булево. Режим работы: +// - Истина - стандартный режим (значение по умолчанию); +// - Ложь - альтернативный режим; +// +// ПредставленияСсылок - Булево. Режим передачи ссылочных типов, с их представлением или без: +// - Истина - ссылки передаются вместе со своим представлением, как объекты с двумя свойствами содержащими саму ссылку и ее представление; +// - Ложь - ссылки передаются без представления (значение по умолчанию). +// +// Возвращаемое значение: +// Строка. Строка данных в формате JSON согласно содержимому входящих данных. +// +&НаКлиенте +Функция ЗаписатьJSON(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) Экспорт + Возврат ЗаписатьJSONнаСервере(Значение, Стандарт, ПредставленияСсылок); +КонецФункции + +&НаСервере +Функция ЗаписатьJSONнаСервере(Значение, Стандарт = Истина, ПредставленияСсылок = Ложь) + + Возврат ЭтотОбъектНаСервере().ЗаписатьJSON(Значение, Стандарт, ПредставленияСсылок); + +КонецФункции // ЗаписатьJSON() + +// } JSON API", +{4,1, +{9, +{1},0,"Объект", +{1,0}, +{"Pattern", +{"#",d2613f97-392a-42d5-9f46-dbe7e603f4c9} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,0},1,0,0,0, +{0,0}, +{0,0} +},0,0, +{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0 +aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u +LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv +OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo +dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0 +cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9 +Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw +Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj +LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 +LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 +cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ +YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} +}, +{0,0}, +{0,0}, +{0,0}, +{0,0},0,0} \ No newline at end of file diff --git a/src/Plugins/JSON/und/89ae406c-4f6b-4501-842f-bd65f4e952bc b/src/Plugins/JSON/und/89ae406c-4f6b-4501-842f-bd65f4e952bc new file mode 100644 index 00000000..828857c5 --- /dev/null +++ b/src/Plugins/JSON/und/89ae406c-4f6b-4501-842f-bd65f4e952bc @@ -0,0 +1,124 @@ +{1, +{89ae406c-4f6b-4501-842f-bd65f4e952bc},1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f, +{1, +{4,d2613f97-392a-42d5-9f46-dbe7e603f4c9,8a4f4b3f-469b-4ae6-8caa-cd64a2b9b168, +{0, +{1, +{0,0,a4f339bc-7376-43c4-af35-6b4b76e8d3b5},"JSON", +{1,"ru","JSON"},"JavaScript Object Notation парсер и сериализатор",0,0} +},00000000-0000-0000-0000-000000000000,"",00000000-0000-0000-0000-000000000000},4, +{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, +{3daea016-69b7-4ed4-9453-127911372fe6,1,cadc77d3-254f-43b4-90f1-9755cfc479b0}, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,41d7ae5c-a2dd-4493-a296-26417b78fed0}, +{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,5, +{ +{0, +{27, +{2, +{1, +{0,0,2d97c406-1d8e-4413-8092-c1dbcfd32f94},"Входящий", +{1,"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,313824fc-2843-46bd-b30c-2571f1f4c60d},"ВходящийРежим", +{1,"ru","Входящий режим"},"",0,0}, +{"Pattern", +{"B"}, +{"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,453818c2-e2c8-4c89-95af-d948f90c3993},"Исходящий", +{1,"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,566c23fc-6918-4df7-b061-63a3bd944e1d},"ИсходящийРежим", +{1,"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,4b4c4e05-2d9b-4d8c-b55e-b3dd18cb001f},"НекорректныеДанные", +{1,"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} +} +} +} +} \ No newline at end of file diff --git a/src/Plugins/JSON/und/a4f339bc-7376-43c4-af35-6b4b76e8d3b5.0/info b/src/Plugins/JSON/und/a4f339bc-7376-43c4-af35-6b4b76e8d3b5.0/info new file mode 100644 index 00000000..c70b5f39 --- /dev/null +++ b/src/Plugins/JSON/und/a4f339bc-7376-43c4-af35-6b4b76e8d3b5.0/info @@ -0,0 +1 @@ +{3,1,0,"",0} \ No newline at end of file diff --git a/src/Plugins/JSON/und/cadc77d3-254f-43b4-90f1-9755cfc479b0 b/src/Plugins/JSON/und/cadc77d3-254f-43b4-90f1-9755cfc479b0 new file mode 100644 index 00000000..1a56d1c1 --- /dev/null +++ b/src/Plugins/JSON/und/cadc77d3-254f-43b4-90f1-9755cfc479b0 @@ -0,0 +1,6 @@ +{1, +{2,4, +{0, +{0,0,cadc77d3-254f-43b4-90f1-9755cfc479b0},"Макет", +{1,"ru","Макет"},""} +},0} \ No newline at end of file diff --git a/src/Plugins/JSON/und/cadc77d3-254f-43b4-90f1-9755cfc479b0.0 b/src/Plugins/JSON/und/cadc77d3-254f-43b4-90f1-9755cfc479b0.0 new file mode 100644 index 00000000..21759d02 --- /dev/null +++ b/src/Plugins/JSON/und/cadc77d3-254f-43b4-90f1-9755cfc479b0.0 @@ -0,0 +1,67 @@ +{ + "Null": null, + "Неопределено": undefined, + "Ложь": false, + "Истина": true, + "Число (плавающая точка)": 1.001e-2, + "Число (фиксированная точка)": -1000.001, + "Дата": "2011-01-01T12:00:00Z", + "Строка (двойная кавычка)": "Двойная кавычка", + "Строка (одинарная кавычка)": 'Одинарная кавычка', + "Маскируемые символы": " \\ \/ \b \t \n \f \r \" ", + "Заковыристая строка": "\\n\\", + "Проблемные символы": "Спец. символы: \u0000, \u0001, \u0002, ... , \u001e, \u001f; Юникод символы: \u0421\u0430\u0448\u0430\u0020\u003a\u0029", + "Кириллические символы": "’АБВГҐДЂЃЕЀЁЄЖЗЅИЍІЇЙЈКЛЉМНЊОПРСТЋЌУЎФХЦЧЏШЩЪЫЬЭЮЯ", + "Идентификатор": "a763cfbb-f94f-4c67-8e13-0e96a3a7f353", + "Пустой массив": [], + "Пустой объект": {}, + "Массив": [ + null, + undefined, + false, + true, + 1.001e-2, + -1000.001, + "2011-01-01T12:00:00Z", + "Двойная кавычка", + 'Одинарная кавычка', + "a763cfbb-f94f-4c67-8e13-0e96a3a7f353", + [ + "Первый элемент", + "Второй элемент" + ], + { + "Имя": "Александр", + "Отчество": "Владимирович", + "Фамилия": "Переверзев" + }, + { + "ДопустимоеИмяСвойства": true, + "Недопустимое Имя Свойства": false + } + ], + "Структура": + { + "Имя": "Александр", + "Отчество": "Владимирович", + "Фамилия": "Переверзев" + }, + "Соответствие": + { + "ДопустимоеИмяСвойства": true, + "Недопустимое Имя Свойства": false + }, + "Ссылка": + { + "Ссылка": "00000000-0000-0000-0000-000000000000", + "Представление": "Неизвестная ссылка" + }, + "COMSafeArray": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] +} \ No newline at end of file diff --git a/src/Plugins/JSON/und/copyinfo b/src/Plugins/JSON/und/copyinfo new file mode 100644 index 00000000..88f32bb8 --- /dev/null +++ b/src/Plugins/JSON/und/copyinfo @@ -0,0 +1,13 @@ +{4, +{1, +{a4f339bc-7376-43c4-af35-6b4b76e8d3b5,a4f339bc-7376-43c4-af35-6b4b76e8d3b5,1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"JSON"} +} +}, +{1, +{d2613f97-392a-42d5-9f46-dbe7e603f4c9,a4f339bc-7376-43c4-af35-6b4b76e8d3b5,0} +}, +{0}, +{0,0}, +{0} +} \ No newline at end of file diff --git a/src/Plugins/JSON/und/root b/src/Plugins/JSON/und/root new file mode 100644 index 00000000..73dec59f --- /dev/null +++ b/src/Plugins/JSON/und/root @@ -0,0 +1 @@ +{2,89ae406c-4f6b-4501-842f-bd65f4e952bc,} \ No newline at end of file diff --git a/src/Plugins/JSON/und/version b/src/Plugins/JSON/und/version new file mode 100644 index 00000000..57cc6067 --- /dev/null +++ b/src/Plugins/JSON/und/version @@ -0,0 +1,5 @@ +{ +{216,0, +{80214,0} +} +} \ No newline at end of file diff --git a/src/Plugins/JSON/und/versions b/src/Plugins/JSON/und/versions new file mode 100644 index 00000000..828c0c92 --- /dev/null +++ b/src/Plugins/JSON/und/versions @@ -0,0 +1 @@ +{1,12,"",ad542962-0fc2-4676-81e0-fe84b26e762f,"41d7ae5c-a2dd-4493-a296-26417b78fed0",e50c47f2-4eae-4280-ae71-f90f6e95c457,"41d7ae5c-a2dd-4493-a296-26417b78fed0.0",f91c836a-4e14-4075-abd2-cb29a0507c63,"41d7ae5c-a2dd-4493-a296-26417b78fed0.1",0e37708e-e8a8-44ce-8dd9-d2748fe09df1,"89ae406c-4f6b-4501-842f-bd65f4e952bc",2344e0e3-9aca-4486-83af-c4fe643e90b6,"a4f339bc-7376-43c4-af35-6b4b76e8d3b5.0",71ba6532-7d66-4177-a508-ff607bcacdd1,"cadc77d3-254f-43b4-90f1-9755cfc479b0",f8cbd1e4-28b2-4b11-b560-4dbfc125a8aa,"cadc77d3-254f-43b4-90f1-9755cfc479b0.0",a35b34dd-7366-4b37-920c-b0315bdd3ce3,"copyinfo",0d7c5c69-9b5e-4e49-8b0a-60806c7e2092,"root",e3dc8f76-43e4-4250-a522-4740f3ab6a58,"version",091f12f6-0f33-4d6e-be6d-c54e03fb224f,"versions",88f9a311-5e9e-4aa0-aa17-91c401f235d7} \ No newline at end of file diff --git "a/src/Plugins/JSON/\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/Plugins/JSON/\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..21759d02 --- /dev/null +++ "b/src/Plugins/JSON/\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,67 @@ +{ + "Null": null, + "Неопределено": undefined, + "Ложь": false, + "Истина": true, + "Число (плавающая точка)": 1.001e-2, + "Число (фиксированная точка)": -1000.001, + "Дата": "2011-01-01T12:00:00Z", + "Строка (двойная кавычка)": "Двойная кавычка", + "Строка (одинарная кавычка)": 'Одинарная кавычка', + "Маскируемые символы": " \\ \/ \b \t \n \f \r \" ", + "Заковыристая строка": "\\n\\", + "Проблемные символы": "Спец. символы: \u0000, \u0001, \u0002, ... , \u001e, \u001f; Юникод символы: \u0421\u0430\u0448\u0430\u0020\u003a\u0029", + "Кириллические символы": "’АБВГҐДЂЃЕЀЁЄЖЗЅИЍІЇЙЈКЛЉМНЊОПРСТЋЌУЎФХЦЧЏШЩЪЫЬЭЮЯ", + "Идентификатор": "a763cfbb-f94f-4c67-8e13-0e96a3a7f353", + "Пустой массив": [], + "Пустой объект": {}, + "Массив": [ + null, + undefined, + false, + true, + 1.001e-2, + -1000.001, + "2011-01-01T12:00:00Z", + "Двойная кавычка", + 'Одинарная кавычка', + "a763cfbb-f94f-4c67-8e13-0e96a3a7f353", + [ + "Первый элемент", + "Второй элемент" + ], + { + "Имя": "Александр", + "Отчество": "Владимирович", + "Фамилия": "Переверзев" + }, + { + "ДопустимоеИмяСвойства": true, + "Недопустимое Имя Свойства": false + } + ], + "Структура": + { + "Имя": "Александр", + "Отчество": "Владимирович", + "Фамилия": "Переверзев" + }, + "Соответствие": + { + "ДопустимоеИмяСвойства": true, + "Недопустимое Имя Свойства": false + }, + "Ссылка": + { + "Ссылка": "00000000-0000-0000-0000-000000000000", + "Представление": "Неизвестная ссылка" + }, + "COMSafeArray": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] +} \ 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\260AllureXML/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\260AllureXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index 12ecaa3a..0a3d6050 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\260AllureXML/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\260AllureXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -57,12 +57,12 @@ // } Report generator interface &НаКлиенте -Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт +//Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт - Экспортировать(Отчет, ПолныйПутьФайла); - ВыполнитьОбработкуОповещения(ОбработкаОповещения); +// Экспортировать(Отчет, ПолныйПутьФайла); +// ВыполнитьОбработкуОповещения(ОбработкаОповещения); -КонецПроцедуры +//КонецПроцедуры // { Helpers @@ -72,8 +72,8 @@ Функция ПолучитьУникальноеИмяФайла(Знач ИмяФайла) Файл = Новый Файл(ИмяФайла); ГУИД = Новый УникальныйИдентификатор; - ИмяФайла = СтрШаблон("%1-%2-testsuite.xml", ГУИД, Файл.ИмяБезРасширения); - ИмяФайла = СтрШаблон("%1/%2", Файл.Путь, ИмяФайла); + ИмяФайла = ЭтотОбъектНаСервере().СтроковыеУтилиты.СтрШаблон82("%1-%2-testsuite.xml", ГУИД, Файл.ИмяБезРасширения); + ИмяФайла = ЭтотОбъектНаСервере().СтроковыеУтилиты.СтрШаблон82("%1/%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\260AllureXML/ObjectModule.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\260AllureXML/ObjectModule.bsl" index 58d2d13a..e6cb1061 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\260AllureXML/ObjectModule.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\260AllureXML/ObjectModule.bsl" @@ -1,4 +1,5 @@ - +Перем КонтекстЯдра; + // { Plugin interface Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт Результат = Новый Структура; @@ -10,17 +11,19 @@ КонецФункции Процедура Инициализация(КонтекстЯдраПараметр) Экспорт + УстановитьКонтекстЯдра(КонтекстЯдраПараметр); КонецПроцедуры // } Plugin interface // { Report generator interface -Функция СоздатьОтчет(КонтекстЯдра, РезультатыТестирования) Экспорт +Функция СоздатьОтчет(КонтекстЯдраПараметр, РезультатыТестирования) Экспорт + УстановитьКонтекстЯдра(КонтекстЯдраПараметр); ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); ЭтотОбъект.ТипыУзловДереваТестов = ПостроительДереваТестов.ТипыУзловДереваТестов; ЭтотОбъект.ИконкиУзловДереваТестов = ПостроительДереваТестов.ИконкиУзловДереваТестов; - ЭтотОбъект.СостоянияТестов = КонтекстЯдра.СостоянияТестов; - Отчет = СоздатьОтчетНаСервере(РезультатыТестирования); - + ЭтотОбъект.СостоянияТестов = КонтекстЯдраПараметр.СостоянияТестов; + ЭтотОбъект.СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты"); + Отчет = СоздатьОтчетНаСервере(РезультатыТестирования); Возврат Отчет; КонецФункции @@ -195,23 +198,23 @@ Функция ПолучитьУникальноеИмяФайла(Знач ИмяФайла) Файл = Новый Файл(ИмяФайла); ГУИД = Новый УникальныйИдентификатор; - ИмяФайла = СтрШаблон("%1-%2-testsuite.xml", ГУИД, Файл.ИмяБезРасширения); - ИмяФайла = СтрШаблон("%1/%2", Файл.Путь, ИмяФайла); + ИмяФайла = СтроковыеУтилиты.СтрШаблон82("%1-%2-testsuite.xml", ГУИД, Файл.ИмяБезРасширения); + ИмяФайла = СтроковыеУтилиты.СтрШаблон82("%1/%2", Файл.Путь, ИмяФайла); Возврат ИмяФайла; КонецФункции Процедура ПроверитьИмяФайлаРезультатаAllure(ИмяФайла) Экспорт Сообщение = ""; Файл = Новый Файл(ИмяФайла); - Если СтрНайти(Файл.Имя, "-testsuite") = 0 Тогда - Сообщение = СтрШаблон("%1 + Если Найти(Файл.Имя, "-testsuite") = 0 Тогда + Сообщение = СтроковыеУтилиты.СтрШаблон82("%1 |Файл-результат для Allure должен заканчиваться на ""-testsuite.xml"" |Иначе Allure не покажет результаты тестирования |А сейчас имя файла %2", Сообщение, Файл.ПолноеИмя); КонецЕсли; Если Файл.Расширение <> ".xml" Тогда - Сообщение = СтрШаблон("%1 + Сообщение = СтроковыеУтилиты.СтрШаблон82("%1 |Файл-результат для Allure должен иметь расширение ""xml"" |Иначе Allure не покажет результаты тестирования", Сообщение); @@ -292,3 +295,10 @@ КонецФункции // } Helpers + +// { Обратная совместимость с 8.2 +Процедура УстановитьКонтекстЯдра(КонтекстЯдраПараметр) + КонтекстЯдра = КонтекстЯдраПараметр; + СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты"); +КонецПроцедуры +// } Обратная совместимость с 8.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\260AllureXML/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\260AllureXML/maps.txt" index 7f4ab4f7..af02596b 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\260AllureXML/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\260AllureXML/maps.txt" @@ -1,2 +1,2 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 144) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 123) Макеты\СхемаAllure.txt-->2d3462c8-c871-442e-81a7-d457064fdf0b.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\260AllureXML/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" "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\260AllureXML/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" index 6a9746fa..505011fb 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\260AllureXML/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" +++ "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\260AllureXML/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" @@ -4,21 +4,21 @@ {1, {4,85629dd2-6be4-49c6-9a69-13411102aa57,3fdd55c8-e92e-4f99-8b28-3ba8957b50ab, {0, -{1, +{0, {0,0,908d0aaf-e4ec-4668-8d14-3e8075d222fd},"ГенераторОтчетаAllureXML", -{1,"ru","Генератор отчета Allure XML"},"",0,0} +{1,"ru","Генератор отчета Allure XML"},""} },4e8e1a4a-a947-419b-95c8-58a411e3ffa4,"",00000000-0000-0000-0000-000000000000},4, {2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, {3daea016-69b7-4ed4-9453-127911372fe6,1,2d3462c8-c871-442e-81a7-d457064fdf0b}, {d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,4e8e1a4a-a947-419b-95c8-58a411e3ffa4}, -{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,4, +{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,5, { {0, -{27, +{25, {2, -{1, +{0, {0,0,72263b85-e321-40b2-b5dc-368b036f7aaa},"ТипыУзловДереваТестов", -{1,"ru","Типы узлов дерева тестов"},"",0,0}, +{1,"ru","Типы узлов дерева тестов"},""}, {"Pattern"} },0, {0}, @@ -29,15 +29,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,23dd7cb5-a648-4588-817a-d77a4106998e},"ИконкиУзловДереваТестов", -{1,"ru","Иконки узлов дерева тестов"},"",0,0}, +{1,"ru","Иконки узлов дерева тестов"},""}, {"Pattern"} },0, {0}, @@ -48,15 +48,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,edb4e982-95f6-4760-818c-4bcd498a85aa},"СостоянияТестов", -{1,"ru","Состояния тестов"},"",0,0}, +{1,"ru","Состояния тестов"},""}, {"Pattern"} },0, {0}, @@ -67,15 +67,34 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,7186aaf8-38ee-48a8-99e9-225b1d1f5721},"СтатусыJUnit", -{1,"ru","Статусы junit"},"",0,0}, +{1,"ru","Статусы junit"},""}, +{"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,1f50b0cb-7595-48e8-95f8-4aadb08ef3b4},"СтроковыеУтилиты", +{1,"ru","Строковые утилиты"},""}, {"Pattern"} },0, {0}, @@ -86,7 +105,7 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },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\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" "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\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" index 554d4f73..e9f6cd91 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\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" +++ "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\260AllureXML/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\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\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "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\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index 6db4aa89..870a792e 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\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "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\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" @@ -1,9 +1,9 @@ -{3, -{46,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,1,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,"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,1,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,100,1,1,0}," +{6,3,0,1}, +{0,0,0},0,0,1} +}," // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -106,12 +85,12 @@ // } Report generator interface &НаКлиенте -Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт +//Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт - Экспортировать(Отчет, ПолныйПутьФайла); - ВыполнитьОбработкуОповещения(ОбработкаОповещения); +// Экспортировать(Отчет, ПолныйПутьФайла); +// ВыполнитьОбработкуОповещения(ОбработкаОповещения); -КонецПроцедуры +//КонецПроцедуры // { Helpers @@ -121,8 +100,8 @@ Функция ПолучитьУникальноеИмяФайла(Знач ИмяФайла) Файл = Новый Файл(ИмяФайла); ГУИД = Новый УникальныйИдентификатор; - ИмяФайла = СтрШаблон(""%1-%2-testsuite.xml"", ГУИД, Файл.ИмяБезРасширения); - ИмяФайла = СтрШаблон(""%1/%2"", Файл.Путь, ИмяФайла); + ИмяФайла = ЭтотОбъектНаСервере().СтроковыеУтилиты.СтрШаблон82(""%1-%2-testsuite.xml"", ГУИД, Файл.ИмяБезРасширения); + ИмяФайла = ЭтотОбъектНаСервере().СтроковыеУтилиты.СтрШаблон82(""%1/%2"", Файл.Путь, ИмяФайла); Возврат ИмяФайла; КонецФункции @@ -173,10 +152,10 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ -YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} +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\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\260AllureXML/und/version" "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\260AllureXML/und/version" index 421eee79..c23bfe28 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\260AllureXML/und/version" +++ "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\260AllureXML/und/version" @@ -1,5 +1,3 @@ { -{216,0, -{80308,0} -} +{216,0} } \ 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\260AllureXML/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\260AllureXML/und/versions" index f63583c5..44dd9b49 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\260AllureXML/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\260AllureXML/und/versions" @@ -1 +1 @@ -{1,11,"",66c7774c-3aaf-4d98-997f-beda27769258,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",80164a6b-29f9-4f36-8cda-456351204ecf,"2d3462c8-c871-442e-81a7-d457064fdf0b",a777db5b-8171-4f65-a213-81d183d088e9,"2d3462c8-c871-442e-81a7-d457064fdf0b.0",2cc75a03-ce85-4589-b2b1-abd5ceb7549e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",d6dd6469-2080-4a56-bb89-96403504bd2e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",a876ca90-90c8-4cc8-978a-c9dc412cd37a,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",e7e11dd3-7d0f-4339-bf1d-797481fa0988,"copyinfo",c8bb8d0d-ffe9-48a4-acc4-349609a4a290,"root",38099556-5e1c-4da5-bf78-be7cc022c41d,"version",e3e43316-5568-4836-afed-4c8979c2b5eb,"versions",41f91086-79e0-4aee-8ac1-39f4d1623029} \ No newline at end of file +{1,11,"",104d77b4-4f8e-4554-a53f-bf1c74c2de85,"versions",66763185-6472-4e44-9ee4-37d4fef19f85,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",81834580-702c-43a1-bf27-575c2df08cc2,"2d3462c8-c871-442e-81a7-d457064fdf0b.0",2cc75a03-ce85-4589-b2b1-abd5ceb7549e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",37882cd2-c95a-4ff9-b574-4b27e4d13999,"root",7d287adc-c1a9-48a9-947b-8c0aceca50b6,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",a5ebd1ba-6f24-4c59-a290-cac3c6965167,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",a0b5455d-9751-4d15-ab2b-360b96dd6435,"version",14ecb40b-7aa7-4a30-842a-89d294090b95,"2d3462c8-c871-442e-81a7-d457064fdf0b",a777db5b-8171-4f65-a213-81d183d088e9,"copyinfo",25397345-8a46-48b5-acf4-4d8a7f05b149} \ 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.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/ObjectModule.bsl" index 4be4b504..3ab2c0f9 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.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/ObjectModule.bsl" @@ -76,6 +76,32 @@ #КонецЕсли Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт - ВызватьИсключение "Метод не реализован"; + ФайлОтчета = Новый Файл(ПолныйПутьФайла); + Отчет.Записать(ПолныйПутьФайла, ПолучитьТипФайлаПоРасширению(ФайлОтчета.Расширение)); КонецПроцедуры // } Report generator interface + +// { Helpers +Функция ПолучитьТипФайлаПоРасширению(Знач РасширениеФайла) + РасширениеФайла = ВРег(РасширениеФайла); + Если РасширениеФайла = ".MXL" Тогда + ТипФайла = ТипФайлаТабличногоДокумента.MXL; + ИначеЕсли РасширениеФайла = ".ODS" Тогда + ТипФайла = ТипФайлаТабличногоДокумента.ODS; + ИначеЕсли РасширениеФайла = ".DOCX" Тогда + ТипФайла = ТипФайлаТабличногоДокумента.DOCX; + ИначеЕсли РасширениеФайла = ".HTML" Или РасширениеФайла = ".HTM" Тогда + ТипФайла = ТипФайлаТабличногоДокумента.HTML; + ИначеЕсли РасширениеФайла = ".XLS" Тогда + ТипФайла = ТипФайлаТабличногоДокумента.XLS; + ИначеЕсли РасширениеФайла = ".XLSX" Тогда + ТипФайла = ТипФайлаТабличногоДокумента.XLSX; + ИначеЕсли РасширениеФайла = ".TXT" Тогда + ТипФайла = ТипФайлаТабличногоДокумента.TXT; + Иначе + ВызватьИсключение "Неизвестное расширение файла отчета: " + РасширениеФайла; + КонецЕсли; + Возврат ТипФайла; +КонецФункции +// } 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/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 2209dc20..34fc22ac 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,"",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 +{1,11,"",925c1734-0134-498b-8938-6b3603855b67,"versions",2c14782c-8637-4e30-b6ae-8e50831577e1,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",6d944bfc-62a8-43fd-9920-27f1c48dc5e5,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",d8bc217e-ec3f-4662-8f90-30d32baaaab2,"root",c21f8fa3-dacf-4d0b-a28a-5e2114e156b5,"e723b36e-7faa-4345-bf5b-763f60cd5663",050e27b0-d512-4198-bbe8-0f50475d623e,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",be2fdd94-765d-4449-97df-5671ebab06db,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",c7f3b7a0-1902-42e5-a2d5-c3fc35cfb027,"version",a0b6866d-fb44-4cdc-b42f-323386759033,"e723b36e-7faa-4345-bf5b-763f60cd5663.0",f12d5434-71cb-470a-9b1b-1453b3dcb8d8,"copyinfo",1c9c62bc-4349-4537-a8fd-e99906ae5314} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/ObjectModule.bsl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/ObjectModule.bsl" index cd88749f..1e3ecc12 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/ObjectModule.bsl" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/ObjectModule.bsl" @@ -36,11 +36,11 @@ Сообщение = "КодВозврата " + КодВозврата; ЗафиксироватьВЖурналеРегистрации("xUnitFor1C", Сообщение); - - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.ОткрытьФайл(ПутьФайлаКодаВозврата); - ЗаписьJSON.ЗаписатьЗначение(КодВозврата); - ЗаписьJSON.Закрыть(); + + //ЗаписьJSON = Новый ЗаписьJSON; + ЗаписьJSON = КонтекстЯдра.Плагин("JSON"); + ЗаписатьРезультатВФайлJSON(ЗаписьJSON, ПутьФайлаКодаВозврата, КодВозврата); + Исключение Инфо = ИнформацияОбОшибке(); ОписаниеОшибки = "Ошибка формирования файла статуса возврата при выполнении тестов в пакетном режиме @@ -58,3 +58,16 @@ Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач ИдентификаторГенератораОтчета, Знач ОписаниеОшибки) Экспорт ЗаписьЖурналаРегистрации(ИдентификаторГенератораОтчета, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки); КонецПроцедуры + +Процедура ЗаписатьРезультатВФайлJSON(ЗаписьJSON, ПутьФайлаКодаВозврата, КодВозврата) + + СтрокаJSON = ЗаписьJSON.ЗаписатьJSON(КодВозврата); + Текст = Новый ЗаписьТекста(ПутьФайлаКодаВозврата, КодировкаТекста.UTF8); + Текст.Записать(СтрокаJSON); + Текст.Закрыть(); + + //ЗаписьJSON.ОткрытьФайл(ПутьФайлаКодаВозврата); + //ЗаписьJSON.ЗаписатьЗначение(КодВозврата); + //ЗаписьJSON.Закрыть(); + +КонецПроцедуры \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/maps.txt" index 8a24421c..a249fa52 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/maps.txt" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/maps.txt" @@ -1 +1 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 111) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 90) diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" index 6817655f..03e8e9db 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/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}, @@ -14,11 +14,11 @@ {ec6bb5e5-b7a8-4d75-bec9-658107a699cf,1, { {0, -{27, +{25, {2, -{1, +{0, {0,0,92cdb7a8-5d8a-428c-a6f1-110d04fe678c},"СостоянияТестов", -{1,"ru","Состояния тестов"},"",0,0}, +{1,"ru","Состояния тестов"},""}, {"Pattern"} },0, {0}, @@ -29,7 +29,7 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0} } } diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" index 554d4f73..e9f6cd91 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/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\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index 347d6e4b..2485cb15 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" @@ -1,9 +1,9 @@ -{3, -{46,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,1,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,"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,1,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,100,1,1,0}," +{6,3,0,1}, +{0,0,0},0,0,1} +}," // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -140,10 +119,10 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ -YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} +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\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/version" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/version" index 421eee79..c23bfe28 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/version" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/version" @@ -1,5 +1,3 @@ { -{216,0, -{80308,0} -} +{216,0} } \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/versions" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/versions" index c2942f7d..da25265e 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/versions" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\232\320\276\320\264\320\260\320\222\320\276\320\267\320\262\321\200\320\260\321\202\320\260/und/versions" @@ -1 +1 @@ -{1,9,"",a27ea95f-75fa-49b5-84d0-61d5ae096370,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",739b4fb1-9723-4150-9fb8-b337df5921f4,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",2994d963-0c28-4350-bd79-9ea89485b518,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",efc24471-c15d-4df5-909e-487f7966a989,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",219056b1-584d-47be-afc1-7852c36cd0ea,"copyinfo",fedc64e3-ae5c-4c3f-85d8-f1fa40d2adf2,"root",2ada20e9-ee03-4491-9a60-85229bde3a02,"version",79fb694b-9965-47b5-a99a-f1845d1d0256,"versions",13e49c6a-e5db-4491-a46d-fd8e44d54a54} \ No newline at end of file +{1,9,"",afd87b4c-bee5-416e-9256-bc01ae6162d4,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",7d2be9dc-9da0-4bee-96e4-79212bc1b233,"versions",ec9b2022-e060-49e7-9f8b-772e4ca15cab,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",621fa832-d2df-4e9d-a26e-ea68921f7428,"root",b1906165-b65d-46c5-af89-a7afc491a0f9,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",d95178ea-2188-4adb-a838-46f9e8163985,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",1a481447-2c8f-4e23-b8df-451a26758088,"version",8c0e3fae-98c0-4160-9db8-5141b2398370,"copyinfo",be53baae-3461-4be6-bad1-def22d56e398} \ 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.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/ObjectModule.bsl" index a4264f0a..d05188b5 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.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/ObjectModule.bsl" @@ -132,7 +132,7 @@ Инфо = ИнформацияОбОшибке(); Если Инфо.ИмяМодуля = "ВнешняяОбработка.ЗагрузчикФайла.МодульОбъекта" И Инфо.Описание = "Слишком много фактических параметров" И - СтрНайти(Инфо.ИсходнаяСтрока, "Обработка.ЗаполнитьНаборТестов(ЭтотОбъект, КонтекстЯдра);") > 0 + Найти(Инфо.ИсходнаяСтрока, "Обработка.ЗаполнитьНаборТестов(ЭтотОбъект, КонтекстЯдра);") > 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\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 db702b94..861bbd48 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\Форма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (50, 476) +Form\Форма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (29, 455) 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/51efd65a-ed36-4be7-a563-89b34ebfa851" "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/51efd65a-ed36-4be7-a563-89b34ebfa851" index 9e39a2bc..5641a961 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/51efd65a-ed36-4be7-a563-89b34ebfa851" +++ "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/51efd65a-ed36-4be7-a563-89b34ebfa851" @@ -4,9 +4,9 @@ {1, {4,5cce5f28-d8c9-48d6-9f87-928be46d5662,0f2fb654-1692-41fa-b66f-583222be369f, {0, -{1, +{0, {0,0,dfe532e1-d0ef-4008-afd4-214781ee4960},"ЗагрузчикФайла", -{1,"ru","Загрузчик файла"},"",0,0} +{1,"ru","Загрузчик файла"},""} },d75f146d-5027-4604-80fd-3b704ddd86a8,"",00000000-0000-0000-0000-000000000000},4, {2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, {3daea016-69b7-4ed4-9453-127911372fe6,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\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8" "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" index cb022da1..ad3be4ea 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" +++ "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" @@ -1,15 +1,10 @@ {1, {1, {0, -{12, -{1, +{9, +{0, {0,0,d75f146d-5027-4604-80fd-3b704ddd86a8},"Форма", -{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\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 6f15732c..c354788a 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" @@ -1,9 +1,9 @@ -{3, -{46,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,1,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,"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,1,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,100,1,1,0},"&НаКлиенте +{6,3,0,1}, +{0,0,0},0,0,1} +},"&НаКлиенте Перем КэшПостроительДереваТестов; &НаКлиенте Перем ЗагружаемыйПуть; @@ -526,10 +505,10 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ -YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} +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\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/version" "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/version" index 421eee79..c23bfe28 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/version" +++ "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/version" @@ -1,5 +1,3 @@ { -{216,0, -{80308,0} -} +{216,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\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 dd87c5fb..66222fba 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,"",8166408f-4159-4e2b-9781-2d591673955c,"51efd65a-ed36-4be7-a563-89b34ebfa851",aa5965af-4229-4bbe-b205-090baded4def,"copyinfo",a2e3eb0b-0020-47ab-ad3d-4a2d481c4930,"d75f146d-5027-4604-80fd-3b704ddd86a8",3d1dd6a8-9cce-40fd-ac47-2fb03a6d359f,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",06306db7-53d9-4399-ba5b-df74053ccdb3,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",3a46fc39-ff5b-4c85-8cdc-989a5b0e6fcb,"root",4d97ec92-f9c5-4e9e-b11c-dc73ed1a5dc7,"version",1e8c5a76-64cc-49c6-b5e3-648fcce003d9,"versions",394b2e82-e841-4627-863c-c710af5699c5} \ No newline at end of file +{1,9,"",311ba90b-4f17-437b-971f-4a952939ed6a,"versions",d4699b2b-310b-4f04-a806-eadfea9f4d6a,"root",2cd21cc4-2257-4a5c-b7b6-aa36830ca82a,"51efd65a-ed36-4be7-a563-89b34ebfa851",fb7798e6-0ce7-40a6-9611-ae52c97fe7ff,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",c08deae5-6940-4d2d-821f-e0d2213b00a9,"d75f146d-5027-4604-80fd-3b704ddd86a8",ac0c3f73-fc2b-42d3-a46e-b72626957f5e,"version",f7debc6e-fa0a-4acb-bfa0-761d1e2b14f1,"copyinfo",73801158-73ea-41fd-83f4-de874f8c4b07,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",a276df7c-cdf7-4b03-8098-119afdc269ab} \ 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.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/ObjectModule.bsl" index f00aa3e8..89a00be6 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/ObjectModule.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/ObjectModule.bsl" @@ -1,4 +1,7 @@ //TODO раскомментировать утверждения во всех методах после решения Архитектура взаимодействия плагинов/утилит между собой #568 https://github.com/xDrivenDevelopment/xUnitFor1C/issues/568 +Перем КонтекстЯдра; +Перем СтроковыеУтилиты; + // { Plugin interface Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -11,9 +14,15 @@ КонецФункции Процедура Инициализация(КонтекстЯдраПараметр) Экспорт + УстановитьКонтекстЯдра(КонтекстЯдраПараметр); КонецПроцедуры // } Plugin interface +Процедура УстановитьКонтекстЯдра(КонтекстЯдраПараметр) + КонтекстЯдра = КонтекстЯдраПараметр; + СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты"); +КонецПроцедуры + //{ Методы работы с БД // Функция - Получить количество документов по отбору @@ -345,7 +354,7 @@ //ПроверитьЗаполненность(видМетаданного, "видМетаданного"); Запрос = Новый Запрос; - Запрос.Текст = СтрШаблон("ВЫБРАТЬ ПЕРВЫЕ %3 + Запрос.Текст = СтроковыеУтилиты.СтрШаблон82("ВЫБРАТЬ ПЕРВЫЕ %3 | * |ИЗ | %1.%2 КАК Таб 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 5accc601..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\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 69) +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/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" "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/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" index 159373a3..d1ec5da4 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/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" +++ "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/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\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" "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/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" index 554d4f73..e9f6cd91 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/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" +++ "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/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\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "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/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index 2874b88c..305af89b 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/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "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/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" @@ -1,9 +1,9 @@ -{3, -{46,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,1,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,"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,1,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,100,1,1,0}," +{6,3,0,1}, +{0,0,0},0,0,1} +}," // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -98,10 +77,10 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ -YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} +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\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/und/version" "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/und/version" index e28c2640..c23bfe28 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/und/version" +++ "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/und/version" @@ -1,5 +1,3 @@ { -{216,0, -{80310,0} -} +{216,0} } \ 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/und/versions" "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/und/versions" index 39463ce0..0f38d299 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/und/versions" +++ "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/und/versions" @@ -1 +1 @@ -{1,9,"",834ed259-592d-458d-bc05-1a296ab4ad46,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",1018dc0a-d682-4971-ab8c-0eb0061f2171,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",5ce621db-cda0-4f9c-bebc-72259fc012e8,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",c7647e2d-5ccf-4bd6-ae59-34b1645caec3,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",68709219-5287-4982-971d-fd3e4ac475d8,"copyinfo",51f93d9a-6649-4f42-bf71-c907f672b634,"root",237fdaed-362b-4098-be25-92caf4329f25,"version",f4541ec0-fb94-4443-963d-ab8556f0248f,"versions",2826abc0-e039-4e46-a287-5c5ba6a560cb} \ No newline at end of file +{1,9,"",5461a69e-670b-403c-b686-ef127774e794,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",8718fd86-b11b-47f0-a5f8-ac04b44e039d,"versions",5b61562d-c6eb-40b8-8346-25c120682f5f,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",e6aef681-f470-44d6-99cc-6829e1198a93,"root",6416474f-f206-4bc7-a391-ae2f5fcd6f27,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",1184ba2f-2fd4-4a0f-9b2e-66fdd8107e46,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",e0637d7b-1862-4868-aa88-5a431b58fe72,"version",9ca4ed64-2263-48e6-b346-52727113a8c1,"copyinfo",c829b170-beb0-44f3-9fd3-a15a5c2c8540} \ No newline at end of file diff --git "a/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/ObjectModule.bsl" "b/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/ObjectModule.bsl" index 8cc483ed..87304f34 100644 --- "a/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/ObjectModule.bsl" +++ "b/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/ObjectModule.bsl" @@ -78,10 +78,12 @@ Результат = Новый Структура(); ФайлНастроек = Новый Файл(ПутьФайлаНастроек); Если ФайлНастроек.Существует() Тогда - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.ОткрытьФайл(ПутьФайлаНастроек); - - Результат = ПрочитатьJSON(ЧтениеJSON, Ложь); + ЧтениеТекста = Новый ЧтениеТекста; + ЧтениеТекста.Открыть(ПутьФайлаНастроек, КодировкаТекста.UTF8); + JSON = КонтекстЯдра.Плагин("JSON"); + JSON.НастройкаАвтоматическоеПриведениеОбъектаКСтруктуре(Истина); + Результат = JSON.Прочитать(ЧтениеТекста.Прочитать()); КонецЕсли; Возврат Результат; КонецФункции + \ No newline at end of file diff --git "a/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/version" "b/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/version" index 421eee79..57cc6067 100644 --- "a/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/version" +++ "b/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/version" @@ -1,5 +1,5 @@ { {216,0, -{80308,0} +{80214,0} } } \ No newline at end of file diff --git "a/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/versions" "b/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/versions" index 483f55dc..c941798a 100644 --- "a/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/versions" +++ "b/src/Plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/versions" @@ -1 +1 @@ -{1,9,"",62cd83ed-088c-4815-b3c2-f5805a8be792,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",2ab0f480-9aff-4781-95ab-41fb2654ccac,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",9364a34f-bd13-4a02-bcc7-114d77d8dead,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",90559879-20ad-422a-bf11-2829ef124e79,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",6bd62cd7-a9f7-42da-b3de-a3a4dbd8044f,"copyinfo",712a02f0-cead-4b02-b008-d26e4bec7a4a,"root",e59752bc-9011-42f7-840e-84765a4a6d33,"version",59fb6960-227d-4a16-9416-d3da3a59c008,"versions",5cad96d2-7b9e-4682-8c7c-126398c4f9db} \ No newline at end of file +{1,9,"",aa294fb4-466c-40aa-8c9e-de8d86ec51ed,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",ea0420f2-b3bf-463a-8c37-a9b096e88829,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",0f886c8c-2d13-4b53-82e1-cb061c05b65b,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",2198dd3e-87ea-4e73-86e9-b7aba98fcdd5,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",56ec6728-4386-4dd6-905f-7c0da89f300d,"copyinfo",a08f56b1-8017-4c80-bf7d-053b97b0191b,"root",eff390f9-8a6f-4861-a19a-060872cb6248,"version",0092cde8-89e1-4a9e-b1a7-5cf99a9df4d5,"versions",54b23f42-7145-463c-8cfc-e9dad7b5e0df} \ 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/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\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 b8115f77..0076e448 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.bsl" +++ "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" @@ -1263,6 +1263,36 @@ КонецФункции +Функция СтрШаблон82(Стр, П1, П2=Неопределено, П3=Неопределено, П4=Неопределено, П5=Неопределено, П6=Неопределено, П7=Неопределено, П8=Неопределено, П9=Неопределено) Экспорт + + МассивАргументов = Новый Массив; + МассивАргументов.Добавить(П1); + МассивАргументов.Добавить(П2); + МассивАргументов.Добавить(П3); + МассивАргументов.Добавить(П4); + МассивАргументов.Добавить(П5); + МассивАргументов.Добавить(П6); + МассивАргументов.Добавить(П7); + МассивАргументов.Добавить(П8); + МассивАргументов.Добавить(П9); + + Результат = Стр; + + Количество = МассивАргументов.Количество(); + Для ПорядковыйНомер = 1 По Количество Цикл + ТекущееЗначение = МассивАргументов[ПорядковыйНомер - 1]; + Если ТекущееЗначение = Неопределено И ПорядковыйНомер > 1 Тогда + Прервать; + ИначеЕсли ТекущееЗначение = Неопределено Тогда + ТекущееЗначение = ""; + КонецЕсли; + Результат = СтрЗаменить(Результат, "%" + ПорядковыйНомер, ТекущееЗначение); + КонецЦикла; + + Возврат Результат; + +КонецФункции + // } Функции работы со строками 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.bsl" "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" index 9fa2ab21..9dbce8c5 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.bsl" +++ "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" @@ -1236,4 +1236,35 @@ КонецФункции +Функция СтрШаблон82(Стр, П1, П2=Неопределено, П3=Неопределено, П4=Неопределено, П5=Неопределено, П6=Неопределено, П7=Неопределено, П8=Неопределено, П9=Неопределено) Экспорт + + МассивАргументов = Новый Массив; + МассивАргументов.Добавить(П1); + МассивАргументов.Добавить(П2); + МассивАргументов.Добавить(П3); + МассивАргументов.Добавить(П4); + МассивАргументов.Добавить(П5); + МассивАргументов.Добавить(П6); + МассивАргументов.Добавить(П7); + МассивАргументов.Добавить(П8); + МассивАргументов.Добавить(П9); + + Результат = Стр; + + Количество = МассивАргументов.Количество(); + Для ПорядковыйНомер = 1 По Количество Цикл + ТекущееЗначение = МассивАргументов[ПорядковыйНомер - 1]; + Если ТекущееЗначение = Неопределено И ПорядковыйНомер > 1 Тогда + Прервать; + ИначеЕсли ТекущееЗначение = Неопределено Тогда + ТекущееЗначение = ""; + КонецЕсли; + Результат = СтрЗаменить(Результат, "%" + ПорядковыйНомер, ТекущееЗначение); + КонецЦикла; + + Возврат Результат; + +КонецФункции + + // } Функции работы со строками 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" index a775f08f..7e8b837d 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/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" @@ -1 +1 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 1 303) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 1 333) 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 4fd57611..2e1806a5 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" @@ -1291,6 +1291,36 @@ КонецФункции +Функция СтрШаблон82(Стр, П1, П2=Неопределено, П3=Неопределено, П4=Неопределено, П5=Неопределено, П6=Неопределено, П7=Неопределено, П8=Неопределено, П9=Неопределено) Экспорт + + МассивАргументов = Новый Массив; + МассивАргументов.Добавить(П1); + МассивАргументов.Добавить(П2); + МассивАргументов.Добавить(П3); + МассивАргументов.Добавить(П4); + МассивАргументов.Добавить(П5); + МассивАргументов.Добавить(П6); + МассивАргументов.Добавить(П7); + МассивАргументов.Добавить(П8); + МассивАргументов.Добавить(П9); + + Результат = Стр; + + Количество = МассивАргументов.Количество(); + Для ПорядковыйНомер = 1 По Количество Цикл + ТекущееЗначение = МассивАргументов[ПорядковыйНомер - 1]; + Если ТекущееЗначение = Неопределено И ПорядковыйНомер > 1 Тогда + Прервать; + ИначеЕсли ТекущееЗначение = Неопределено Тогда + ТекущееЗначение = """"; + КонецЕсли; + Результат = СтрЗаменить(Результат, ""%"" + ПорядковыйНомер, ТекущееЗначение); + КонецЦикла; + + Возврат Результат; + +КонецФункции + // } Функции работы со строками 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 52319eca..9173b619 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,"",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 +{1,9,"",e93fa260-05ca-4482-ae89-56244f5750b6,"versions",bf5618c4-526b-49d1-9430-502011a8d4b6,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",04095b0b-29d2-4e74-af81-e8f7fc7a3409,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",b86ff9dc-3e25-4bb0-8141-9116f77e4249,"root",09a72ffc-5d44-4811-9244-2eaeb3dbe6eb,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",114ce81b-b400-4bbe-baee-e8af58fb7a95,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",8ace3a93-b641-4ff4-9410-9fff09059a0d,"version",28f90475-4776-48ba-aeb0-02e68dfd27c7,"copyinfo",a6478ebb-dd5b-4cbc-8e3e-40c474fd57b1} \ No newline at end of file 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.bsl" "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" index 35231dcd..557f137e 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.bsl" +++ "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" @@ -8,6 +8,8 @@ Перем ФайлСОтчетомОТестировании2; Перем ФайлКодаВозврата; +Перем СтроковыеУтилиты; + // Переменная с путем к обработке в файловой системы // Используется в случаях, когда обработка запущена из встроенного в конфигурацию браузера тестов, // т.к. в этом случае в свойстве ИспользуемоеИмяФайла содержится адрес временного хранилища, а не непосредственный путь @@ -17,6 +19,7 @@ КонтекстЯдра = КонтекстЯдраПараметр; Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); ПарсерКоманднойСтроки = КонтекстЯдра.Плагин("ПарсерКоманднойСтроки"); + СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты"); КонецПроцедуры Функция ПолучитьСписокТестов() Экспорт @@ -112,7 +115,6 @@ + ?(ИдентификаторГенератораОтчета2 = "", "", " ; " + ПарсерКоманднойСтроки.ВозможныеКлючи.xddReport + " " + ИдентификаторГенератораОтчета2 + " """"" + ФайлСОтчетомОТестировании2.ПолноеИмя + """""") + "; " + ПарсерКоманднойСтроки.ВозможныеКлючи.xddExitCodePath + " ГенерацияКодаВозврата """"" + ФайлКодаВозврата.ПолноеИмя + """""" + ";" ; - Возврат СтрокаПараметров; КонецФункции @@ -234,18 +236,42 @@ ВыполнитьПакетныйЗапуск(РежимЗапускаКлиентскогоПриложения.ОбычноеПриложение, СтрокаПараметров); Ожидаем.Что(ФайлЛогаUI.Существует(), "ФайлЛогаUI").ЭтоИстина(); - Ожидаем.Что(ФайлСОтчетомОТестировании.Существует(), "ФайлСОтчетомОТестировании").ЭтоИстина(); - Ожидаем.Что(ФайлСОтчетомОТестировании2.Существует(), "ФайлСОтчетомОТестировании2").ЭтоИстина(); + Ожидаем.Что(ФайлСОтчетомОТестировании.Существует(), "ФайлСОтчетомОТестировании не существует").ЭтоИстина(); + + ФайлСОтчетомОТестировании2Существует = СуществуетФайлОтчетаAllure( + ФайлСОтчетомОТестировании2.Путь, + ФайлСОтчетомОТестировании2.ИмяБезРасширения + ); + Ожидаем.Что(ФайлСОтчетомОТестировании2Существует, "ФайлСОтчетомОТестировании2 не существует").ЭтоИстина(); + Ожидаем.Что(ФайлКодаВозврата.Существует(), "ФайлКодаВозврата не существует").ЭтоИстина(); КонецПроцедуры +Функция СуществуетФайлОтчетаAllure(Путь, ИмяБезРасширения) + + ШаблонИмениФайла = "*-" + ИмяБезРасширения + "-testsuite.xml"; + + НайденныеФайлы = НайтиФайлы(Путь, ШаблонИмениФайла, Ложь); + Если НайденныеФайлы.Количество() Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + Процедура ТестДолжен_ПроверитьЗапускВПакетномРежиме_ТонкийКлиент_ДваОтчетаТестирования() Экспорт ФайлСТестами = ПолучитьФайлПроекта("Tests\Core\Тесты_СистемаПлагинов.epf"); СтрокаПараметров = СформироватьСтрокуПараметров("ЗагрузчикФайла", ФайлСТестами, "ГенераторОтчетаJUnitXML", "ГенераторОтчетаAllureXML"); ВыполнитьПакетныйЗапуск(РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение, СтрокаПараметров); - Ожидаем.Что(ФайлСОтчетомОТестировании.Существует(), "ФайлСОтчетомОТестировании существует").ЭтоИстина(); + ФайлСОтчетомОТестировании2Существует = СуществуетФайлОтчетаAllure( + ФайлСОтчетомОТестировании2.Путь, + ФайлСОтчетомОТестировании2.ИмяБезРасширения + ); + Ожидаем.Что(ФайлСОтчетомОТестировании2Существует, "ФайлСОтчетомОТестировании2 не существует").ЭтоИстина(); + Ожидаем.Что(ФайлКодаВозврата.Существует(), "ФайлКодаВозврата не существует").ЭтоИстина(); КонецПроцедуры @@ -329,7 +355,7 @@ Если КоличествоУпавшихТестов <> ОжидаемоеКоличествоУпавшихТестов или КоличествоЗеленыхТестов <> ОжидаемоеКоличествоЗеленыхТестов Тогда Для каждого КлючЗначение Из РезультатыТестирования.УпавшиеТесты Цикл УпавшийТест = КлючЗначение.Значение; - Сообщить(СтрШаблон("Упал тест <%1>, ошибка %2%3", УпавшийТест.Имя, Символы.ПС, УпавшийТест.ТекстОшибки)); + Сообщить(СтроковыеУтилиты.СтрШаблон82("Упал тест <%1>, ошибка %2%3", УпавшийТест.Имя, Символы.ПС, УпавшийТест.ТекстОшибки)); КонецЦикла; КонецЕсли; 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/0782d8f3-61cb-4919-b6a8-2392febc953a" "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/0782d8f3-61cb-4919-b6a8-2392febc953a" index 0effe163..629865af 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/0782d8f3-61cb-4919-b6a8-2392febc953a" +++ "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/0782d8f3-61cb-4919-b6a8-2392febc953a" @@ -4,9 +4,9 @@ {1, {4,833ef829-c54d-4515-878c-9d8f6f76de0f,50a676e6-6bdd-4af2-b7fa-06f872323517, {0, -{1, +{0, {0,0,7ecade93-aad4-4a6e-bf69-9254664a2793},"Тесты_ЗапускВПакетномРежиме", -{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/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/version" "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/version" index 421eee79..c23bfe28 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/version" +++ "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/version" @@ -1,5 +1,3 @@ { -{216,0, -{80308,0} -} +{216,0} } \ No newline at end of file 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 f9370178..915795c0 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,"",5041abbc-b1f2-45a4-a2a4-295a0e8dc5eb,"0782d8f3-61cb-4919-b6a8-2392febc953a",5e7ca426-2a7a-4348-82ed-be6e89108742,"7ecade93-aad4-4a6e-bf69-9254664a2793.0",044a9ab1-5a18-4694-b6bc-55c5c117bd9e,"copyinfo",280faed5-6b15-41df-8e95-e9422612d146,"root",b5d0f5e9-d825-4ba2-9e09-1bf69c2e88c3,"version",fe42c975-2c43-48e4-b130-d74c56ab6bde,"versions",5dd69500-c660-46d9-9e55-3af82883155f} \ No newline at end of file +{1,7,"",28802349-e736-46ea-b8b2-ec4864013146,"root",7f6b083a-7614-4f81-b8f4-a768259c227f,"0782d8f3-61cb-4919-b6a8-2392febc953a",d522ef3c-0474-4871-b8bc-32491ca6d234,"versions",96e144c2-1b99-4b86-80a7-b92aeb32c8b2,"copyinfo",83e138aa-a37c-491c-9d23-fbcfa3de8a87,"7ecade93-aad4-4a6e-bf69-9254664a2793.0",73a32dc5-9c77-498f-bd81-b47c8d2db905,"version",821e7131-e207-40d6-837f-37ce6098aacd} \ 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/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" index 391b59f6..14225fa3 100644 --- "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" @@ -1,5 +1,5 @@ {27, -{18, +{16, { {1,1, {"ru","Получение формы"} @@ -7,14 +7,14 @@ {09ccdc77-ea1a-4a6d-ab1c-3435eada2433, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},0, +{6,3,0,1},0, {3,3, {-22} }, @@ -32,45 +32,30 @@ }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},25,0,0,0,0,0,0, -{7,1, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},0,1, +{1,0} +},21,0,0,0,0,0,0, +{3,1, +{3,0, +{0},"",-1,-1,1,0} +},0,1, {1,1, -{4, +{3, {1,1, {"ru","Страница1"} }, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Страница1",1, -{3,4, -{0} -}, -{3,4, -{0} -} -} +{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, -{3,4, -{0} -},0,0,57,0}, +{2,126,0,1,4,0,0,8,0},0,4294967295,5,64,0}, {0} }, {0} -},266,134,1,0,1,4,4,54,266,134,96}, +},266,134,1,0,1,4,4,57}, { {-1},1, {0}, @@ -90,8 +75,8 @@ {1,1, {"ru","Перед открытием"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } } @@ -99,10 +84,7 @@ },1,4,1,0,0,0, {0}, {0}, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},1,2,0,0,1,1} \ No newline at end of file +{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\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" index 672c43da..2355b768 100644 --- "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" @@ -1,467 +1,467 @@ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; - -&НаКлиенте -Перем ТестируемаяФорма; - -// { интерфейс тестирования - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПарам) Экспорт - - ОписанияТестов = Новый Массив; - - НужноИсключениеЕслиНеНайденоДокументов = Ложь; - - ПутьНастройки = "smoke"; - НачальнаяНастройка(КонтекстЯдраПарам, ПутьНастройки); - - //НаборТестов.СтрогийПорядокВыполнения(); - - СоздатьИменаОсновныхФорм(); - - ТолькоУправляемыеФормы = Истина; - //#Если ТонкийКлиент или ВебКлиент Тогда - #Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда - ТолькоУправляемыеФормы = Ложь; - #КонецЕсли - - Если Не ИспользоватьОбычныеФормыВТолстомКлиентеВУправляемомРежимеСервер() Тогда - ТолькоУправляемыеФормы = Истина; - КонецЕсли; - - Объект.ВыводитьСообщенияВЖурналРегистрации = Истина; - - ИменаОсновныхФорм_Объекты_Сервер = ИменаОсновныхФорм_Объекты_Сервер(); - мИменаОсновныхФорм_Списки_Сервер = мИменаОсновныхФорм_Списки_Сервер(); - - ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер); - ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер); - - ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы); - - ОписанияТестов.Добавить("ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение"); - - ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов); -КонецПроцедуры - -// } интерфейс тестирования - -//{ блок юнит-тестов - САМИ ТЕСТЫ - -&НаКлиенте -Процедура ПередЗапускомТеста() Экспорт - //Предупреждение("Спец.окно для для показа сообщений из тестов. Таймаут 1 секунда",1); // нужно для показа сообщений из теста, иначе не будут показаны - - ВыводитьСообщенияВЖурналРегистрации = Истина; - Объект.ВыводитьСообщенияВЖурналРегистрации = Истина; - - CоздаваемыйЭлемент = Неопределено; - - ОбновитьПовторноИспользуемыеЗначения(); - - НужноИсключениеЕслиНеНайденоДокументов = Ложь; - - СоздатьИменаОсновныхФорм(); - - //НачатьТранзакциюСервер(); -КонецПроцедуры - -&НаКлиенте -Процедура ПослеЗапускаТеста() Экспорт - //ОтменитьТранзакциюСервер(); - - ЗакрытьФорму(); - УдалитьСозданныйОбъект(); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ПропуститьТестФормы(Знач ПричинаПропускаТеста) Экспорт - КонтекстЯдра.ПропуститьТест(ПричинаПропускаТеста); -КонецПроцедуры - -&НаСервере -Процедура УдалитьСозданныйОбъект() - Если ЗначениеЗаполнено(CоздаваемыйЭлемент) Тогда - CозданныйОбъект = CоздаваемыйЭлемент.ПолучитьОбъект(); - CозданныйОбъект.Удалить(); - КонецЕсли; - CоздаваемыйЭлемент = Неопределено; -КонецПроцедуры - -&НаКлиенте -Процедура ЗакрытьФорму() - //Если ТипЗнч(ТестируемаяФорма) <> Тип("Форма") и ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда - Если ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда - Возврат; - КонецЕсли; - ТестируемаяФорма.Модифицированность = Ложь; - Если ТестируемаяФорма.Открыта() Тогда - ТестируемаяФорма.Модифицированность = Ложь; - //Попытка - ТестируемаяФорма.Закрыть(); - //Исключение - // Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - // ЗакрытьФормуБезусловноСОтменойТранзакции(ТестируемаяФорма); - // //Если ТранзакцияАктивна() Тогда - // // ОтменитьТранзакцию(); - // //КонецЕсли; - // // //ДобавитьСтрокуРезультата(ИмяОперации, ИнформацияОбОшибке()); - // //НачатьТранзакцию(); - // //ТестируемаяФорма.УстановитьДействие("ПередЗакрытием", Неопределено); - // //ТестируемаяФорма.УстановитьДействие("ПриЗакрытии", Неопределено); - // //ТестируемаяФорма.Закрыть(); - // ВызватьИсключение Ошибка; - //КонецПопытки; - Иначе - Попытка - ТестируемаяФорма.Закрыть(); - Исключение - КонецПопытки; - КонецЕсли; - ТестируемаяФорма = ""; - -КонецПроцедуры - -&НаКлиенте -Процедура ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов) - Для Каждого Описание Из ОписанияТестов Цикл - Если ТипЗнч(Описание) = Тип("Строка") Тогда - НаборТестов.Добавить(Описание); - Иначе - НаборТестов.Добавить(Описание.ИмяТеста, НаборТестов.ПараметрыТеста(Описание.Параметр), Описание.ПредставлениеТеста); - КонецЕсли; - КонецЦикла; -КонецПроцедуры - -&НаСервере -Функция ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер) - ОсновнойОбъект = Объект(); - СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Существующие(); - СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Новые(); - СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Списки(); - - менеджерМетаданного = Метаданные.Справочники; - Для Каждого МетаОбъект Из менеджерМетаданного Цикл - - Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда - имяТеста = "ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника"; - ПрефиксПредставленияТеста = "Новые"; - СписокИсключений = СписокИсключений_Новые; - ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер; - - ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); - КонецЕсли; - - имяТеста = "ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника"; - ПрефиксПредставленияТеста = "Существующие"; - СписокИсключений = СписокИсключений_Существующие; - ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер; - - ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); - - имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"; - ПрефиксПредставленияТеста = "Списки"; - СписокИсключений = СписокИсключений_Списки; - ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер; - - ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); - КонецЦикла; -КонецФункции - -&НаСервере -Функция ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер) - ОсновнойОбъект = Объект(); - СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Существующие(); - СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Новые(); - СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Списки(); - - менеджерМетаданного = Метаданные.Документы; - Для Каждого МетаОбъект Из менеджерМетаданного Цикл - - Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда - имяТеста = "ТестДолжен_ОткрытьФормуНовогоДокумента"; - ПрефиксПредставленияТеста = "Новые"; - СписокИсключений = СписокИсключений_Новые; - ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер; - ПроверяемоеПравоДоступа = "ИнтерактивноеДобавление"; - ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); - КонецЕсли; - - имяТеста = "ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента"; - ПрефиксПредставленияТеста = "Существующие"; - СписокИсключений = СписокИсключений_Существующие; - ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер; - - ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); - - имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"; - ПрефиксПредставленияТеста = "Списки"; - СписокИсключений = СписокИсключений_Списки; - ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер; - - ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); - КонецЦикла; -КонецФункции - -&НаСервере -Функция ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы) - ОсновнойОбъект = Объект(); - - ИменаОсновныхФорм = мИменаОсновныхФорм_Сервер(); - СписокИсключений_Отчеты = ОсновнойОбъект.ПолучитьСписокИсключений_Отчеты(); - СписокИсключений_Обработки = ОсновнойОбъект.ПолучитьСписокИсключений_Обработки(); - - имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"; - ПрефиксПредставленияТеста = ""; - - ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, Метаданные.Обработки, ТолькоУправляемыеФормы, СписокИсключений_Обработки, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); - ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, Метаданные.Отчеты, ТолькоУправляемыеФормы, СписокИсключений_Отчеты, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); -КонецФункции - -Процедура ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, менеджерМетаданного, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста) - Для Каждого МетаОбъект Из менеджерМетаданного Цикл - Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда - Продолжить; - КонецЕсли; - Если Лев(МетаОбъект.Имя, СтрДлина("xddTestRunner")) = "xddTestRunner" Тогда - Продолжить; - КонецЕсли; - - ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); - КонецЦикла; -КонецПроцедуры - -Процедура ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, - ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста) - - Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда - Возврат; - КонецЕсли; - - 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писокИменМетаФорм, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, списокИсключений, ИменаОсновныхФорм) - Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда - Возврат; - КонецЕсли; - Если ПравоДоступа("Просмотр", МетаОбъект) Тогда - МетаФормы = ОсновнойОбъект.ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм); - - Для каждого МетаФорма Из МетаФормы Цикл - - МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя(); - Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда - МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма"; - ИначеЕсли Метаданные.ОсновнаяФормаНастроекОтчета = МетаФорма Тогда - МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".ФормаНастроек"; - КонецЕсли; - - //МетаОбъект.Имя <Отчет1>, МетаФорма_ПолноеИмя <Отчет.Отчет1.Форма.УправляемаяФормаОтчета> - //МетаОбъект.Имя <Отчет2>, МетаФорма_ПолноеИмя <ОбщаяФорма.ФормаОтчета> // в ОФ Отчет.Отчет2.Форма - - Если ТолькоУправляемыеФормы Тогда - //Сообщить("МетаФорма.ТипФормы <"+МетаФорма.ТипФормы+"> "); - Если Не ЭтоУправляемаяФорма(МетаФорма) Тогда - Продолжить; - КонецЕсли; - КонецЕсли; - - CписокИменМетаФорм.Добавить(МетаФорма_ПолноеИмя); - КонецЦикла; - КонецЕсли; -КонецПроцедуры - -&НаСервереБезКонтекста -Функция ЭтоУправляемаяФорма(МетаФорма) - Возврат МетаФорма <> Неопределено И МетаФорма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая; -КонецФункции - -Функция Объект() - Возврат РеквизитФормыВЗначение("Объект"); -КонецФункции - -Функция ПолучитьВидМетаданного(Мета_ПолноеИмя) - ИД = Лев(Мета_ПолноеИмя, Найти(Мета_ПолноеИмя, ".Форма.")-1); - ИД = Сред(ИД, Найти(ИД, ".") + 1); - Возврат ИД; -КонецФункции - -&НаСервереБезКонтекста -Функция ИмяМетодаПропускаТестов() - Возврат "ТестДолжен_ПропуститьТестФормы"; -КонецФункции - -&НаКлиенте -Процедура ТестДолжен_ОткрытьФормуПоПолномуИмениФормы(ПолноеИмяФормы) Экспорт - ТестироватьФорму(ПолноеИмяФормы, Неопределено); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника(Мета_ПолноеИмя) Экспорт - ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочникаСервер(Мета_ПолноеИмя); - ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, CоздаваемыйЭлемент); -КонецПроцедуры - -&НаСервере -Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочникаСервер(Мета_ПолноеИмя) - ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя); - - ОсновнойОбъект = Объект(); - CоздаваемыйЭлемент = ОсновнойОбъект.СоздатьЭлементИВернутьСсылку(ИД, "существующий"); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника(Мета_ПолноеИмя) Экспорт - ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ОткрытьФормуНовогоДокумента(Мета_ПолноеИмя) Экспорт - ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено); -КонецПроцедуры - -&НаКлиенте -Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента(Мета_ПолноеИмя) Экспорт - Док = ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокументаСервер(Мета_ПолноеИмя); - Если Док <> Неопределено Тогда - ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Док); - КонецЕсли; -КонецПроцедуры - -&НаСервере -Функция ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокументаСервер(Мета_ПолноеИмя) - ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя); - - ОсновнойОбъект = Объект(); - Док = ОсновнойОбъект.ПолучитьСуществующийДокументОбъектИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоДокументов, "ТестДолжен_ОткрытьФормуСуществующегоДокумента"); - Возврат Док; -КонецФункции - -// проверка бага https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154 -&НаКлиенте -Процедура ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение() Экспорт - Мета_ПолноеИмя = "Обработка.ТестОбработка_Форма_ИсключениеПриОткрытии.Форма.УправляемаяФорма"; - ошибка =""; - Попытка - ОткрытьФорму(Мета_ПолноеИмя); - Исключение - ошибка = ОписаниеОшибки(); - //Предупреждение("поймали исключение 20"+ ошибка); - КонецПопытки; - Утверждения.ПроверитьЗаполненность(ошибка, "Ошибка"); -КонецПроцедуры - -//} +&НаКлиенте +Перем КонтекстЯдра; +&НаКлиенте +Перем Ожидаем; +&НаКлиенте +Перем Утверждения; + +&НаКлиенте +Перем ТестируемаяФорма; + +// { интерфейс тестирования + +&НаКлиенте +Процедура Инициализация(КонтекстЯдраПараметр) Экспорт + КонтекстЯдра = КонтекстЯдраПараметр; + Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); + Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПарам) Экспорт + + ОписанияТестов = Новый Массив; + + НужноИсключениеЕслиНеНайденоДокументов = Ложь; + + ПутьНастройки = "smoke"; + НачальнаяНастройка(КонтекстЯдраПарам, ПутьНастройки); + + //НаборТестов.СтрогийПорядокВыполнения(); + + СоздатьИменаОсновныхФорм(); + + ТолькоУправляемыеФормы = Истина; + //#Если ТонкийКлиент или ВебКлиент Тогда + #Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда + ТолькоУправляемыеФормы = Ложь; + #КонецЕсли + + Если Не ИспользоватьОбычныеФормыВТолстомКлиентеВУправляемомРежимеСервер() Тогда + ТолькоУправляемыеФормы = Истина; + КонецЕсли; + + Объект.ВыводитьСообщенияВЖурналРегистрации = Истина; + + ИменаОсновныхФорм_Объекты_Сервер = ИменаОсновныхФорм_Объекты_Сервер(); + мИменаОсновныхФорм_Списки_Сервер = мИменаОсновныхФорм_Списки_Сервер(); + + ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер); + ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер); + + ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы); + + ОписанияТестов.Добавить("ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение"); + + ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов); +КонецПроцедуры + +// } интерфейс тестирования + +//{ блок юнит-тестов - САМИ ТЕСТЫ + +&НаКлиенте +Процедура ПередЗапускомТеста() Экспорт + //Предупреждение("Спец.окно для для показа сообщений из тестов. Таймаут 1 секунда",1); // нужно для показа сообщений из теста, иначе не будут показаны + + ВыводитьСообщенияВЖурналРегистрации = Истина; + Объект.ВыводитьСообщенияВЖурналРегистрации = Истина; + + CоздаваемыйЭлемент = Неопределено; + + ОбновитьПовторноИспользуемыеЗначения(); + + НужноИсключениеЕслиНеНайденоДокументов = Ложь; + + СоздатьИменаОсновныхФорм(); + + //НачатьТранзакциюСервер(); +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗапускаТеста() Экспорт + //ОтменитьТранзакциюСервер(); + + ЗакрытьФорму(); + УдалитьСозданныйОбъект(); +КонецПроцедуры + +&НаКлиенте +Процедура ТестДолжен_ПропуститьТестФормы(Знач ПричинаПропускаТеста) Экспорт + КонтекстЯдра.ПропуститьТест(ПричинаПропускаТеста); +КонецПроцедуры + +&НаСервере +Процедура УдалитьСозданныйОбъект() + Если ЗначениеЗаполнено(CоздаваемыйЭлемент) Тогда + CозданныйОбъект = CоздаваемыйЭлемент.ПолучитьОбъект(); + CозданныйОбъект.Удалить(); + КонецЕсли; + CоздаваемыйЭлемент = Неопределено; +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытьФорму() + //Если ТипЗнч(ТестируемаяФорма) <> Тип("Форма") и ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда + Возврат; + КонецЕсли; + ТестируемаяФорма.Модифицированность = Ложь; + Если ТестируемаяФорма.Открыта() Тогда + ТестируемаяФорма.Модифицированность = Ложь; + //Попытка + ТестируемаяФорма.Закрыть(); + //Исключение + // Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + // ЗакрытьФормуБезусловноСОтменойТранзакции(ТестируемаяФорма); + // //Если ТранзакцияАктивна() Тогда + // // ОтменитьТранзакцию(); + // //КонецЕсли; + // // //ДобавитьСтрокуРезультата(ИмяОперации, ИнформацияОбОшибке()); + // //НачатьТранзакцию(); + // //ТестируемаяФорма.УстановитьДействие("ПередЗакрытием", Неопределено); + // //ТестируемаяФорма.УстановитьДействие("ПриЗакрытии", Неопределено); + // //ТестируемаяФорма.Закрыть(); + // ВызватьИсключение Ошибка; + //КонецПопытки; + Иначе + Попытка + ТестируемаяФорма.Закрыть(); + Исключение + КонецПопытки; + КонецЕсли; + ТестируемаяФорма = ""; + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов) + Для Каждого Описание Из ОписанияТестов Цикл + Если ТипЗнч(Описание) = Тип("Строка") Тогда + НаборТестов.Добавить(Описание); + Иначе + НаборТестов.Добавить(Описание.ИмяТеста, НаборТестов.ПараметрыТеста(Описание.Параметр), Описание.ПредставлениеТеста); + КонецЕсли; + КонецЦикла; +КонецПроцедуры + +&НаСервере +Функция ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер) + ОсновнойОбъект = Объект(); + СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Существующие(); + СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Новые(); + СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Списки(); + + менеджерМетаданного = Метаданные.Справочники; + Для Каждого МетаОбъект Из менеджерМетаданного Цикл + + Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда + имяТеста = "ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника"; + ПрефиксПредставленияТеста = "Новые"; + СписокИсключений = СписокИсключений_Новые; + ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер; + + ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); + КонецЕсли; + + имяТеста = "ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника"; + ПрефиксПредставленияТеста = "Существующие"; + СписокИсключений = СписокИсключений_Существующие; + ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер; + + ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); + + имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"; + ПрефиксПредставленияТеста = "Списки"; + СписокИсключений = СписокИсключений_Списки; + ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер; + + ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); + КонецЦикла; +КонецФункции + +&НаСервере +Функция ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы, ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер) + ОсновнойОбъект = Объект(); + СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Существующие(); + СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Новые(); + СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Списки(); + + менеджерМетаданного = Метаданные.Документы; + Для Каждого МетаОбъект Из менеджерМетаданного Цикл + + Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда + имяТеста = "ТестДолжен_ОткрытьФормуНовогоДокумента"; + ПрефиксПредставленияТеста = "Новые"; + СписокИсключений = СписокИсключений_Новые; + ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер; + ПроверяемоеПравоДоступа = "ИнтерактивноеДобавление"; + ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); + КонецЕсли; + + имяТеста = "ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента"; + ПрефиксПредставленияТеста = "Существующие"; + СписокИсключений = СписокИсключений_Существующие; + ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер; + + ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); + + имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"; + ПрефиксПредставленияТеста = "Списки"; + СписокИсключений = СписокИсключений_Списки; + ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер; + + ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); + КонецЦикла; +КонецФункции + +&НаСервере +Функция ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы) + ОсновнойОбъект = Объект(); + + ИменаОсновныхФорм = мИменаОсновныхФорм_Сервер(); + СписокИсключений_Отчеты = ОсновнойОбъект.ПолучитьСписокИсключений_Отчеты(); + СписокИсключений_Обработки = ОсновнойОбъект.ПолучитьСписокИсключений_Обработки(); + + имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы"; + ПрефиксПредставленияТеста = ""; + + ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, Метаданные.Обработки, ТолькоУправляемыеФормы, СписокИсключений_Обработки, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); + ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, Метаданные.Отчеты, ТолькоУправляемыеФормы, СписокИсключений_Отчеты, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); +КонецФункции + +Процедура ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(ОписанияТестов, ОсновнойОбъект, менеджерМетаданного, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста) + Для Каждого МетаОбъект Из менеджерМетаданного Цикл + Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда + Продолжить; + КонецЕсли; + Если Лев(МетаОбъект.Имя, СтрДлина("xddTestRunner")) = "xddTestRunner" Тогда + Продолжить; + КонецЕсли; + + ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста); + КонецЦикла; +КонецПроцедуры + +Процедура ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект, + ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста) + + Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда + Возврат; + КонецЕсли; + + 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писокИменМетаФорм, ОсновнойОбъект, МетаОбъект, ТолькоУправляемыеФормы, списокИсключений, ИменаОсновныхФорм) + Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда + Возврат; + КонецЕсли; + Если ПравоДоступа("Просмотр", МетаОбъект) Тогда + МетаФормы = ОсновнойОбъект.ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм); + + Для каждого МетаФорма Из МетаФормы Цикл + + МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя(); + Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда + МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма"; + ИначеЕсли Метаданные.ОсновнаяФормаНастроекОтчета = МетаФорма Тогда + МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".ФормаНастроек"; + КонецЕсли; + + //МетаОбъект.Имя <Отчет1>, МетаФорма_ПолноеИмя <Отчет.Отчет1.Форма.УправляемаяФормаОтчета> + //МетаОбъект.Имя <Отчет2>, МетаФорма_ПолноеИмя <ОбщаяФорма.ФормаОтчета> // в ОФ Отчет.Отчет2.Форма + + Если ТолькоУправляемыеФормы Тогда + //Сообщить("МетаФорма.ТипФормы <"+МетаФорма.ТипФормы+"> "); + Если Не ЭтоУправляемаяФорма(МетаФорма) Тогда + Продолжить; + КонецЕсли; + КонецЕсли; + + 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" index 492d55ac..139ce008 100644 --- "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" @@ -5,105 +5,640 @@ Перем ТестируемаяФорма; Перем НужноИсключениеЕслиНеНайденоДокументов; -//{ интерфейс тестирования +// { ИнтерфейсТестирования // директива препроцессора нужна для исключения ошибки загрузки в толстом клиенте управляемого приложения #Если ТолстыйКлиентОбычноеПриложение Тогда Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); + + КонтекстЯдра = КонтекстЯдраПараметр; + Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); + Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); + + ЗагрузитьНастройки(); + КонецПроцедуры -Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдра) Экспорт - ВидыМетаданных = ВидыМетаданных(); - ВидыПроверок = ВидыПроверок(); +Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт - ПутьНастройки = "smoke"; - ПлагинНастроек = КонтекстЯдра.Плагин("Настройки"); - Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки); + КонтекстЯдра = КонтекстЯдраПараметр; + + ВидыМетаданных = ВидыМетаданных(); + ВидыПроверок = ВидыПроверок(); + СпособыГруппировки = СпособыГруппировки(); + + ЗагрузитьНастройки(); + + НастройкаГруппировки = ПолучитьНастройкуГруппировки(Настройки); НужноИсключениеЕслиНеНайденоДокументов = Ложь; Если НЕ СоздатьФорму_ПолучениеФорм() Тогда Возврат; КонецЕсли; - - //НаборТестов.СтрогийПорядокВыполнения(); СоздатьИменаОсновныхФорм(); - ВыводитьСообщенияВЖурналРегистрации = Истина; + Если НЕ ВидМетаданныхИсключенИзТестирования("Справочники") Тогда + ДобавитьТестыФормСправочников(НаборТестов, НастройкаГруппировки); + КонецЕсли; + + Если НЕ ВидМетаданныхИсключенИзТестирования("Документы") Тогда + ДобавитьТестыФормДокументов(НаборТестов, НастройкаГруппировки); + КонецЕсли; + + Если НЕ ВидМетаданныхИсключенИзТестирования("Обработки") Тогда + ДобавитьТестыФормОбработок(НаборТестов, НастройкаГруппировки); + КонецЕсли; + + Если НЕ ВидМетаданныхИсключенИзТестирования("Отчеты") Тогда + ДобавитьТестыФормОтчетов(НаборТестов, НастройкаГруппировки); + КонецЕсли; + +КонецПроцедуры + +#КонецЕсли + +// } ИнтерфейсТестирования + +// { Тесты + +Процедура ПередЗапускомТеста() Экспорт + + НужноИсключениеЕслиНеНайденоДокументов = Ложь; + + СоздатьФорму_ПолучениеФорм(); + + НачатьТранзакцию(); + +КонецПроцедуры + +Процедура ПослеЗапускаТеста() Экспорт + + ЗакрытьФорму(); + + Если ТранзакцияАктивна() Тогда + ОтменитьТранзакцию(); + КонецЕсли; + +КонецПроцедуры + +Процедура ТестДолжен_ПропуститьТестФормы(Знач ПричинаПропускаТеста) Экспорт + КонтекстЯдра.ПропуститьТест(ПричинаПропускаТеста); +КонецПроцедуры + +Процедура Тест_ОткрытьФормуСуществующегоДокумента(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт + ИД = МетаИмя; + Док = ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, "Тест_ОткрытьФормуСуществующегоДокумента"); + + Если Док <> Неопределено Тогда + ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док.Ссылка); + КонецЕсли; +КонецПроцедуры + +Процедура Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт + ИД = МетаИмя; + Док = ПолучитьСуществующийДокументОбъект(ИД, Ложь, "Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму"); + Если Док = Неопределено Тогда + Возврат; + КонецЕсли; + + Док.Дата = ТекущаяДата(); + Док.ОбменДанными.Загрузка = Истина; + Док.Записать(); + + ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док.Ссылка); +КонецПроцедуры + +Процедура Тест_ОткрытьФормуНовогоДокумента(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт + + ИД = МетаИмя; + Док = Документы[ИД].СоздатьДокумент(); + Мета = Док.Метаданные(); + + Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Мета) Тогда + Возврат; + КонецЕсли; + + Если Мета.ДлинаНомера <> 0 Тогда + Попытка + Док.УстановитьНовыйНомер(); + Исключение + КонецПопытки; + КонецЕсли; + + Если ЕстьНастройка("Документы.ЗначенияРеквизитовНовых." + Мета.Имя) Тогда + Для каждого Реквизит из Настройки.Документы.ЗначенияРеквизитовНовых[Мета.Имя] Цикл + Попытка + Док[Реквизит.Ключ] = ЗначениеРеквизита(Мета, Реквизит.Ключ, Реквизит.Значение); + Исключение + ВывестиСообщение(ОписаниеОшибки()); + КонецПопытки; + КонецЦикла; + КонецЕсли; + + ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док, Ложь); + +КонецПроцедуры + +Процедура Тест_ОткрытьФормуСуществующегоЭлементаСправочника(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт + ИД = МетаИмя; + Элем = СоздатьЭлемент(ИД, "существующий"); + ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем.Ссылка); +КонецПроцедуры + +Процедура Тест_ОткрытьФормуНовогоЭлементаСправочника(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт + + ИД = МетаИмя; + Элем = Справочники[ИД].СоздатьЭлемент(); + Мета = Элем.Метаданные(); + + Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Мета) Тогда + Возврат; + КонецЕсли; + + Если Мета.ДлинаНаименования <> 0 Тогда + Попытка + Элем.Наименование = "новый"; + Исключение + КонецПопытки; + КонецЕсли; + + Если Мета.Владельцы.Количество() Тогда + Элем.Владелец = ПолучитьСсылкуНаВладельца(Мета, "Владелец для нового"); + КонецЕсли; + + ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем, Ложь); + +КонецПроцедуры + +Процедура Тест_ОткрытьФормуНовогоЭлементаСправочникаСоздаваемогоКопированием(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт + ИД = МетаИмя; + Элем = СоздатьЭлемент(ИД, "копирование", "ИнтерактивноеДобавление"); + Если Элем = Неопределено Тогда + Возврат; + КонецЕсли; + + ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем.Ссылка, Истина); +КонецПроцедуры + +// } Тесты + +// { ПереопределениеИсключений + +// Переопределение исключений, чтобы не открывать формы. + +Функция ПолучитьСписокИсключений_Справочники_Списки() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Списки); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + Результат.Добавить("ирАлгоритмы"); + + Возврат Результат; +КонецФункции + +Функция ПолучитьСписокИсключений_Справочники_Существующие() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Существующие); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + Результат.Добавить("ирАлгоритмы"); + //Результат.Добавить("ПростойСправочник"); + + Возврат Результат; +КонецФункции + +Функция ПолучитьСписокИсключений_Справочники_Новые() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Новые); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + Результат.Добавить("ирАлгоритмы"); + //Результат.Добавить("ПростойСправочник"); + + Возврат Результат; +КонецФункции + +Функция ПолучитьСписокИсключений_Документы_Списки() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Списки); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + //Результат.Добавить("Штрафы"); + + Возврат Результат; +КонецФункции + +Функция ПолучитьСписокИсключений_Документы_Существующие() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Существующие); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + //Результат.Добавить("Штрафы"); + + Возврат Результат; +КонецФункции + +Функция ПолучитьСписокИсключений_Документы_ПеренестиДату() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.ПеренестиДату); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + //Результат.Добавить("Штрафы"); + + Возврат Результат; +КонецФункции + +Функция ПолучитьСписокИсключений_Документы_Новые() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Новые); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + Результат.Добавить("Штрафы"); + + Возврат Результат; +КонецФункции +Функция ПолучитьСписокИсключений_Отчеты() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Отчеты, ""); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + //Результат.Добавить("Цены"); + + Возврат Результат; +КонецФункции + +Функция ПолучитьСписокИсключений_Обработки() Экспорт + + Результат = ПолучитьИсключения(ВидыМетаданных.Обработки, ""); + Если ЗначениеЗаполнено(Результат) Тогда + Возврат Результат; + КонецЕсли; + + Результат = Новый СписокЗначений; + + Результат.Добавить("ТестОбработка_Форма_ИсключениеПриОткрытии"); + + Возврат Результат; +КонецФункции + +// } ПереопределениеИсключений + +// { ФормированиеСпискаТестовыхСлучаев + +Процедура ДобавитьТестыФормСправочников(НаборТестов, НастройкаГруппировки) + + Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда + НаборТестов.НачатьГруппу("Справочники"); + КонецЕсли; + Счетчик = 0; + Для Каждого МетаОбъект Из Метаданные.Справочники Цикл + + Если НастройкаГруппировки.ГруппироватьПоКоличеству Тогда + Если Счетчик % НастройкаГруппировки.КоличествоВГруппе = 0 Тогда + ИмяГруппы = "Справочники (" + Строка(Счетчик + 1) + "..." + Строка(Счетчик + НастройкаГруппировки.КоличествоВГруппе) + ")"; + НаборТестов.НачатьГруппу(ИмяГруппы); + КонецЕсли; + КонецЕсли; + + Если НастройкаГруппировки.ГруппироватьПоВидуОбъекта Тогда + НаборТестов.НачатьГруппу("Справочник." + МетаОбъект.Имя); + КонецЕсли; + + Счетчик = Счетчик + 1; + Если ПравоДоступа("Редактирование", МетаОбъект) Тогда - ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуСуществующегоЭлементаСправочника", ПолучитьСписокИсключений_Справочники_Существующие(), - мИменаОсновныхФорм_Объекты, "Существующие элементы"); + ДобавитьТестДляОдногоМетаданного_Объекты( + НаборТестов, + МетаОбъект, + "Тест_ОткрытьФормуСуществующегоЭлементаСправочника", + ПолучитьСписокИсключений_Справочники_Существующие(), + мИменаОсновныхФорм_Объекты, "Существующие элементы" + ); КонецЕсли; Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда - ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуНовогоЭлементаСправочника", ПолучитьСписокИсключений_Справочники_Новые(), - мИменаОсновныхФорм_Объекты, "Новые элементы"); + ДобавитьТестДляОдногоМетаданного_Объекты( + НаборТестов, + МетаОбъект, + "Тест_ОткрытьФормуНовогоЭлементаСправочника", + ПолучитьСписокИсключений_Справочники_Новые(), + мИменаОсновныхФорм_Объекты, + "Новые элементы" + ); КонецЕсли; Если ПравоДоступа("Добавление", МетаОбъект) Тогда - ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуНовогоЭлементаСправочникаСоздаваемогоКопированием", ПолучитьСписокИсключений_Справочники_Новые(), - мИменаОсновныхФорм_Объекты, "Новые через копирование элементы"); + ДобавитьТестДляОдногоМетаданного_Объекты( + НаборТестов, + МетаОбъект, + "Тест_ОткрытьФормуНовогоЭлементаСправочникаСоздаваемогоКопированием", + ПолучитьСписокИсключений_Справочники_Новые(), + мИменаОсновныхФорм_Объекты, + "Новые через копирование элементы" + ); КонецЕсли; - ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, "ТестДолжен_ОткрытьФорму_ПоМетаФорме", ПолучитьСписокИсключений_Справочники_Списки(), мИменаОсновныхФорм_Списки); + ДобавитьТестДляМетаданного_ОдинОбъект( + НаборТестов, + МетаОбъект, + "ТестДолжен_ОткрытьФорму_ПоМетаФорме", + ПолучитьСписокИсключений_Справочники_Списки(), + мИменаОсновныхФорм_Списки + ); + КонецЦикла; + +КонецПроцедуры + +Процедура ДобавитьТестыФормДокументов(НаборТестов, НастройкаГруппировки) + + Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда + НаборТестов.НачатьГруппу("Документы"); + КонецЕсли; + Счетчик = 0; + Для Каждого МетаОбъект Из Метаданные.Документы Цикл + + Если НастройкаГруппировки.ГруппироватьПоКоличеству Тогда + Если Счетчик % НастройкаГруппировки.КоличествоВГруппе = 0 Тогда + ИмяГруппы = "Документы (" + Строка(Счетчик + 1) + "..." + Строка(Счетчик + НастройкаГруппировки.КоличествоВГруппе) + ")"; + НаборТестов.НачатьГруппу(ИмяГруппы); + КонецЕсли; + КонецЕсли; + + Если НастройкаГруппировки.ГруппироватьПоВидуОбъекта Тогда + НаборТестов.НачатьГруппу("Документ." + МетаОбъект.Имя); + КонецЕсли; + + Счетчик = Счетчик + 1; + Если ПравоДоступа("Редактирование", МетаОбъект) Тогда - ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуСуществующегоДокумента", ПолучитьСписокИсключений_Документы_Существующие(), - мИменаОсновныхФорм_Объекты, "Существующие документы"); - - ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму", ПолучитьСписокИсключений_Документы_ПеренестиДату(), - мИменаОсновныхФорм_Объекты, "Перенос документа на текущий день"); + ДобавитьТестДляОдногоМетаданного_Объекты( + НаборТестов, + МетаОбъект, + "Тест_ОткрытьФормуСуществующегоДокумента", + ПолучитьСписокИсключений_Документы_Существующие(), + мИменаОсновныхФорм_Объекты, + "Существующие документы" + ); + ДобавитьТестДляОдногоМетаданного_Объекты( + НаборТестов, + МетаОбъект, + "Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму", + ПолучитьСписокИсключений_Документы_ПеренестиДату(), + мИменаОсновныхФорм_Объекты, + "Перенос документа на текущий день" + ); КонецЕсли; Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда - ДобавитьТестДляОдногоМетаданного_Объекты(НаборТестов, МетаОбъект, "Тест_ОткрытьФормуНовогоДокумента", ПолучитьСписокИсключений_Документы_Новые(), - мИменаОсновныхФорм_Объекты, "Новые документы"); + ДобавитьТестДляОдногоМетаданного_Объекты( + НаборТестов, + МетаОбъект, + "Тест_ОткрытьФормуНовогоДокумента", + ПолучитьСписокИсключений_Документы_Новые(), + мИменаОсновныхФорм_Объекты, + "Новые документы" + ); КонецЕсли; - ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, "ТестДолжен_ОткрытьФорму_ПоМетаФорме", ПолучитьСписокИсключений_Документы_Списки(), мИменаОсновныхФорм_Списки); - КонецЦикла; + ДобавитьТестДляМетаданного_ОдинОбъект( + НаборТестов, + МетаОбъект, + "ТестДолжен_ОткрытьФорму_ПоМетаФорме", + ПолучитьСписокИсключений_Документы_Списки(), + мИменаОсновныхФорм_Списки + ); + + КонецЦикла; + +КонецПроцедуры + +Процедура ДобавитьТестыФормОбработок(НаборТестов, НастройкаГруппировки) - ДобавитьТестПоМенеджеруМетаданных(НаборТестов, Метаданные.Обработки, "ТестДолжен_ОткрытьФорму_ПоМетаФорме", ПолучитьСписокИсключений_Обработки(), мИменаОсновныхФорм); - ДобавитьТестПоМенеджеруМетаданных(НаборТестов, Метаданные.Отчеты, "ТестДолжен_ОткрытьФорму_ПоМетаФорме", ПолучитьСписокИсключений_Отчеты(), мИменаОсновныхФорм); + Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда + НаборТестов.НачатьГруппу("Обработки"); + КонецЕсли; + + ДобавитьТестПоМенеджеруМетаданных( + НаборТестов, + Метаданные.Обработки, + "ТестДолжен_ОткрытьФорму_ПоМетаФорме", + ПолучитьСписокИсключений_Обработки(), + мИменаОсновныхФорм + ); КонецПроцедуры -#КонецЕсли +Процедура ДобавитьТестыФормОтчетов(НаборТестов, НастройкаГруппировки) + + Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда + НаборТестов.НачатьГруппу("Отчеты"); + КонецЕсли; + + ДобавитьТестПоМенеджеруМетаданных( + НаборТестов, + Метаданные.Отчеты, + "ТестДолжен_ОткрытьФорму_ПоМетаФорме", + ПолучитьСписокИсключений_Отчеты(), + мИменаОсновныхФорм + ); + +КонецПроцедуры -//} +Процедура ДобавитьТестПоМенеджеруМетаданных(НаборТестов, менеджерМетаданного, имяТеста, списокИсключений, ИменаОсновныхФорм) + + НастройкаГруппировки = ПолучитьНастройкуГруппировки(Настройки); + + ЭтоОтчеты = (менеджерМетаданного = Метаданные.Отчеты); + + Счетчик = 0; + + Для Каждого МетаОбъект Из менеджерМетаданного Цикл + + Если НастройкаГруппировки.ГруппироватьПоКоличеству Тогда + Если Счетчик % НастройкаГруппировки.КоличествоВГруппе = 0 Тогда + ИмяГруппы = ?(ЭтоОтчеты, "Отчеты", "Обработки") + " (" + Строка(Счетчик + 1) + "..." + + Строка(Счетчик + НастройкаГруппировки.КоличествоВГруппе) + ")"; + НаборТестов.НачатьГруппу(ИмяГруппы); + КонецЕсли; + КонецЕсли; + + Если НастройкаГруппировки.ГруппироватьПоВидуОбъекта Тогда + НаборТестов.НачатьГруппу(?(ЭтоОтчеты, "Отчет", "Обработка") + "." + МетаОбъект.Имя); + КонецЕсли; + + Счетчик = Счетчик + 1; + + ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, имяТеста, списокИсключений, ИменаОсновныхФорм); + + КонецЦикла; + +КонецПроцедуры + +Процедура ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, Знач МетаОбъект, Знач имяТеста, + Знач списокИсключений, Знач ИменаОсновныхФорм) + ПрефиксПропускаемых = ""; + ПропускатьТест = Ложь; + + Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда + ПропускатьТест = Истина; + ПрефиксПропускаемых = "объект находится в исключениях"; + КонецЕсли; + + Если ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда + ПропускатьТест = Истина; + ПрефиксПропускаемых = "объект устарел"; + КонецЕсли; + + Если Не ПравоДоступа("Просмотр", МетаОбъект) Тогда + ПропускатьТест = Истина; + ПрефиксПропускаемых = "нет прав интерактивного доступа у пользователя"; + КонецЕсли; + + Если ПропускатьТест Тогда + имяТеста = ИмяМетодаПропускаТестов(); + ПараметрыПропускаемогоТеста = НаборТестов.ПараметрыТеста(ПрефиксПропускаемых); + КонецЕсли; + + МетаФормы = ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм); + + Для каждого МетаФорма Из МетаФормы Цикл + + МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя(); + + Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда + МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма"; + ИначеЕсли Метаданные.ОсновнаяФормаНастроекОтчета = МетаФорма Тогда + МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".ФормаНастроек"; + КонецЕсли; + //МетаОбъект.Имя <Отчет1>, МетаФорма_ПолноеИмя <Отчет.Отчет1.Форма.ФормаОтчета> + //МетаОбъект.Имя <Отчет2>, МетаФорма_ПолноеИмя <Отчет.Отчет2.Форма> // в УФ ОбщаяФорма.ФормаОтчета + + ПредставлениеТеста = МетаФорма_ПолноеИмя; + ЕстьТранзакция = Истина; + + ПропускатьТестФормы = Ложь; + Если Не ПропускатьТест Тогда + // Проверим, нет ли конкретно самой формы в исключениях. + ОтносительныйПутьФормы = МетаОбъект.Имя + ".Форма." + МетаФорма.Имя; + Если списокИсключений.НайтиПоЗначению(ОтносительныйПутьФормы) <> Неопределено Тогда + ПропускатьТестФормы = Истина; + ПрефиксПропускаемых = "форма находится в исключениях"; + ПараметрыПропускаемогоТеста = НаборТестов.ПараметрыТеста(ПрефиксПропускаемых); + КонецЕсли; + КонецЕсли; + + Если ПропускатьТест Или ПропускатьТестФормы Тогда + ПредставлениеТеста = ПрефиксПропускаемых + " : " + ПредставлениеТеста; + ПараметрыТеста = ПараметрыПропускаемогоТеста; + Иначе + ПараметрыТеста = НаборТестов.ПараметрыТеста(МетаФорма_ПолноеИмя, ЕстьТранзакция, МетаОбъект); + КонецЕсли; + + НаборТестов.Добавить(имяТеста, ПараметрыТеста, ПредставлениеТеста); + + КонецЦикла; + +КонецПроцедуры -Процедура ПередЗапускомТеста() Экспорт - ВыводитьСообщенияВЖурналРегистрации = Истина; - - НужноИсключениеЕслиНеНайденоДокументов = Ложь; +Процедура ДобавитьТестДляОдногоМетаданного_Объекты( НаборТестов, Знач МетаОбъект, Знач имяТеста, + Знач списокИсключений, Знач ИменаОсновныхФорм, + Знач ПрефиксПредставленияТеста) + ПрефиксПропускаемых = ""; + ПропускатьТест = Ложь; - СоздатьФорму_ПолучениеФорм(); + Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда + ПропускатьТест = Истина; + ПрефиксПропускаемых = "объект находится в исключениях"; + КонецЕсли; - НачатьТранзакцию(); -КонецПроцедуры - -Процедура ПослеЗапускаТеста() Экспорт + Если ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда + ПропускатьТест = Истина; + ПрефиксПропускаемых = "объект устарел"; + КонецЕсли; - ЗакрытьФорму(); + Если Не (ПравоДоступа("Просмотр", МетаОбъект) и ПравоДоступа("Добавление", МетаОбъект)) Тогда + ПропускатьТест = Истина; + ПрефиксПропускаемых = "нет прав интерактивного доступа у пользователя"; + КонецЕсли; - Если ТранзакцияАктивна() Тогда - ОтменитьТранзакцию(); + Если ПропускатьТест Тогда + ПрефиксПредставленияТеста = ПрефиксПредставленияТеста + " : " + ПрефиксПропускаемых; + имяТеста = ИмяМетодаПропускаТестов(); + ПараметрыПропускаемогоТеста = НаборТестов.ПараметрыТеста(ПрефиксПропускаемых); КонецЕсли; + МетаФормы = ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм); + Для каждого МетаФорма Из МетаФормы Цикл + + МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя(); + ПредставлениеТеста = ПрефиксПредставленияТеста + " : " + МетаФорма_ПолноеИмя; + ЕстьТранзакция = Истина; + + ПропускатьТестФормы = Ложь; + Если Не ПропускатьТест Тогда + // Проверим, нет ли конкретно самой формы в исключениях. + ОтносительныйПутьФормы = МетаОбъект.Имя + ".Форма." + МетаФорма.Имя; + Если списокИсключений.НайтиПоЗначению(ОтносительныйПутьФормы) <> Неопределено Тогда + ПропускатьТестФормы = Истина; + ПараметрыПропускаемогоТеста = НаборТестов.ПараметрыТеста("форма находится в исключениях"); + КонецЕсли; + КонецЕсли; + + Если ПропускатьТест Или ПропускатьТестФормы Тогда + ПараметрыТеста = ПараметрыПропускаемогоТеста; + Иначе + ПараметрыТеста = НаборТестов.ПараметрыТеста(МетаОбъект.Имя, МетаФорма_ПолноеИмя, МетаФорма, ЕстьТранзакция); + КонецЕсли; + + НаборТестов.Добавить(имяТеста, ПараметрыТеста, ПредставлениеТеста); + + КонецЦикла; + КонецПроцедуры -Процедура ТестДолжен_ПропуститьТестФормы(Знач ПричинаПропускаТеста) Экспорт - КонтекстЯдра.ПропуститьТест(ПричинаПропускаТеста); -КонецПроцедуры +// } ФормированиеСпискаТестовыхСлучаев + +// { РаботаСФормами Процедура ЗакрытьФорму() Если ТипЗнч(ТестируемаяФорма) <> Тип("Форма") и ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда @@ -136,34 +671,27 @@ КонецПроцедуры -//{ блок работы с обычными и управляемыми формами - портирован из "Инструменты разработчика" -Процедура ТестДолжен_ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, ЕстьТранзакция) Экспорт - //Если ЕстьТранзакция Тогда - // НачатьТранзакцию(); - //КонецЕсли; +Функция ЭтоОбычнаяФорма(Форма) + Возврат ТипЗнч(Форма) = Тип("Форма"); +КонецФункции + +// Портировано из подсистемы "Инструменты разработчика" + +Процедура ТестДолжен_ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, ЕстьТранзакция, МетаданныеВладельцаФормы) Экспорт - ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя); + ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, "", Неопределено, Ложь, МетаданныеВладельцаФормы); - //Если ЕстьТранзакция Тогда - // Если ТранзакцияАктивна() Тогда - // ОтменитьТранзакцию(); - // КонецЕсли; - //КонецЕсли; КонецПроцедуры -Процедура ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма_Имя = "", СсылкаОбъектаИлиСамОбъект = Неопределено, СоздаватьОбъект = Ложь) Экспорт +Процедура ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма_Имя = "", СсылкаОбъектаИлиСамОбъект = Неопределено, СоздаватьОбъект = Ложь, МетаданныеВладельцаФормы=Неопределено) Экспорт ВыводитьСообщения = Ложь; ВнешнийОбъект = Неопределено; КлючВременнойФормы = "908насмь9ыв"; ИмяОперации = МетаФорма_ПолноеИмя; - Если ВыводитьСообщения Тогда - Сообщить(ИмяОперации); - КонецЕсли; - Если ВыводитьСообщенияВЖурналРегистрации Тогда - ЗаписьЖурналаРегистрации(Метаданные().Синоним, УровеньЖурналаРегистрации.Информация, , , "Операция: " + ИмяОперации); - КонецЕсли; + + ВывестиСообщение("Операция: " + ИмяОперации, УровеньЖурналаРегистрации.Информация, ВыводитьСообщения); Форма = ПолучитьНовуюФорму(МетаФорма_ПолноеИмя, ВнешнийОбъект, КлючВременнойФормы); Если Форма = Неопределено Тогда @@ -227,7 +755,23 @@ Форма = ПолучитьФормуЛкс(МетаФорма_ПолноеИмя, ПараметрыФормы, , КлючВременнойФормы); КонецЕсли; КонецЕсли; + + Если МетаданныеВладельцаФормы <> Неопределено И Метаданные.Справочники.Содержит(МетаданныеВладельцаФормы) Тогда + Если МетаданныеВладельцаФормы.Владельцы.Количество() Тогда + ВладелецСсылка = ПолучитьСсылкуНаВладельца(МетаданныеВладельцаФормы); + Попытка + Форма.ПараметрОтборПоВладельцу = ВладелецСсылка; + Исключение + КонецПопытки; + Попытка + Форма.ПараметрВыборПоВладельцу = ВладелецСсылка; + Исключение + КонецПопытки; + КонецЕсли; + КонецЕсли; + ТестироватьФорму(Форма, ИмяОперации); + КонецПроцедуры Процедура СоздатьИменаОсновныхФорм() Экспорт @@ -302,307 +846,71 @@ ИспользоватьУФ = Метаданные.ИспользоватьУправляемыеФормыВОбычномПриложении ИЛИ (ТекущийРежимЗапуска() <> РежимЗапускаКлиентскогоПриложения.ОбычноеПриложение); МетаФормы = Новый Массив(); - - Для Каждого ИмяОсновнойФормы Из ИменаОсновныхФорм Цикл - Попытка - МетаФорма = МетаОбъект[ИмяОсновнойФормы]; - Исключение - Продолжить; - КонецПопытки; - Если МетаФорма = Неопределено Тогда - Продолжить; - КонецЕсли; - Если МетаФормы.Найти(МетаФорма) <> Неопределено Тогда - Продолжить; - КонецЕсли; - Если НЕ ИспользоватьУФ И МетаФорма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая Тогда - Продолжить; - КонецЕсли; - МетаФормы.Добавить(МетаФорма); - КонецЦикла; - - Возврат МетаФормы; - -КонецФункции - -Функция ПолучитьФормуЛкс(ИмяФормы, Параметры = Неопределено, Владелец = Неопределено, Уникальность = Неопределено, Окно = Неопределено) Экспорт - - Возврат мПолучениеФорм.ПолучитьФормуЛкс(ИмяФормы, Параметры, Владелец, Уникальность, Окно); - -КонецФункции - -Функция ПолучитьНовуюФорму(МетаФорма, ВнешнийОбъект = Неопределено, КлючВременнойФормы = Неопределено) - - Форма = ПолучитьФормуЛкс(МетаФорма, , , КлючВременнойФормы); //ирНеглобальный. - Возврат Форма; - -КонецФункции - -Процедура ТестироватьФорму(Форма, ИмяОперации = "") Экспорт - ТестируемаяФорма = Форма; - Форма.Открыть(); // К сожалению здесь исключения не ловятся http://partners.v8.1c.ru/forum/thread.jsp?id=1080350#1080350 - Утверждения.Проверить(ТестируемаяФорма.Открыта(), "ТестируемаяФорма """+ИмяОперации+""" не открылась, а должна была открыться"); - - // Артур - мой код для доп.проверки формы - Если ЭтоОбычнаяФорма(ТестируемаяФорма) Тогда - ТестируемаяФорма.Обновить(); - Иначе - ТестируемаяФорма.ОбновитьОтображениеДанных(); - КонецЕсли; - -КонецПроцедуры - -//} конец блока работы с управляемыми формами - из "Инструменты разработчика" - -Функция ИмяМетодаПропускаТестов() - Возврат "ТестДолжен_ПропуститьТестФормы"; -КонецФункции - -Функция ЭтоОбычнаяФорма(Форма) - Возврат ТипЗнч(Форма) = Тип("Форма"); -КонецФункции - -Процедура ДобавитьТестПоМенеджеруМетаданных(НаборТестов, менеджерМетаданного, имяТеста, списокИсключений, ИменаОсновныхФорм) - Для Каждого МетаОбъект Из менеджерМетаданного Цикл - ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, имяТеста, списокИсключений, ИменаОсновныхФорм); - КонецЦикла; -КонецПроцедуры - -Процедура ДобавитьТестДляМетаданного_ОдинОбъект( - НаборТестов, Знач МетаОбъект, Знач имяТеста, - Знач списокИсключений, Знач ИменаОсновныхФорм) - - ПрефиксПропускаемых = ""; - ПропускатьТест = Ложь; - Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда - //Возврат; - ПропускатьТест = Истина; - ПрефиксПропускаемых = "объект находится в исключениях"; - КонецЕсли; - Если ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда - //Возврат; - ПропускатьТест = Истина; - ПрефиксПропускаемых = "объект устарел"; - КонецЕсли; - Если Не ПравоДоступа("Просмотр", МетаОбъект) Тогда - ПропускатьТест = Истина; - ПрефиксПропускаемых = "нет прав интерактивного доступа у пользователя"; - КонецЕсли; - Если ПропускатьТест Тогда - имяТеста = ИмяМетодаПропускаТестов(); - ПараметрыТеста = НаборТестов.ПараметрыТеста(ПрефиксПропускаемых); - КонецЕсли; - - //Если ПравоДоступа("Просмотр", МетаОбъект) Тогда - МетаФормы = ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм); - - Для каждого МетаФорма Из МетаФормы Цикл - - МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя(); - - Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда - МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма"; - ИначеЕсли Метаданные.ОсновнаяФормаНастроекОтчета = МетаФорма Тогда - МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".ФормаНастроек"; - КонецЕсли; - //МетаОбъект.Имя <Отчет1>, МетаФорма_ПолноеИмя <Отчет.Отчет1.Форма.ФормаОтчета> - //МетаОбъект.Имя <Отчет2>, МетаФорма_ПолноеИмя <Отчет.Отчет2.Форма> // в УФ ОбщаяФорма.ФормаОтчета - - ПредставлениеТеста = МетаФорма_ПолноеИмя; - ЕстьТранзакция = Истина; - //НаборТестов.Добавить(имяТеста, НаборТестов.ПараметрыТеста(МетаФорма_ПолноеИмя, ЕстьТранзакция), ПредставлениеТеста); - Если ПропускатьТест Тогда - ПредставлениеТеста = ПрефиксПропускаемых + " : " + ПредставлениеТеста; - НаборТестов.Добавить(имяТеста, ПараметрыТеста, ПредставлениеТеста); - Иначе - НаборТестов.Добавить(имяТеста, НаборТестов.ПараметрыТеста(МетаФорма_ПолноеИмя, ЕстьТранзакция), ПредставлениеТеста); - КонецЕсли; - КонецЦикла; - //КонецЕсли; -КонецПроцедуры - -Процедура ДобавитьТестДляОдногоМетаданного_Объекты( - НаборТестов, Знач МетаОбъект, Знач имяТеста, - Знач списокИсключений, Знач ИменаОсновныхФорм, Знач ПрефиксПредставленияТеста) - - ПрефиксПропускаемых = ""; - ПропускатьТест = Ложь; - Если списокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда - //Возврат; - ПропускатьТест = Истина; - ПрефиксПропускаемых = "объект находится в исключениях"; - КонецЕсли; - Если ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда - //Возврат; - ПропускатьТест = Истина; - ПрефиксПропускаемых = "объект устарел"; - КонецЕсли; - Если Не (ПравоДоступа("Просмотр", МетаОбъект) и ПравоДоступа("Добавление", МетаОбъект)) Тогда - ПропускатьТест = Истина; - ПрефиксПропускаемых = "нет прав интерактивного доступа у пользователя"; - КонецЕсли; - Если ПропускатьТест Тогда - ПрефиксПредставленияТеста = ПрефиксПредставленияТеста + " : " + ПрефиксПропускаемых; - имяТеста = ИмяМетодаПропускаТестов(); - ПараметрыТеста = НаборТестов.ПараметрыТеста(ПрефиксПропускаемых); - КонецЕсли; - //Если ПравоДоступа("Просмотр", МетаОбъект) и ПравоДоступа("Добавление", МетаОбъект) - //Тогда - МетаФормы = ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм); - Для каждого МетаФорма Из МетаФормы Цикл - - МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя(); - ПредставлениеТеста = ПрефиксПредставленияТеста + " : " + МетаФорма_ПолноеИмя; - ЕстьТранзакция = Истина; - //НаборТестов.Добавить(имяТеста, НаборТестов.ПараметрыТеста(МетаОбъект.Имя, МетаФорма_ПолноеИмя, МетаФорма, ЕстьТранзакция), ПредставлениеТеста); - Если ПропускатьТест Тогда - НаборТестов.Добавить(имяТеста, ПараметрыТеста, ПредставлениеТеста); - Иначе - НаборТестов.Добавить(имяТеста, НаборТестов.ПараметрыТеста(МетаОбъект.Имя, МетаФорма_ПолноеИмя, МетаФорма, ЕстьТранзакция), ПредставлениеТеста); - КонецЕсли; - КонецЦикла; - //КонецЕсли; -КонецПроцедуры - -Функция ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Экспорт - Возврат Найти(НРег(МетаОбъект.Имя), НРег("Удалить")) = 1; -КонецФункции - -Процедура Тест_ОткрытьФормуСуществующегоДокумента(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт - ИД = МетаИмя; - Док = ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, "Тест_ОткрытьФормуСуществующегоДокумента"); - - Если Док <> Неопределено Тогда - ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док.Ссылка); - КонецЕсли; -КонецПроцедуры - -Процедура Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт - ИД = МетаИмя; - Док = ПолучитьСуществующийДокументОбъект(ИД, Ложь, "Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму"); - Если Док = Неопределено Тогда - Возврат; - КонецЕсли; - - Док.Дата = ТекущаяДата(); - Док.ОбменДанными.Загрузка = Истина; - Док.Записать(); - - ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док.Ссылка); -КонецПроцедуры - -Процедура Тест_ОткрытьФормуНовогоДокумента(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт - ИД = МетаИмя; - Док = Документы[ИД].СоздатьДокумент(); - Мета = Док.Метаданные(); - Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Мета) Тогда - Возврат; - КонецЕсли; - Если Мета.ДлинаНомера <> 0 Тогда - Попытка - Док.УстановитьНовыйНомер(); - Исключение - КонецПопытки; - КонецЕсли; - - ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док, Ложь); -КонецПроцедуры - -Функция ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения) - выборка = Документы[ИД].Выбрать(,,, "Дата Убыв"); - уcпешно = выборка.Следующий(); - Если Не уcпешно Тогда - Если НужноИсключениеЕслиНеНайденоДокументов Тогда - ВызватьИсключение ДопОписаниеДляИсключения + ": выборка.Следующий() - не найдено существующих документов! "; - Иначе - Возврат Неопределено; - КонецЕсли; - КонецЕсли; - Док = выборка.ПолучитьОбъект(); - Возврат Док; -КонецФункции - -Функция ПолучитьСуществующийДокументОбъектИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения) Экспорт - Док = ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения); - Возврат ?(Док = Неопределено, Неопределено, Док.Ссылка); -КонецФункции - -Процедура Тест_ОткрытьФормуСуществующегоЭлементаСправочника(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт - ИД = МетаИмя; - Элем = СоздатьЭлемент(ИД, "существующий"); - ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем.Ссылка); -КонецПроцедуры - -Процедура Тест_ОткрытьФормуНовогоЭлементаСправочника(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт - ИД = МетаИмя; - Элем = Справочники[ИД].СоздатьЭлемент(); - Мета = Элем.Метаданные(); - Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Мета) Тогда - Возврат; - КонецЕсли; - Если Мета.ДлинаНаименования <> 0 Тогда + + Для Каждого ИмяОсновнойФормы Из ИменаОсновныхФорм Цикл Попытка - Элем.Наименование = "новый"; + МетаФорма = МетаОбъект[ИмяОсновнойФормы]; Исключение + Продолжить; КонецПопытки; - КонецЕсли; + Если МетаФорма = Неопределено Тогда + Продолжить; + КонецЕсли; + Если МетаФормы.Найти(МетаФорма) <> Неопределено Тогда + Продолжить; + КонецЕсли; + Если НЕ ИспользоватьУФ И МетаФорма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая Тогда + Продолжить; + КонецЕсли; + МетаФормы.Добавить(МетаФорма); + КонецЦикла; - ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем, Ложь); -КонецПроцедуры - -Процедура Тест_ОткрытьФормуНовогоЭлементаСправочникаСоздаваемогоКопированием(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт - ИД = МетаИмя; - Элем = СоздатьЭлемент(ИД, "копирование", "ИнтерактивноеДобавление"); - Если Элем = Неопределено Тогда - Возврат; - КонецЕсли; + Возврат МетаФормы; - ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем.Ссылка, Истина); -КонецПроцедуры - -Функция СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено) - Элем = Справочники[ИД].СоздатьЭлемент(); - Мета = Элем.Метаданные(); - Если ПроверяемоеПравоДоступа <> Неопределено И НЕ ПравоДоступа(ПроверяемоеПравоДоступа, Мета) Тогда - Возврат Неопределено; - КонецЕсли; +КонецФункции - Если Мета.ДлинаНаименования <> 0 Тогда - Попытка - Элем.Наименование = Наименование; - Исключение - КонецПопытки; - КонецЕсли; +Функция ПолучитьФормуЛкс(ИмяФормы, Параметры = Неопределено, Владелец = Неопределено, Уникальность = Неопределено, Окно = Неопределено) Экспорт + + Возврат мПолучениеФорм.ПолучитьФормуЛкс(ИмяФормы, Параметры, Владелец, Уникальность, Окно); - Если Мета.ДлинаКода <> 0 Тогда - Элем.УстановитьНовыйКод(); - КонецЕсли; - Элем.ОбменДанными.Загрузка = Истина; - Элем.Записать(); - Возврат Элем; КонецФункции -Функция СоздатьЭлементИВернутьСсылку(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено) Экспорт - Элем = СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа); - Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка); +Функция ПолучитьНовуюФорму(МетаФорма, ВнешнийОбъект = Неопределено, КлючВременнойФормы = Неопределено) + + Форма = ПолучитьФормуЛкс(МетаФорма, , , КлючВременнойФормы); //ирНеглобальный. + Возврат Форма; + КонецФункции -//{ блок работы с настройками -//Функция ПолучитьНастройки(Знач ФайлТеста, Знач ПутьНастройки) Экспорт -// -// Если Настройки = Неопределено Тогда -// ПутьФайлаНастроек = СтрШаблон("%1%2", ФайлТеста.Путь, ПутьНастройки); -// ФайлНастроек = Новый Файл(ПутьФайлаНастроек); -// Если ФайлНастроек.Существует() Тогда -// ЧтениеJSON = Новый ЧтениеJSON; -// ЧтениеJSON.ОткрытьФайл(ПутьФайлаНастроек); +Процедура ТестироватьФорму(Форма, ИмяОперации = "") Экспорт + ТестируемаяФорма = Форма; + Форма.Открыть(); // К сожалению здесь исключения не ловятся http://partners.v8.1c.ru/forum/thread.jsp?id=1080350#1080350 + Утверждения.Проверить(ТестируемаяФорма.Открыта(), "ТестируемаяФорма """+ИмяОперации+""" не открылась, а должна была открыться"); + + // Артур - мой код для доп.проверки формы + Если ЭтоОбычнаяФорма(ТестируемаяФорма) Тогда + ТестируемаяФорма.Обновить(); + Иначе + ТестируемаяФорма.ОбновитьОтображениеДанных(); + КонецЕсли; + +КонецПроцедуры + +// } РаботаСФормами -// Настройки = ПрочитатьJSON(ЧтениеJSON, Ложь); -// Настройки = Новый ФиксированнаяСтруктура(Настройки); -// КонецЕсли; -// КонецЕсли; -// Возврат Настройки; -//КонецФункции +// { РаботаСНастройками + +Процедура ЗагрузитьНастройки() + + ПутьНастройки = "smoke"; + ПлагинНастроек = КонтекстЯдра.Плагин("Настройки"); + Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки); + + Если ЕстьНастройка("ВыводитьСообщенияВЖурналРегистрации") Тогда + ВыводитьСообщенияВЖурналРегистрации = Настройки.ВыводитьСообщенияВЖурналРегистрации; + КонецЕсли; + +КонецПроцедуры Функция ПолучитьИсключения(Знач ВидМетаданного, Знач ВидПроверки) Если Не ЗначениеЗаполнено(Настройки) Тогда @@ -625,7 +933,6 @@ Результат = Новый СписокЗначений; Для Каждого ИмяМетаданного Из МассивИсключений Цикл Результат.Добавить(ИмяМетаданного); - //Сообщить(СтрШаблон("Исключения %1.%2 - %3", ВидМетаданного, ВидПроверки, ИмяМетаданного)); КонецЦикла; КонецЕсли; КонецЕсли; @@ -715,134 +1022,237 @@ КонецЕсли; Возврат ВидыПроверок; КонецФункции -//} -//{ блок переопределения исключений, чтобы не открывать формы -Функция ПолучитьСписокИсключений_Справочники_Списки() Экспорт +Функция ПолучитьНастройкуГруппировки(СтруктураНастроек) - Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Списки); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; + Перем СпособГруппировки; + + НастройкаГруппировки = Новый Структура; + НастройкаГруппировки.Вставить("КоличествоВГруппе", 20); + + Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Тогда + СтруктураНастроек.Свойство("СпособГруппировки", СпособГруппировки); + СтруктураНастроек.Свойство("КоличествоВГруппе", НастройкаГруппировки.КоличествоВГруппе); КонецЕсли; - Результат = Новый СписокЗначений; + Если ТипЗнч(СпособГруппировки) <> Тип("Массив") Тогда + МассивСпособов = Новый Массив; + МассивСпособов.Добавить(СпособГруппировки); + СпособГруппировки = МассивСпособов; + КонецЕсли; - Результат.Добавить("ирАлгоритмы"); + НастройкаГруппировки.Вставить("ГруппироватьПоВидуМетаданных", СпособГруппировки.Найти(СпособыГруппировки.ПоВидуМетаданных) <> Неопределено); + НастройкаГруппировки.Вставить("ГруппироватьПоВидуОбъекта" , СпособГруппировки.Найти(СпособыГруппировки.ПоВидуОбъекта) <> Неопределено); + НастройкаГруппировки.Вставить("ГруппироватьПоКоличеству" , СпособГруппировки.Найти(СпособыГруппировки.ПоКоличеству) <> Неопределено); + + Возврат НастройкаГруппировки; - Возврат Результат; КонецФункции -Функция ПолучитьСписокИсключений_Справочники_Существующие() Экспорт - - Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Существующие); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; +Функция СпособыГруппировки() Экспорт + Если СпособыГруппировки = Неопределено Тогда + СпособыГруппировки = Новый Структура; + СпособыГруппировки.Вставить("НеГруппировать", "НеГруппировать"); + СпособыГруппировки.Вставить("ПоВидуМетаданных", "ПоВидуМетаданных"); + СпособыГруппировки.Вставить("ПоВидуОбъекта", "ПоВидуОбъекта"); + СпособыГруппировки.Вставить("ПоКоличеству", "ПоКоличеству"); + СпособыГруппировки = Новый ФиксированнаяСтруктура(СпособыГруппировки); КонецЕсли; - - Результат = Новый СписокЗначений; - - Результат.Добавить("ирАлгоритмы"); - //Результат.Добавить("ПростойСправочник"); - - Возврат Результат; + Возврат СпособыГруппировки; КонецФункции -Функция ПолучитьСписокИсключений_Справочники_Новые() Экспорт +// Позволяет одним вызовом получить значение из вложенных друг в друга структур +// по строке ключей, объединенных точкой. +// Пример: +// Структура = Новый Структура("Ключ1", Новый Структура("Ключ2", Новый Структура("Ключ3", 42))); +// РезультатПроверки = ЕстьНастройка("Ключ1.Ключ2.Ключ3", ВремЗнач); +// В результате получим ВремЗнач == 42 +// +Функция ЕстьНастройка(ПутьНастроек, СтруктураНастроек = Неопределено) - Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Новые); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; + // TODO: Метод нужно перенести в плагин "Настройки". + + Если СтруктураНастроек = Неопределено Тогда + СтруктураНастроек = Настройки; КонецЕсли; - Результат = Новый СписокЗначений; + Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Тогда + + ПозТочки = Найти(ПутьНастроек, "."); + + Если ПозТочки = 0 Тогда + Возврат СтруктураНастроек.Свойство(ПутьНастроек); + Иначе + ИмяТекущегоСвойства = Лев(ПутьНастроек, ПозТочки - 1); + ОстатокПути = Сред(ПутьНастроек, ПозТочки + 1); + Если СтруктураНастроек.Свойство(ИмяТекущегоСвойства) Тогда + Возврат ЕстьНастройка(ОстатокПути, СтруктураНастроек[ИмяТекущегоСвойства]); + КонецЕсли; + КонецЕсли; + + КонецЕсли; - Результат.Добавить("ирАлгоритмы"); - //Результат.Добавить("ПростойСправочник"); + Возврат Ложь; - Возврат Результат; КонецФункции -Функция ПолучитьСписокИсключений_Документы_Списки() Экспорт - - Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Списки); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; +// } РаботаСНастройками + +// { ПоискИСозданиеОбъектов + +Функция ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения) + выборка = Документы[ИД].Выбрать(,,, "Дата Убыв"); + уcпешно = выборка.Следующий(); + Если Не уcпешно Тогда + Если НужноИсключениеЕслиНеНайденоДокументов Тогда + ВызватьИсключение ДопОписаниеДляИсключения + ": выборка.Следующий() - не найдено существующих документов! "; + Иначе + Возврат Неопределено; + КонецЕсли; КонецЕсли; - - Результат = Новый СписокЗначений; - - //Результат.Добавить("Штрафы"); - - Возврат Результат; + Док = выборка.ПолучитьОбъект(); + Возврат Док; КонецФункции -Функция ПолучитьСписокИсключений_Документы_Существующие() Экспорт +Функция ПолучитьСуществующийДокументОбъектИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения) Экспорт + Док = ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения); + Возврат ?(Док = Неопределено, Неопределено, Док.Ссылка); +КонецФункции + +Функция СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено) - Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Существующие); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; - КонецЕсли; + Элем = Справочники[ИД].СоздатьЭлемент(); + Мета = Элем.Метаданные(); - Результат = Новый СписокЗначений; + Если ПроверяемоеПравоДоступа <> Неопределено И НЕ ПравоДоступа(ПроверяемоеПравоДоступа, Мета) Тогда + Возврат Неопределено; + КонецЕсли; + + Если Мета.ДлинаНаименования <> 0 Тогда + Попытка + Элем.Наименование = Наименование; + Исключение + КонецПопытки; + КонецЕсли; - //Результат.Добавить("Штрафы"); + Если Мета.ДлинаКода <> 0 Тогда + Элем.УстановитьНовыйКод(); + КонецЕсли; - Возврат Результат; -КонецФункции - -Функция ПолучитьСписокИсключений_Документы_ПеренестиДату() Экспорт + Если Мета.Владельцы.Количество() Тогда + Элем.Владелец = ПолучитьСсылкуНаВладельца(Мета, "Владелец для: " + Наименование); + КонецЕсли; - Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.ПеренестиДату); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; + Если ЕстьНастройка("Справочники.ЗначенияРеквизитовНовых." + Мета.Имя) Тогда + Для каждого Реквизит из Настройки.Справочники.ЗначенияРеквизитовНовых[Мета.Имя] Цикл + Попытка + Элем[Реквизит.Ключ] = ЗначениеРеквизита(Мета, Реквизит.Ключ, Реквизит.Значение); + Исключение + ВывестиСообщение(ОписаниеОшибки(), УровеньЖурналаРегистрации.Предупреждение); + КонецПопытки; + КонецЦикла; КонецЕсли; - Результат = Новый СписокЗначений; + Элем.ОбменДанными.Загрузка = Истина; + Элем.Записать(); - //Результат.Добавить("Штрафы"); + Возврат Элем; - Возврат Результат; КонецФункции -Функция ПолучитьСписокИсключений_Документы_Новые() Экспорт +Функция СоздатьЭлементИВернутьСсылку(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено) Экспорт + Элем = СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа); + Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка); +КонецФункции + +Функция ПолучитьМетаданныеВладельца(КоллекцияМетаданныхВладельцев, Индекс=0) + Счетчик = 0; + Для каждого Элемент из КоллекцияМетаданныхВладельцев Цикл + Если Счетчик = Индекс Тогда + Возврат Элемент; + КонецЕсли; + Счетчик = Счетчик + 1; + КонецЦикла; + ВызватьИсключение "Индекс за границей диапазона"; +КонецФункции + +Функция ПолучитьСсылкуНаВладельца(МетаданныеПодчиненного, НаименованиеПодчиненного="Элемент-владелец") - Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Новые); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; + МетаИмяВладельца = Неопределено; + + Если ЕстьНастройка("Справочники.Подчиненные") Тогда + Настройки.Справочники.Подчиненные.Свойство(МетаданныеПодчиненного.Имя, МетаИмяВладельца); КонецЕсли; - Результат = Новый СписокЗначений; + Если МетаИмяВладельца = Неопределено Тогда + МетаИмяВладельца = ПолучитьМетаданныеВладельца(МетаданныеПодчиненного.Владельцы).Имя; + КонецЕсли; - Результат.Добавить("Штрафы"); + Возврат СоздатьЭлементИВернутьСсылку(МетаИмяВладельца, НаименованиеПодчиненного); - Возврат Результат; КонецФункции -Функция ПолучитьСписокИсключений_Отчеты() Экспорт - - Результат = ПолучитьИсключения(ВидыМетаданных.Отчеты, ""); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; +// } ПоискИСозданиеОбъектов + +// { ВспомогательныеМетоды + +Функция ИмяМетодаПропускаТестов() + Возврат "ТестДолжен_ПропуститьТестФормы"; +КонецФункции + +Функция ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Экспорт + Возврат Найти(НРег(МетаОбъект.Имя), НРег("Удалить")) = 1; +КонецФункции + +Функция ВидМетаданныхИсключенИзТестирования(ВидМетаданных) + Если ЕстьНастройка(ВидМетаданных) Тогда + Возврат (ТипЗнч(Настройки[ВидМетаданных]) = Тип("Булево") И НЕ Настройки[ВидМетаданных]); КонецЕсли; - - Результат = Новый СписокЗначений; - - //Результат.Добавить("Цены"); - - Возврат Результат; + Возврат Ложь; КонецФункции -Функция ПолучитьСписокИсключений_Обработки() Экспорт +Функция ЗначениеРеквизита(МетаданныеОбъекта, ИмяРеквизита, ЗначениеРеквизитаИзФайла) - Результат = ПолучитьИсключения(ВидыМетаданных.Обработки, ""); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Результат; + ТипРеквизита = МетаданныеОбъекта.Реквизиты[ИмяРеквизита].Тип.Типы()[0]; + + Если ЭтоПримитивныйТипДанных(ТипРеквизита) Тогда + Возврат МетаданныеОбъекта.Реквизиты[ИмяРеквизита].Тип.ПривестиЗначение(ЗначениеРеквизитаИзФайла); КонецЕсли; + + // Значит, это ссылочный тип данных. + Попытка + МетаданныеЗначения = Метаданные.НайтиПоТипу(ТипРеквизита); + Если Метаданные.Справочники.Содержит(МетаданныеЗначения) Тогда + Возврат СоздатьЭлементИВернутьСсылку(МетаданныеЗначения.Имя, ЗначениеРеквизитаИзФайла); + ИначеЕсли Метаданные.Перечисления.Содержит(МетаданныеЗначения) Тогда + Возврат Перечисления[МетаданныеЗначения.Имя][ЗначениеРеквизитаИзФайла]; + КонецЕсли; + // TODO: поддержку документов и других ссылочных типов данных (добавим по необходимости) + Исключение + КонецПопытки; + + Возврат Неопределено; + +КонецФункции + +Функция ЭтоПримитивныйТипДанных(Тип) + Возврат Тип = Тип("Строка") Или Тип = Тип("Число") + Или Тип = Тип("Дата") Или Тип = Тип("Булево"); +КонецФункции + +Функция ВывестиСообщение(ТекстСообщения, Знач УровеньЖР=Неопределено, Сообщать=Ложь) - Результат = Новый СписокЗначений; + Если Сообщать Тогда + Сообщить(ТекстСообщения, ?(УровеньЖР = УровеньЖурналаРегистрации.Ошибка, СтатусСообщения.ОченьВажное, СтатусСообщения.Обычное)); + КонецЕсли; - Результат.Добавить("ТестОбработка_Форма_ИсключениеПриОткрытии"); + Если ВыводитьСообщенияВЖурналРегистрации Тогда + Если УровеньЖР = Неопределено Тогда + УровеньЖР = УровеньЖурналаРегистрации.Информация; + КонецЕсли; + ЗаписьЖурналаРегистрации(Метаданные().Синоним, УровеньЖР, , , ТекстСообщения); + КонецЕсли; - Возврат Результат; КонецФункции -//} конец блока \ 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" index 0e9e6201..30d40651 100644 --- "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" @@ -1,2 +1,2 @@ -Form\УправляемаяФорма\Форма.bsl-->45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0 (50, 517) +Form\УправляемаяФорма\Форма.bsl-->45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0 (29, 496) Макеты\СозданиеОдногоПользователяИБ.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/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" index 8febb648..c0c30adc 100644 --- "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" @@ -1,15 +1,10 @@ {1, {1, {0, -{12, -{1, +{9, +{0, {0,0,45cb56ba-09f2-4931-88c4-1e63a1a8f37c},"УправляемаяФорма", -{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/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" index c2984367..58c82364 100644 --- "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" @@ -1,9 +1,9 @@ -{3, -{46,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,1,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,"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,1,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,100,1,1,0},"&НаКлиенте +{6,3,0,1}, +{0,0,0},0,0,1} +},"&НаКлиенте Перем КонтекстЯдра; &НаКлиенте Перем Ожидаем; @@ -588,10 +567,10 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ -YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} +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/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" index cc71f243..6650d9e6 100644 --- "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" @@ -1,6 +1,6 @@ {1, {2,0, -{1, +{0, {0,0,724d5548-5d6b-4e19-98cf-0ea3ae12c0a7},"СозданиеОдногоПользователяИБ", -{1,"ru","Создание одного пользователя ИБ"},"",0,0} +{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" index d83dfaab..eec1bc63 100644 Binary files "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" 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" index eb272418..d24d3482 100644 --- "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" @@ -1,15 +1,10 @@ {1, {1, {0, -{12, -{1, +{9, +{0, {0,0,be1492ab-bedd-4e13-8827-ed025cda688a},"ПолучениеФорм", -{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} -} -}, +{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/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" index 6087e1f0..3ea061db 100644 --- "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" @@ -4,21 +4,21 @@ {1, {4,d7763d54-e3e8-4427-b006-786d44023817,4eac2e4e-b966-477c-8f8b-b4f3c988a024, {0, -{1, +{0, {0,0,df099fc3-03ed-44c9-a8dd-e95a1e8978ff},"Тесты_ОткрытиеФормКонфигурации", -{1,"ru","Тесты ""Открытие форм конфигурации"""},"",0,0} +{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,9, +{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,10, { {0, -{27, +{25, {2, -{1, +{0, {0,0,0d576d83-e0f1-4407-8839-678e97084eb9},"мИменаОсновныхФорм", -{1,"ru","Имена основных форм"},"",0,0}, +{1,"ru","Имена основных форм"},""}, {"Pattern"} },0, {0}, @@ -29,15 +29,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,f465a06e-6fbe-4913-a502-3efe7fde4644},"мИменаОсновныхФорм_Списки", -{1,"ru","М имена основных форм списки"},"",0,0}, +{1,"ru","М имена основных форм списки"},""}, {"Pattern"} },0, {0}, @@ -48,15 +48,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,c4204ca8-31c8-4d16-b26c-bb95f5a4346a},"мИменаОсновныхФорм_Объекты", -{1,"ru","М имена основных форм объекты"},"",0,0}, +{1,"ru","М имена основных форм объекты"},""}, {"Pattern"} },0, {0}, @@ -67,15 +67,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,bcb9322e-f0c7-41a1-94cc-2d93e673140e},"мПолучениеФорм", -{1,"ru","М получение форм"},"",0,0}, +{1,"ru","М получение форм"},""}, {"Pattern"} },0, {0}, @@ -86,15 +86,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,585b82f6-6309-4ef7-bada-4bca196ee5a4},"ВыводитьСообщенияВЖурналРегистрации", -{1,"ru","Выводить сообщения в журнал регистрации"},"",0,0}, +{1,"ru","Выводить сообщения в журнал регистрации"},""}, {"Pattern", {"B"} } @@ -107,15 +107,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,ed566aa3-5e21-4e97-ba2e-d0a57445e12f},"Настройки", -{1,"ru","Настройки"},"",0,0}, +{1,"ru","Настройки"},""}, {"Pattern"} },0, {0}, @@ -126,15 +126,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,01329b90-651e-44ca-ad55-d3fb7fe405fc},"ВидыМетаданных", -{1,"ru","Виды метаданных"},"",0,0}, +{1,"ru","Виды метаданных"},""}, {"Pattern"} },0, {0}, @@ -145,15 +145,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,a7db6278-62f9-4730-b682-1cdfcd0291c8},"ВидыПроверок", -{1,"ru","Виды проверок"},"",0,0}, +{1,"ru","Виды проверок"},""}, {"Pattern"} },0, {0}, @@ -164,15 +164,34 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,9e5d7f0d-da20-4aeb-b366-5e3769aef9a2},"ФормыОтключенныеЧерезФункциональныеОпции", -{1,"ru","Формы, отключенные через функциональные опции"},"",0,0}, +{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,437adde4-c097-4629-bc91-640d88b2de23},"СпособыГруппировки", +{1,"ru","Способы группировки"},""}, {"Pattern"} },0, {0}, @@ -183,7 +202,7 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },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/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" index 421eee79..c23bfe28 100644 --- "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" @@ -1,5 +1,3 @@ { -{216,0, -{80308,0} -} +{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" index b5d3f7e2..5a7deda1 100644 --- "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" @@ -1 +1 @@ -{1,15,"",c8f54730-4b36-4608-9d18-15bdb03ed2da,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c",66328616-94fb-4c58-8871-5f58ce8add22,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0",67c2f52b-8fa5-4302-9b9f-bc2d4883b7b7,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7",98d3a23c-5ee8-40a6-b5e2-460e593849ef,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0",1242579b-3705-45c0-9ce0-2658cd386020,"be1492ab-bedd-4e13-8827-ed025cda688a",afa0d967-a1db-40e2-9f9d-cdf189b30a83,"be1492ab-bedd-4e13-8827-ed025cda688a.0",dbd428a3-7aa9-4984-81a7-a6bc93df3dac,"be1492ab-bedd-4e13-8827-ed025cda688a.1",0e88792e-dd94-4a89-986a-1d559f2cafdc,"copyinfo",bcc85977-f02a-457d-9a5d-7adba4744aa3,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff",950cbccd-96c4-452a-960d-5052c58af474,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0",5b9c669d-4103-4ea5-876b-9cf57608ed4f,"eb6420d9-ff9e-4c68-b025-2c1608cec69f",de1d9232-0856-44bb-8868-1640258788fb,"root",9fd8eb4a-611e-47f9-ace3-7c3714e6a154,"version",e8f329f4-b361-432f-9c72-8430894d95ec,"versions",11f2c0b0-c786-42cb-962c-1f5ce98e16a8} \ No newline at end of file +{1,15,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7",f5de8145-20b5-481e-8e6f-461c794a15e3,"724d5548-5d6b-4e19-98cf-0ea3ae12c0a7.0",5d16f622-4f83-4351-a157-319b0874eda9,"",6571afcf-fc43-4410-855d-6d01cacce7a8,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff",950cbccd-96c4-452a-960d-5052c58af474,"versions",eb06e14f-a18f-46a6-bf3a-d9ba70168e08,"df099fc3-03ed-44c9-a8dd-e95a1e8978ff.0",7835b0c0-59fc-446c-82a9-073436333b65,"root",ab993489-4aec-4fd4-849b-560460b33576,"be1492ab-bedd-4e13-8827-ed025cda688a.0",3c97fb0d-6713-4719-956f-8d9180e94d65,"be1492ab-bedd-4e13-8827-ed025cda688a.1",0e88792e-dd94-4a89-986a-1d559f2cafdc,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c",521046db-fd62-4492-b628-95b55b1f0d43,"be1492ab-bedd-4e13-8827-ed025cda688a",f4281815-749e-4ef8-bda2-e58a554f27dc,"version",5caf11f1-df4c-4690-a7fd-a4c5b7c93b7d,"45cb56ba-09f2-4931-88c4-1e63a1a8f37c.0",8e8de8eb-ef4d-4979-a6ca-420eb87dff1f,"eb6420d9-ff9e-4c68-b025-2c1608cec69f",9e2fed1f-8ac3-4996-a843-7ca929b529c7,"copyinfo",3e6953fd-5750-4d25-8a77-8db2a5bad9b1} \ 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" index d83dfaab..eec1bc63 100644 Binary files "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" 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/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\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/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\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" index 38c93c31..28a168a4 100644 --- "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\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/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\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" @@ -29,7 +29,7 @@ &НаКлиенте Процедура ПередЗапускомТеста() Экспорт - ПропуститьТест = СтрНайти(ПараметрЗапуска, ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun) = 0 + ПропуститьТест = Найти(ПараметрЗапуска, ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun) = 0 И ПлагинНастроек.ПолучитьНастройки() = Неопределено; Если ПропуститьТест Тогда diff --git "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/ObjectModule.bsl" "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/ObjectModule.bsl" index 52b96675..46228559 100644 --- "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/ObjectModule.bsl" +++ "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/ObjectModule.bsl" @@ -23,7 +23,7 @@ //{ блок юнит-тестов - сами тесты Процедура ПередЗапускомТеста() Экспорт - ПропуститьТест = СтрНайти(ПараметрЗапуска, ПарсерКоманднойСтроки.ВозможныеКлючи.xddRun) = 0 + ПропуститьТест = Найти(ПараметрЗапуска, ПарсерКоманднойСтроки.ВозможныеКлючи.xddRun) = 0 И ПлагинНастроек.ПолучитьНастройки() = Неопределено; Если ПропуститьТест Тогда diff --git "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/maps.txt" "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/maps.txt" index 0c45f831..ca237490 100644 --- "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/maps.txt" +++ "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/maps.txt" @@ -1 +1 @@ -Form\Форма\Форма.bsl-->3d4aaa50-373c-4196-89d3-322b26a65c4c.0 (46, 122) +Form\Форма\Форма.bsl-->3d4aaa50-373c-4196-89d3-322b26a65c4c.0 (29, 105) diff --git "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/3d4aaa50-373c-4196-89d3-322b26a65c4c" "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/3d4aaa50-373c-4196-89d3-322b26a65c4c" index 942618f6..3b9937d4 100644 --- "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/3d4aaa50-373c-4196-89d3-322b26a65c4c" +++ "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/3d4aaa50-373c-4196-89d3-322b26a65c4c" @@ -1,15 +1,10 @@ {1, {1, {0, -{12, -{1, +{9, +{0, {0,0,3d4aaa50-373c-4196-89d3-322b26a65c4c},"Форма", -{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/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/3d4aaa50-373c-4196-89d3-322b26a65c4c.0" "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/3d4aaa50-373c-4196-89d3-322b26a65c4c.0" index d3eb1d52..c3b500fc 100644 --- "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/3d4aaa50-373c-4196-89d3-322b26a65c4c.0" +++ "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/3d4aaa50-373c-4196-89d3-322b26a65c4c.0" @@ -1,49 +1,32 @@ -{3, -{46,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,1,0}, +{0}, {0},1, -{21, -{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,9,"ФормаКоманднаяПанель", +{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} }, -{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,1,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,100,1,1,0},"&НаКлиенте +{6,3,0,1}, +{0,0,0},0,0,1} +},"&НаКлиенте Перем КонтекстЯдра; &НаКлиенте Перем Ожидаем; @@ -74,7 +57,7 @@ &НаКлиенте Процедура ПередЗапускомТеста() Экспорт - ПропуститьТест = СтрНайти(ПараметрЗапуска, ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun) = 0 + ПропуститьТест = Найти(ПараметрЗапуска, ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun) = 0 И ПлагинНастроек.ПолучитьНастройки() = Неопределено; Если ПропуститьТест Тогда @@ -151,10 +134,10 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ -YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} +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/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/6b55f772-9628-4b9d-8191-fc389abee46d" "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/6b55f772-9628-4b9d-8191-fc389abee46d" index a80133d0..283e28d1 100644 --- "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/6b55f772-9628-4b9d-8191-fc389abee46d" +++ "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/6b55f772-9628-4b9d-8191-fc389abee46d" @@ -4,9 +4,9 @@ {1, {4,398f03b7-5998-4766-862a-ec9b4eb026a5,3d3d9ecf-6ab6-4d5e-88ae-8b6eb333e600, {0, -{1, +{0, {0,0,c62fd0f1-e482-4a62-8b01-a9ade6daf35d},"Тесты_Настройки", -{1,"ru","Тесты настройки"},"",0,0} +{1,"ru","Тесты настройки"},""} },3d4aaa50-373c-4196-89d3-322b26a65c4c,"",00000000-0000-0000-0000-000000000000},4, {2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, {3daea016-69b7-4ed4-9453-127911372fe6,0}, diff --git "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/version" "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/version" index 421eee79..c23bfe28 100644 --- "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/version" +++ "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/version" @@ -1,5 +1,3 @@ { -{216,0, -{80308,0} -} +{216,0} } \ No newline at end of file diff --git "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/versions" "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/versions" index c8dbe52f..c800bfb8 100644 --- "a/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/versions" +++ "b/src/fixtures/core/\320\242\320\265\321\201\321\202\321\213_\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/und/versions" @@ -1 +1 @@ -{1,9,"",7a31a472-2519-46e3-96bd-4bac893de55b,"3d4aaa50-373c-4196-89d3-322b26a65c4c",56c9ba95-aba2-4a32-8a1e-17fff26d0d14,"3d4aaa50-373c-4196-89d3-322b26a65c4c.0",24c9095f-10f6-49c5-a1dd-f618830b5e3d,"6b55f772-9628-4b9d-8191-fc389abee46d",af564713-3a0b-48da-b102-e1b196e0560a,"c62fd0f1-e482-4a62-8b01-a9ade6daf35d.0",2c8d82dd-0ca7-4e31-8ecd-63abedc619c6,"copyinfo",1cc491c2-6e01-4fff-baf4-c902a86f2e5c,"root",1cbee506-dd55-40ce-b580-634bfb0e51e9,"version",590374fa-c4f0-4631-908e-7b7df19c991b,"versions",61bee4ef-61f9-48bf-9f96-d206a32ded24} \ No newline at end of file +{1,9,"6b55f772-9628-4b9d-8191-fc389abee46d",c020deea-24e2-4401-8896-d777277b82a5,"",645eb527-7f10-4fab-86a7-69ef502e4ba2,"versions",3cd6b3e3-84b6-48d1-9d9a-60f6ad7c4786,"root",600b262e-15d0-4dc2-87fe-5188e298233b,"version",c4a8c848-19fe-4c34-b472-ac502fad7e7d,"3d4aaa50-373c-4196-89d3-322b26a65c4c",6e7a47ff-814c-406b-9167-fe65e88ebbfb,"copyinfo",edcb3adb-a168-4eb9-8571-db3731b1aec4,"c62fd0f1-e482-4a62-8b01-a9ade6daf35d.0",81674760-5df3-4679-905a-89b9400a4551,"3d4aaa50-373c-4196-89d3-322b26a65c4c.0",3677eda1-0353-42fc-873e-512991d68647} \ 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" index 2ede32f5..fcb819ff 100644 --- "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" @@ -123,8 +123,13 @@ ОткрытьФорму(ЭтаФорма.ИмяФормы); Иначе - Оповещение = Новый ОписаниеОповещения("КомандаПерезагрузитьФормуЗавершение", ЭтаФорма); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ЭтаФорма.ИспользуемоеИмяФайла , Ложь, ЭтаФорма.УникальныйИдентификатор); + // Back to 8.2 + //Оповещение = Новый ОписаниеОповещения("КомандаПерезагрузитьФормуЗавершение", ЭтаФорма); + ВыбранноеИмяФайла = ""; + Если ПоместитьФайл(АдресХранилища, ВыбранноеИмяФайла, ВыбранноеИмяФайла, Ложь, ЭтаФорма.УникальныйИдентификатор) Тогда + КомандаПерезагрузитьФормуЗавершение(Истина, АдресХранилища, ВыбранноеИмяФайла, Неопределено); + КонецЕсли; + // Back to 8.2 КонецЕсли; @@ -174,8 +179,14 @@ ДиалогВыбора.ПроверятьСуществованиеФайла = Истина; ДиалогВыбора.ПолноеИмяФайла = ПутьФайлаНастроек(); - ОповещениеВыбора = Новый ОписаниеОповещения("ЗагрузитьНастройкиИзФайлаЗавершение", ЭтаФорма); - ДиалогВыбора.Показать(ОповещениеВыбора); + // Back to 8.2 + //ОповещениеВыбора = Новый ОписаниеОповещения("ЗагрузитьНастройкиИзФайлаЗавершение", ЭтаФорма); + Если ДиалогВыбора.Выбрать() Тогда + ВыбранныеФайлы = Новый Массив; + ВыбранныеФайлы.Добавить(ДиалогВыбора.ПолноеИмяФайла); + ЗагрузитьНастройкиИзФайлаЗавершение(ВыбранныеФайлы, Неопределено); + КонецЕсли; + /// Back to 8.2 КонецПроцедуры @@ -287,8 +298,8 @@ Исключение Инфо = ИнформацияОбОшибке(); Если Инфо.Описание = "Метод объекта не обнаружен (Инициализация)" И - СтрНайти(Инфо.ИсходнаяСтрока, "ОбъектПлагин.Инициализация(ЭтаФорма);") > 0 И - СтрНайти(Инфо.ИмяМодуля, "Форма.УправляемаяФорма.Форма") > 0 + Найти(Инфо.ИсходнаяСтрока, "ОбъектПлагин.Инициализация(ЭтаФорма);") > 0 И + Найти(Инфо.ИмяМодуля, "Форма.УправляемаяФорма.Форма") > 0 Тогда Иначе ВызватьИсключение; @@ -938,7 +949,7 @@ ПутьКОтчету = ОчередныеПараметры[1]; - ОписаниеОшибки = СтрШаблон("УФ ПутьКОтчету %1", ПутьКОтчету); + ОписаниеОшибки = Плагин("СтроковеУтилиты").СтрШаблон82("УФ ПутьКОтчету %1", ПутьКОтчету); ЗафиксироватьОшибкуВЖурналеРегистрации("xUnitFor1C." + ИдентификаторГенератораОтчета, ОписаниеОшибки, Истина); Для Каждого Отчет Из НаборОтчетов Цикл @@ -962,7 +973,7 @@ ГенераторКодаВозврата = Плагин(ИдентификаторПлагина); ПутьФайлаКодаВозврата = Параметры_xddExitCodePath[1]; - ГенераторКодаВозврата.СформироватьФайл(ЭтотОбъект, ПутьФайлаКодаВозврата, РезультатыТестирования); + ГенераторКодаВозврата.СформироватьФайл(ЭтаФорма, ПутьФайлаКодаВозврата, РезультатыТестирования); Исключение Инфо = ИнформацияОбОшибке(); ОписаниеОшибки = "Ошибка формирования файла статуса возврата при выполнении тестов в пакетном режиме @@ -1059,9 +1070,15 @@ Возврат; КонецЕсли; - Оповещение = Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормы)); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); - + // Back to 8.2 + //Оповещение = Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормы)); + ВыбранноеИмяФайла = ""; + Если ПоместитьФайл(АдресХранилища, ФайлИнструмента.ПолноеИмя, ВыбранноеИмяФайла , Ложь, ЭтаФорма.УникальныйИдентификатор) Тогда + ДопПараметры = Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормы); + ОткрытьИнструментЗавершение(Истина, АдресХранилища, ВыбранноеИмяФайла, ДопПараметры); + КонецЕсли; + /// Back to 8.2 + КонецЕсли; КонецПроцедуры @@ -1093,8 +1110,14 @@ Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf"); - Оп = Новый ОписаниеОповещения("ПодключитьВнешнююОбработкуЗавершение", ЭтаФорма, Новый Структура("ФайлОбработки, ЭтоОтчет", ФайлОбработки, ЭтоОтчет)); - НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + // Back to 8.2 + //Оп = Новый ОписаниеОповещения("ПодключитьВнешнююОбработкуЗавершение", ЭтаФорма, Новый Структура("ФайлОбработки, ЭтоОтчет", ФайлОбработки, ЭтоОтчет)); + ВыбранноеИмяФайла = ""; + Если ПоместитьФайл(АдресХранилища, ФайлОбработки.ПолноеИмя , ВыбранноеИмяФайла, Ложь, ЭтаФорма.УникальныйИдентификатор) Тогда + ДопПараметры = Новый Структура("ФайлОбработки, ЭтоОтчет", ФайлОбработки, ЭтоОтчет); + ПодключитьВнешнююОбработкуЗавершение(Истина, АдресХранилища, ВыбранноеИмяФайла, ДопПараметры); + КонецЕсли; + /// Back to 8.2 КонецЕсли; КонецПроцедуры 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 3b8c5144..63661048 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" @@ -1,18 +1,18 @@ {27, -{18, +{16, { {1,0},37,36}, {09ccdc77-ea1a-4a6d-ab1c-3435eada2433, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},0, +{6,3,0,1},0, {3,3, {-22} }, @@ -30,54 +30,32 @@ }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},25,0,1, +{1,0} +},21,0,1, {0,4,1},0,2, {0,4,3}, {0,11,3},0,0, -{7,1, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},0,1, +{3,1, +{3,0, +{0},"",-1,-1,1,0} +},0,1, {1,2, -{4, +{3, {1,1, {"ru","Тестирование"} }, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Тестирование",1, -{3,4, -{0} -}, -{3,4, -{0} -} -}, -{4, +{3,0, +{3,0, +{0},"",-1,-1,1,0} +},-1,1,1,"Тестирование",1}, +{3, {1,1, {"ru","Настройки"} }, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Настройки",1, -{3,4, -{0} -}, -{3,4, -{0} -} -} +{3,0, +{3,0, +{0},"",-1,-1,1,0} +},-1,1,1,"Настройки",1} },1,1,0,8, {2,8,1,1,1,0,0,0,0}, {2,8,0,1,2,0,0,0,0}, @@ -86,24 +64,21 @@ {2,8,1,1,1,1,0,0,0}, {2,8,0,1,2,1,0,0,0}, {2,851,1,1,3,1,0,8,0}, -{2,544,0,1,4,1,0,8,0},0,4294967295,4294967295,5,64,0, -{3,4, -{0} -},0,0,57,0}, +{2,544,0,1,4,1,0,8,0},0,4294967295,4294967295,5,64,0}, {0} }, {12, {09ccdc77-ea1a-4a6d-ab1c-3435eada2433,4, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},0, +{6,3,0,1},0, {3,3, {-22} }, @@ -121,47 +96,32 @@ }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},25,0,2, +{1,0} +},21,0,2, {0,5,1}, {0,7,1},0,4, {0,5,3}, {0,7,3}, {0,10,3}, {0,36,3},0,0, -{7,1, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},0,1, +{3,1, +{3,0, +{0},"",-1,-1,1,0} +},0,1, {1,1, -{4, +{3, {1,1, {"#","Тесты"} }, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Тесты",1, -{3,4, -{0} -}, -{3,4, -{0} -} -} +{3,0, +{3,0, +{0},"",-1,-1,1,0} +},-1,1,1,"Тесты",1} },1,1,0,4, {2,6,1,1,1,0,0,0,0}, {2,6,0,1,2,0,0,0,0}, {2,837,1,1,3,0,0,5,0}, -{2,471,0,1,4,0,0,5,0},0,4294967295,5,64,0, -{3,4, -{0} -},0,0,57,0}, +{2,471,0,1,4,0,0,5,0},0,4294967295,5,64,0}, {0} }, {8,8,43,850,519,1, @@ -198,14 +158,14 @@ {"#",e603c0f2-92fb-4d47-8f38-a44a381cf235} }, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},0, +{6,3,0,1},0, {3,3, {-22} }, @@ -223,8 +183,9 @@ }, {3,1, {-18},0,0,0}, -{1,0},0,0,100,2}, -{18,117644833, +{1,0} +}, +{15,117644833, {3,4, {0} }, @@ -246,23 +207,23 @@ {3,3, {-13} },2,2,0,0,0,1,1,1,3, -{7,2,0, -{-20},1,100}, -{7,2,0, -{-20},1,100},0,2,0, +{6,2,0, +{-20},1}, +{6,2,0, +{-20},1},0,2,0, {6, {737535a4-21e6-4971-8513-3e3173a9fedd, {8, {8, -{17, +{16, {1,1, {"ru","Колонка1"} }, {1,0}, {1,0},26,0,-1,-1,-1,12590594, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,3, +{3,0, +{0},"",-1,-1,1,0}, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAAFAAAAAQCAYAAACBSfjBAAAABGdBTUEAALGPC/xh @@ -311,9 +272,9 @@ eZPwa0asArY/9zYM8Y3QR68teUKZed+8A5b18yc7h0IPc33s3pME1LyOXbP31dPD Qg2sRV/JQCPvA4MX1q6+bmvwnJIVdZt3RWORSdTEbDL1fFpWv81g/NILc/N/+x9Y i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs 7sC/68BdS71tH9LcEKQAAAAASUVORK5CYII=} -},0,""}, -{4,0, -{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, +},0}, +{3,0, +{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, {3,4, {0} }, @@ -332,14 +293,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, -{7,3,0,1,100}, -{7,3,0,1,100},1,0,0,0,0,"Состояние", +{6,3,0,1}, +{6,3,0,1}, +{6,3,0,1},1,0,0,0,0,"Состояние", {},4,0, {1,0}, {"Pattern", {"S"} -},0,1,00000000-0000-0000-0000-000000000000,0,0,0}, +},0,1,00000000-0000-0000-0000-000000000000}, {-1}, {-1}, {-1} @@ -348,15 +309,15 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {737535a4-21e6-4971-8513-3e3173a9fedd, {8, {8, -{17, +{16, {1,1, {"ru","Имя"} }, {1,0}, {1,0},302,2,-1,-1,-1,12590595, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,3, +{3,0, +{0},"",-1,-1,1,0}, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAAIAAAAAQCAYAAADeWHeIAAAABmJLR0QA/wD/AP+g @@ -413,9 +374,9 @@ cHZCQtx5OwQ/CxrZK9esbRIPEB/bnss6tEcRcO3MBxsSWy/tRzezDxAf257B9p7B PbwLwat9M7YNBmyt5MYIhP9zLlfWP7Z9AZAW5rrNwqZmXYqc31LF35x/4ui7/qev haH4OfZEmTn7fHH6aGr3BnagjUvtLgEOFOxjZPq+Cx4vPrrxfuCBgn3fjnpk34Xi D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} -},0,""}, -{4,0, -{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, +},0}, +{3,0, +{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, {3,4, {0} }, @@ -434,20 +395,21 @@ D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} {3,4, {0} }, -{7,3,0,1,100}, -{7,3,0,1,100}, -{7,3,0,1,100},1,0,0,0,0,"Имя", +{6,3,0,1}, +{6,3,0,1}, +{6,3,0,1},1,0,0,0,0,"Имя", {},44,0, {1,0}, {"Pattern", {"S"} },0,1,381ed624-9217-4e63-85db-c4c3cb87daae, { -{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVAxDsIwDIQVqZ/I7Eh20jbJL5AQDyjQlQF1q/Iy -Bp7EzEZitwVaILHknH2Oz36sV3zu11sfoNj0att0XXs5KwY7FYtNzE8xqoAyslBm -h2N2jh1YwEQlxJgezLDZaWN+1SyxVLh5wNArwmo0+dwlXY4SoMDUHSiCRUFCgSUq -RaLaqzh5pT5IKTywkHOasuW8kqI/2emHLxLfBNXOOZMXPE7Hs4XG1aU9GU2hDbqs -WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, +{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ +OLAFa7ACtU0KbdXYsvP8e++13/F7P54D6rIY1KHt++5+UwyOKpVFoq84WA2EvA6U +bO4uca29HkfTGLjrKRnntubXWDaaZcHBr8JKDERiGY2roOWGAy5KzPaPgkhTJ5Wm +rNRsiEms6KKeAXL4Mm21pt25qHw1y2fx2DZ18FdnADs0oeqciRG9cdGeLwhYtdjQ +XFhJtSKWz30vMgcItzCmDw==},0} +}, {-1}, {-1}, {-1} @@ -456,18 +418,18 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {737535a4-21e6-4971-8513-3e3173a9fedd, {8, {8, -{17, +{16, {1,1, {"ru","Кол-во"} }, {1,0}, {1,0},64,1,-1,-1,-1,12590592, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, {3,4, {0} }, @@ -486,20 +448,21 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {3,4, {0} }, -{7,3,0,1,100}, -{7,3,0,1,100}, -{7,3,0,1,100},1,0,0,0,0,"КоличествоТестов", +{6,3,0,1}, +{6,3,0,1}, +{6,3,0,1},1,0,0,0,0,"КоличествоТестов", {},10,1, {1,0}, {"Pattern", {"S"} },0,1,381ed624-9217-4e63-85db-c4c3cb87daae, { -{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVAxDsIwDIQVqZ/I7Eh20jbJL5AQDyjQlQF1q/Iy -Bp7EzEZitwVaILHknH2Oz36sV3zu11sfoNj0att0XXs5KwY7FYtNzE8xqoAyslBm -h2N2jh1YwEQlxJgezLDZaWN+1SyxVLh5wNArwmo0+dwlXY4SoMDUHSiCRUFCgSUq -RaLaqzh5pT5IKTywkHOasuW8kqI/2emHLxLfBNXOOZMXPE7Hs4XG1aU9GU2hDbqs -WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, +{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ +OLAFa7ACtU0KbdXYsvP8e++13/F7P54D6rIY1KHt++5+UwyOKpVFoq84WA2EvA6U +bO4uca29HkfTGLjrKRnntubXWDaaZcHBr8JKDERiGY2roOWGAy5KzPaPgkhTJ5Wm +rNRsiEms6KKeAXL4Mm21pt25qHw1y2fx2DZ18FdnADs0oeqciRG9cdGeLwhYtdjQ +XFhJtSKWz30vMgcItzCmDw==},0} +}, {-1}, {-1}, {-1} @@ -508,18 +471,18 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {737535a4-21e6-4971-8513-3e3173a9fedd, {8, {8, -{17, +{16, {1,1, {"ru","Время выполнения"} }, {1,0}, {1,0},34,3,-1,-1,-1,12590592, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, {3,4, {0} }, @@ -538,9 +501,9 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {3,4, {0} }, -{7,3,0,1,100}, -{7,3,0,1,100}, -{7,3,0,1,100},1,0,0,0,0,"ВремяВыполнения", +{6,3,0,1}, +{6,3,0,1}, +{6,3,0,1},1,0,0,0,0,"ВремяВыполнения", {},5,0, {1,1, {"ru","ЧН=-"} @@ -549,11 +512,12 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {"N",10,3,1} },0,1,381ed624-9217-4e63-85db-c4c3cb87daae, { -{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVAxDsIwDATGSnwisyPZSdskn0AsPKBAVwbEhvIy -Bp7EF4jtUlALJJEc+87xXZarhazH7X5NsK6uZttdLv35ZCTZGCAED5TXVeaKHmqA -OPNQc8AXOs1DacVCJcRcLsLwHKxzv3rmuXaEacHRuyJqLEWeUrZUCVDTMr0YAI8w -3zQw2GMZLBrNzuQxGjOyUOGBhYJZ4sO40aY/6PjCF40fitoQguMfftkTc6kLbe2P -zlLqk62b3tkYk7cu4v6QKDVdCjp/6gDVg3zo8KIMJRWjEvIT},0},0,0,0}, +{#base64:AgFTS2/0iI3BTqDV67a9oKcNdY87DsIwDIZhrdRLZE6kOEkfvgRi4QAFujKgblVO +xsBNuAJXILaborZqE8Xy78f/9XM88Pd9vUfUZTGqczcM/fOhODkpDVZ7DbEsIily +kwaUeR0o2Fxd53UaTa0xPVz1FIxze/3bXCaateDgrzCJgZZc0mEVtOxwIOLiiCb/ +lQyZTV1UnKNSc5fN6FbAqGaALkxWe6V5dkmVt2Z+pseuqYO/OwPYowlV70zbojeu +tdcbAlYdNtQXNqhWYHndtJE9QLzFMf4A},0} +}, {-1}, {-1}, {-1} @@ -562,18 +526,18 @@ zlLqk62b3tkYk7cu4v6QKDVdCjp/6gDVg3zo8KIMJRWjEvIT},0},0,0,0}, {737535a4-21e6-4971-8513-3e3173a9fedd, {8, {8, -{17, +{16, {1,1, {"ru","Путь"} }, {1,0}, {1,0},1e2,4,-1,-1,-1,12590592, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, {3,4, {0} }, @@ -592,20 +556,21 @@ zlLqk62b3tkYk7cu4v6QKDVdCjp/6gDVg3zo8KIMJRWjEvIT},0},0,0,0}, {3,4, {0} }, -{7,3,0,1,100}, -{7,3,0,1,100}, -{7,3,0,1,100},1,0,0,0,0,"Путь", +{6,3,0,1}, +{6,3,0,1}, +{6,3,0,1},1,0,0,0,0,"Путь", {},15,0, {1,0}, {"Pattern", {"S"} },0,1,381ed624-9217-4e63-85db-c4c3cb87daae, { -{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVA7DsIwDIUVqZfI7Eh20jbJLZAQByjQlQF1q3Iy -Bo7EzEZi9wPlk1hy3rMdP/uxXvG5X299gGLTq23Tde3lrBjsVCw2MT/FqALKyEKZ -HY7RJXZgAVMqIcb04AybnTbmV80nlgq3JAzNDKvR5HOXdJklQIGpO1AEi4IkBWY0 -MqVIVHsVJ6/UW0mihyzkmKZsOa6k6E90+uGLxBdBtXPO5AWP0/FsoXF1aU9GU2iD -LqvWaO+D1cbj4RgoVE1w0n85AcoMvM/hR25KIkYkxCc=},0},0,0,0}, +{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ +OLAFa7ACtU0KbdXYsuPnz3uv/Y7f+/EcUJfFoA5t33f3m+LiqFJZJPqKg9VAldeB +ks3dZV1rr8fRNAbuekrGua35dS0bzRJw8ENYiYFILKMxClpuOGBQYjb4Q4JIUyeV +pqzUbIVJrOiingFy+DJttabduah8Nctn8dg2dfBXZwA7NKHqnIkRvXHRni8IWLXY +0FxYSbUils99LzIHCLcwpg8=},0} +}, {-1}, {-1}, {-1} @@ -614,18 +579,18 @@ LqvWaO+D1cbj4RgoVE1w0n85AcoMvM/hR25KIkYkxCc=},0},0,0,0}, {737535a4-21e6-4971-8513-3e3173a9fedd, {8, {8, -{17, +{16, {1,1, {"ru","Ключ"} }, {1,0}, {1,0},1e2,5,-1,-1,-1,12589568, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09, {3,4, {0} }, @@ -644,26 +609,27 @@ LqvWaO+D1cbj4RgoVE1w0n85AcoMvM/hR25KIkYkxCc=},0},0,0,0}, {3,4, {0} }, -{7,3,0,1,100}, -{7,3,0,1,100}, -{7,3,0,1,100},1,0,0,0,0,"Ключ", +{6,3,0,1}, +{6,3,0,1}, +{6,3,0,1},1,0,0,0,0,"Ключ", {},15,0, {1,0}, {"Pattern", {"S"} },0,1,381ed624-9217-4e63-85db-c4c3cb87daae, { -{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVAxDsIwDIQVqZ/I7Eh20jbJL5AQDyjQlQF1q/Iy -Bp7EzEZitwVaILHknH2Oz36sV3zu11sfoNj0att0XXs5KwY7FYtNzE8xqoAyslBm -h2N2jh1YwEQlxJgezLDZaWN+1SyxVLh5wNArwmo0+dwlXY4SoMDUHSiCRUFCgSUq -RaLaqzh5pT5IKTywkHOasuW8kqI/2emHLxLfBNXOOZMXPE7Hs4XG1aU9GU2hDbqs -WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, +{#base64:AgFTS2/0iI3BTqDV67a9oKcNdU7LDcIwDIVrpS6RcyLFSdrGWyAhBijQKwfUW5XJ +OLAFa7ACtU0KbdXYsvP8e++13/F7P54D6rIY1KHt++5+UwyOKpVFoq84WA2EvA6U +bO4uca29HkfTGLjrKRnntubXWDaaZcHBr8JKDERiGY2roOWGAy5KzPaPgkhTJ5Wm +rNRsiEms6KKeAXL4Mm21pt25qHw1y2fx2DZ18FdnADs0oeqciRG9cdGeLwhYtdjQ +XFhJtSKWz30vMgcItzCmDw==},0} +}, {-1}, {-1}, {-1} },"Ключ","","",0} } -},0,0,0,0,0,0,0,100,1,2} +},0,0,0,0} }, {9ab3fa70-d2e0-4e44-baac-730682272ed2, {4,1,1, @@ -703,14 +669,14 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {e69bf21d-97b2-4f37-86db-675aea9ec2cb,10, {2, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},0, +{6,3,0,1},0, {3,3, {-22} }, @@ -728,9 +694,10 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},9,2,0,0,1,1, +{1,0} +},8,2,0,0,1,1, {5,d4746b64-45af-49b5-a280-c2206705887b,9,1,1, -{6,db368e7f-9280-4e81-883b-9c65ba315c62,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,45455fdd-df03-484a-b798-7f032b3a1925,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаВыполнитьВыделенныеТестыНажатие", {1,"КнопкаВыполнитьВыделенныеТестыНажатие", {1,1, @@ -742,8 +709,8 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {1,1, {"ru","Кнопка выполнить выделенные тесты нажатие"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } },15, @@ -753,7 +720,7 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {1,1, {"#","Кнопка выполнить выделенный нажатие"} }, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAAL @@ -833,10 +800,10 @@ eWwwH6ofA9JAcb/C+wUQhgCXowa3UyOe+ptr43dIxvTp8hPtSn7BN1oxmV3d7jAA BT2vLGbWS92jcyHi0eKcnlGHth40DwGpirD4N/NAtpxz/fzryOKAkVV/L8x3DFYC SeG/CiRbW381XQJ+eB6R7JkecvQzOgL43wP8MwC/vaxojUiI8wAAAABJRU5ErkJg gg==} -},0,""}, +},0}, {0,118,8} },1, -{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,db368e7f-9280-4e81-883b-9c65ba315c62, +{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,45455fdd-df03-484a-b798-7f032b3a1925, {8,"ВыполнитьТест",0,4, {1,2, {"#","Выполнить тест"}, @@ -846,7 +813,7 @@ gg==} {0} } } -},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0,0,0} +},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0} }, {8,269,357,472,381,0, {0, @@ -883,14 +850,14 @@ gg==} {b1db1f86-abbb-4cf0-8852-fe6ae21650c2,11, {0, { -{15,1, +{10,1, {3,3, {-7} }, {3,4, {0} }, -{7,3,0,1,100},0, +{6,3,0,1},0, {3,0, {44544} }, @@ -908,7 +875,8 @@ gg==} }, {3,0, {0},1,1,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},3,0,100,1,0,1,2} +{1,0} +},3,0,100,1,0,1,2} }, {8,8,522,850,544,1, {0, @@ -942,14 +910,14 @@ gg==} {6ff79819-710e-4145-97cd-1618da79e3e2,12, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},1, +{6,3,0,1},1, {3,3, {-22} }, @@ -967,12 +935,13 @@ gg==} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},14, +{1,0} +},10, {1,2, {"#","Выполнить все тесты"}, {"ru","Выполнить все тесты (F7)"} },1,1,0,0,0, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAAL @@ -1060,8 +1029,8 @@ JyajRXUdPoID8x3ChKlmpiPtjn2X/3tJJRfU/tGxqD95mFkDhBYCS/Ge7VqG0VQs bPzx/OXuKnHK9GukM/cUMKZWKzppNuH0T1e8z+hA5N8sJCuN4+Wz4LnVy1bpFWdu Fq6oA8zcLFzz9mOr9ALw+4nHKwOsr+XrAP9LgL8GAIsWe/XplG1LAAAAAElFTkSu QmCC} -},0,""}, -{0,118,0},0,0,0,0,0,1}, +},0}, +{0,118,0},0,0}, {1, {0,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаВыполнитьВсеТестыНажатие", @@ -1075,8 +1044,8 @@ QmCC} {1,1, {"ru","Кнопка выполнить все тесты нажатие"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } } @@ -1116,14 +1085,14 @@ QmCC} {6ff79819-710e-4145-97cd-1618da79e3e2,13, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},1, +{6,3,0,1},1, {3,3, {-22} }, @@ -1141,12 +1110,13 @@ QmCC} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},14, +{1,0} +},10, {1,2, {"#","Загрузить тесты"}, {"ru","Загрузить тесты"} },1,1,0,0,0, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+g @@ -1179,10 +1149,12 @@ v7z6xrfBqzEgfxeqE7XJ4h8a1/aCgEzcbXeuH+b0RvNf+XOfI5UewfYAAAAldEVY dGRhdGU6Y3JlYXRlADIwMTMtMDUtMjlUMDk6NDc6NDItMDU6MDBTDo/DAAAAJXRF WHRkYXRlOm1vZGlmeQAyMDEzLTA1LTI4VDA2OjE3OjMwLTA1OjAwR0bHqQAAAABJ RU5ErkJggg==} -},0,""}, +},0}, {0,0,0},0,2, {5,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1,3, -{6,75a7f862-dc84-4f3c-bb23-85fc6f95ccdf,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,e17ba68c-32f5-4944-a6cc-0d28edc6593b,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26},0}, +{6,76000eb2-7fdb-48de-98cf-0bad48ce0d76,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаЗагрузитьТестыЗагрузитьНастройкиИзФайла", {1,"КнопкаЗагрузитьТестыЗагрузитьНастройкиИзФайла", {1,1, @@ -1194,24 +1166,27 @@ RU5ErkJggg==} {1,1, {"ru","Загрузить настройки из файла"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } },0}, -{6,a3c501cf-0b0c-43c7-8e6c-c515ee4f4d8e,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, -{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0}, -{6,ca09fbcb-29b4-4050-809d-00a2c2e69426,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, -{1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26},0},2, -{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,75a7f862-dc84-4f3c-bb23-85fc6f95ccdf, +{6,39062f90-5d5e-4892-8819-43c73b45a419,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},2, +{5,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26,1,0, +{0,0, +{0} +} +}, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,76000eb2-7fdb-48de-98cf-0bad48ce0d76, {8,"ЗагрузитьНастройкиИзФайла",0,1, {1,1, {"ru","Загрузить настройки из файла ..."} -},1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,28,1e2,0,0,1,0,0,0,0},a3c501cf-0b0c-43c7-8e6c-c515ee4f4d8e, +},1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,28,1e2,0,0,1,0,0,0,0},39062f90-5d5e-4892-8819-43c73b45a419, {8,"Разделитель",0,1, {1,1, {"ru","Действие"} -},0,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1e2,2,0,1,0,0,0,0},ca09fbcb-29b4-4050-809d-00a2c2e69426, +},0,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1e2,2,0,1,0,0,0,0},e17ba68c-32f5-4944-a6cc-0d28edc6593b, {8,"ИсторияЗагрузкиТестов",0,1, {1,1, {"ru","История загрузки тестов"} @@ -1219,13 +1194,9 @@ RU5ErkJggg==} {-1,0, {1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,20,0} } -}, -{5,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26,1,0, -{0,0, -{0} } } -},0,0,0,1}, +}, {1, {0,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаЗагрузитьТестыНажатие", @@ -1239,8 +1210,8 @@ RU5ErkJggg==} {1,1, {"ru","Кнопка загрузить тесты нажатие"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } } @@ -1280,14 +1251,14 @@ RU5ErkJggg==} {6ff79819-710e-4145-97cd-1618da79e3e2,21, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},1, +{6,3,0,1},1, {3,3, {-22} }, @@ -1305,12 +1276,13 @@ RU5ErkJggg==} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},14, +{1,0} +},10, {1,2, {"#","Перезагрузить"}, {"ru","Перезагрузить"} },1,1,0,0,0, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2Fy @@ -1341,10 +1313,10 @@ A5NmwKFC0/PLtq62ovdaPRQix06qmJuALSJ74mtGzHnBalirNn1GZfmK3njMDXCJ BguK5OCb5OCdsRjPzXIg/qV4LWdl5AGyvOJa/LLzgL7Lh5bic2AxDUSCuJ8sg4fZ fpcIxAUgkUoIHsoxHlpxsReNeI9EIrDkX2QLIpCML+Wkf5z+LcAAUD/gDNueXkgA AAAASUVORK5CYII=} -},0,""}, +},0}, {0,0,0},0,2, {5,41c23139-b710-4b93-a93e-1a3fe9843cfe,5,1,3, -{6,fa708bd8-8fc9-4dd0-af4f-399937e0b3f5,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,626572d9-7bc6-4367-9c0f-0aeb92a7703d,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования", {1,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования", {1,1, @@ -1356,12 +1328,12 @@ AAAASUVORK5CYII=} {1,1, {"ru","Перезагрузить браузер тестирования"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } },0}, -{6,bea52a2a-47e0-4a43-9676-a823943f7bd5,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,edb0534b-b22e-4bc9-a803-24ef571a5419,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"ПерезагрузитьПоследниеТестыПоИстории", {1,"ПерезагрузитьПоследниеТестыПоИстории", {1,1, @@ -1373,8 +1345,8 @@ AAAASUVORK5CYII=} {1,1, {"ru","Перезагрузить последние тесты по истории"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } },7, @@ -1384,7 +1356,7 @@ AAAASUVORK5CYII=} {1,1, {"ru","Перезагрузить тесты"} }, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2Fy @@ -1415,19 +1387,19 @@ A5NmwKFC0/PLtq62ovdaPRQix06qmJuALSJ74mtGzHnBalirNn1GZfmK3njMDXCJ BguK5OCb5OCdsRjPzXIg/qV4LWdl5AGyvOJa/LLzgL7Lh5bic2AxDUSCuJ8sg4fZ fpcIxAUgkUoIHsoxHlpxsReNeI9EIrDkX2QLIpCML+Wkf5z+LcAAUD/gDNueXkgA AAAASUVORK5CYII=} -},0,""} +},0} }, -{6,b07922f0-763b-4284-9d3e-6097f5c5ca96,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{6,047cd14d-3210-46d3-82d4-b19fecf0d920,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, {1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1, -{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,bea52a2a-47e0-4a43-9676-a823943f7bd5, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,edb0534b-b22e-4bc9-a803-24ef571a5419, {8,"ПерезагрузитьТесты",0,1, {1,1, {"ru","Перезагрузить тесты"} -},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},b07922f0-763b-4284-9d3e-6097f5c5ca96, +},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},047cd14d-3210-46d3-82d4-b19fecf0d920, {8,"Разделитель",0,1, {1,1, {"ru","Действие"} -},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},fa708bd8-8fc9-4dd0-af4f-399937e0b3f5, +},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},626572d9-7bc6-4367-9c0f-0aeb92a7703d, {8,"ПерезагрузитьБраузерТестирования",0,1, {1,1, {"#","Перезагрузить браузер тестирования"} @@ -1436,7 +1408,8 @@ AAAASUVORK5CYII=} {0} } } -},0,0,0,1}, +} +}, {1, {0,e1692cc2-605b-4535-84dd-28440238746c, {3,"ПерезагрузитьПоследниеТестыПоИстории", @@ -1450,8 +1423,8 @@ AAAASUVORK5CYII=} {1,1, {"ru","Перезагрузить последние тесты по истории"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } } @@ -1491,14 +1464,14 @@ AAAASUVORK5CYII=} {6ff79819-710e-4145-97cd-1618da79e3e2,23, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},1, +{6,3,0,1},1, {3,3, {-22} }, @@ -1516,12 +1489,13 @@ AAAASUVORK5CYII=} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},14, +{1,0} +},10, {1,2, {"#","Назад"}, {"ru","Назад"} },1,1,0,0,0, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAE1mlDQ1BJQ0MgUHJv @@ -1571,8 +1545,8 @@ dH9oHdVDevGxH3vaTveMsbLgPgo8gYy8B+b8Jhw8TTT4s/xu2S2Xk+fOjGy8KVBC b++Zz4O/yC8XIkCZ0qqkMqLZ5gSybNPsMQeglNeyNjfAjtAQn/Z1ccL2IQCLVPUy 7W/TNusqExOm2OSKTeQE3EAO4LXbHMB1tQgml0/YpBag24RJuz/VkoBh940p4paw hP8WfwNIdpwThSRjAwAAAABJRU5ErkJggg==} -},0,""}, -{0,0,0},0,0,0,0,0,1}, +},0}, +{0,0,0},0,0}, {0} }, {8,8,8,116,37,1, @@ -1609,14 +1583,14 @@ hP8WfwNIdpwThSRjAwAAAABJRU5ErkJggg==} {1, { { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},0, +{6,3,0,1},0, {3,3, {-22} }, @@ -1634,11 +1608,12 @@ hP8WfwNIdpwThSRjAwAAAABJRU5ErkJggg==} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},6, +{1,0} +},4, {1,2, {"#","Автоматически перезагружать тесты перед повторным выполнением"}, {"ru","Автоматически перезагружать тесты перед повторным выполнением"} -},1,0,1,0,100,1},4,0,0,0,0,0}, +},1,0,1},1,0,0}, {0} }, {8,12,89,507,104,1, @@ -1674,15 +1649,15 @@ hP8WfwNIdpwThSRjAwAAAABJRU5ErkJggg==} {0fc7e20d-f241-460c-bdf4-5ad88e5474a5,25, {3, { -{15,1, +{10,1, {3,4, {-7} }, {3,4, {0} }, -{7,1,2, -{0},140,1,100},0, +{6,1,2, +{0},140,1},0, {3,3, {-22} }, @@ -1700,15 +1675,16 @@ hP8WfwNIdpwThSRjAwAAAABJRU5ErkJggg==} }, {3,0, {0},4,2,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},11, +{1,0} +},7, {1,2, {"#"," Настройки"}, {"ru","Настройки"} },4,1,0,0,0, {0,0,0},0, {1,0},1, -{7,4, -{4,3, +{3,4, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAAL @@ -1812,11 +1788,8 @@ yWS2GxoaXKUU831fyz55siCE+L2UkpumqUkpNQAol8v47OHDjxhjaqdqS18IQY7j kO/7BEAWCgUfgLh58yYNDw2pFwDU2vDQkCIp1bVr1xQAkUwmg3jNzc1pT58+1Xp6 ejQAyOVyu0phQ0ODisfjam5uTvX39wdGksmkqu09PDS0y95/BwDz0r7LFRjEqgAA AABJRU5ErkJggg==} -},0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},4,0,0,0,0,0,0,0}, +},0} +},4}, {0} }, {8,12,47,507,75,1, @@ -1852,14 +1825,14 @@ AABJRU5ErkJggg==} {6ff79819-710e-4145-97cd-1618da79e3e2,26, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},1, +{6,3,0,1},1, {3,3, {-22} }, @@ -1877,12 +1850,13 @@ AABJRU5ErkJggg==} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},14, +{1,0} +},10, {1,2, {"#","Применить"}, {"ru","Применить"} },1,1,0,0,2, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhk @@ -1917,8 +1891,8 @@ ScgO8hxJet9Ju4ce1XzSAAFEJWM4p0eUZu5TUUra56Tdzx/H/KEAAogaxnCegG+c A+4nj2teAsAY0wFEAUQC6YG0kJREKhLP3vUKCDZMABKAAMAD+YG8sGh4by4HEJhX AogBqAhAwqooc+wDKAIoBHNxnPOS38aClLSA3fviaEEFwpmXrUYgGcrUD83D4gAE jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} -},0,""}, -{0,0,0},0,0,0,0,0,1}, +},0}, +{0,0,0},0,0}, {0} }, {8,128,8,236,37,1, @@ -1955,14 +1929,14 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {1, { { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},0, +{6,3,0,1},0, {3,3, {-22} }, @@ -1980,11 +1954,12 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},6, +{1,0} +},4, {1,2, {"#","Выводить информацию об успешном выполнении тестов"}, {"ru","Выводить информацию об успешном выполнении тестов"} -},1,0,1,0,100,1},4,0,0,0,0,0}, +},1,0,1},1,0,0}, {0} }, {8,12,109,507,124,1, @@ -2020,14 +1995,14 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {6ff79819-710e-4145-97cd-1618da79e3e2,35, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},1, +{6,3,0,1},1, {3,3, {-22} }, @@ -2045,16 +2020,34 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},14, +{1,0} +},10, {1,2, {"#","Выполнить все тесты"}, {"ru","Внешние инструменты"} },1,1,0,0,0, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0},0,2, {5,28c47454-3a17-4ec8-b47f-d5008bf3ea41,5,1,3, -{6,5e1dc361-6a51-432e-bf7a-90a396690417,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,5670d587-68ca-4eca-be7e-381d5402dc54,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,52802128-6baf-4f33-a4d4-69071a39536e,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаИнструментыГенераторМакетовДанных", {1,"КнопкаИнструментыГенераторМакетовДанных", {1,1, @@ -2066,8 +2059,8 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {1,1, {"ru","Генератор макетов данных"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } },7, @@ -2077,10 +2070,10 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {1,1, {"ru","Генератор макетов данных на базе реальных данных"} }, -{4,1, -{0,01ec9d9a-7497-4d88-b93f-066c633a4866},"",-1,-1,1,0,""} +{3,1, +{0,01ec9d9a-7497-4d88-b93f-066c633a4866},"",-1,-1,1,0} }, -{6,89ded119-30d5-4a33-866a-e8cb51c2a44a,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,f198b933-25ec-48f3-972b-1280f94e1702,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаИнструментыКонвертерТестов", {1,"КнопкаИнструментыКонвертерТестов", {1,1, @@ -2092,37 +2085,20 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {1,1, {"ru","Конвертер тестов"} }, -{4,0, -{0},"",-1,-1,1,0,""}, -{0,0,0} -} -},0}, -{6,c654e4cb-802c-491f-8642-57bed47a0400,1,e1692cc2-605b-4535-84dd-28440238746c, -{3,"КнопкаИнструментыПоказатьГУИД", -{1,"КнопкаИнструментыПоказатьГУИД", -{1,1, -{"ru","Показать ГУИД"} -}, -{1,1, -{"ru","Показать ГУИД"} -}, -{1,1, -{"ru","Показать ГУИД"} -}, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } },0},1, -{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,5e1dc361-6a51-432e-bf7a-90a396690417, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,52802128-6baf-4f33-a4d4-69071a39536e, {8,"ГенераторМакетовДанных",0,1, {1,1, {"#","Генератор макетов данных"} -},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},c654e4cb-802c-491f-8642-57bed47a0400, +},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},5670d587-68ca-4eca-be7e-381d5402dc54, {8,"ПоказатьГУИД",0,1, {1,1, {"#","Показать ГУИД"} -},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},89ded119-30d5-4a33-866a-e8cb51c2a44a, +},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},f198b933-25ec-48f3-972b-1280f94e1702, {8,"КонвертерТестов",0,1, {1,1, {"ru","Конвертер тестов в формат 4-й версии"} @@ -2131,7 +2107,8 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0} } } -},0,0,0,1}, +} +}, {0} }, {8,709,8,850,38,1, @@ -2167,14 +2144,14 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {6ff79819-710e-4145-97cd-1618da79e3e2,36, {1, { -{15,1, +{10,1, {3,4, {0} }, {3,4, {0} }, -{7,3,0,1,100},1, +{6,3,0,1},1, {3,3, {-22} }, @@ -2192,14 +2169,15 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} }, {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},14, +{1,0} +},10, {1,2, {"#","Выполнить все тесты"}, {"ru","Выполнить выделенные (Ctrl+Enter)"} },1,1,1,0,0, -{4,1, -{0,0ce78048-0196-4f80-a781-9829cdb7f43e},"",-1,-1,1,0,""}, -{0,0,0},0,0,0,0,0,1}, +{3,1, +{0,0ce78048-0196-4f80-a781-9829cdb7f43e},"",-1,-1,1,0}, +{0,0,0},0,0}, {1, {0,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаВыполнитьВыделенныеТестыНажатие", @@ -2213,8 +2191,8 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {1,1, {"ru","Кнопка выполнить выделенные тесты нажатие"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } } @@ -2252,7 +2230,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0} } } -},859,552,1,0,1,4,4,1390,859,552,96}, +},859,552,1,0,1,4,4,1394}, { {1},27, {4, @@ -2303,8 +2281,8 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {1,1, {"ru","При открытии"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } } @@ -2321,8 +2299,8 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {1,1, {"ru","При закрытии"} }, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, {0,0,0} } } @@ -2330,10 +2308,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} },0,4,1,0,0,0, {1,5,10,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0}, {0}, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},1,2,0,0,1,1} \ No newline at end of file +{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/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" index 2d29463c..f4ab5afc 100644 --- "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" +++ "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" @@ -138,8 +138,12 @@ ДиалогВыбора.ПроверятьСуществованиеФайла = Истина; ДиалогВыбора.ПолноеИмяФайла = ПутьФайлаНастроек(); - ОповещениеВыбора = Новый ОписаниеОповещения("ЗагрузитьНастройкиИзФайлаЗавершение", ЭтаФорма); - ДиалогВыбора.Показать(ОповещениеВыбора); + // ОповещениеВыбора = Новый ОписаниеОповещения("ЗагрузитьНастройкиИзФайлаЗавершение", ЭтаФорма); + Если ДиалогВыбора.Выбрать() Тогда + ВыбранныеФайлы = Новый Массив; + ВыбранныеФайлы.Добавить(ДиалогВыбора.ПолноеИмяФайла); + ЗагрузитьНастройкиИзФайлаЗавершение(ВыбранныеФайлы, Неопределено); + КонецЕсли; КонецПроцедуры @@ -160,8 +164,8 @@ Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь); Попытка ОписаниеПлагина = Обработка.ОписаниеПлагина(ЭтотОбъект.ТипыПлагинов); - Обработка.Инициализация(ЭтотОбъект); - ЭтотОбъект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, Обработка); + //Обработка.Инициализация(ЭтотОбъект); + ЭтотОбъект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ФайлОбработки.ПолноеИмя); Исключение Ошибка = "Возникла ошибка при загрузке плагина: "+ФайлОбработки.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Сообщить(Ошибка); @@ -376,7 +380,7 @@ ПутьКОтчету = ОчередныеПараметры[1]; - ОписаниеОшибки = СтрШаблон("ОФ ПутьКОтчету %1", ПутьКОтчету); + ОписаниеОшибки = Плагин("СтроковыеУтилиты").СтрШаблон82("ОФ ПутьКОтчету %1", ПутьКОтчету); ЗафиксироватьОшибкуВЖурналеРегистрации("xUnitFor1C." + ИдентификаторГенератораОтчета, ОписаниеОшибки, Истина); Для Каждого Отчет Из НаборОтчетов Цикл diff --git a/src/xddTestRunner/ObjectModule.bsl b/src/xddTestRunner/ObjectModule.bsl index 9b0ad812..88a4cdd2 100644 --- a/src/xddTestRunner/ObjectModule.bsl +++ b/src/xddTestRunner/ObjectModule.bsl @@ -775,6 +775,7 @@ Иначе ОбъектПлагина = ВнешниеОбработки.Создать(Идентификатор, Ложь); КонецЕсли; + ОбъектПлагина.Инициализация(ЭтотОбъект); КонецЕсли; Возврат ОбъектПлагина; diff --git a/src/xddTestRunner/maps.txt b/src/xddTestRunner/maps.txt index 9c2cb88b..f9adbbb8 100644 --- a/src/xddTestRunner/maps.txt +++ b/src/xddTestRunner/maps.txt @@ -1 +1 @@ -Form\УправляемаяФорма\Форма.bsl-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (2 251, 3 607) +Form\УправляемаяФорма\Форма.bsl-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (1 507, 2 886) diff --git a/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1 b/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1 index 5c07e2e9..e3e951a5 100644 --- a/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1 +++ b/src/xddTestRunner/und/11ad5c96-c434-4088-bf66-ddff06c57ed8.1 @@ -4,8 +4,8 @@ cmFuc2l0aW9uYWwvL0VOIj48aHRtbD48aGVhZD48bWV0YSBjb250ZW50PSJ0ZXh0 L2h0bWw7Y2hhcnNldD11dGYtOCIgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIj48 L21ldGE+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl Zj0idjhoZWxwOi8vc2VydmljZV9ib29rL3NlcnZpY2Vfc3R5bGUiPjwvbGluaz48 -bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1TSFRNTCAxMS4wMC4xMDU3 -MC4xMDAxIj48L21ldGE+PC9oZWFkPjxib2R5Pg0KPHA+PGEgaHJlZj0iaHR0cHM6 +bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1TSFRNTCAxMS4wMC45NjAw +LjE4NzkyIj48L21ldGE+PC9oZWFkPjxib2R5Pg0KPHA+PGEgaHJlZj0iaHR0cHM6 Ly9naXRodWIuY29tL3hEcml2ZW5EZXZlbG9wbWVudC94VW5pdEZvcjFDL3dpa2ki Pmh0dHBzOi8vZ2l0aHViLmNvbS94RHJpdmVuRGV2ZWxvcG1lbnQveFVuaXRGb3Ix Qy93aWtpPC9hPjwvcD4NCjxoMT48L2gxPg0KPHA+eFVuaXRGb3IxQyAtINC90LDQ diff --git a/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2 b/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2 index 5459fa31..01b2f8f4 100644 --- a/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2 +++ b/src/xddTestRunner/und/5070e3c3-f74b-4ecd-9756-1136a230eca2 @@ -4,9 +4,9 @@ {1, {4,9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9,4ab27be4-7b10-4bb7-81eb-539076e44058, {0, -{1, +{0, {0,0,11ad5c96-c434-4088-bf66-ddff06c57ed8},"xddTestRunner", -{1,"ru","Тестирование для 1С:Предприятия 8, xUnitFor1C"},"https://github.com/xDrivenDevelopment/xUnitFor1C",0,0} +{1,"ru","Тестирование для 1С:Предприятия 8, xUnitFor1C"},"https://github.com/xDrivenDevelopment/xUnitFor1C"} },a1ce7ef7-f372-4589-b899-7fbf88efa7bf,"",ed07b230-8bf7-4423-b861-a31f23c7471f},4, {2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, {3daea016-69b7-4ed4-9453-127911372fe6,0}, @@ -14,11 +14,11 @@ {ec6bb5e5-b7a8-4d75-bec9-658107a699cf,14, { {0, -{27, +{25, {2, -{1, +{0, {0,0,c1ba54a0-a096-4a11-bc8b-5199576eca67},"ВозможныеИсключения", -{1,"ru","Возможные исключения"},"",0,0}, +{1,"ru","Возможные исключения"},""}, {"Pattern"} },0, {0}, @@ -29,15 +29,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,966b3a73-6c03-4ff4-8768-54a1ac3bb295},"ВозможныеСобытия", -{1,"ru","Возможные события"},"",0,0}, +{1,"ru","Возможные события"},""}, {"Pattern"} },0, {0}, @@ -48,15 +48,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,f29d604e-0e64-4aa6-b589-ff586180d5cf},"Настройки", -{1,"ru","Настройки"},"",0,0}, +{1,"ru","Настройки"},""}, {"Pattern"} },0, {0}, @@ -67,15 +67,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,73c64032-a845-4bb8-9d30-f5b19f712f85},"Плагины", -{1,"ru","Плагины"},"",0,0}, +{1,"ru","Плагины"},""}, {"Pattern"} },0, {0}, @@ -86,15 +86,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,0ee2237e-eff1-4672-b9fd-4d254f6d4b1a},"СостоянияТестов", -{1,"ru","Состояния тестов"},"",0,0}, +{1,"ru","Состояния тестов"},""}, {"Pattern"} },0, {0}, @@ -105,15 +105,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,f6db7088-52fe-44ec-94f4-c29a5a160d0f},"ТекущийКонтейнер", -{1,"ru","Текущий контейнер"},"",0,0}, +{1,"ru","Текущий контейнер"},""}, {"Pattern"} },0, {0}, @@ -124,15 +124,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,2476a703-4846-4172-87e2-da08366f9c67},"ТипыПлагинов", -{1,"ru","Типы плагинов"},"",0,0}, +{1,"ru","Типы плагинов"},""}, {"Pattern"} },0, {0}, @@ -143,15 +143,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,660a1fcb-04b5-4dde-b0a0-b5580172c383},"ТипыУзловДереваТестов", -{1,"ru","Типы узлов дерева тестов"},"",0,0}, +{1,"ru","Типы узлов дерева тестов"},""}, {"Pattern"} },0, {0}, @@ -162,15 +162,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,27301104-5ea7-4ade-b198-4c81a6b380fd},"СтатусыРезультатаТестирования", -{1,"ru","Статусы результата тестирования"},"",0,0}, +{1,"ru","Статусы результата тестирования"},""}, {"Pattern"} },0, {0}, @@ -181,15 +181,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,e554f66d-117f-465a-adf3-0247ca468be3},"ЭтоВстроеннаяОбработка", -{1,"ru","Это встроенная обработка"},"",0,0}, +{1,"ru","Это встроенная обработка"},""}, {"Pattern", {"B"} } @@ -202,15 +202,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,25c6bd62-5cc5-41a3-b726-eaa6f64ed54a},"ИспользуемыйПрефиксПодсистемы", -{1,"ru","Используемый префикс подсистемы"},"Префикс для объектов, встроенных в состав конфигурации. Если браузер тестов, плагины и утилиты встроены в конфигурцаию, то они должны иметь один префикс.",0,0}, +{1,"ru","Используемый префикс подсистемы"},"Префикс для объектов, встроенных в состав конфигурации. Если браузер тестов, плагины и утилиты встроены в конфигурцаию, то они должны иметь один префикс."}, {"Pattern", {"S",20,1} } @@ -223,15 +223,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,661aabb5-acfd-4925-b0d1-ca22e2481a9b},"ПолноеИмяБраузераТестов", -{1,"ru","Полное имя браузера тестов"},"",0,0}, +{1,"ru","Полное имя браузера тестов"},""}, {"Pattern", {"S",512,1} } @@ -244,15 +244,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,459571ca-47ca-4c56-ad46-8ea05b580771},"ПолныйПутьКФайлуБраузераТестов", -{1,"ru","Полный путь к файлу браузера тестов"},"",0,0}, +{1,"ru","Полный путь к файлу браузера тестов"},""}, {"Pattern", {"S"} } @@ -265,15 +265,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0}, { {0, -{27, +{25, {2, -{1, +{0, {0,0,2749d7a3-7d96-4566-b2cb-5b12efd38679},"ПутьФайлаНастроек", -{1,"ru","Путь файла настроек"},"",0,0}, +{1,"ru","Путь файла настроек"},""}, {"Pattern", {"S"} } @@ -286,7 +286,7 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0,0,0} +{"S",""},0} },0} } } diff --git a/src/xddTestRunner/und/a1ce7ef7-f372-4589-b899-7fbf88efa7bf b/src/xddTestRunner/und/a1ce7ef7-f372-4589-b899-7fbf88efa7bf index b52326ee..4ea2d18d 100644 --- a/src/xddTestRunner/und/a1ce7ef7-f372-4589-b899-7fbf88efa7bf +++ b/src/xddTestRunner/und/a1ce7ef7-f372-4589-b899-7fbf88efa7bf @@ -1,15 +1,10 @@ {1, {1, {0, -{12, -{1, +{9, +{0, {0,0,a1ce7ef7-f372-4589-b899-7fbf88efa7bf},"Форма", -{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} -} -}, +{1,"ru","Форма"},""},0,0}, {0} } },0} \ No newline at end of file diff --git a/src/xddTestRunner/und/copyinfo b/src/xddTestRunner/und/copyinfo index 48164363..9a12db1e 100644 --- a/src/xddTestRunner/und/copyinfo +++ b/src/xddTestRunner/und/copyinfo @@ -13,7 +13,23 @@ {1, {9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9,11ad5c96-c434-4088-bf66-ddff06c57ed8,0} }, -{6, +{10, +{ +{0,07f739b4-709b-41bf-8096-032bddefd0f9},9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9, +{-1} +}, +{ +{0,092b3fc1-7ced-4d20-8a28-79b535f8a9c4},9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9, +{-1} +}, +{ +{0,a2724854-2f5c-4048-b7b2-02cbb9cb7fa3},9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9, +{-1} +}, +{ +{0,e46a4b91-3cc7-4188-b6f0-96c31aa42e19},9176d5a2-441b-4c0a-b8b7-bf86d41bf1d9, +{-1} +}, { {1},e603c0f2-92fb-4d47-8f38-a44a381cf235, {1} diff --git a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f index 40208e9e..3fb5607b 100644 --- a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f +++ b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f @@ -1,15 +1,10 @@ {1, {1, {0, -{12, -{1, +{9, +{0, {0,0,ed07b230-8bf7-4423-b861-a31f23c7471f},"УправляемаяФорма", -{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/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 index 2b0ec7ad..404531b1 100644 --- a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 +++ b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 @@ -1,9 +1,9 @@ -{3, -{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,0, +{2, +{28,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,0, {1,0},0,0,1,1,1,0,1,0, -{3,3ccc650e-f631-4cae-8e33-3eaac610b5f9,"ПриОткрытии",9f2e5ddb-3492-4f5d-8f0d-416b8d1d5c5b,"ПриСозданииНаСервере",ca21cd18-35b2-4281-b5c8-016ecc8da8ac,"ПриЗакрытии",1,0,3ccc650e-f631-4cae-8e33-3eaac610b5f9,0,1,9f2e5ddb-3492-4f5d-8f0d-416b8d1d5c5b,0,1,ca21cd18-35b2-4281-b5c8-016ecc8da8ac,0,1}, +{3,3ccc650e-f631-4cae-8e33-3eaac610b5f9,"ПриОткрытии",9f2e5ddb-3492-4f5d-8f0d-416b8d1d5c5b,"ПриСозданииНаСервере",ca21cd18-35b2-4281-b5c8-016ecc8da8ac,"ПриЗакрытии"}, {0},1, -{21, +{17, {-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -14,10 +14,10 @@ {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, {0,0,0},8,a9f3b1ac-f51b-431e-b102-55a69acdecad, -{28, +{19, {423,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -37,9 +37,9 @@ {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+g @@ -72,32 +72,9 @@ v7z6xrfBqzEgfxeqE7XJ4h8a1/aCgEzcbXeuH+b0RvNf+XOfI5UewfYAAAAldEVY dGRhdGU6Y3JlYXRlADIwMTMtMDUtMjlUMDk6NDc6NDItMDU6MDBTDo/DAAAAJXRF WHRkYXRlOm1vZGlmeQAyMDEzLTA1LTI4VDA2OjE3OjMwLTA1OjAwR0bHqQAAAABJ RU5ErkJggg==} -},0,""},1, -{"Pattern"},"",2,0,1, -{10, -{432,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаЗагрузитьТестыПоУмолчаниюРасширеннаяПодсказка", -{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,1,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},cd5394d0-7dda-4b56-8927-93ccbe967a01, -{21, +},0},1, +{"Pattern"},"",2},cd5394d0-7dda-4b56-8927-93ccbe967a01, +{17, {131,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -112,10 +89,10 @@ RU5ErkJggg==} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{7, -{4,3, +{6, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+g @@ -148,16 +125,9 @@ v7z6xrfBqzEgfxeqE7XJ4h8a1/aCgEzcbXeuH+b0RvNf+XOfI5UewfYAAAAldEVY dGRhdGU6Y3JlYXRlADIwMTMtMDUtMjlUMDk6NDc6NDItMDU6MDBTDo/DAAAAJXRF WHRkYXRlOm1vZGlmeQAyMDEzLTA1LTI4VDA2OjE3OjMwLTA1OjAwR0bHqQAAAABJ RU5ErkJggg==} -},0,""}, -{0},2,3,0,0, -{3,4, -{0} -}, -{3,4, -{0} -} -},3,cd5394d0-7dda-4b56-8927-93ccbe967a01, -{21, +},0}, +{0},2,3},3,cd5394d0-7dda-4b56-8927-93ccbe967a01, +{17, {425,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -172,33 +142,11 @@ RU5ErkJggg==} {3,4, {0} }, -{7,3,0,1,100}, -{0,0,0},1, -{2, -{0},2,0},0,1,0,1, -{10, -{434,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ПлагиныЗагрузчикиРасширеннаяПодсказка", -{1,0}, -{1,0},1,0,0,2,2, -{3,4, -{0} -}, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{5,0,0,3,0, -{0,1,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},a9f3b1ac-f51b-431e-b102-55a69acdecad, -{28, +{0},2},0,1},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {464,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -216,35 +164,12 @@ RU5ErkJggg==} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{465,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"КнопкаЗагрузитьНастройкиИзФайлаРасширеннаяПодсказка", -{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,1,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},cd5394d0-7dda-4b56-8927-93ccbe967a01, -{21, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},cd5394d0-7dda-4b56-8927-93ccbe967a01, +{17, {429,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -259,64 +184,13 @@ RU5ErkJggg==} {3,4, {0} }, -{7,3,0,1,100}, -{0,0,0},1, -{7, -{4,0, -{0},"",-1,-1,1,0,""}, -{0},2,3,0,0, -{3,4, -{0} -}, -{3,4, -{0} -} -},0,1,0,1, -{10, -{435,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ПодменюИсторияЗагрузкиТестовРасширеннаяПодсказка", -{1,0}, -{1,0},1,0,0,2,2, -{3,4, -{0} -}, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{5,0,0,3,0, -{0,1,0}, -{3,4, -{0} -}, -{3,4, -{0} -}, +{6, {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, -{433,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ПодменюЗагрузитьТестыРасширеннаяПодсказка", -{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,1,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},a9f3b1ac-f51b-431e-b102-55a69acdecad, -{28, +{0},"",-1,-1,1,0}, +{0},2,3},0,1},1},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {31,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -334,9 +208,9 @@ RU5ErkJggg==} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAAL @@ -410,32 +284,9 @@ DP69ghDLch1Rl1utw3sKLEn+pQjCw8PQ/BKhghLQ+Ood4Wnn7OyjBo65J+hYPYHE 1/9qpisz78uRmRmYGMer6kAI8AfQBrro7H1C48IkHSFf+XfEll+i7VwbEiP70ZGP jkJU8oGYVRiEhElgSyumXlGxrMnRf2g0Abq1Goj14vxrAEGh9iL0BPs8AAAAAElF TkSuQmCC} -},0,""},1, -{"Pattern"},"",2,0,1, -{10, -{436,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"КомандаПерезагрузитьТестыРасширеннаяПодсказка", -{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,1,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, +},0},1, +{"Pattern"},"",2},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {30,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -453,9 +304,9 @@ TkSuQmCC} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAAL @@ -527,32 +378,9 @@ Ovr0xIQ+RXus/TsXMALDtKC3dHRsFxwAFUTIbgcNQ8OPUg0BVcJ3/QvynyvljU9q iONyIssUhsGwXNDhOC5CQQWVilNNz+mPtCX1PjPC30QJIBL78wuckbbVgb20vO29 mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW 3BW3GkyJIgH1sX82kfz/Y/o5APw/CNRIkXZ3AAAAAElFTkSuQmCC} -},0,""},1, -{"Pattern"},"",2,0,1, -{10, -{437,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"КомандаВыполнитьВсеТестыРасширеннаяПодсказка", -{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,1,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, +},0},1, +{"Pattern"},"",2},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {245,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -570,35 +398,12 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{438,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаКомандаВыполнитьВыделенныеТестыРасширеннаяПодсказка", -{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,1,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},cd5394d0-7dda-4b56-8927-93ccbe967a01, -{21, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},cd5394d0-7dda-4b56-8927-93ccbe967a01, +{17, {126,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -613,20 +418,13 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{7, -{4,0, -{0},"",-1,-1,1,0,""}, -{0},2,3,0,0, -{3,4, -{0} -}, -{3,4, -{0} -} -},4,a9f3b1ac-f51b-431e-b102-55a69acdecad, -{28, +{6, +{3,0, +{0},"",-1,-1,1,0}, +{0},2,3},4,a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {71,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -644,35 +442,12 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{440,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"КомандаГенераторМакетовДанныхРасширеннаяПодсказка", -{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,1,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, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {73,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -690,35 +465,12 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{441,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"КомандаПоказатьГУИДРасширеннаяПодсказка", -{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,1,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, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {430,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -736,35 +488,12 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{442,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаКонвертерТестовРасширеннаяПодсказка", -{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,1,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, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {431,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -782,57 +511,12 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{443,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаПреобразоватьЖурналДействийПользователяВТестРасширеннаяПодсказка", -{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,1,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,1, -{10, -{439,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаВнешниеИнструментыРасширеннаяПодсказка", -{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,1,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},a9f3b1ac-f51b-431e-b102-55a69acdecad, -{28, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},1},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {137,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -850,35 +534,12 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{444,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаКомандаПерезагрузитьФормуРасширеннаяПодсказка", -{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,1,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, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{19, {356,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -896,35 +557,12 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{445,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаИзменитьФормуРасширеннаяПодсказка", -{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,1,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},2,cd5394d0-7dda-4b56-8927-93ccbe967a01, -{21, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},1},2,cd5394d0-7dda-4b56-8927-93ccbe967a01, +{17, {124,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -939,17 +577,13 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{23,0,0,0,0, +{12,0,0,0,0, {0}, {1,0}, -{"Pattern"},"", -{3,4, -{0} -},0,0,0,1, -{1,0},0,0,3,3,2,0,1,0},1,143c00f7-a42d-4cd7-9189-88e4467dc768, -{51, +{"Pattern"},""},1,143c00f7-a42d-4cd7-9189-88e4467dc768, +{42, {404,02023637-7868-4a5f-8576-835a76e0c9ba},0,2,1, {0, {0, @@ -963,7 +597,7 @@ mam9GBrFhUODvdLr6e3HWk6+w5qhvEgBKvO9i8RNJZOZbt2wavZXrx5516k1ryzW {1, {6} }, -{4,3, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAAIAAAAAQCAYAAADeWHeIAAAABmJLR0QA/wD/AP+g @@ -1020,7 +654,7 @@ cHZCQtx5OwQ/CxrZK9esbRIPEB/bnss6tEcRcO3MBxsSWy/tRzezDxAf257B9p7B PbwLwat9M7YNBmyt5MYIhP9zLlfWP7Z9AZAW5rrNwqZmXYqc31LF35x/4ui7/qev haH4OfZEmTn7fHH6aGr3BnagjUvtLgEOFOxjZPq+Cx4vPrrxfuCBgn3fjnpk34Xi D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} -},0,""}, +},0}, {3,4, {0} }, @@ -1030,15 +664,15 @@ D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0,0,0, -{0,1,0}, +{0}, {0},1, -{21, +{17, {405,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1049,10 +683,10 @@ D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, {1,0},1,a9f3b1ac-f51b-431e-b102-55a69acdecad, -{28, +{19, {427,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, {0, {0, @@ -1070,35 +704,12 @@ D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},0, -{4,0, -{0},"",-1,-1,1,0,""},1, -{"Pattern"},"",2,0,1, -{10, -{447,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовКонтекстноеМенюКомандаВыполнитьВыделенныеТестыРасширеннаяПодсказка", -{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,1,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},1, -{21, +{0},"",-1,-1,1,0},1, +{"Pattern"},"",2},1},1, +{17, {406,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1109,10 +720,10 @@ D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{0,0,0},0,1,0,0,0,3,3},5,77ffcc29-7f2d-4223-b22f-19666e7250ba, -{33, +{0,0,0},0,1},5,77ffcc29-7f2d-4223-b22f-19666e7250ba, +{30, {411,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1127,14 +738,14 @@ D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} {0},1,0,2,0,2, {1,0}, {1,0},1,1,0,3,0,3,2,3,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {3,4, {0} }, @@ -1144,10 +755,10 @@ D/Nbu3St+stsWd09XoZueNV+vF7+v5/tv6odfeWMgg1nAAAAAElFTkSuQmCC} {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{8,0,0,1,1, -{4,3, +{7,0,0,1,1, +{3,3, {0},"",-1,-1,0, { {#base64:iVBORw0KGgoAAAANSUhEUgAAAFAAAAAQCAYAAACBSfjBAAAABGdBTUEAALGPC/xh @@ -1196,7 +807,7 @@ eZPwa0asArY/9zYM8Y3QR68teUKZed+8A5b18yc7h0IPc33s3pME1LyOXbP31dPD Qg2sRV/JQCPvA4MX1q6+bmvwnJIVdZt3RWORSdTEbDL1fFpWv81g/NILc/N/+x9Y i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs 7sC/68BdS71tH9LcEKQAAAAASUVORK5CYII=} -},0,""},0,0,0, +},0},0,0,0, {1,0}, {3,4, {0} @@ -1204,12 +815,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {3,0, {0},1,1,0,48312c09-257f-4b29-b280-284dd89efc1e},0,0, -{0,1,0},1,0,0,1,0}, -{0,1,0},1, -{21, +{0} +}, +{0},1, +{17, {412,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1220,35 +832,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{1,1},0,1,0,0,0,3,3},1, +{1,1},0,1},1, {"Pattern"}, {"Pattern"},"","", -{0},0,0,1, -{10, -{458,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовСостояниеРасширеннаяПодсказка", -{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,1,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, +{0},0},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{30, {414,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1263,14 +853,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {0},1,0,2,0,2, {1,0}, {1,0},1,1,0,3,0,3,2,3,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {3,4, {0} }, @@ -1280,20 +870,20 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{32, -{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2, +{26, +{1,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, +{3,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,1,0}, +{0}, {3,4, {0} }, @@ -1303,11 +893,10 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {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,0,0,0,0,0}, -{0,1,0},1, -{21, +{6,3,0,1},1, +{3,0,0},0}, +{0},1, +{17, {415,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1318,35 +907,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{1,1},0,1,0,0,0,3,3},1, +{1,1},0,1},1, {"Pattern"}, {"Pattern"},"","", -{0},0,0,1, -{10, -{459,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовИмяРасширеннаяПодсказка", -{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,1,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, +{0},0},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{30, {408,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1363,14 +930,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {0},1,0,2,0,2, {1,0}, {1,0},1,1,0,3,0,3,2,3,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {3,4, {0} }, @@ -1380,20 +947,20 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{32, -{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2, +{26, +{1,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, +{3,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,1,0}, +{0}, {3,4, {0} }, @@ -1403,11 +970,10 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {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,0,0,0,0,0}, -{0,1,0},1, -{21, +{6,3,0,1},1, +{3,0,0},0}, +{0},1, +{17, {409,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1418,35 +984,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{1,1},0,1,0,0,0,3,3},1, +{1,1},0,1},1, {"Pattern"}, {"Pattern"},"","", -{0},0,0,1, -{10, -{460,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовКоличествоТестовРасширеннаяПодсказка", -{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,1,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, +{0},0},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{30, {417,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1461,14 +1005,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {0},1,0,2,0,2, {1,0}, {1,0},1,1,0,3,0,3,2,3,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {3,4, {0} }, @@ -1478,20 +1022,20 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{32, -{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2, +{26, +{1,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, +{3,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,1,0}, +{0}, {3,4, {0} }, @@ -1501,11 +1045,10 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {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,0,0,0,0,0}, -{0,1,0},1, -{21, +{6,3,0,1},1, +{3,0,0},0}, +{0},1, +{17, {418,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1516,35 +1059,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{1,1},0,1,0,0,0,3,3},1, +{1,1},0,1},1, {"Pattern"}, {"Pattern"},"","", -{0},0,0,1, -{10, -{461,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовВремяВыполненияРасширеннаяПодсказка", -{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,1,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, +{0},0},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{30, {420,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1559,14 +1080,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {0},1,0,2,0,2, {1,0}, {1,0},1,1,0,3,0,3,2,3,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, +{3,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {3,4, {0} }, @@ -1576,20 +1097,20 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{32, -{3,0},0,0,2,2,1,2,2,2,2,2,2,2,2,2, +{26, +{1,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, +{3,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,1,0}, +{0}, {3,4, {0} }, @@ -1599,11 +1120,10 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {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,0,0,0,0,0}, -{0,1,0},1, -{21, +{6,3,0,1},1, +{3,0,0},0}, +{0},1, +{17, {421,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1614,236 +1134,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{1,1},0,1,0,0,0,3,3},1, +{1,1},0,1},1, {"Pattern"}, {"Pattern"},"","", -{0},0,0,1, -{10, -{462,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовПутьРасширеннаяПодсказка", -{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,1,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},2,2,1,0, -{"Pattern"},"","",2,2,0,1, -{10, -{448,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовРасширеннаяПодсказка", -{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,1,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,1,1,1, -{4, -{449,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовСтрокаПоиска", -{1,0}, -{1,0},1,1,0,1, -{1,0,2, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100}, -{0,1,0},1,0,0},1, -{21, -{450,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ДеревоТестовСтрокаПоискаКонтекстноеМеню", -{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, -{10, -{451,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовСтрокаПоискаРасширеннаяПодсказка", -{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,1,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},2, -{404,0},0,3,3},1, -{4, -{452,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,1,"ДеревоТестовСостояниеПросмотра", -{1,0}, -{1,0},1,1,0,1, -{1,0,2, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100}, -{7,3,0,1,100}, -{3,0, -{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e},3, -{0,1,0},1,0,0},1, -{21, -{453,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ДеревоТестовСостояниеПросмотраКонтекстноеМеню", -{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, -{10, -{454,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовСостояниеПросмотраРасширеннаяПодсказка", -{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,1,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},2, -{404,1},0,3,3},1, -{4, -{455,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,2,"ДеревоТестовУправлениеПоиском", -{1,0}, -{1,0},1,1,0,1, -{1,0, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100}, -{0,1,0},1,0,0,2},1, -{21, -{456,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ДеревоТестовУправлениеПоискомКонтекстноеМеню", -{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, -{10, -{457,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ДеревоТестовУправлениеПоискомРасширеннаяПодсказка", -{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,1,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},2, -{404,2},0,3,3},0,1,0,0,1,0,3,3,0,1,0},1,0,1, -{10, -{446,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ГруппаДеревоТестовРасширеннаяПодсказка", -{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,1,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, +{0},0},2,2,1,0, +{"Pattern"},"","",2,2},1},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{30, {129,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1857,14 +1155,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {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,0, +{0},"",-1,-1,1,0}, +{3,0, +{0},"",-1,-1,1,0}, {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {3,4, {0} }, @@ -1874,14 +1172,15 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{4,32,1,1,0,0,100,0,0,1, +{3,32,1,1,0,0,100,0,0,1, {3,4, {0} -},1,0,0,1,0}, -{0,1,0},1, -{21, +} +}, +{0},1, +{17, {130,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -1892,35 +1191,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {3,4, {0} }, -{7,3,0,1,100}, +{6,3,0,1}, {0,0,0},1, -{1,1},0,1,0,0,0,3,3},1, +{1,1},0,1},1, {"Pattern"}, {"Pattern"},"","", -{0},0,0,1, -{10, -{463,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ИндикаторВыполненияРасширеннаяПодсказка", -{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,1,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, -{21, +{0},0},"","",1, +{17, {0},0,0,1, {0, {0, @@ -1931,30 +1208,9 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs {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,1,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,100,1,1,0},"&НаКлиенте +{6,3,0,1}, +{0,0,0},0,0,1} +},"&НаКлиенте Перем КэшФормПлагинов; &НаКлиенте Перем ПодключенныеВнешниеОбработки; @@ -2079,8 +1335,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs ОткрытьФорму(ЭтаФорма.ИмяФормы); Иначе - Оповещение = Новый ОписаниеОповещения(""КомандаПерезагрузитьФормуЗавершение"", ЭтаФорма); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ЭтаФорма.ИспользуемоеИмяФайла , Ложь, ЭтаФорма.УникальныйИдентификатор); + // Back to 8.2 + //Оповещение = Новый ОписаниеОповещения(""КомандаПерезагрузитьФормуЗавершение"", ЭтаФорма); + ВыбранноеИмяФайла = """"; + Если ПоместитьФайл(АдресХранилища, ВыбранноеИмяФайла, ВыбранноеИмяФайла, Ложь, ЭтаФорма.УникальныйИдентификатор) Тогда + КомандаПерезагрузитьФормуЗавершение(Истина, АдресХранилища, ВыбранноеИмяФайла, Неопределено); + КонецЕсли; + // Back to 8.2 КонецЕсли; @@ -2130,8 +1391,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs ДиалогВыбора.ПроверятьСуществованиеФайла = Истина; ДиалогВыбора.ПолноеИмяФайла = ПутьФайлаНастроек(); - ОповещениеВыбора = Новый ОписаниеОповещения(""ЗагрузитьНастройкиИзФайлаЗавершение"", ЭтаФорма); - ДиалогВыбора.Показать(ОповещениеВыбора); + // Back to 8.2 + //ОповещениеВыбора = Новый ОписаниеОповещения(""ЗагрузитьНастройкиИзФайлаЗавершение"", ЭтаФорма); + Если ДиалогВыбора.Выбрать() Тогда + ВыбранныеФайлы = Новый Массив; + ВыбранныеФайлы.Добавить(ДиалогВыбора.ПолноеИмяФайла); + ЗагрузитьНастройкиИзФайлаЗавершение(ВыбранныеФайлы, Неопределено); + КонецЕсли; + /// Back to 8.2 КонецПроцедуры @@ -2243,8 +1510,8 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs Исключение Инфо = ИнформацияОбОшибке(); Если Инфо.Описание = ""Метод объекта не обнаружен (Инициализация)"" И - СтрНайти(Инфо.ИсходнаяСтрока, ""ОбъектПлагин.Инициализация(ЭтаФорма);"") > 0 И - СтрНайти(Инфо.ИмяМодуля, ""Форма.УправляемаяФорма.Форма"") > 0 + Найти(Инфо.ИсходнаяСтрока, ""ОбъектПлагин.Инициализация(ЭтаФорма);"") > 0 И + Найти(Инфо.ИмяМодуля, ""Форма.УправляемаяФорма.Форма"") > 0 Тогда Иначе ВызватьИсключение; @@ -2894,7 +2161,7 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs ПутьКОтчету = ОчередныеПараметры[1]; - ОписаниеОшибки = СтрШаблон(""УФ ПутьКОтчету %1"", ПутьКОтчету); + ОписаниеОшибки = Плагин(""СтроковеУтилиты"").СтрШаблон82(""УФ ПутьКОтчету %1"", ПутьКОтчету); ЗафиксироватьОшибкуВЖурналеРегистрации(""xUnitFor1C."" + ИдентификаторГенератораОтчета, ОписаниеОшибки, Истина); Для Каждого Отчет Из НаборОтчетов Цикл @@ -2918,7 +2185,7 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs ГенераторКодаВозврата = Плагин(ИдентификаторПлагина); ПутьФайлаКодаВозврата = Параметры_xddExitCodePath[1]; - ГенераторКодаВозврата.СформироватьФайл(ЭтотОбъект, ПутьФайлаКодаВозврата, РезультатыТестирования); + ГенераторКодаВозврата.СформироватьФайл(ЭтаФорма, ПутьФайлаКодаВозврата, РезультатыТестирования); Исключение Инфо = ИнформацияОбОшибке(); ОписаниеОшибки = ""Ошибка формирования файла статуса возврата при выполнении тестов в пакетном режиме @@ -3015,9 +2282,15 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs Возврат; КонецЕсли; - Оповещение = Новый ОписаниеОповещения(""ОткрытьИнструментЗавершение"", ЭтаФорма, Новый Структура(""ИмяИнструмента, ИмяФормыИнструмента"", ИмяИнструмента, ИмяФормы)); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); - + // Back to 8.2 + //Оповещение = Новый ОписаниеОповещения(""ОткрытьИнструментЗавершение"", ЭтаФорма, Новый Структура(""ИмяИнструмента, ИмяФормыИнструмента"", ИмяИнструмента, ИмяФормы)); + ВыбранноеИмяФайла = """"; + Если ПоместитьФайл(АдресХранилища, ФайлИнструмента.ПолноеИмя, ВыбранноеИмяФайла , Ложь, ЭтаФорма.УникальныйИдентификатор) Тогда + ДопПараметры = Новый Структура(""ИмяИнструмента, ИмяФормыИнструмента"", ИмяИнструмента, ИмяФормы); + ОткрытьИнструментЗавершение(Истина, АдресХранилища, ВыбранноеИмяФайла, ДопПараметры); + КонецЕсли; + /// Back to 8.2 + КонецЕсли; КонецПроцедуры @@ -3049,8 +2322,14 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = "".erf""); - Оп = Новый ОписаниеОповещения(""ПодключитьВнешнююОбработкуЗавершение"", ЭтаФорма, Новый Структура(""ФайлОбработки, ЭтоОтчет"", ФайлОбработки, ЭтоОтчет)); - НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + // Back to 8.2 + //Оп = Новый ОписаниеОповещения(""ПодключитьВнешнююОбработкуЗавершение"", ЭтаФорма, Новый Структура(""ФайлОбработки, ЭтоОтчет"", ФайлОбработки, ЭтоОтчет)); + ВыбранноеИмяФайла = """"; + Если ПоместитьФайл(АдресХранилища, ФайлОбработки.ПолноеИмя , ВыбранноеИмяФайла, Ложь, ЭтаФорма.УникальныйИдентификатор) Тогда + ДопПараметры = Новый Структура(""ФайлОбработки, ЭтоОтчет"", ФайлОбработки, ЭтоОтчет); + ПодключитьВнешнююОбработкуЗавершение(Истина, АдресХранилища, ВыбранноеИмяФайла, ДопПараметры); + КонецЕсли; + /// Back to 8.2 КонецЕсли; КонецПроцедуры @@ -3589,8 +2868,7 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ -YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=} }, {0,1, {0,"Пути", @@ -3599,7 +2877,7 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} },0} }, {0,11, -{8, +{6, {3,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"КомандаВыполнитьВсеТесты", {1,1, {"ru","Выполнить все тесты (F7)"} @@ -3612,10 +2890,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,118,0}, -{4,0, -{0},"",-1,-1,1,0,""},"КомандаВыполнитьВсеТесты",2,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"КомандаВыполнитьВсеТесты",2,0,0, +{0,0} +}, +{6, {4,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"КомандаПерезагрузитьВсеТесты", {1,1, {"ru","Перезагрузить"} @@ -3628,10 +2907,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,82,8}, -{4,0, -{0},"",-1,-1,1,0,""},"ПерезагрузитьПоследниеТестыПоИстории",2,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"ПерезагрузитьПоследниеТестыПоИстории",2,0,0, +{0,0} +}, +{6, {5,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"КомандаВыполнитьВыделенныеТесты", {1,1, {"ru","Выполнить выделенные (Ctrl+Enter)"} @@ -3644,10 +2924,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,1, -{0,0ce78048-0196-4f80-a781-9829cdb7f43e},"",-1,-1,1,0,""},"КомандаВыполнитьВыделенныеТесты",2,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,1, +{0,0ce78048-0196-4f80-a781-9829cdb7f43e},"",-1,-1,1,0},"КомандаВыполнитьВыделенныеТесты",2,0,0, +{0,0} +}, +{6, {7,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ГенераторМакетовДанных", {1,1, {"ru","Генератор макетов данных"} @@ -3660,10 +2941,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,0, -{0},"",-1,-1,1,0,""},"ГенераторМакетовДанных",3,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"ГенераторМакетовДанных",3,0,0, +{0,0} +}, +{6, {8,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ПоказатьГУИД", {1,1, {"ru","Показать ГУИД"} @@ -3676,10 +2958,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,0, -{0},"",-1,-1,1,0,""},"ПоказатьГУИД",3,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"ПоказатьГУИД",3,0,0, +{0,0} +}, +{6, {11,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"КомандаЗагрузитьТолькоВыделенныеТесты", {1,1, {"ru","Загрузить только выделенные тесты"} @@ -3692,10 +2975,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,0, -{0},"",-1,-1,1,0,""},"КомандаЗагрузитьТолькоВыделенныеТесты",3,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"КомандаЗагрузитьТолькоВыделенныеТесты",3,0,0, +{0,0} +}, +{6, {15,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"КомандаПерезагрузитьФорму", {1,1, {"ru","Перезагрузить браузер тестирования"} @@ -3708,10 +2992,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,0, -{0},"",-1,-1,1,0,""},"КомандаПерезагрузитьФорму",3,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"КомандаПерезагрузитьФорму",3,0,0, +{0,0} +}, +{6, {1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ЗагрузитьТестыПоУмолчанию", {1,1, {"ru","Загрузить тесты по умолчанию"} @@ -3724,10 +3009,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,0, -{0},"",-1,-1,1,0,""},"ЗагрузитьТестыПоУмолчанию",3,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"ЗагрузитьТестыПоУмолчанию",3,0,0, +{0,0} +}, +{6, {2,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"КонвертерТестов", {1,1, {"ru","Конвертер тестов в формат 4-й версии"} @@ -3740,10 +3026,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,0, -{0},"",-1,-1,1,0,""},"КонвертерТестов",3,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"КонвертерТестов",3,0,0, +{0,0} +}, +{6, {6,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ПреобразоватьЖурналДействийПользователяВТест", {1,1, {"ru","Преобразовать журнал действий пользователя в тест"} @@ -3756,10 +3043,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,0, -{0},"",-1,-1,1,0,""},"ПреобразоватьЖурналДействийПользователяВТест",3,0,0, -{0,0},1,0,1,0,0}, -{8, +{3,0, +{0},"",-1,-1,1,0},"ПреобразоватьЖурналДействийПользователяВТест",3,0,0, +{0,0} +}, +{6, {9,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ЗагрузитьНастройкиИзФайла", {1,1, {"ru","Загрузить настройки из файла ..."} @@ -3772,9 +3060,11 @@ YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} {"B",1},0} }, {0,0,0}, -{4,0, -{0},"",-1,-1,1,0,""},"ЗагрузитьНастройкиИзФайла",3,0,0, -{0,0},1,0,1,0,0} +{3,0, +{0},"",-1,-1,1,0},"ЗагрузитьНастройкиИзФайла",3,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/xddTestRunner/und/version b/src/xddTestRunner/und/version index 421eee79..c23bfe28 100644 --- a/src/xddTestRunner/und/version +++ b/src/xddTestRunner/und/version @@ -1,5 +1,3 @@ { -{216,0, -{80308,0} -} +{216,0} } \ No newline at end of file diff --git a/src/xddTestRunner/und/versions b/src/xddTestRunner/und/versions index 23ae2dd2..ad2ef5e9 100644 --- a/src/xddTestRunner/und/versions +++ b/src/xddTestRunner/und/versions @@ -1 +1 @@ -{1,13,"",167bf462-8ab4-4c86-a86b-8268666ad1f4,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",0d23ac0b-6b1e-4611-aa6b-8b41501bbc6f,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",cb6e1145-4486-4457-b7fb-2926909257fb,"5070e3c3-f74b-4ecd-9756-1136a230eca2",59450728-f7ab-485c-927e-22f0c59ee21c,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",c3620363-9c21-4184-acdc-888f01289b15,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",6b3ea77c-57a9-4f5b-aa2b-5e90f5e83621,"copyinfo",4746229a-d6c3-4721-a49c-76999063a9c7,"ed07b230-8bf7-4423-b861-a31f23c7471f",cf2bb849-ce22-4995-aa08-1d17d67e9552,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",16506150-b430-4429-ad1c-5b3d117f462e,"ed07b230-8bf7-4423-b861-a31f23c7471f.1",d2376067-c9d3-4379-9abc-b96f699d83ed,"root",9373e236-f9a8-46ed-b837-50485de35c04,"version",a162087e-e228-4b28-930b-cbb78881e54b,"versions",48bee36b-a124-4c33-be98-f746042997c4} \ No newline at end of file +{1,13,"",34048684-2d3b-409f-b975-a05b06f2e636,"versions",423abe9f-d643-42a5-8282-481c9bc10e49,"5070e3c3-f74b-4ecd-9756-1136a230eca2",6eebe4dc-bb34-4abc-aed7-8ff3f45d6e1b,"root",29f81235-c11b-4de3-aafc-dc707d7438f7,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",dffd959b-120a-4d38-b584-3be8720cdf20,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",cc7b81c6-20c0-4c3a-b0a9-1323a99d2f4b,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",2d80ca61-603e-4d4b-bb47-6130df8ae0de,"version",c5e8b4b7-fb59-456c-9d58-0d2089801253,"ed07b230-8bf7-4423-b861-a31f23c7471f",c84fd9d8-5293-46a9-b249-31e8d5b34668,"copyinfo",2fc1ccd2-7b55-460e-9969-cb1e3b22064d,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",dd197956-9b21-4e06-ad76-4c8068a16432,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",084f1a12-57e9-43ac-8a38-db0b834b9da5,"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 fde36660..86e35c45 100644 Binary files a/xddTestRunner.epf and b/xddTestRunner.epf differ