diff --git a/Tests/Smoke/README.md b/Tests/Smoke/README.md new file mode 100644 index 00000000..f9a0b6fe --- /dev/null +++ b/Tests/Smoke/README.md @@ -0,0 +1,33 @@ +#Дымовое тестирование + +Данная обработка может быть использована и в [VanessaBehavior](https://github.com/silverbulleters/vanessa-behavior) и в [xUnit](https://github.com/xDrivenDevelopment/xUnitFor1C). +Запускать данный набора тестов рекомендуется базе данных в которой уже есть заполненные документы. + +##Дымовое тестирование xUnit + +Для заполнения списка исключений документов из проверки их необходимо заполнить в модуле документа обработки в процедуре ```ПолучитьСписокИсключений_ДокументыПроведенные``` и/или ```ПолучитьСписокИсключений_ДокументыНеПроведенные``` + +##Дымовое тестирование VanessaBehavior + +Для возможностей запуска дымового тестирования можно использовать данную обработку, как пример сниппетов для генерации feature файлов и использования сниппетов. +В обработке используется несколько сниппетов: + +``` +Я открываю форму документа "Документ" заполненного на основании проведенного "ДокументОснование" +Я открываю форму документа "Документ" заполненного на основании не проведенного "ДокументОснование" +Я открываю форму документа "Документ" заполненного на основании проведенного "ДокументОснование" номер "НомерДокументаОснования" от "ДатаДокументаОснования" +Я открываю форму документа "Документ" заполненного на основании не проведенного "ДокументОснование" номер "НомерДокументаОснования" от "ДатаДокументаОснования" +``` + +Данный сниппет получает форму, открывает ее и потом закрывает. В теории проверяем возможность работы процедур "ПриСозданииНаСервере", "ПриОткрытии", "ОбработкаЗаполнения" + +##Быстрый старт для типовых конфигураций VanessaBehavior + +Для быстрого старта необходимо открыть данныю обработку в режиме предприятия и нажать кнопку "Генерация фич", после генерации необходимых feature файлов, предложит выбрать каталог где будут созданны feature файлы в разрезе документов оснований. + +Если стоит галочка "Указывать документ основание", то происходит указание номера и даты документа на основании которого будет создаваться документ. + +Файлы создаются по имени документа основания, включают все документы которые можно создать на основании документа основания. Документом основания выбирается последний проведенный и не проведенный документ. Этого достаточно для первого старта, в дальнейшем предполагается, что при добавлении новых документов разработчик сам подкорретирует feature файл с необходимым документом. + +Предполагается, что перегенерация для типовых конфигураций будет происходить только для репозитория git вы всегда сможете увидеть только добавленные формы в фича файлах, а те которые исправляли сможете вернуть на правильное поведение. + diff --git a/Tests/Smoke/Smoke_InputBasedOn.epf b/Tests/Smoke/Smoke_InputBasedOn.epf new file mode 100644 index 00000000..4b478b4d Binary files /dev/null and b/Tests/Smoke/Smoke_InputBasedOn.epf differ diff --git "a/src/Tests/Smoke/Smoke_InputBasedOn/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Tests/Smoke/Smoke_InputBasedOn/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..781b14c7 --- /dev/null +++ "b/src/Tests/Smoke/Smoke_InputBasedOn/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,620 @@ +//начало текста модуля +#Область Служебные_функции_и_процедуры_xUnit + +&НаКлиенте +Перем КонтекстЯдра; +&НаКлиенте +Перем Ожидаем; +&НаКлиенте +Перем Утверждения; + + +#КонецОбласти + +#Область Служебные_функции_и_процедуры_VanessaBehavior + +&НаКлиенте +// контекст фреймворка Vanessa-Behavior +Перем Ванесса; + +&НаКлиенте +// Структура, в которой хранится состояние сценария между выполнением шагов. Очищается перед выполнением каждого сценария. +Перем Контекст Экспорт; + +&НаКлиенте +// Структура, в которой можно хранить служебные данные между запусками сценариев. Существует, пока открыта форма Vanessa-Behavior. +Перем КонтекстСохраняемый Экспорт; + +&НаКлиенте +// Функция экспортирует список шагов, которые реализованы в данной внешней обработке. +Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт + Ванесса = КонтекстФреймворкаBDD; + + ВсеТесты = Новый Массив; + + //описание параметров + //Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,ОписаниеШага,ТипШага,Транзакция,Параметр); + + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенногоНомерОт(Парам01,Парам02,Парам03,Парам04)","ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенногоНомерОт","Когда Я открываю форму документа ""АвтоВзаимозачет"" заполненного на основании проведенного ""ПоступлениеАвтомобилей"" номер ""АИ00000002"" от ""12.03.2017""","Открытие формы на основании проведенного документа","UI.Формы"); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенного(Парам01,Парам02)","ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенного","И Я открываю форму документа ""АвтоВзаимозачет"" заполненного на основании проведенного ""ПоступлениеАвтомобилей""","Открытие формы на основании проведенного документа","UI.Формы"); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенногоНомерОт(Парам01,Парам02,Парам03,Парам04)","ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенногоНомерОт","Когда Я открываю форму документа ""АвтоВзаимозачет"" заполненного на основании не проведенного ""ПоступлениеАвтомобилей"" номер ""АВ00000080"" от ""04.09.2016""","Открытие формы на основании не проведенного документа","UI.Формы"); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенного(Парам01,Парам02)","ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенного","И Я открываю форму документа ""АвтоВзаимозачет"" заполненного на основании не проведенного ""ПоступлениеАвтомобилей""","Открытие формы на основании не проведенного документа","UI.Формы"); + + Возврат ВсеТесты; +КонецФункции + +&НаСервере +// Служебная функция. +Функция ПолучитьМакетСервер(ИмяМакета) + ОбъектСервер = РеквизитФормыВЗначение("Объект"); + Возврат ОбъектСервер.ПолучитьМакет(ИмяМакета); +КонецФункции + +&НаКлиенте +// Служебная функция для подключения библиотеки создания fixtures. +Функция ПолучитьМакетОбработки(ИмяМакета) Экспорт + Возврат ПолучитьМакетСервер(ИмяМакета); +КонецФункции + + +#КонецОбласти + +#Область Работа_со_сценариями_VanessaBehavior + +&НаКлиенте +// Процедура выполняется перед началом каждого сценария +Процедура ПередНачаломСценария() Экспорт + +КонецПроцедуры + +&НаКлиенте +// Процедура выполняется перед окончанием каждого сценария +Процедура ПередОкончаниемСценария() Экспорт + +КонецПроцедуры + +#КонецОбласти + +#Область Работа_с_тестами_xUnit + +&НаКлиенте +Процедура Инициализация(КонтекстЯдраПараметр) Экспорт + КонтекстЯдра = КонтекстЯдраПараметр; + Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); + Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗапускомТеста() Экспорт + + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗапускаТеста() Экспорт + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт + + НужноИсключениеЕслиНеНайденоДокументов = Ложь; + + ТолькоУправляемыеФормы = Истина; + Объект.ВыводитьСообщенияВЖурналРегистрации = Истина; + + СписокИсключений_ДокументыПроведенные = ПолучитьСписокИсключений(Истина); + СписокИсключений_ДокументыНеПроведенные = ПолучитьСписокИсключений(Ложь); + + ОписаниеТестов = Новый Массив; + ГенерацияФичТестовНаСервере(ОписаниеТестов); + + ТекущаяГруппа = ""; + Для каждого Тест Из ОписаниеТестов Цикл + Если ТекущаяГруппа <> Тест.ТипОснование Тогда + ТекущаяГруппа = Тест.ТипОснование; + НаборТестов.НачатьГруппу("Тип документа основания""" + Тест.ТипОснование + """", Ложь); + КонецЕсли; + + Если Тест.Проведен Тогда + Рез = СписокИсключений_ДокументыПроведенные.НайтиПоЗначению(""+Тест.ВводитсяНаОсновании.Имя+"/"+Тест.ТипОснование); + Иначе + Рез = СписокИсключений_ДокументыНеПроведенные.НайтиПоЗначению(""+Тест.ВводитсяНаОсновании.Имя+"/"+Тест.ТипОснование); + КонецЕсли; + + Если Рез <> Неопределено Тогда + Продолжить; + КонецЕсли; + + ПолноеИмяФормы = "Документ." + Тест.ВводитсяНаОсновании.Имя + ".ФормаОбъекта"; + + НаборТестов.Добавить("ТестДолжен_ВыполнитьОткрытиеФормыДокументаНаОснованииДругогоДокумента", + НаборТестов.ПараметрыТеста(ПолноеИмяФормы, Тест.Основание), + "Создание документа """ + Тест.ВводитсяНаОсновании.Синоним + """ на основании " + + ?(Тест.Проведен, "", "не ") + "проведенного """ + + Тест.Основание + """"); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ТестДолжен_ВыполнитьОткрытиеФормыДокументаНаОснованииДругогоДокумента(ПолноеИмяФормы, Основание) Экспорт + ПараметрыФормы = Новый Структура("Основание", Основание); + ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы); +КонецПроцедуры + +#КонецОбласти + +&НаКлиенте +Процедура ГенерацияФич(Команда) + + ОписаниеТестов = Новый Массив; + ГенерацияФичТестовНаСервере(ОписаниеТестов); + СписокИсключений_ДокументыПроведенные = ПолучитьСписокИсключений(Истина); + СписокИсключений_ДокументыНеПроведенные = ПолучитьСписокИсключений(Ложь); + ТекущаяГруппа = ""; + Текст = Новый ТекстовыйДокумент; + МассивТекстов = Новый Массив; + Для каждого Тест Из ОписаниеТестов Цикл + Если ТекущаяГруппа <> Тест.ТипОснование Тогда + Если ТекущаяГруппа <> "" Тогда + СоответствиеФорм = Новый Соответствие; + СоответствиеФорм.Вставить("Имя", ТекущаяГруппа); + СоответствиеФорм.Вставить("Текст", Текст); + + МассивТекстов.Добавить(СоответствиеФорм); + //Текст.Показать(ТекущаяГруппа, "Ввод на основании - " + ТекущаяГруппа + ".feature"); + + КонецЕсли; + Текст = Новый ТекстовыйДокумент; + ТекущаяГруппа = Тест.ТипОснование; + + Текст.ДобавитьСтроку("# language: ru"); + Текст.ДобавитьСтроку(""); + + Текст.ДобавитьСтроку("@" + Тест.ТипОснование); + Текст.ДобавитьСтроку("@tree"); + Текст.ДобавитьСтроку("@smoke"); + Текст.ДобавитьСтроку(""); + + Текст.ДобавитьСтроку("Функционал: Тестирование открытия форм для подсистемы "); + Текст.ДобавитьСтроку(" Как Разработчик + | Я Хочу чтобы проверялось открытие формы всех элементов этой подсистемы + | Чтобы я мог гарантировать работоспособность заполнения форм на основании"); + Текст.ДобавитьСтроку(""); + Текст.ДобавитьСтроку("Сценарий: Ввод на основании документа """ + Тест.ТипОснование + """"); + + ШаблонСнипета = " Когда Я открываю форму документа ""#ВводитсяНаОсновании"" заполненного на основании #Проведен ""#ДокументОснования"""; + КонецЕсли; + + Если Тест.Проведен Тогда + Рез = СписокИсключений_ДокументыПроведенные.НайтиПоЗначению(""+Тест.ВводитсяНаОсновании.Имя+"/"+Тест.ТипОснование); + Иначе + Рез = СписокИсключений_ДокументыНеПроведенные.НайтиПоЗначению(""+Тест.ВводитсяНаОсновании.Имя+"/"+Тест.ТипОснование); + КонецЕсли; + + Если Рез <> Неопределено Тогда + Продолжить; + КонецЕсли; + + Снипет = СтрЗаменить(ШаблонСнипета, "#ВводитсяНаОсновании", Тест.ВводитсяНаОсновании.Имя); + Снипет = СтрЗаменить(Снипет, "#ДокументОснования", Тест.ТипОснование); + Снипет = СтрЗаменить(Снипет, "#Проведен", ?(Тест.Проведен, "", "не ") + "проведенного"); + + Если УказыватьДокументОснование Тогда + Снипет = Снипет + " номер ""#НомерДокументаОснования"" от ""#ДатаДокументаОснования"""; + Снипет = СтрЗаменить(Снипет, "#НомерДокументаОснования", Тест.Номер); + Снипет = СтрЗаменить(Снипет, "#ДатаДокументаОснования", Формат(Тест.Дата, "ДФ=dd.MM.yyyy")); + КонецЕсли; + + Текст.ДобавитьСтроку(Снипет); + ШаблонСнипета = СтрЗаменить(ШаблонСнипета, " Когда", " И "); + КонецЦикла; + + Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); + Диалог.Заголовок = "Выберите каталог для feature файлов"; + ДополнительныеПарам = Новый Структура("МассивТекстов", МассивТекстов); + ОповещениеОбВыборе = Новый ОписаниеОповещения("КаталогСохраненияФичЗавершение", ЭтотОбъект, ДополнительныеПарам); + Диалог.Показать(ОповещениеОбВыборе); + +КонецПроцедуры + +&НаКлиенте +Процедура КаталогСохраненияФичЗавершение(ВыбранныеФайлы, ДопПараметры) Экспорт + + Если ВыбранныеФайлы = Неопределено или ВыбранныеФайлы.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Каталог = ВыбранныеФайлы.Получить(0); + ОповещениеОбЗаписи = Новый ОписаниеОповещения("ЗаписьФайлаЗавершение", ЭтотОбъект, Неопределено); + Для каждого Элемент Из ДопПараметры["МассивТекстов"] Цикл + ТекстДок = Элемент["Текст"]; + ТекстДок.НачатьЗапись(ОповещениеОбЗаписи, Каталог + "/"+ Элемент["Имя"] + ".feature", КодировкаТекста.UTF8); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписьФайлаЗавершение(Результат, ДопПараметры) Экспорт + +КонецПроцедуры + +&НаСервере +Функция ПолучитьСписокИсключений(Проведен) + + ОсновнойОбъект = Объект(); + Если Проведен Тогда + СписокИсключений = ОсновнойОбъект.ПолучитьСписокИсключений_ДокументыПроведенные(); + Иначе + СписокИсключений = ОсновнойОбъект.ПолучитьСписокИсключений_ДокументыНеПроведенные(); + КонецЕсли; + + Возврат СписокИсключений; + +КонецФункции + +&НаСервере +Функция Объект() + Возврат РеквизитФормыВЗначение("Объект"); +КонецФункции + +&НаКлиенте +Процедура ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Проведен, НомерДокумента = Неопределено, ДатаДокумента = Неопределено) + + Если ДатаДокумента <> Неопределено Тогда + ДатаДокумента = Сред(ДатаДокумента, 7, 4) + Сред(ДатаДокумента, 4, 2) + Сред(ДатаДокумента, 1, 2); + КонецЕсли; + + Основание = ПолучитьСсылкуНаДокументОснование(ДокументОснование, Проведен, НомерДокумента, ДатаДокумента); + + Если Основание = Неопределено Тогда + ВызватьИсключение "Для """ + ИмяДокумента + """ не найдено документа основания"; + КонецЕсли; + + ПараметрыФормы = Новый Структура("Основание", Основание); + ПолноеИмяФормы = "Документ." + ИмяДокумента + ".ФормаОбъекта"; + ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы); + +КонецПроцедуры // ПроверитьОткрытиеФормыНаОсновании() + +&НаСервере +Функция ПолучитьСсылкуНаДокументОснование(ДокументОснование, Проведен, НомерДокумента, ДатаДокумента) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | #Док.Ссылка КАК Ссылка + |ИЗ + | Документ.#Док КАК #Док + |ГДЕ + | НЕ #Док.ПометкаУдаления + | И #Док.Проведен = &Проведен + | #ЕстьНомерДата + | + |УПОРЯДОЧИТЬ ПО + | #Док.Дата УБЫВ"; + + Если НомерДокумента <> Неопределено И ДатаДокумента <> Неопределено Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ЕстьНомерДата", "И #Док.Номер = &Номер И #Док.Дата = &Дата"); + Иначе + Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ЕстьНомерДата", ""); + КонецЕсли; + Запрос.УстановитьПараметр("Проведен", Проведен); + Запрос.УстановитьПараметр("Номер", НомерДокумента); + Запрос.УстановитьПараметр("Дата", ДатаДокумента); + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Док", ДокументОснование); + + РезультатЗапроса = Запрос.Выполнить().Выгрузить(); + Если РезультатЗапроса.Количество() = 0 Тогда + Если НомерДокумента <> Неопределено И ДатаДокумента <> Неопределено Тогда + Возврат ПолучитьСсылкуНаДокументОснование(ДокументОснование, Проведен, Неопределено, Неопределено); + Иначе + Возврат Неопределено; + КонецЕсли; + Иначе + Возврат РезультатЗапроса[0].Ссылка; + КонецЕсли; + +КонецФункции // ПолучитьСсылкуНаДокументОснование() + +// заимствовона из плагина дымовых тестов xUnit +&НаКлиенте +Процедура ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы) Экспорт + + КлючВременнойФормы = "908насмь9ыв3245"; + //Если Модально Тогда + // ТестируемаяФорма = ОткрытьФормуМодально(ПолноеИмяФормы, ПараметрыФормы); + //Иначе + //ошибка =""; + //Попытка + + // К сожалению здесь исключения не ловятся https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154 + ТестируемаяФорма = ОткрытьФорму(ПолноеИмяФормы, ПараметрыФормы,, КлючВременнойФормы); + + //Исключение + // ошибка = ОписаниеОшибки(); + // Предупреждение(" поймали исключение 20" + ошибка); + //КонецПопытки; + //КонецЕсли; + Если ТестируемаяФорма = Неопределено Тогда + Возврат; + КонецЕсли; + + //ТестируемаяФорма.Открыть(); // К сожалению здесь исключения не ловятся http://partners.v8.1c.ru/forum/thread.jsp?id=1080350#1080350 + Если ТестируемаяФорма.Открыта() = Ложь Тогда + ВызватьИсключение "ТестируемаяФорма """ + ПолноеИмяФормы+""" не открылась, а должна была открыться"; + КонецЕсли; + + Если ТипЗнч(ТестируемаяФорма) = Тип("УправляемаяФорма") Тогда + ТестируемаяФорма.ОбновитьОтображениеДанных(); + Иначе + //Если ЭтоОбычнаяФорма(ТестируемаяФорма) Тогда + ТестируемаяФорма.Обновить(); + КонецЕсли; + + ЗакрытьФорму(ТестируемаяФорма); + ЗавершитьТранзакцию(); + +КонецПроцедуры + +&НаСервере +Процедура ЗавершитьТранзакцию() + + Если ТранзакцияАктивна() Тогда + ОтменитьТранзакцию(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытьФорму(ТестируемаяФорма) + //Если ТипЗнч(ТестируемаяФорма) <> Тип("Форма") и ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда + Возврат; + КонецЕсли; + ТестируемаяФорма.Модифицированность = Ложь; + Если ТестируемаяФорма.Открыта() Тогда + ТестируемаяФорма.Модифицированность = Ложь; + //Попытка + ТестируемаяФорма.Закрыть(); + //Исключение + // Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + // ЗакрытьФормуБезусловноСОтменойТранзакции(ТестируемаяФорма); + // //Если ТранзакцияАктивна() Тогда + // // ОтменитьТранзакцию(); + // //КонецЕсли; + // // //ДобавитьСтрокуРезультата(ИмяОперации, ИнформацияОбОшибке()); + // //НачатьТранзакцию(); + // //ТестируемаяФорма.УстановитьДействие("ПередЗакрытием", Неопределено); + // //ТестируемаяФорма.УстановитьДействие("ПриЗакрытии", Неопределено); + // //ТестируемаяФорма.Закрыть(); + // ВызватьИсключение Ошибка; + //КонецПопытки; + Иначе + Попытка + ТестируемаяФорма.Закрыть(); + Исключение + КонецПопытки; + КонецЕсли; + ТестируемаяФорма = ""; + +КонецПроцедуры + +&НаСервере +Процедура ГенерацияФичТестовНаСервере(ОписаниеТестов) + + СписокМетаданных = ПолучитьСписокМетаданныхНаСервере(); + СписокДокументыОснования = ПолучитьСсылкиНаДокументыОснованияНаСервере(СписокМетаданных); + + Для каждого ТипМетаданного Из СписокМетаданных Цикл + ТипДокумента = ТипМетаданного.Значение; + + ВводятсяНаОснованииДокумента = СписокВводятсяНаОснованииДокументаНаСервере(ТипДокумента.Имя); + Если ВводятсяНаОснованииДокумента.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + Отбор = Новый Структура; + Отбор.Вставить("ТипДокумента", ТипДокумента.Имя); + СписокОснований = СписокДокументыОснования.НайтиСтроки(Отбор); + Если СписокОснований.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + Для каждого ВводитсяНаОсновании Из ВводятсяНаОснованииДокумента Цикл + Для каждого Основание Из СписокОснований Цикл + СоответствиеФорм = Новый Структура; + СоответствиеФорм.Вставить("ВводитсяНаОсновании", ВводитсяНаОсновании.Значение); + СоответствиеФорм.Вставить("Проведен", Основание.Проведен); + СоответствиеФорм.Вставить("Основание", Основание.Ссылка); + СоответствиеФорм.Вставить("Номер", Основание.Номер); + СоответствиеФорм.Вставить("Дата", Основание.Дата); + СоответствиеФорм.Вставить("ТипОснование", Основание.ТипДокумента); + + ОписаниеТестов.Добавить(СоответствиеФорм); + КонецЦикла; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция ПолучитьСписокМетаданныхНаСервере() + + СписокМетаданных = Новый СписокЗначений; + Для каждого ТипДок Из Метаданные.Документы Цикл + СписокМетаданных.Добавить(ТипДок, ТипДок.Имя); + КонецЦикла; + СписокМетаданных.СортироватьПоПредставлению(НаправлениеСортировки.Возр); + + Возврат СписокМетаданных; + +КонецФункции + +&НаСервере +Функция СписокВводятсяНаОснованииДокументаНаСервере(ТипДокумента) + + ЯвляетсяОснованием = Новый СписокЗначений; + + ДокументОснования = Метаданные.Документы[ТипДокумента]; + //Если ДокументОснования.ИспользоватьСтандартныеКоманды Тогда // исключаем документы которые пользователь не может создать из интерфейса + Для каждого ДокументКоллекции ИЗ Метаданные.Документы Цикл + ВводитсяНаОсновании = ДокументКоллекции.ВводитсяНаОсновании; + Для каждого Док ИЗ ВводитсяНаОсновании Цикл + Если Док = ДокументОснования Тогда + ЯвляетсяОснованием.Добавить(Новый Структура("Имя, Синоним", ДокументКоллекции.Имя, ДокументКоллекции.Синоним), ДокументКоллекции.Имя); + Прервать; + КонецЕсли; + КонецЦикла; + КонецЦикла; + //КонецЕсли; + + ЯвляетсяОснованием.СортироватьПоПредставлению(НаправлениеСортировки.Возр); + + Возврат ЯвляетсяОснованием; + +КонецФункции + +&НаСервере +Функция ПолучитьСсылкиНаДокументыОснованияНаСервере(СписокМетаданных) + + ШаблонЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | #Док.Ссылка КАК Ссылка, + | #Док.Номер КАК Номер, + | #Док.Дата КАК Дата, + | #Док.Проведен КАК Проведен, + | ""#Док"" КАК ТипДокумента + |ПОМЕСТИТЬ #Док_Проведенные + |ИЗ + | Документ.#Док КАК #Док + |ГДЕ + | #Док.Проведен + | + |УПОРЯДОЧИТЬ ПО + | #Док.Дата УБЫВ + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ ПЕРВЫЕ 1 + | #Док.Ссылка КАК Ссылка, + | #Док.Номер КАК Номер, + | #Док.Дата КАК Дата, + | #Док.Проведен КАК Проведен, + | ""#Док"" КАК ТипДокумента + |ПОМЕСТИТЬ #Док_НеПроведенные + |ИЗ + | Документ.#Док КАК #Док + |ГДЕ + | НЕ #Док.ПометкаУдаления + | И НЕ #Док.Проведен + | + |УПОРЯДОЧИТЬ ПО + | #Док.Дата УБЫВ + |; + |ВЫБРАТЬ + | #Док_Проведенные.Ссылка КАК Ссылка, + | #Док_Проведенные.Номер КАК Номер, + | #Док_Проведенные.Дата КАК Дата, + | #Док_Проведенные.Проведен КАК Проведен, + | #Док_Проведенные.ТипДокумента КАК ТипДокумента + |ИЗ + | #Док_Проведенные КАК #Док_Проведенные + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | #Док_НеПроведенные.Ссылка КАК Ссылка, + | #Док_НеПроведенные.Номер КАК Номер, + | #Док_НеПроведенные.Дата КАК Дата, + | #Док_НеПроведенные.Проведен КАК Проведен, + | #Док_НеПроведенные.ТипДокумента КАК ТипДокумента + |ИЗ + | #Док_НеПроведенные КАК #Док_НеПроведенные + |"; + + // Ищем тестовые документы: проведенный и не проведенный + ТаблицаДокументовОснований = Новый ТаблицаЗначений; + ТаблицаДокументовОснований.Колонки.Добавить("Ссылка"); + ТаблицаДокументовОснований.Колонки.Добавить("Номер"); + ТаблицаДокументовОснований.Колонки.Добавить("Дата"); + ТаблицаДокументовОснований.Колонки.Добавить("Проведен"); + ТаблицаДокументовОснований.Колонки.Добавить("ТипДокумента"); + + Для каждого ТипМетаданного Из СписокМетаданных Цикл + Запрос = Новый Запрос; + Запрос.Текст = ШаблонЗапроса; + Если ТипМетаданного.Значение.ДлинаНомера = 0 Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Док.Номер", """"""); + КонецЕсли; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Док", ТипМетаданного.Значение.Имя); + + Попытка + Результат = Запрос.Выполнить().Выгрузить(); + Результат.Сортировать("ТипДокумента Возр"); + Если Результат.Количество() > 0 Тогда + ЗагрузитьВТаблицуЗначений(Результат, ТаблицаДокументовОснований); + КонецЕсли; + Исключение + Сообщить("Возникли проблеммы с поиском документов оснований для """ + ТипМетаданного.Значение.Имя + """"); + КонецПопытки; + КонецЦикла; + + Возврат ТаблицаДокументовОснований; + +КонецФункции // ПолучитьОснованиеНаСервере() + +&НаСервере +Процедура ЗагрузитьВТаблицуЗначений(ТаблицаИсточник, ТаблицаПриемник) + + //Сформируем массив совпадающих колонок. + МассивСовпадающихКолонок = Новый Массив(); + Для каждого Колонка Из ТаблицаПриемник.Колонки Цикл + Если ТаблицаИсточник.Колонки.Найти(Колонка.Имя) <> Неопределено Тогда + МассивСовпадающихКолонок.Добавить(Колонка.Имя); + КонецЕсли; + КонецЦикла; + + Для каждого СтрокаТаблицыИсточника Из ТаблицаИсточник Цикл + СтрокаТаблицыПриемника = ТаблицаПриемник.Добавить(); + // Заполним значения в совпадающих колонках. + Для каждого ЭлементМассива Из МассивСовпадающихКолонок Цикл + СтрокаТаблицыПриемника[ЭлементМассива] = СтрокаТаблицыИсточника[ЭлементМассива]; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры // ЗагрузитьВТаблицуЗначений() + +#Область Реализация_Шагов_VanessaBehavior +&НаКлиенте +//Когда открываю форму документа "АвтоВзаимозачет" заполненного на основании проведенного "ПоступлениеАвтомобилей" номер "АИ00000002" от "12.03.2017" +//@ОткрываюФормуДокументаЗаполненногоНаОснованииПроведенногоНомерОт(Парам01,Парам02,Парам03,Парам04) +Процедура ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенногоНомерОт(ИмяДокумента, ДокументОснование,НомерДокумента,ДатаДокумента) Экспорт + ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Истина, НомерДокумента, ДатаДокумента); +КонецПроцедуры + +&НаКлиенте +//И открываю форму документа "АвтоВзаимозачет" заполненного на основании проведенного "ПоступлениеАвтомобилей" +//@ОткрываюФормуДокументаЗаполненногоНаОснованииПроведенного(Парам01,Парам02) +Процедура ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенного(ИмяДокумента, ДокументОснование) Экспорт + ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Истина, Неопределено, Неопределено); +КонецПроцедуры + +&НаКлиенте +//Когда открываю форму документа "АвтоВзаимозачет" заполненного на основании не проведенного "ПоступлениеАвтомобилей" номер "АВ00000080" от "04.09.2016" +//@ОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенногоНомерОт(Парам01,Парам02,Парам03,Парам04) +Процедура ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенногоНомерОт(ИмяДокумента, ДокументОснование,НомерДокумента,ДатаДокумента) Экспорт + ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Ложь, НомерДокумента, ДатаДокумента); +КонецПроцедуры + +&НаКлиенте +//И открываю форму документа "АвтоВзаимозачет" заполненного на основании не проведенного "ПоступлениеАвтомобилей" +//@ОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенного(Парам01,Парам02) +Процедура ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенного(ИмяДокумента, ДокументОснование) Экспорт + ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Ложь, Неопределено, Неопределено); +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/ObjectModule.bsl b/src/Tests/Smoke/Smoke_InputBasedOn/ObjectModule.bsl new file mode 100644 index 00000000..cd891ff2 --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/ObjectModule.bsl @@ -0,0 +1,15 @@ +Функция ПолучитьСписокИсключений_ДокументыПроведенные() Экспорт + Результат = Новый СписокЗначений; + + //Результат.Добавить("ЧтоОткрываем/ДокументОснование"); + + Возврат Результат; +КонецФункции + +Функция ПолучитьСписокИсключений_ДокументыНеПроведенные() Экспорт + Результат = Новый СписокЗначений; + + //Результат.Добавить("ЧтоОткрываем/ДокументОснование"); + + Возврат Результат; +КонецФункции \ No newline at end of file diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/maps.txt b/src/Tests/Smoke/Smoke_InputBasedOn/maps.txt new file mode 100644 index 00000000..5c73d8dc --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/maps.txt @@ -0,0 +1 @@ +Form\Форма\Форма.bsl-->70e297e0-e8a2-43bf-8be1-62e408f610a1.0 (173, 792) diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/renames.txt b/src/Tests/Smoke/Smoke_InputBasedOn/renames.txt new file mode 100644 index 00000000..e716158b --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/renames.txt @@ -0,0 +1,9 @@ +70e297e0-e8a2-43bf-8be1-62e408f610a1-->und\70e297e0-e8a2-43bf-8be1-62e408f610a1 +70e297e0-e8a2-43bf-8be1-62e408f610a1.0-->und\70e297e0-e8a2-43bf-8be1-62e408f610a1.0 +79a499cc-1782-4a2f-abe7-61ea4d49fd5a-->und\79a499cc-1782-4a2f-abe7-61ea4d49fd5a +8aa13ab8-188a-4f59-be4f-031aa5450c90.0\info-->und\8aa13ab8-188a-4f59-be4f-031aa5450c90.0\info +8aa13ab8-188a-4f59-be4f-031aa5450c90.0\text-->ObjectModule.bsl +copyinfo-->und\copyinfo +root-->und\root +version-->und\version +versions-->und\versions diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/und/70e297e0-e8a2-43bf-8be1-62e408f610a1 b/src/Tests/Smoke/Smoke_InputBasedOn/und/70e297e0-e8a2-43bf-8be1-62e408f610a1 new file mode 100644 index 00000000..e7c1214a --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/und/70e297e0-e8a2-43bf-8be1-62e408f610a1 @@ -0,0 +1,15 @@ +{1, +{1, +{0, +{12, +{1, +{0,0,70e297e0-e8a2-43bf-8be1-62e408f610a1},"Форма", +{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1, +{2, +{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1}, +{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2} +} +}, +{0} +} +},0} \ No newline at end of file diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/und/70e297e0-e8a2-43bf-8be1-62e408f610a1.0 b/src/Tests/Smoke/Smoke_InputBasedOn/und/70e297e0-e8a2-43bf-8be1-62e408f610a1.0 new file mode 100644 index 00000000..0b946a05 --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/und/70e297e0-e8a2-43bf-8be1-62e408f610a1.0 @@ -0,0 +1,867 @@ +{3, +{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, +{1,0},0,0,1,1,1,0,1,0, +{0,1,0}, +{0},1, +{21, +{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,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},2,77ffcc29-7f2d-4223-b22f-19666e7250ba, +{33, +{6,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, +{0, +{0, +{"B",1},0} +},3,"УказыватьДокументОснование",4,0, +{1,0}, +{1,0}, +{1, +{2} +}, +{0},1,0,2,0,2, +{1,0}, +{1,0},1,1,0,3,0,3,1,3,0, +{4,0, +{0},"",-1,-1,1,0,""}, +{4,0, +{0},"",-1,-1,1,0,""}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{10,0, +{3,4, +{0} +}, +{3,4, +{0} +},0, +{1,0}, +{3,4, +{0} +}, +{7,3,0,1,100},0,0,0,2}, +{0,1,0},1, +{21, +{7,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, +{"Pattern"}, +{"Pattern"},"","", +{0},0,0,1, +{10, +{8,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},a9f3b1ac-f51b-431e-b102-55a69acdecad, +{28, +{4,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, +{0, +{0, +{"B",1},0} +},1,"ГенерацияФич", +{1,0},1, +{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a}, +{0},3,0,0,0,2,2,0,0,0, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},0, +{4,0, +{0},"",-1,-1,1,0,""},1, +{"Pattern"},"",2,0,1, +{10, +{5,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,1,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,"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},"//начало текста модуля +#Область Служебные_функции_и_процедуры_xUnit + +&НаКлиенте +Перем КонтекстЯдра; +&НаКлиенте +Перем Ожидаем; +&НаКлиенте +Перем Утверждения; + + +#КонецОбласти + +#Область Служебные_функции_и_процедуры_VanessaBehavior + +&НаКлиенте +// контекст фреймворка Vanessa-Behavior +Перем Ванесса; + +&НаКлиенте +// Структура, в которой хранится состояние сценария между выполнением шагов. Очищается перед выполнением каждого сценария. +Перем Контекст Экспорт; + +&НаКлиенте +// Структура, в которой можно хранить служебные данные между запусками сценариев. Существует, пока открыта форма Vanessa-Behavior. +Перем КонтекстСохраняемый Экспорт; + +&НаКлиенте +// Функция экспортирует список шагов, которые реализованы в данной внешней обработке. +Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт + Ванесса = КонтекстФреймворкаBDD; + + ВсеТесты = Новый Массив; + + //описание параметров + //Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,ОписаниеШага,ТипШага,Транзакция,Параметр); + + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,""ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенногоНомерОт(Парам01,Парам02,Парам03,Парам04)"",""ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенногоНомерОт"",""Когда Я открываю форму документа """"АвтоВзаимозачет"""" заполненного на основании проведенного """"ПоступлениеАвтомобилей"""" номер """"АИ00000002"""" от """"12.03.2017"""""",""Открытие формы на основании проведенного документа"",""UI.Формы""); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,""ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенного(Парам01,Парам02)"",""ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенного"",""И Я открываю форму документа """"АвтоВзаимозачет"""" заполненного на основании проведенного """"ПоступлениеАвтомобилей"""""",""Открытие формы на основании проведенного документа"",""UI.Формы""); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,""ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенногоНомерОт(Парам01,Парам02,Парам03,Парам04)"",""ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенногоНомерОт"",""Когда Я открываю форму документа """"АвтоВзаимозачет"""" заполненного на основании не проведенного """"ПоступлениеАвтомобилей"""" номер """"АВ00000080"""" от """"04.09.2016"""""",""Открытие формы на основании не проведенного документа"",""UI.Формы""); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,""ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенного(Парам01,Парам02)"",""ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенного"",""И Я открываю форму документа """"АвтоВзаимозачет"""" заполненного на основании не проведенного """"ПоступлениеАвтомобилей"""""",""Открытие формы на основании не проведенного документа"",""UI.Формы""); + + Возврат ВсеТесты; +КонецФункции + +&НаСервере +// Служебная функция. +Функция ПолучитьМакетСервер(ИмяМакета) + ОбъектСервер = РеквизитФормыВЗначение(""Объект""); + Возврат ОбъектСервер.ПолучитьМакет(ИмяМакета); +КонецФункции + +&НаКлиенте +// Служебная функция для подключения библиотеки создания fixtures. +Функция ПолучитьМакетОбработки(ИмяМакета) Экспорт + Возврат ПолучитьМакетСервер(ИмяМакета); +КонецФункции + + +#КонецОбласти + +#Область Работа_со_сценариями_VanessaBehavior + +&НаКлиенте +// Процедура выполняется перед началом каждого сценария +Процедура ПередНачаломСценария() Экспорт + +КонецПроцедуры + +&НаКлиенте +// Процедура выполняется перед окончанием каждого сценария +Процедура ПередОкончаниемСценария() Экспорт + +КонецПроцедуры + +#КонецОбласти + +#Область Работа_с_тестами_xUnit + +&НаКлиенте +Процедура Инициализация(КонтекстЯдраПараметр) Экспорт + КонтекстЯдра = КонтекстЯдраПараметр; + Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения""); + Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD""); +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗапускомТеста() Экспорт + + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗапускаТеста() Экспорт + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт + + НужноИсключениеЕслиНеНайденоДокументов = Ложь; + + ТолькоУправляемыеФормы = Истина; + Объект.ВыводитьСообщенияВЖурналРегистрации = Истина; + + СписокИсключений_ДокументыПроведенные = ПолучитьСписокИсключений(Истина); + СписокИсключений_ДокументыНеПроведенные = ПолучитьСписокИсключений(Ложь); + + ОписаниеТестов = Новый Массив; + ГенерацияФичТестовНаСервере(ОписаниеТестов); + + ТекущаяГруппа = """"; + Для каждого Тест Из ОписаниеТестов Цикл + Если ТекущаяГруппа <> Тест.ТипОснование Тогда + ТекущаяГруппа = Тест.ТипОснование; + НаборТестов.НачатьГруппу(""Тип документа основания"""""" + Тест.ТипОснование + """""""", Ложь); + КонецЕсли; + + Если Тест.Проведен Тогда + Рез = СписокИсключений_ДокументыПроведенные.НайтиПоЗначению(""""+Тест.ВводитсяНаОсновании.Имя+""/""+Тест.ТипОснование); + Иначе + Рез = СписокИсключений_ДокументыНеПроведенные.НайтиПоЗначению(""""+Тест.ВводитсяНаОсновании.Имя+""/""+Тест.ТипОснование); + КонецЕсли; + + Если Рез <> Неопределено Тогда + Продолжить; + КонецЕсли; + + ПолноеИмяФормы = ""Документ."" + Тест.ВводитсяНаОсновании.Имя + "".ФормаОбъекта""; + + НаборТестов.Добавить(""ТестДолжен_ВыполнитьОткрытиеФормыДокументаНаОснованииДругогоДокумента"", + НаборТестов.ПараметрыТеста(ПолноеИмяФормы, Тест.Основание), + ""Создание документа """""" + Тест.ВводитсяНаОсновании.Синоним + """""" на основании "" + + ?(Тест.Проведен, """", ""не "") + ""проведенного """""" + + Тест.Основание + """"""""); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ТестДолжен_ВыполнитьОткрытиеФормыДокументаНаОснованииДругогоДокумента(ПолноеИмяФормы, Основание) Экспорт + ПараметрыФормы = Новый Структура(""Основание"", Основание); + ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы); +КонецПроцедуры + +#КонецОбласти + +&НаКлиенте +Процедура ГенерацияФич(Команда) + + ОписаниеТестов = Новый Массив; + ГенерацияФичТестовНаСервере(ОписаниеТестов); + СписокИсключений_ДокументыПроведенные = ПолучитьСписокИсключений(Истина); + СписокИсключений_ДокументыНеПроведенные = ПолучитьСписокИсключений(Ложь); + ТекущаяГруппа = """"; + Текст = Новый ТекстовыйДокумент; + МассивТекстов = Новый Массив; + Для каждого Тест Из ОписаниеТестов Цикл + Если ТекущаяГруппа <> Тест.ТипОснование Тогда + Если ТекущаяГруппа <> """" Тогда + СоответствиеФорм = Новый Соответствие; + СоответствиеФорм.Вставить(""Имя"", ТекущаяГруппа); + СоответствиеФорм.Вставить(""Текст"", Текст); + + МассивТекстов.Добавить(СоответствиеФорм); + //Текст.Показать(ТекущаяГруппа, ""Ввод на основании - "" + ТекущаяГруппа + "".feature""); + + КонецЕсли; + Текст = Новый ТекстовыйДокумент; + ТекущаяГруппа = Тест.ТипОснование; + + Текст.ДобавитьСтроку(""# language: ru""); + Текст.ДобавитьСтроку(""""); + + Текст.ДобавитьСтроку(""@"" + Тест.ТипОснование); + Текст.ДобавитьСтроку(""@tree""); + Текст.ДобавитьСтроку(""@smoke""); + Текст.ДобавитьСтроку(""""); + + Текст.ДобавитьСтроку(""Функционал: Тестирование открытия форм для подсистемы ""); + Текст.ДобавитьСтроку("" Как Разработчик + | Я Хочу чтобы проверялось открытие формы всех элементов этой подсистемы + | Чтобы я мог гарантировать работоспособность заполнения форм на основании""); + Текст.ДобавитьСтроку(""""); + Текст.ДобавитьСтроку(""Сценарий: Ввод на основании документа """""" + Тест.ТипОснование + """"""""); + + ШаблонСнипета = "" Когда Я открываю форму документа """"#ВводитсяНаОсновании"""" заполненного на основании #Проведен """"#ДокументОснования""""""; + КонецЕсли; + + Если Тест.Проведен Тогда + Рез = СписокИсключений_ДокументыПроведенные.НайтиПоЗначению(""""+Тест.ВводитсяНаОсновании.Имя+""/""+Тест.ТипОснование); + Иначе + Рез = СписокИсключений_ДокументыНеПроведенные.НайтиПоЗначению(""""+Тест.ВводитсяНаОсновании.Имя+""/""+Тест.ТипОснование); + КонецЕсли; + + Если Рез <> Неопределено Тогда + Продолжить; + КонецЕсли; + + Снипет = СтрЗаменить(ШаблонСнипета, ""#ВводитсяНаОсновании"", Тест.ВводитсяНаОсновании.Имя); + Снипет = СтрЗаменить(Снипет, ""#ДокументОснования"", Тест.ТипОснование); + Снипет = СтрЗаменить(Снипет, ""#Проведен"", ?(Тест.Проведен, """", ""не "") + ""проведенного""); + + Если УказыватьДокументОснование Тогда + Снипет = Снипет + "" номер """"#НомерДокументаОснования"""" от """"#ДатаДокументаОснования""""""; + Снипет = СтрЗаменить(Снипет, ""#НомерДокументаОснования"", Тест.Номер); + Снипет = СтрЗаменить(Снипет, ""#ДатаДокументаОснования"", Формат(Тест.Дата, ""ДФ=dd.MM.yyyy"")); + КонецЕсли; + + Текст.ДобавитьСтроку(Снипет); + ШаблонСнипета = СтрЗаменить(ШаблонСнипета, "" Когда"", "" И ""); + КонецЦикла; + + Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); + Диалог.Заголовок = ""Выберите каталог для feature файлов""; + ДополнительныеПарам = Новый Структура(""МассивТекстов"", МассивТекстов); + ОповещениеОбВыборе = Новый ОписаниеОповещения(""КаталогСохраненияФичЗавершение"", ЭтотОбъект, ДополнительныеПарам); + Диалог.Показать(ОповещениеОбВыборе); + +КонецПроцедуры + +&НаКлиенте +Процедура КаталогСохраненияФичЗавершение(ВыбранныеФайлы, ДопПараметры) Экспорт + + Если ВыбранныеФайлы = Неопределено или ВыбранныеФайлы.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Каталог = ВыбранныеФайлы.Получить(0); + ОповещениеОбЗаписи = Новый ОписаниеОповещения(""ЗаписьФайлаЗавершение"", ЭтотОбъект, Неопределено); + Для каждого Элемент Из ДопПараметры[""МассивТекстов""] Цикл + ТекстДок = Элемент[""Текст""]; + ТекстДок.НачатьЗапись(ОповещениеОбЗаписи, Каталог + ""/""+ Элемент[""Имя""] + "".feature"", КодировкаТекста.UTF8); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписьФайлаЗавершение(Результат, ДопПараметры) Экспорт + +КонецПроцедуры + +&НаСервере +Функция ПолучитьСписокИсключений(Проведен) + + ОсновнойОбъект = Объект(); + Если Проведен Тогда + СписокИсключений = ОсновнойОбъект.ПолучитьСписокИсключений_ДокументыПроведенные(); + Иначе + СписокИсключений = ОсновнойОбъект.ПолучитьСписокИсключений_ДокументыНеПроведенные(); + КонецЕсли; + + Возврат СписокИсключений; + +КонецФункции + +&НаСервере +Функция Объект() + Возврат РеквизитФормыВЗначение(""Объект""); +КонецФункции + +&НаКлиенте +Процедура ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Проведен, НомерДокумента = Неопределено, ДатаДокумента = Неопределено) + + Если ДатаДокумента <> Неопределено Тогда + ДатаДокумента = Сред(ДатаДокумента, 7, 4) + Сред(ДатаДокумента, 4, 2) + Сред(ДатаДокумента, 1, 2); + КонецЕсли; + + Основание = ПолучитьСсылкуНаДокументОснование(ДокументОснование, Проведен, НомерДокумента, ДатаДокумента); + + Если Основание = Неопределено Тогда + ВызватьИсключение ""Для """""" + ИмяДокумента + """""" не найдено документа основания""; + КонецЕсли; + + ПараметрыФормы = Новый Структура(""Основание"", Основание); + ПолноеИмяФормы = ""Документ."" + ИмяДокумента + "".ФормаОбъекта""; + ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы); + +КонецПроцедуры // ПроверитьОткрытиеФормыНаОсновании() + +&НаСервере +Функция ПолучитьСсылкуНаДокументОснование(ДокументОснование, Проведен, НомерДокумента, ДатаДокумента) + + Запрос = Новый Запрос; + Запрос.Текст = + ""ВЫБРАТЬ ПЕРВЫЕ 1 + | #Док.Ссылка КАК Ссылка + |ИЗ + | Документ.#Док КАК #Док + |ГДЕ + | НЕ #Док.ПометкаУдаления + | И #Док.Проведен = &Проведен + | #ЕстьНомерДата + | + |УПОРЯДОЧИТЬ ПО + | #Док.Дата УБЫВ""; + + Если НомерДокумента <> Неопределено И ДатаДокумента <> Неопределено Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, ""#ЕстьНомерДата"", ""И #Док.Номер = &Номер И #Док.Дата = &Дата""); + Иначе + Запрос.Текст = СтрЗаменить(Запрос.Текст, ""#ЕстьНомерДата"", """"); + КонецЕсли; + Запрос.УстановитьПараметр(""Проведен"", Проведен); + Запрос.УстановитьПараметр(""Номер"", НомерДокумента); + Запрос.УстановитьПараметр(""Дата"", ДатаДокумента); + + Запрос.Текст = СтрЗаменить(Запрос.Текст, ""#Док"", ДокументОснование); + + РезультатЗапроса = Запрос.Выполнить().Выгрузить(); + Если РезультатЗапроса.Количество() = 0 Тогда + Если НомерДокумента <> Неопределено И ДатаДокумента <> Неопределено Тогда + Возврат ПолучитьСсылкуНаДокументОснование(ДокументОснование, Проведен, Неопределено, Неопределено); + Иначе + Возврат Неопределено; + КонецЕсли; + Иначе + Возврат РезультатЗапроса[0].Ссылка; + КонецЕсли; + +КонецФункции // ПолучитьСсылкуНаДокументОснование() + +// заимствовона из плагина дымовых тестов xUnit +&НаКлиенте +Процедура ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы) Экспорт + + КлючВременнойФормы = ""908насмь9ыв3245""; + //Если Модально Тогда + // ТестируемаяФорма = ОткрытьФормуМодально(ПолноеИмяФормы, ПараметрыФормы); + //Иначе + //ошибка =""""; + //Попытка + + // К сожалению здесь исключения не ловятся https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154 + ТестируемаяФорма = ОткрытьФорму(ПолноеИмяФормы, ПараметрыФормы,, КлючВременнойФормы); + + //Исключение + // ошибка = ОписаниеОшибки(); + // Предупреждение("" поймали исключение 20"" + ошибка); + //КонецПопытки; + //КонецЕсли; + Если ТестируемаяФорма = Неопределено Тогда + Возврат; + КонецЕсли; + + //ТестируемаяФорма.Открыть(); // К сожалению здесь исключения не ловятся http://partners.v8.1c.ru/forum/thread.jsp?id=1080350#1080350 + Если ТестируемаяФорма.Открыта() = Ложь Тогда + ВызватьИсключение ""ТестируемаяФорма """""" + ПолноеИмяФормы+"""""" не открылась, а должна была открыться""; + КонецЕсли; + + Если ТипЗнч(ТестируемаяФорма) = Тип(""УправляемаяФорма"") Тогда + ТестируемаяФорма.ОбновитьОтображениеДанных(); + Иначе + //Если ЭтоОбычнаяФорма(ТестируемаяФорма) Тогда + ТестируемаяФорма.Обновить(); + КонецЕсли; + + ЗакрытьФорму(ТестируемаяФорма); + ЗавершитьТранзакцию(); + +КонецПроцедуры + +&НаСервере +Процедура ЗавершитьТранзакцию() + + Если ТранзакцияАктивна() Тогда + ОтменитьТранзакцию(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытьФорму(ТестируемаяФорма) + //Если ТипЗнч(ТестируемаяФорма) <> Тип(""Форма"") и ТипЗнч(ТестируемаяФорма) <> Тип(""УправляемаяФорма"") Тогда + Если ТипЗнч(ТестируемаяФорма) <> Тип(""УправляемаяФорма"") Тогда + Возврат; + КонецЕсли; + ТестируемаяФорма.Модифицированность = Ложь; + Если ТестируемаяФорма.Открыта() Тогда + ТестируемаяФорма.Модифицированность = Ложь; + //Попытка + ТестируемаяФорма.Закрыть(); + //Исключение + // Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + // ЗакрытьФормуБезусловноСОтменойТранзакции(ТестируемаяФорма); + // //Если ТранзакцияАктивна() Тогда + // // ОтменитьТранзакцию(); + // //КонецЕсли; + // // //ДобавитьСтрокуРезультата(ИмяОперации, ИнформацияОбОшибке()); + // //НачатьТранзакцию(); + // //ТестируемаяФорма.УстановитьДействие(""ПередЗакрытием"", Неопределено); + // //ТестируемаяФорма.УстановитьДействие(""ПриЗакрытии"", Неопределено); + // //ТестируемаяФорма.Закрыть(); + // ВызватьИсключение Ошибка; + //КонецПопытки; + Иначе + Попытка + ТестируемаяФорма.Закрыть(); + Исключение + КонецПопытки; + КонецЕсли; + ТестируемаяФорма = """"; + +КонецПроцедуры + +&НаСервере +Процедура ГенерацияФичТестовНаСервере(ОписаниеТестов) + + СписокМетаданных = ПолучитьСписокМетаданныхНаСервере(); + СписокДокументыОснования = ПолучитьСсылкиНаДокументыОснованияНаСервере(СписокМетаданных); + + Для каждого ТипМетаданного Из СписокМетаданных Цикл + ТипДокумента = ТипМетаданного.Значение; + + ВводятсяНаОснованииДокумента = СписокВводятсяНаОснованииДокументаНаСервере(ТипДокумента.Имя); + Если ВводятсяНаОснованииДокумента.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + Отбор = Новый Структура; + Отбор.Вставить(""ТипДокумента"", ТипДокумента.Имя); + СписокОснований = СписокДокументыОснования.НайтиСтроки(Отбор); + Если СписокОснований.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + Для каждого ВводитсяНаОсновании Из ВводятсяНаОснованииДокумента Цикл + Для каждого Основание Из СписокОснований Цикл + СоответствиеФорм = Новый Структура; + СоответствиеФорм.Вставить(""ВводитсяНаОсновании"", ВводитсяНаОсновании.Значение); + СоответствиеФорм.Вставить(""Проведен"", Основание.Проведен); + СоответствиеФорм.Вставить(""Основание"", Основание.Ссылка); + СоответствиеФорм.Вставить(""Номер"", Основание.Номер); + СоответствиеФорм.Вставить(""Дата"", Основание.Дата); + СоответствиеФорм.Вставить(""ТипОснование"", Основание.ТипДокумента); + + ОписаниеТестов.Добавить(СоответствиеФорм); + КонецЦикла; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция ПолучитьСписокМетаданныхНаСервере() + + СписокМетаданных = Новый СписокЗначений; + Для каждого ТипДок Из Метаданные.Документы Цикл + СписокМетаданных.Добавить(ТипДок, ТипДок.Имя); + КонецЦикла; + СписокМетаданных.СортироватьПоПредставлению(НаправлениеСортировки.Возр); + + Возврат СписокМетаданных; + +КонецФункции + +&НаСервере +Функция СписокВводятсяНаОснованииДокументаНаСервере(ТипДокумента) + + ЯвляетсяОснованием = Новый СписокЗначений; + + ДокументОснования = Метаданные.Документы[ТипДокумента]; + //Если ДокументОснования.ИспользоватьСтандартныеКоманды Тогда // исключаем документы которые пользователь не может создать из интерфейса + Для каждого ДокументКоллекции ИЗ Метаданные.Документы Цикл + ВводитсяНаОсновании = ДокументКоллекции.ВводитсяНаОсновании; + Для каждого Док ИЗ ВводитсяНаОсновании Цикл + Если Док = ДокументОснования Тогда + ЯвляетсяОснованием.Добавить(Новый Структура(""Имя, Синоним"", ДокументКоллекции.Имя, ДокументКоллекции.Синоним), ДокументКоллекции.Имя); + Прервать; + КонецЕсли; + КонецЦикла; + КонецЦикла; + //КонецЕсли; + + ЯвляетсяОснованием.СортироватьПоПредставлению(НаправлениеСортировки.Возр); + + Возврат ЯвляетсяОснованием; + +КонецФункции + +&НаСервере +Функция ПолучитьСсылкиНаДокументыОснованияНаСервере(СписокМетаданных) + + ШаблонЗапроса = + ""ВЫБРАТЬ ПЕРВЫЕ 1 + | #Док.Ссылка КАК Ссылка, + | #Док.Номер КАК Номер, + | #Док.Дата КАК Дата, + | #Док.Проведен КАК Проведен, + | """"#Док"""" КАК ТипДокумента + |ПОМЕСТИТЬ #Док_Проведенные + |ИЗ + | Документ.#Док КАК #Док + |ГДЕ + | #Док.Проведен + | + |УПОРЯДОЧИТЬ ПО + | #Док.Дата УБЫВ + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ ПЕРВЫЕ 1 + | #Док.Ссылка КАК Ссылка, + | #Док.Номер КАК Номер, + | #Док.Дата КАК Дата, + | #Док.Проведен КАК Проведен, + | """"#Док"""" КАК ТипДокумента + |ПОМЕСТИТЬ #Док_НеПроведенные + |ИЗ + | Документ.#Док КАК #Док + |ГДЕ + | НЕ #Док.ПометкаУдаления + | И НЕ #Док.Проведен + | + |УПОРЯДОЧИТЬ ПО + | #Док.Дата УБЫВ + |; + |ВЫБРАТЬ + | #Док_Проведенные.Ссылка КАК Ссылка, + | #Док_Проведенные.Номер КАК Номер, + | #Док_Проведенные.Дата КАК Дата, + | #Док_Проведенные.Проведен КАК Проведен, + | #Док_Проведенные.ТипДокумента КАК ТипДокумента + |ИЗ + | #Док_Проведенные КАК #Док_Проведенные + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | #Док_НеПроведенные.Ссылка КАК Ссылка, + | #Док_НеПроведенные.Номер КАК Номер, + | #Док_НеПроведенные.Дата КАК Дата, + | #Док_НеПроведенные.Проведен КАК Проведен, + | #Док_НеПроведенные.ТипДокумента КАК ТипДокумента + |ИЗ + | #Док_НеПроведенные КАК #Док_НеПроведенные + |""; + + // Ищем тестовые документы: проведенный и не проведенный + ТаблицаДокументовОснований = Новый ТаблицаЗначений; + ТаблицаДокументовОснований.Колонки.Добавить(""Ссылка""); + ТаблицаДокументовОснований.Колонки.Добавить(""Номер""); + ТаблицаДокументовОснований.Колонки.Добавить(""Дата""); + ТаблицаДокументовОснований.Колонки.Добавить(""Проведен""); + ТаблицаДокументовОснований.Колонки.Добавить(""ТипДокумента""); + + Для каждого ТипМетаданного Из СписокМетаданных Цикл + Запрос = Новый Запрос; + Запрос.Текст = ШаблонЗапроса; + Если ТипМетаданного.Значение.ДлинаНомера = 0 Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, ""#Док.Номер"", """"""""""""); + КонецЕсли; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, ""#Док"", ТипМетаданного.Значение.Имя); + + Попытка + Результат = Запрос.Выполнить().Выгрузить(); + Результат.Сортировать(""ТипДокумента Возр""); + Если Результат.Количество() > 0 Тогда + ЗагрузитьВТаблицуЗначений(Результат, ТаблицаДокументовОснований); + КонецЕсли; + Исключение + Сообщить(""Возникли проблеммы с поиском документов оснований для """""" + ТипМетаданного.Значение.Имя + """"""""); + КонецПопытки; + КонецЦикла; + + Возврат ТаблицаДокументовОснований; + +КонецФункции // ПолучитьОснованиеНаСервере() + +&НаСервере +Процедура ЗагрузитьВТаблицуЗначений(ТаблицаИсточник, ТаблицаПриемник) + + //Сформируем массив совпадающих колонок. + МассивСовпадающихКолонок = Новый Массив(); + Для каждого Колонка Из ТаблицаПриемник.Колонки Цикл + Если ТаблицаИсточник.Колонки.Найти(Колонка.Имя) <> Неопределено Тогда + МассивСовпадающихКолонок.Добавить(Колонка.Имя); + КонецЕсли; + КонецЦикла; + + Для каждого СтрокаТаблицыИсточника Из ТаблицаИсточник Цикл + СтрокаТаблицыПриемника = ТаблицаПриемник.Добавить(); + // Заполним значения в совпадающих колонках. + Для каждого ЭлементМассива Из МассивСовпадающихКолонок Цикл + СтрокаТаблицыПриемника[ЭлементМассива] = СтрокаТаблицыИсточника[ЭлементМассива]; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры // ЗагрузитьВТаблицуЗначений() + +#Область Реализация_Шагов_VanessaBehavior +&НаКлиенте +//Когда открываю форму документа ""АвтоВзаимозачет"" заполненного на основании проведенного ""ПоступлениеАвтомобилей"" номер ""АИ00000002"" от ""12.03.2017"" +//@ОткрываюФормуДокументаЗаполненногоНаОснованииПроведенногоНомерОт(Парам01,Парам02,Парам03,Парам04) +Процедура ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенногоНомерОт(ИмяДокумента, ДокументОснование,НомерДокумента,ДатаДокумента) Экспорт + ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Истина, НомерДокумента, ДатаДокумента); +КонецПроцедуры + +&НаКлиенте +//И открываю форму документа ""АвтоВзаимозачет"" заполненного на основании проведенного ""ПоступлениеАвтомобилей"" +//@ОткрываюФормуДокументаЗаполненногоНаОснованииПроведенного(Парам01,Парам02) +Процедура ЯОткрываюФормуДокументаЗаполненногоНаОснованииПроведенного(ИмяДокумента, ДокументОснование) Экспорт + ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Истина, Неопределено, Неопределено); +КонецПроцедуры + +&НаКлиенте +//Когда открываю форму документа ""АвтоВзаимозачет"" заполненного на основании не проведенного ""ПоступлениеАвтомобилей"" номер ""АВ00000080"" от ""04.09.2016"" +//@ОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенногоНомерОт(Парам01,Парам02,Парам03,Парам04) +Процедура ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенногоНомерОт(ИмяДокумента, ДокументОснование,НомерДокумента,ДатаДокумента) Экспорт + ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Ложь, НомерДокумента, ДатаДокумента); +КонецПроцедуры + +&НаКлиенте +//И открываю форму документа ""АвтоВзаимозачет"" заполненного на основании не проведенного ""ПоступлениеАвтомобилей"" +//@ОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенного(Парам01,Парам02) +Процедура ЯОткрываюФормуДокументаЗаполненногоНаОснованииНеПроведенного(ИмяДокумента, ДокументОснование) Экспорт + ПроверитьОткрытиеФормыНаОсновании(ИмяДокумента, ДокументОснование, Ложь, Неопределено, Неопределено); +КонецПроцедуры + +#КонецОбласти", +{4,2, +{9, +{1},0,"Объект", +{1,0}, +{"Pattern", +{"#",1fa267af-3d54-4f70-ac00-718486d7aafd} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,0},1,0,0,0, +{0,0}, +{0,0} +}, +{9, +{2},0,"УказыватьДокументОснование", +{1,1, +{"ru","Указывать документ основание"} +}, +{"Pattern", +{"B"} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,0},0,0,0,0, +{0,0}, +{0,0} +},0,0, +{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0 +aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u +LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv +OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo +dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0 +cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9 +Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw +Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj +LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 +LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 +cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=} +}, +{0,0}, +{0,1, +{8, +{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ГенерацияФич", +{1,1, +{"ru","Генерация фич"} +}, +{1,1, +{"ru","Генерация фич"} +}, +{0, +{0, +{"B",1},0} +}, +{0,0,0}, +{4,0, +{0},"",-1,-1,1,0,""},"ГенерацияФич",3,0,0, +{0,0},1,0,1,0,0} +}, +{0,0}, +{0,0},0,0} \ No newline at end of file diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/und/79a499cc-1782-4a2f-abe7-61ea4d49fd5a b/src/Tests/Smoke/Smoke_InputBasedOn/und/79a499cc-1782-4a2f-abe7-61ea4d49fd5a new file mode 100644 index 00000000..bc5e4f29 --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/und/79a499cc-1782-4a2f-abe7-61ea4d49fd5a @@ -0,0 +1,39 @@ +{1, +{79a499cc-1782-4a2f-abe7-61ea4d49fd5a},1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f, +{1, +{4,1fa267af-3d54-4f70-ac00-718486d7aafd,ed829681-4496-44fd-adeb-667f09d931c3, +{0, +{1, +{0,0,8aa13ab8-188a-4f59-be4f-031aa5450c90},"Smoke_InputBasedOn", +{1,"ru","Smoke_InputBasedOn"},"",0,0} +},70e297e0-e8a2-43bf-8be1-62e408f610a1,"",00000000-0000-0000-0000-000000000000},4, +{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, +{3daea016-69b7-4ed4-9453-127911372fe6,0}, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,70e297e0-e8a2-43bf-8be1-62e408f610a1}, +{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,1, +{ +{0, +{27, +{2, +{1, +{0,0,634fafd1-35dc-4662-adf2-72e30fd4022c},"ВыводитьСообщенияВЖурналРегистрации", +{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/Tests/Smoke/Smoke_InputBasedOn/und/8aa13ab8-188a-4f59-be4f-031aa5450c90.0/info b/src/Tests/Smoke/Smoke_InputBasedOn/und/8aa13ab8-188a-4f59-be4f-031aa5450c90.0/info new file mode 100644 index 00000000..c70b5f39 --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/und/8aa13ab8-188a-4f59-be4f-031aa5450c90.0/info @@ -0,0 +1 @@ +{3,1,0,"",0} \ No newline at end of file diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/und/copyinfo b/src/Tests/Smoke/Smoke_InputBasedOn/und/copyinfo new file mode 100644 index 00000000..749d8cd0 --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/und/copyinfo @@ -0,0 +1,16 @@ +{4, +{2, +{70e297e0-e8a2-43bf-8be1-62e408f610a1,70e297e0-e8a2-43bf-8be1-62e408f610a1,1, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"} +}, +{8aa13ab8-188a-4f59-be4f-031aa5450c90,8aa13ab8-188a-4f59-be4f-031aa5450c90,1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"Smoke_InputBasedOn"} +} +}, +{1, +{1fa267af-3d54-4f70-ac00-718486d7aafd,8aa13ab8-188a-4f59-be4f-031aa5450c90,0} +}, +{0}, +{0,0}, +{0} +} \ No newline at end of file diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/und/root b/src/Tests/Smoke/Smoke_InputBasedOn/und/root new file mode 100644 index 00000000..8acebfec --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/und/root @@ -0,0 +1 @@ +{2,79a499cc-1782-4a2f-abe7-61ea4d49fd5a,} \ No newline at end of file diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/und/version b/src/Tests/Smoke/Smoke_InputBasedOn/und/version new file mode 100644 index 00000000..32619b14 --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/und/version @@ -0,0 +1,5 @@ +{ +{216,0, +{80309,0} +} +} \ No newline at end of file diff --git a/src/Tests/Smoke/Smoke_InputBasedOn/und/versions b/src/Tests/Smoke/Smoke_InputBasedOn/und/versions new file mode 100644 index 00000000..3775dfbc --- /dev/null +++ b/src/Tests/Smoke/Smoke_InputBasedOn/und/versions @@ -0,0 +1 @@ +{1,9,"",b2f2dd92-bba5-46fd-8fcb-1710d295bdde,"70e297e0-e8a2-43bf-8be1-62e408f610a1",5546f794-00c2-4a6f-a061-55aeed283c22,"70e297e0-e8a2-43bf-8be1-62e408f610a1.0",03b2c1c2-2b84-4d85-9042-582ecae719fb,"79a499cc-1782-4a2f-abe7-61ea4d49fd5a",206c5acc-8d90-4d2f-907a-7fe037a83d2e,"8aa13ab8-188a-4f59-be4f-031aa5450c90.0",cd548a61-c796-4b16-8344-ebd686e7c713,"copyinfo",d77ed4e2-eedf-4f69-b11f-160c913eaeb0,"root",2931fddf-5f72-43d8-b8d0-0804a38283ac,"version",6fe0a06c-e2fb-4f6e-ac30-10184d9d2d94,"versions",a71779f6-fb07-46c2-8848-1ce0b5c5e5f0} \ No newline at end of file