From 2db28bb0e458d64a8374d0010778ac81084d1a9e Mon Sep 17 00:00:00 2001 From: Evhen Sosna Date: Mon, 26 Mar 2018 15:55:41 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=D1=82=D0=B8?= =?UTF-8?q?=20=D0=B2=20=D0=BE=D0=B1=D1=89=D0=B8=D0=B9=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=B3=D0=B8=D0=BD=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D1=83=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=20#49?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epf/bddRunner/bddRunner/Ext/ObjectModule.bsl | 286 +----------------- .../Ext/Form/Module.bsl" | 15 +- .../Ext/ObjectModule.bsl" | 147 ++++++++- .../Ext/Form/Module.bsl" | 12 +- 4 files changed, 148 insertions(+), 312 deletions(-) diff --git a/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl b/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl index ffbbcae70..cf5b26edb 100644 --- a/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl +++ b/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl @@ -1633,240 +1633,10 @@ #КонецЕсли КонецПроцедуры -Функция СравнитьТаблицы(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий,ДопСообщениеОшибки = "",ДопПараметры) - - Если ТаблицаОжиданий.Количество() <> ТаблицаРезультатов.Количество() Тогда - ДопСообщениеОшибки = "ТаблицаОжиданий.КоличествоСтрок()="+ТаблицаОжиданий.Количество() + ", ТаблицаРезультатов.Количество()="+ТаблицаРезультатов.Количество(); - Возврат РезультатыСравненияТаблиц.РазноеКоличествоСтрок; - КонецЕсли; - - Если ТаблицаОжиданий.Количество() = 0 Тогда - Возврат РезультатыСравненияТаблиц.ТаблицыСовпадают; //Пустые таблицы всегда одинаковы - КонецЕсли; - - //Проверим структуру колонок - - //TODO При этом сравнении в структуре ТаблицаРезультатов может оказаться больше колонок, чем в ТаблицаОжиданий, - // так что для абсолютного точного сравнения нужно добавить проверку совпадения количества колонок. - ОжидаемыеКолонки = ТаблицаОжиданий.Колонки; - КолонкиРезультата = ТаблицаРезультатов.Колонки; - Для Каждого Колонка Из ОжидаемыеКолонки Цикл - Если КолонкиРезультата.Найти(Колонка.Имя) = Неопределено Тогда - ДопСообщениеОшибки = "КолонкиЭталона.Количество()=" + ОжидаемыеКолонки.Количество() + ", КолонкиРезультата.Количество()=" + КолонкиРезультата.Количество(); - Возврат РезультатыСравненияТаблиц.РазличаютсяКолонки; - КонецЕсли; - КонецЦикла; - - Возврат СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий,ДопПараметры); - -КонецФункции - -Функция ПодготовитьШаблонКИспользованиюВРегулярке(Шаблон) - - // Экранируем все, кроме звездочки. Ее будем трактовать по-своему. - СпецСимволы = Новый Массив; - СпецСимволы.Добавить("\"); - СпецСимволы.Добавить("^"); - СпецСимволы.Добавить("$"); - СпецСимволы.Добавить("("); - СпецСимволы.Добавить(")"); - СпецСимволы.Добавить("<"); - СпецСимволы.Добавить("["); - СпецСимволы.Добавить("]"); - СпецСимволы.Добавить("{"); - СпецСимволы.Добавить("}"); - СпецСимволы.Добавить("|"); - СпецСимволы.Добавить(">"); - СпецСимволы.Добавить("."); - СпецСимволы.Добавить("+"); - СпецСимволы.Добавить("?"); - - Для Каждого СпецСимвол Из СпецСимволы Цикл - Шаблон = СтрЗаменить(Шаблон, СпецСимвол, "\" + СпецСимвол); - КонецЦикла; - - // Трактуем * по-нашему. - Шаблон = СтрЗаменить(Шаблон, "*", ".+"); - - Возврат Шаблон; - -КонецФункции - -//взято из https://infostart.ru/public/464971/ -Функция ПроверитьСтрокуRexExpLinux(Строка, Фасет) - Чтение = Новый ЧтениеXML; - Чтение.УстановитьСтроку( - " - | - | - |" + Фасет + " - | - | - | - | - | - |"); - - Модель = ФабрикаXDTO.ПрочитатьXML(Чтение); - МояФабрикаXDTO = Новый ФабрикаXDTO(Модель); - Пакет = МояФабрикаXDTO.Пакеты.Получить("sample-my-package"); - Тест = МояФабрикаXDTO.Создать(Пакет.Получить("TestObj")); - - Попытка - Тест.TestItem = Строка; - Возврат Истина - Исключение - Возврат Ложь - КонецПопытки; -КонецФункции - -//позволяет сделать поиск в строке "ПроверяемаяСтрока" подстроки "Шаблон" -//при этом подстрока "Шаблон" может содержать символы * -//например СтрокаСоответствуетШаблону("Привет","*вет") -Функция СтрокаСоответствуетШаблону(ПроверяемаяСтрока, Знач Шаблон) Экспорт - Шаблон = ПодготовитьШаблонКИспользованиюВРегулярке(Шаблон); - - Если ЭтоLinux Тогда - Возврат ПроверитьСтрокуRexExpLinux(ПроверяемаяСтрока,Шаблон); - Иначе - Если Регулярка = Неопределено Тогда - Регулярка = Новый COMОбъект("VBScript.RegExp"); - КонецЕсли; - - Регулярка.Global = Истина; - //для VBScript.RegExp явно указываем что есть начало и конец строки - Шаблон = "^" + Шаблон + "$"; - Регулярка.Pattern = Шаблон; - Возврат Регулярка.Test(ПроверяемаяСтрока); - КонецЕсли; -КонецФункции - - -// портирован из Functest -Функция СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, Различия,ДопПараметры) - СравнениеПоШаблону = Ложь; - Если ДопПараметры <> Неопределено Тогда - Если ДопПараметры.Свойство("СравнениеПоШаблону") Тогда - СравнениеПоШаблону = ДопПараметры.СравнениеПоШаблону; - КонецЕсли; - КонецЕсли; - - - Различия = Новый ТаблицаЗначений; - Различия.Колонки.Очистить(); - Различия.Колонки.Добавить("Строка",Новый ОписаниеТипов("Число")); - Различия.Колонки.Добавить("Колонка",Новый ОписаниеТипов("Строка")); - Различия.Колонки.Добавить("Ожидание"); - Различия.Колонки.Добавить("Результат"); - - РезультатСравнения = РезультатыСравненияТаблиц.ТаблицыСовпадают; - - Колонки = ТаблицаОжиданий.Колонки; - ГраницаСтрок = ТаблицаОжиданий.Количество() - 1; - Для Индекс = 0 По ГраницаСтрок Цикл - - ОжидаемаяСтрока = ТаблицаОжиданий[Индекс]; - СтрокаРезультата = ТаблицаРезультатов[Индекс]; - - Для Каждого Колонка Из Колонки Цикл - ИмяКолонки = Колонка.Имя; - - ОжидаемоеЗначение = ОжидаемаяСтрока[ИмяКолонки]; - ЗначениеРезультата = СтрокаРезультата[ИмяКолонки]; - - Если ОжидаемоеЗначение = "*" Тогда - Продолжить; - КонецЕсли; - - ОжидаемоеЗначение = СтрЗаменить(ОжидаемоеЗначение,Символы.НПП," "); - ЗначениеРезультата = СтрЗаменить(ЗначениеРезультата,Символы.НПП," "); - - Если НЕ СравнениеПоШаблону Тогда - Если ОжидаемоеЗначение = ЗначениеРезультата - Или (Не ЗначениеЗаполнено(ОжидаемоеЗначение) И Не ЗначениеЗаполнено(ЗначениеРезультата)) Тогда //Пустые значения разных типов 1С-м не считаются равными :( - Продолжить; - КонецЕсли; - Иначе - Если СтрокаСоответствуетШаблону(ЗначениеРезультата,ОжидаемоеЗначение) Тогда - Продолжить; - КонецЕсли; - КонецЕсли; - - - - - Различие = Различия.Добавить(); - Различие.Строка = Индекс + 1; - Различие.Колонка = ИмяКолонки; - Различие.Ожидание = ОжидаемоеЗначение; - Различие.Результат = ЗначениеРезультата; - РезультатСравнения = РезультатыСравненияТаблиц.НеСовпадаютЗначенияВЯчейкеТаблицы; - - КонецЦикла; - - КонецЦикла; - - Возврат РезультатСравнения; - -КонецФункции - - -Процедура ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки = "",ДопПараметры) Экспорт - - Если ТипЗнч(Таб1) <> Тип("ТаблицаЗначений") Тогда - ВызватьИсключение "ПроверитьРавенствоТаблиц: Первый параметр-таблица таблицей не является"; - КонецЕсли; - Если ТипЗнч(Таб1) <> Тип("ТаблицаЗначений") Тогда - ВызватьИсключение "ПроверитьРавенствоТаблиц: Второй параметр-таблица таблицей не является"; - КонецЕсли; - - Различия = Новый ТаблицаЗначений; - РезультатСравнения = СравнитьТаблицы(Таб1, Таб2, Различия,ДопСообщениеОшибки,ДопПараметры); - - Если РезультатыСравненияТаблиц.ТаблицыСовпадают <> РезультатСравнения Тогда - - ИменаРезультатов = Новый Соответствие; - Для Каждого КлючЗначение Из РезультатыСравненияТаблиц Цикл - ИменаРезультатов.Вставить(КлючЗначение.Значение, КлючЗначение.Ключ); - КонецЦикла; - СтрокаОшибок = "Различия в таблицах:" + Символы.ПС; - СтрокаОшибок = СтрокаОшибок + "Ожидали статус <" + ИменаРезультатов[РезультатыСравненияТаблиц.ТаблицыСовпадают] + ">, а получили <" + ИменаРезультатов[РезультатСравнения] + ">" + Символы.ПС; - Для Каждого Строка Из Различия Цикл - СтрокаОшибок = СтрокаОшибок + "Значение [" + Строка.Колонка + ":" + Строка.Строка + "]. Ожидали <" + Строка.Ожидание + ">, а получили <" + Строка.Результат + ">" + Символы.ПС; - КонецЦикла; - - ВызватьОшибкуПроверки("Таблицы должны совпадать, а они различны" + Символы.ПС + СтрокаОшибок + Символы.ПС + ДопСообщениеОшибки); - - КонецЕсли; - -КонецПроцедуры - Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "",ДопПараметры = Неопределено) Экспорт - Если ТипЗнч(ТабДок1) <> Тип("ТабличныйДокумент") Тогда - ВызватьИсключение "ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям: Первый параметр-таблица не является табличным документом"; - КонецЕсли; - Если ТипЗнч(ТабДок2) <> Тип("ТабличныйДокумент") Тогда - ВызватьИсключение "ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям: Второй параметр-таблица не является табличным документом"; - КонецЕсли; - - УчитыватьТолькоВидимыеКолонки = Ложь; - Если ТипЗнч(УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки) = Тип("Булево") Тогда - УчитыватьТолькоВидимыеКолонки = УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки; - ИначеЕсли ТипЗнч(УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки; - КонецЕсли; - УчитыватьТолькоВидимыеСтроки = Ложь; - Если ТипЗнч(УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки) = Тип("Булево") Тогда - УчитыватьТолькоВидимыеСтроки = УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки; - ИначеЕсли ТипЗнч(УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки) = Тип("Строка") Тогда - ДопСообщениеОшибки = УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки; - КонецЕсли; - - Таб1 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабДок1, УчитыватьТолькоВидимыеКолонки, УчитыватьТолькоВидимыеСтроки); - Таб2 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабДок2, УчитыватьТолькоВидимыеКолонки, УчитыватьТолькоВидимыеСтроки); - - ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки,ДопПараметры); + УтвержденияПроверкаТаблиц = Плагин("УтвержденияПроверкаТаблиц"); + УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки, ДопПараметры); КонецПроцедуры @@ -1887,58 +1657,6 @@ КонецПроцедуры -// портирован из Functest -Функция ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент, УчитыватьТолькоВидимыеКолонки = Ложь, УчитыватьТолькоВидимыеСтроки = Ложь) - - ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); - Если ТипТабличногоДокумента <> Тип("ТабличныйДокумент") И ТипТабличногоДокумента <> Тип("ПолеТабличногоДокумента") Тогда - ВызватьИсключение "ПолучитьТаблицуЗначенийИзТабличногоДокумента: Требуется тип ТабличныйДокумент или ПолеТабличногоДокумента"; - КонецЕсли; - - НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; - НомерПоследнейСтроки = ТабличныйДокумент.ВысотаТаблицы; - - НоваяТаблицаЗначений = Новый ТаблицаЗначений; - Колонки = НоваяТаблицаЗначений.Колонки; - ТипСтрока = Новый ОписаниеТипов("Строка"); - - // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимоcть колонки определяется по формату первой строки - УчитываемыеКолонки = Новый Массив; - Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл - ОбластьКолонки = ТабличныйДокумент.Область(0, НомерКолонки, 1, НомерКолонки); - - УчитыватьКолонку = Не УчитыватьТолькоВидимыеКолонки Или ОбластьКолонки.Видимость; - Если УчитыватьКолонку Тогда - УчитываемыеКолонки.Добавить(НомерКолонки); - ШиринаКолонки = ОбластьКолонки.ШиринаКолонки; - Если ШиринаКолонки <= 1 Тогда - ШиринаКолонки = 1; - КонецЕсли; - ИмяКолонки = "К" + Формат(Колонки.Количество() + 1, "ЧН=; ЧГ=0"); - Колонки.Добавить(ИмяКолонки, ТипСтрока, ИмяКолонки, ШиринаКолонки); - КонецЕсли; - КонецЦикла; - - ГраницаКолонок = УчитываемыеКолонки.ВГраница(); - Для НомерСтроки = 1 По НомерПоследнейСтроки Цикл - - Если УчитыватьТолькоВидимыеСтроки И Не ТабличныйДокумент.Область(НомерСтроки,, НомерСтроки).Видимость Тогда - Продолжить; - КонецЕсли; - - НоваяСтрока = НоваяТаблицаЗначений.Добавить(); - - Для Индекс = 0 По ГраницаКолонок Цикл - НомерКолонки = УчитываемыеКолонки[Индекс]; - Область = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки); - НоваяСтрока[Индекс] = Область.Текст; - КонецЦикла; - КонецЦикла; - - Возврат НоваяТаблицаЗначений; - -КонецФункции - //} МЕТОДЫ ДЛЯ ПРОВЕРКИ ЗНАЧЕНИЙ (assertions). 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 8be1076ab..3d0ee6a22 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" @@ -5859,19 +5859,18 @@ &НаКлиенте Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "",ДопПараметры = Неопределено) Экспорт - ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки,ДопПараметры); -КонецПроцедуры - -&НаСервере -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "",ДопПараметры = Неопределено) Экспорт - Объект().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки,ДопПараметры); + УтвержденияПроверкаТаблиц = Плагин("УтвержденияПроверкаТаблиц"); + УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям( + ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, + ДопСообщениеОшибки,ДопПараметры); КонецПроцедуры // количествоСозданныхОбъектов учитывает только созданные элементы справочников, документы и пользователей ИБ. Записи регистров сведений не считаются. &НаКлиенте Функция СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения = Неопределено, ИмяКолонкиЗамещения = Неопределено) Экспорт - Плагин = Плагин("СериализаторMXL"); - Данные = Плагин.СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения); + Перем Серелизатор; + Серелизатор = Плагин("СериализаторMXL"); + Данные = Серелизатор.СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения); Возврат Данные; КонецФункции diff --git "a/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" "b/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" index a7fba43b9..2c2e42afc 100644 --- "a/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" +++ "b/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/ObjectModule.bsl" @@ -1,4 +1,6 @@ - +Перем Регулярка; +Перем ЭтоLinux; + // { Plugin interface Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт Результат = Новый Структура; @@ -13,7 +15,7 @@ КонецПроцедуры // } Plugin interface -Процедура ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки = "") Экспорт +Процедура ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки = "", ДопПараметры = Неопределено) Экспорт Если ТипЗнч(Таб1) <> Тип("ТаблицаЗначений") Тогда ВызватьИсключение "ПроверитьРавенствоТаблиц: Первый параметр-таблица таблицей не является"; @@ -23,7 +25,7 @@ КонецЕсли; Различия = Новый ТаблицаЗначений; - РезультатСравнения = СравнитьТаблицы(Таб1, Таб2, Различия); + РезультатСравнения = СравнитьТаблицы(Таб1, Таб2, Различия, ДопСообщениеОшибки, ДопПараметры); Если РезультатыСравненияТаблиц.ТаблицыСовпадают <> РезультатСравнения Тогда @@ -43,7 +45,9 @@ КонецПроцедуры -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт +Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, + УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, + Знач ДопСообщениеОшибки = "", Знач ДопПараметры = Неопределено) Экспорт Если ТипЗнч(ТабДок1) <> Тип("ТабличныйДокумент") Тогда ВызватьИсключение "ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям: Первый параметр-таблица не является табличным документов"; @@ -68,7 +72,7 @@ Таб1 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабДок1, УчитыватьТолькоВидимыеКолонки, УчитыватьТолькоВидимыеСтроки); Таб2 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабДок2, УчитыватьТолькоВидимыеКолонки, УчитыватьТолькоВидимыеСтроки); - ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки); + ПроверитьРавенствоТаблиц(Таб1, Таб2, ДопСообщениеОшибки, ДопПараметры); КонецПроцедуры @@ -125,13 +129,16 @@ КонецФункции // портирован из Functest -Функция СравнитьТаблицы(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий) +Функция СравнитьТаблицы(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий, ДопСообщениеОшибки = "", ДопПараметры = Неопределено) - Если ТаблицаОжиданий.Количество() <> ТаблицаРезультатов.Количество() Тогда - Возврат РезультатыСравненияТаблиц.РазноеКоличествоСтрок; + Если ДопПараметры = Неопределено ИЛИ ТипЗнч(ДопПараметры) <> Тип("Структура") Тогда + ДопПараметры = Новый Структура; КонецЕсли; + //Если ТаблицаОжиданий.Количество() <> ТаблицаРезультатов.Количество() Тогда + // Возврат РезультатыСравненияТаблиц.РазноеКоличествоСтрок; + //КонецЕсли; - Если ТаблицаОжиданий.Количество() = 0 Тогда + Если ТаблицаОжиданий.Количество() = 0 И ТаблицаРезультатов.Количество() = 0 Тогда Возврат РезультатыСравненияТаблиц.ТаблицыСовпадают; //Пустые таблицы всегда одинаковы КонецЕсли; @@ -143,17 +150,108 @@ КолонкиРезультата = ТаблицаРезультатов.Колонки; Для Каждого Колонка Из ОжидаемыеКолонки Цикл Если КолонкиРезультата.Найти(Колонка.Имя) = Неопределено Тогда + ДопСообщениеОшибки = "КолонкиЭталона.Количество()=" + ОжидаемыеКолонки.Количество() + ", КолонкиРезультата.Количество()=" + КолонкиРезультата.Количество(); Возврат РезультатыСравненияТаблиц.РазличаютсяКолонки; КонецЕсли; КонецЦикла; - Возврат СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий); + Возврат СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, ТаблицаРазличий, ДопПараметры); КонецФункции + +Функция ПодготовитьШаблонКИспользованиюВРегулярке(Шаблон) + + // Экранируем все, кроме звездочки. Ее будем трактовать по-своему. + СпецСимволы = Новый Массив; + СпецСимволы.Добавить("\"); + СпецСимволы.Добавить("^"); + СпецСимволы.Добавить("$"); + СпецСимволы.Добавить("("); + СпецСимволы.Добавить(")"); + СпецСимволы.Добавить("<"); + СпецСимволы.Добавить("["); + СпецСимволы.Добавить("]"); + СпецСимволы.Добавить("{"); + СпецСимволы.Добавить("}"); + СпецСимволы.Добавить("|"); + СпецСимволы.Добавить(">"); + СпецСимволы.Добавить("."); + СпецСимволы.Добавить("+"); + СпецСимволы.Добавить("?"); + + Для Каждого СпецСимвол Из СпецСимволы Цикл + Шаблон = СтрЗаменить(Шаблон, СпецСимвол, "\" + СпецСимвол); + КонецЦикла; + + // Трактуем * по-нашему. + Шаблон = СтрЗаменить(Шаблон, "*", ".+"); + + Возврат Шаблон; + +КонецФункции + +//взято из https://infostart.ru/public/464971/ +Функция ПроверитьСтрокуRexExpLinux(Строка, Фасет) + Чтение = Новый ЧтениеXML; + Чтение.УстановитьСтроку( + " + | + | + |" + Фасет + " + | + | + | + | + | + |"); + + Модель = ФабрикаXDTO.ПрочитатьXML(Чтение); + МояФабрикаXDTO = Новый ФабрикаXDTO(Модель); + Пакет = МояФабрикаXDTO.Пакеты.Получить("sample-my-package"); + Тест = МояФабрикаXDTO.Создать(Пакет.Получить("TestObj")); + + Попытка + Тест.TestItem = Строка; + Возврат Истина + Исключение + Возврат Ложь + КонецПопытки; +КонецФункции + +//позволяет сделать поиск в строке "ПроверяемаяСтрока" подстроки "Шаблон" +//при этом подстрока "Шаблон" может содержать символы * +//например СтрокаСоответствуетШаблону("Привет","*вет") +Функция СтрокаСоответствуетШаблону(ПроверяемаяСтрока, Знач Шаблон) Экспорт + Шаблон = ПодготовитьШаблонКИспользованиюВРегулярке(Шаблон); + ЭтоLinux = Истина; + Если ЭтоLinux Тогда + Возврат ПроверитьСтрокуRexExpLinux(ПроверяемаяСтрока,Шаблон); + Иначе + Если Регулярка = Неопределено Тогда + Регулярка = Новый COMОбъект("VBScript.RegExp"); + КонецЕсли; + + Регулярка.Global = Истина; + //для VBScript.RegExp явно указываем что есть начало и конец строки + Шаблон = "^" + Шаблон + "$"; + Регулярка.Pattern = Шаблон; + Возврат Регулярка.Test(ПроверяемаяСтрока); + КонецЕсли; +КонецФункции + // портирован из Functest -Функция СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, Различия) +Функция СравнитьЗначенияТаблиц(ТаблицаОжиданий, ТаблицаРезультатов, Различия, ДопПараметры) + Перем СравнениеПоШаблону; + СравнениеПоШаблону = Ложь; + Если ДопПараметры <> Неопределено Тогда + Если ДопПараметры.Свойство("СравнениеПоШаблону") Тогда + СравнениеПоШаблону = ДопПараметры.СравнениеПоШаблону; + КонецЕсли; + КонецЕсли; + + Различия = Новый ТаблицаЗначений; Различия.Колонки.Очистить(); Различия.Колонки.Добавить("Строка",Новый ОписаниеТипов("Число")); @@ -164,21 +262,37 @@ РезультатСравнения = РезультатыСравненияТаблиц.ТаблицыСовпадают; Колонки = ТаблицаОжиданий.Колонки; - ГраницаСтрок = ТаблицаОжиданий.Количество() - 1; + ГраницаСтрокОжиданий = ТаблицаОжиданий.Количество() - 1; + ГраницаСтрокРезультата = ТаблицаРезультатов.Количество() - 1; + ГраницаСтрок = Макс(ГраницаСтрокОжиданий, ГраницаСтрокРезультата); Для Индекс = 0 По ГраницаСтрок Цикл - ОжидаемаяСтрока = ТаблицаОжиданий[Индекс]; - СтрокаРезультата = ТаблицаРезультатов[Индекс]; + ОжидаемаяСтрока = ?(Индекс <= ГраницаСтрокОжиданий, ТаблицаОжиданий[Индекс], ТаблицаОжиданий.Добавить()); + СтрокаРезультата = ?(Индекс <= ГраницаСтрокРезультата, ТаблицаРезультатов[Индекс], ТаблицаРезультатов.Добавить()); Для Каждого Колонка Из Колонки Цикл ИмяКолонки = Колонка.Имя; ОжидаемоеЗначение = ОжидаемаяСтрока[ИмяКолонки]; ЗначениеРезультата = СтрокаРезультата[ИмяКолонки]; - Если ОжидаемоеЗначение = ЗначениеРезультата - Или (Не ЗначениеЗаполнено(ОжидаемоеЗначение) И Не ЗначениеЗаполнено(ЗначениеРезультата)) Тогда //Пустые значения разных типов 1С-м не считаются равными :( + + Если ОжидаемоеЗначение = "*" Тогда Продолжить; КонецЕсли; + + ОжидаемоеЗначение = СтрЗаменить(ОжидаемоеЗначение,Символы.НПП," "); + ЗначениеРезультата = СтрЗаменить(ЗначениеРезультата,Символы.НПП," "); + + Если НЕ СравнениеПоШаблону Тогда + Если ОжидаемоеЗначение = ЗначениеРезультата + Или (Не ЗначениеЗаполнено(ОжидаемоеЗначение) И Не ЗначениеЗаполнено(ЗначениеРезультата)) Тогда //Пустые значения разных типов 1С-м не считаются равными :( + Продолжить; + КонецЕсли; + Иначе + Если СтрокаСоответствуетШаблону(ЗначениеРезультата,ОжидаемоеЗначение) Тогда + Продолжить; + КонецЕсли; + КонецЕсли; Различие = Различия.Добавить(); Различие.Строка = Индекс + 1; @@ -217,3 +331,4 @@ РезультатыСравненияТаблиц.Вставить("РазноеКоличествоСтрок", 2); РезультатыСравненияТаблиц.Вставить("РазличаютсяКолонки", 3); РезультатыСравненияТаблиц = Новый ФиксированнаяСтруктура(РезультатыСравненияТаблиц); +ЭтоLinux = Ложь; \ No newline at end of file diff --git "a/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 5b59ae8aa..72a3f21a3 100644 --- "a/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -28,11 +28,15 @@ &НаКлиенте -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); +Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, + УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, + Знач ДопСообщениеОшибки = "", Знач ДопПараметры = Неопределено) Экспорт + ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки, ДопПараметры); КонецПроцедуры &НаСервере -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "") Экспорт - ЭтотОбъектНаСервере().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки); +Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениямСервер(ТабДок1, ТабДок2, + УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, + Знач ДопСообщениеОшибки = "", Знач ДопПараметры = Неопределено) Экспорт + ЭтотОбъектНаСервере().ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки, ДопПараметры); КонецПроцедуры From e794535067fc001c23754d22467b99cc5acd3921 Mon Sep 17 00:00:00 2001 From: Evhen Sosna Date: Mon, 26 Mar 2018 17:12:40 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=80=D1=84=D0=BE=D0=B3=D1=80=D0=B0=D1=84=D0=B8?= =?UTF-8?q?=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Form/Module.bsl" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 3d0ee6a22..a80ead489 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" @@ -5868,9 +5868,9 @@ // количествоСозданныхОбъектов учитывает только созданные элементы справочников, документы и пользователей ИБ. Записи регистров сведений не считаются. &НаКлиенте Функция СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения = Неопределено, ИмяКолонкиЗамещения = Неопределено) Экспорт - Перем Серелизатор; - Серелизатор = Плагин("СериализаторMXL"); - Данные = Серелизатор.СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения); + Перем Сериализатор; + Сериализатор = Плагин("СериализаторMXL"); + Данные = Сериализатор.СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения); Возврат Данные; КонецФункции From a3c6d88346ff31cdb25e5e41a328f5ed3ffc73af Mon Sep 17 00:00:00 2001 From: Evhen Sosna Date: Mon, 26 Mar 2018 21:02:35 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=9D=D0=B5=20=D0=B2=D0=BE=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=D1=85=20=D1=81=D0=BB=D1=83=D1=87=D0=B0=D1=8F=D1=85=20?= =?UTF-8?q?=D1=83=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF=D0=BD=D0=BE=20=D1=81=D0=B2?= =?UTF-8?q?=D0=BE=D0=B9=D1=81=D1=82=D0=B2=D0=BE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Form/Module.bsl" | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 a80ead489..7b4d9fb06 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" @@ -2570,9 +2570,15 @@ //если поле невидимое - тогда получим представление данных Возврат ПолеРеквизит.ПолучитьПредставлениеДанных(); КонецПопытки; - КонецЕсли; + КонецЕсли; + Попытка + ПредставлениеДанных = ПолеРеквизит.ПолучитьПредставлениеДанных(); + Исключение + ПредставлениеДанных = Неопределено; + СделатьСообщение(ОписаниеОшибки()); + КонецПопытки; - Возврат ПолеРеквизит.ПолучитьПредставлениеДанных(); + Возврат ПредставлениеДанных; ИначеЕсли Тип = Тип("ТестируемаяДекорацияФормы") Тогда Стр = ПолеРеквизит.ПолучитьПредставлениеДанных(); Если Не ЗначениеЗаполнено(Стр) Тогда From 7d15ddb3e71f1392ed624f77d69c1c342133d2d3 Mon Sep 17 00:00:00 2001 From: Evhen Sosna Date: Fri, 30 Mar 2018 23:21:53 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=D0=B5=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D1=82=D0=B5=D1=81=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\275\320\260\321\200\320\270\321\217.xml" | 30 ++++++++ ...0\244\320\276\321\200\320\274\320\260.xml" | 22 ++++++ .../Ext/Form.xml" | 12 +++ .../Ext/Form/Module.bsl" | 75 +++++++++++++++++++ 4 files changed, 139 insertions(+) create mode 100644 "features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217.xml" create mode 100644 "features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" create mode 100644 "features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" create mode 100644 "features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" diff --git "a/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217.xml" "b/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217.xml" new file mode 100644 index 000000000..5d4147c6b --- /dev/null +++ "b/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217.xml" @@ -0,0 +1,30 @@ + + + + + + c3831ec8-d8d5-4f93-8a22-f9bfae07327f + 29d2f52d-0ed1-4254-a6bc-bbc6bc333ab1 + + + 503de865-4645-4496-b5dd-2e4a76236095 + 4d213f80-34d7-4f82-80f0-c17b4f80d887 + + + + ДляПроверкиЗагрузкиСтруктурыСценария + + + ru + ДляПроверкиЗагрузкиСтруктурыСценария + + + + ExternalDataProcessor.ДляПроверкиЗагрузкиСтруктурыСценария.Form.Форма + + + +
Форма
+
+
+
\ No newline at end of file diff --git "a/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" new file mode 100644 index 000000000..cd892735e --- /dev/null +++ "b/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260.xml" @@ -0,0 +1,22 @@ + + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PersonalComputer + MobileDevice + + + +
+
\ No newline at end of file diff --git "a/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" new file mode 100644 index 000000000..4ddd9b459 --- /dev/null +++ "b/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" @@ -0,0 +1,12 @@ + +
+ + + + + cfg:ExternalDataProcessorObject.ДляПроверкиЗагрузкиСтруктурыСценария + + true + + + \ No newline at end of file diff --git "a/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" new file mode 100644 index 000000000..9a8e0aa26 --- /dev/null +++ "b/features/Support/Templates/step_definitions/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/\320\224\320\273\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213\320\241\321\206\320\265\320\275\320\260\321\200\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -0,0 +1,75 @@ + +/////////////////////////////////////////////////// +//Служебные функции и процедуры +/////////////////////////////////////////////////// + +&НаКлиенте +// контекст фреймворка Vanessa-Behavior +Перем Ванесса; + +&НаКлиенте +// Структура, в которой хранится состояние сценария между выполнением шагов. Очищается перед выполнением каждого сценария. +Перем Контекст Экспорт; + +&НаКлиенте +// Структура, в которой можно хранить служебные данные между запусками сценариев. Существует, пока открыта форма Vanessa-Behavior. +Перем КонтекстСохраняемый Экспорт; + +&НаКлиенте +// Функция экспортирует список шагов, которые реализованы в данной внешней обработке. +Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт + Ванесса = КонтекстФреймворкаBDD; + + ВсеТесты = Новый Массив; + + //описание параметров + //Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,ОписаниеШага,ТипШага,Транзакция,Параметр); + + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"СлужебноеУсловиеВКотороеПередаётсяТаблицаВыполненоТогда(ТабПарам)","СлужебноеУсловиеВКотороеПередаётсяТаблицаВыполненоТогда","Если служебное условие в которое передаётся таблица выполнено Тогда","","","Условие"); + + Возврат ВсеТесты; +КонецФункции + +&НаСервере +// Служебная функция. +Функция ПолучитьМакетСервер(ИмяМакета) + ОбъектСервер = РеквизитФормыВЗначение("Объект"); + Возврат ОбъектСервер.ПолучитьМакет(ИмяМакета); +КонецФункции + +&НаКлиенте +// Служебная функция для подключения библиотеки создания fixtures. +Функция ПолучитьМакетОбработки(ИмяМакета) Экспорт + Возврат ПолучитьМакетСервер(ИмяМакета); +КонецФункции + + + +/////////////////////////////////////////////////// +//Работа со сценариями +/////////////////////////////////////////////////// + +&НаКлиенте +// Процедура выполняется перед началом каждого сценария +Процедура ПередНачаломСценария() Экспорт + +КонецПроцедуры + +&НаКлиенте +// Процедура выполняется перед окончанием каждого сценария +Процедура ПередОкончаниемСценария() Экспорт + +КонецПроцедуры + + + +/////////////////////////////////////////////////// +//Реализация шагов +/////////////////////////////////////////////////// + +&НаКлиенте +//Если служебное условие в которое передаётся таблица выполнено Тогда +//@СлужебноеУсловиеВКотороеПередаётсяТаблицаВыполненоТогда(ТабПарам) +Процедура СлужебноеУсловиеВКотороеПередаётсяТаблицаВыполненоТогда(ТабПарам) Экспорт + Ванесса.УстановитьРезультатУсловия(Истина); +КонецПроцедуры