diff --git "a/epf/bddRunner/bddRunner/Forms/\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/Ext/Form/Module.bsl" "b/epf/bddRunner/bddRunner/Forms/\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/Ext/Form/Module.bsl" index 30a9e255e..c1c9b8518 100644 --- "a/epf/bddRunner/bddRunner/Forms/\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/Ext/Form/Module.bsl" +++ "b/epf/bddRunner/bddRunner/Forms/\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/Ext/Form/Module.bsl" @@ -4425,8 +4425,18 @@ КонецЕсли; ДвоичныеДанныеИлиПутьФайла = ПутьФайлаИлиДвоичныеДанныеДляСервера(ИмяФайла); - ТабДок = ПолучитьТабличныйДокументНаСервере(ДвоичныеДанныеИлиПутьФайла); - Возврат Табдок; + + Если ЭтоФайлДжейсон(ИмяФайла) Тогда + + ИскомыйМакет = ПолучитьТекстовыйДокументНаСервере(ДвоичныеДанныеИлиПутьФайла); + + Иначе + + ИскомыйМакет = ПолучитьТабличныйДокументНаСервере(ДвоичныеДанныеИлиПутьФайла); + + КонецЕсли; + + Возврат ИскомыйМакет; КонецФункции &НаСервере @@ -12248,45 +12258,84 @@ &НаКлиенте Функция НайтиМакетВКаталогеПроектаСлужебный(ИмяМакета, ИмяФайла) + Нашли = Ложь; СостояниеVanessaADD = ПолучитьСостояниеVanessaADD(); - ИдСценария = СостояниеVanessaADD.ТекущийСценарий.ИдСценария; + ИдСценария = СостояниеVanessaADD.ТекущийСценарий.ИдСценария; КаталогСценария = ДобавитьНулей(ИдСценария + 1, 4); ДопКаталог = ""; + + // Какой-то старый варинат поиска макета видимо + Если ФайлСуществуетКомандаСистемы(Объект.КаталогПроекта + "\Файлы\" + КаталогСценария) Тогда + ДопКаталог = КаталогСценария; + КонецЕсли; - ДлинаРасширенияМоксель = 4; //.mxl - Если Не Нашли Тогда - ИмяФайла = Объект.КаталогПроекта + "\Файлы\" + ?(ДопКаталог = "", "", ДопКаталог + "\") + ИмяМакета; - Если НРег(Прав(ИмяФайла, ДлинаРасширенияМоксель)) <> ".mxl" Тогда - ИмяФайла = ИмяФайла + ".mxl"; - КонецЕсли; - Если ФайлСуществуетКомандаСистемы(ИмяФайла) Тогда - Нашли = Истина; - КонецЕсли; + ИмяФайла = Объект.КаталогПроекта + "\Файлы\" + ?(ДопКаталог = "", "", ДопКаталог + "\") + ИмяМакета; + Если НЕ (ЭтоФайлМоксель(ИмяФайла) + ИЛИ ЭтоФайлДжейсон(ИмяФайла)) Тогда + + ИмяФайла = ИмяФайла + ".mxl"; + КонецЕсли; + + Если ФайлСуществуетКомандаСистемы(ИмяФайла) Тогда + + Нашли = Истина; + + КонецЕсли; + + // Поиск макета в каталоге проекта Если Не Нашли Тогда + ИмяФайла = Объект.КаталогПроекта + "\" + ИмяМакета; - Если НРег(Прав(ИмяФайла, ДлинаРасширенияМоксель)) <> ".mxl" Тогда - ИмяФайла = ИмяФайла + ".mxl"; - КонецЕсли; + + Если НЕ (ЭтоФайлМоксель(ИмяФайла) + ИЛИ ЭтоФайлДжейсон(ИмяФайла)) Тогда + + ИмяФайла = ИмяФайла + ".mxl"; + + КонецЕсли; + Если ФайлСуществуетКомандаСистемы(ИмяФайла) Тогда + Нашли = Истина; + КонецЕсли; + КонецЕсли; Возврат Нашли; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ЭтоФайлМоксель(ИмяФайла) + + ДлинаРасширенияМоксель = 4; // .mxl + Возврат НРег(Прав(ИмяФайла, ДлинаРасширенияМоксель)) = ".mxl"; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ЭтоФайлДжейсон(ИмяФайла) + + ДлинаРасширенияДжейсон = 5; // .json + Возврат НРег(Прав(ИмяФайла, ДлинаРасширенияДжейсон)) = ".json"; + КонецФункции &НаСервереБезКонтекста -Функция ПолучитьТабличныйДокументНаСервере(ДвоичныеДанныеИлиПутьФичи) +Функция ПолучитьТабличныйДокументНаСервере(ДвоичныеДанныеИлиПутьФичи, РасширениеФайла = "mxl") ИмяВременногоФайла = Неопределено; - ПутьФайла = ПутьФайлаПоДвоичнымДаннымСервер(ДвоичныеДанныеИлиПутьФичи, "mxl", ИмяВременногоФайла); + ПутьФайла = ПутьФайлаПоДвоичнымДаннымСервер(ДвоичныеДанныеИлиПутьФичи + , РасширениеФайла + , ИмяВременногоФайла); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.Прочитать(ПутьФайла); Если ЗначениеЗаполнено(ИмяВременногоФайла) Тогда @@ -12295,6 +12344,20 @@ Возврат ТабличныйДокумент; КонецФункции +&НаСервереБезКонтекста +Функция ПолучитьТекстовыйДокументНаСервере(ДвоичныеДанныеИлиПутьФичи, РасширениеФайла = "json") + ИмяВременногоФайла = Неопределено; + ПутьФайла = ПутьФайлаПоДвоичнымДаннымСервер(ДвоичныеДанныеИлиПутьФичи + , РасширениеФайла + , ИмяВременногоФайла); + ТекстовыйДокумент = Новый ТекстовыйДокумент; + ТекстовыйДокумент.Прочитать(ПутьФайла, "UTF-8"); + Если ЗначениеЗаполнено(ИмяВременногоФайла) Тогда + УдалитьФайлы(ИмяВременногоФайла); + КонецЕсли; + Возврат ТекстовыйДокумент; +КонецФункции + &НаКлиенте Функция ПолучитьОбработкаСвязаннаяСИсполняемойФичей(ИмяФайлаФичи) ФайлФичи = Новый Файл(ИмяФайлаФичи); @@ -19485,16 +19548,22 @@ &НаСервереБезКонтекста Функция ПутьФайлаПоДвоичнымДаннымСервер(Знач ДвоичныеДанныеИлиПутьФичи, Знач Расширение = "", - ИмяВременногоФайла = Неопределено) + ИмяВременногоФайла = Неопределено) + Если ТипЗнч(ДвоичныеДанныеИлиПутьФичи) = Тип("ДвоичныеДанные") Тогда + Если Расширение = "" Тогда Расширение = "feature"; КонецЕсли; + ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение); ДвоичныеДанныеИлиПутьФичи.Записать(ИмяВременногоФайла); ДвоичныеДанныеИлиПутьФичи = ИмяВременногоФайла; + КонецЕсли; + Возврат ДвоичныеДанныеИлиПутьФичи; + КонецФункции // Универсальная функция для проверки наличия свойств у значения любого типа данных diff --git "a/features/libraries/\320\234\320\260\320\272\320\265\321\202\321\213/step_definitions/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/\320\234\320\260\320\272\320\265\321\202\321\213/step_definitions/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 243739beb..956294932 100644 --- "a/features/libraries/\320\234\320\260\320\272\320\265\321\202\321\213/step_definitions/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/\320\234\320\260\320\272\320\265\321\202\321\213/step_definitions/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -167,14 +167,19 @@ &НаКлиенте Функция ЗагрузитьМакет(Знач ИмяМакета) - Макет = Ванесса.ПолучитьМакетОбработки(ИмяМакета); + Макет = Ванесса.ПолучитьМакетОбработки(ИмяМакета); + Если Макет = Неопределено Тогда + ВызватьИсключение "Не получили макет " + ИмяМакета; + КонецЕсли; - СтруктураДанных = Ванесса.СоздатьДанныеПоТабличномуДокументу(Макет); - Ванесса.ПроверитьНеРавенство(СтруктураДанных, Неопределено, "Не удалось загрузить данные из макета MXL, полученного через плагин ГенераторДанных."); + + СтруктураДанных = Ванесса.СоздатьДанныеПоТабличномуДокументу(Макет); + Ванесса.ПроверитьНеРавенство(СтруктураДанных, Неопределено, "Не удалось загрузить данные из макета MXL, полученного через плагин ГенераторДанных."); - Возврат СтруктураДанных; + Возврат СтруктураДанных; + КонецФункции //окончание текста модуля diff --git "a/features/libraries/\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\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270.feature" "b/features/libraries/\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\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270.feature" index 5f35e38bc..ed038e3a6 100644 --- "a/features/libraries/\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\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270.feature" +++ "b/features/libraries/\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\265Fixtures\320\237\320\276\320\234\320\260\320\272\320\265\321\202\321\203\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270\320\244\320\270\321\207\320\270.feature" @@ -53,12 +53,18 @@ Тогда В базе существует пользователь ИБ "ТестовыйПользователь" И Я удаляю пользователя ИБ "ТестовыйПользователь" -Сценарий: Создание fixtures по макету из каталога проекта +Сценарий: Создание fixtures по макету MXL из каталога проекта Когда Я удаляю все элементы Справочника "Справочник1" И Я создаю fixtures по макету "spec\fixtures\ЗагрузкаОдногоЭлементаСправочника1.mxl" Тогда В базе появился хотя бы один элемент справочника "Справочник1" +Сценарий: Создание fixtures по макету JSON из каталога проекта + + Когда Я удаляю все элементы Справочника "Справочник1" + И Я создаю fixtures по макету "spec\fixtures\ЗагрузкаОдногоЭлементаСправочника1.json" + Тогда В базе появился хотя бы один элемент справочника "Справочник1" + Сценарий: Нельзя выполнить шаг "И я загружаю макет", если макета не существует в каталоге проекта - негативный сценарий Когда проверяю шаги на исключение: diff --git "a/spec/fixtures/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\236\320\264\320\275\320\276\320\263\320\276\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2601.json" "b/spec/fixtures/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\236\320\264\320\275\320\276\320\263\320\276\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2601.json" new file mode 100644 index 000000000..01b23d91a --- /dev/null +++ "b/spec/fixtures/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\236\320\264\320\275\320\276\320\263\320\276\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\2601.json" @@ -0,0 +1,25 @@ +{ + "Элемент2": { + "Тип": "Справочник", + "Вид": "Справочник1", + "ИмяПредопределенного": "", + "ИмяПеременной": "Элемент2", + "Режимы": { + "ОбменДанными": true + }, + "ПоляОбъекта": [ + { + "Имя": "Ссылка", + "Значение": "eb04c4e8-56be-11e5-8276-fcaa1434287a", + "Режим": "", + "ДополнительныйТип": "" + }, + { + "Имя": "Наименование", + "Значение": "Элемент2", + "Режим": "", + "ДополнительныйТип": "" + } + ] + } +} \ No newline at end of file