mirror of
https://github.com/BlizD/Tasks.git
synced 2025-01-12 03:19:41 +02:00
Добавление тестов от @pallid
This commit is contained in:
parent
06db955f91
commit
738755bf8d
Binary file not shown.
@ -0,0 +1,313 @@
|
||||
//начало текста модуля
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//Служебные функции и процедуры
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
&НаКлиенте
|
||||
// контекст фреймворка Vanessa-Behavior
|
||||
Перем Ванесса;
|
||||
|
||||
&НаКлиенте
|
||||
// Структура, в которой хранится состояние сценария между выполнением шагов. Очищается перед выполнением каждого сценария.
|
||||
Перем Контекст Экспорт;
|
||||
|
||||
&НаКлиенте
|
||||
// Структура, в которой можно хранить служебные данные между запусками сценариев. Существует, пока открыта форма Vanessa-Behavior.
|
||||
Перем КонтекстСохраняемый Экспорт;
|
||||
|
||||
&НаКлиенте
|
||||
// Функция экспортирует список шагов, которые реализованы в данной внешней обработке.
|
||||
Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт
|
||||
Ванесса = КонтекстФреймворкаBDD;
|
||||
|
||||
ВсеТесты = Новый Массив;
|
||||
|
||||
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯСталНаблюдателемЗаЗадачейСНомером(Парам01,Парам02)","ЯСталНаблюдателемЗаЗадачейСНомером","Тогда я стал наблюдателем за задачей ""ЭтоТестоваяЗадача"" с номером '9999999'");
|
||||
|
||||
Возврат ВсеТесты;
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
// Служебная функция.
|
||||
Функция ПолучитьМакетСервер(ИмяМакета)
|
||||
ОбъектСервер = РеквизитФормыВЗначение("Объект");
|
||||
Возврат ОбъектСервер.ПолучитьМакет(ИмяМакета);
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
// Служебная функция для подключения библиотеки создания fixtures.
|
||||
Функция ПолучитьМакетОбработки(ИмяМакета) Экспорт
|
||||
Возврат ПолучитьМакетСервер(ИмяМакета);
|
||||
КонецФункции
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//Работа со сценариями
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
&НаКлиенте
|
||||
// Процедура выполняется перед началом каждого сценария
|
||||
Процедура ПередНачаломСценария() Экспорт
|
||||
СостояниеVanessaBehavior = Ванесса.ПолучитьСостояниеVanessaBehavior();
|
||||
ИмяСценария = СостояниеVanessaBehavior.ТекущийСценарий.Имя;
|
||||
ПредставлениеСправочника = "узЗадачи";
|
||||
|
||||
ЭлементСправочника = утвПолучитьЭлементГруппуСправочника(ПредставлениеСправочника, , "ЭтоТестоваяЗадача");
|
||||
утвУдалитьЭлементСправочника(ПредставлениеСправочника, ЭлементСправочника);
|
||||
|
||||
СоздатьЭлементСправочникаСНаименованиеНаСервере(ПредставлениеСправочника, "ЭтоТестоваяЗадача");
|
||||
Задача = утвПолучитьЭлементГруппуСправочника(ПредставлениеСправочника, , "ЭтоТестоваяЗадача",,ИСТИНА);
|
||||
|
||||
УстановитьЗначениеРеквизитаСправочника(Задача, "Код", 9999999);
|
||||
|
||||
КонтекстСохраняемый.Вставить("Задача", Задача);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
// Процедура выполняется перед окончанием каждого сценария
|
||||
Процедура ПередОкончаниемСценария() Экспорт
|
||||
КонецПроцедуры
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//Реализация шагов
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
&НаСервере
|
||||
Процедура СоздатьЭлементСправочникаСНаименованиеНаСервере(ИмяСправочника, Наименование)
|
||||
ЭлементСправочника = Справочники[ИмяСправочника].СоздатьЭлемент();
|
||||
ЭлементСправочника.Наименование = Наименование;
|
||||
ЭлементСправочника.Записать();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция утвПолучитьЭлементГруппуСправочника(ИмяСправочника, Код = "", Наименование = "", ИскатьГруппу = Ложь, ДолженБыть = ЛОЖЬ)
|
||||
ПредставлениеПоиска = "";
|
||||
|
||||
Если Истина
|
||||
И ПустаяСтрока(Код)
|
||||
И ПустаяСтрока(Наименование)
|
||||
Тогда
|
||||
|
||||
ВызватьИсключение "Не заполнено ни одно свойство поиска";
|
||||
|
||||
ИначеЕсли Истина
|
||||
И ЗначениеЗаполнено(Код)
|
||||
И ЗначениеЗаполнено(Наименование)
|
||||
Тогда
|
||||
|
||||
ПредставлениеПоиска = "коду """ + Код + """ и наименованию """ + Наименование + """";
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(Код) Тогда
|
||||
ПредставлениеПоиска = "коду """ + Код + """";
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(Наименование) Тогда
|
||||
ПредставлениеПоиска = "наименованию """ + Наименование + """";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ТекстИсключения = "Не нашли #ГруппуИлиЭлемент справочника #ИмяСправочника по #ПредставлениеПоиска";
|
||||
|
||||
ТекстИсключения = СтрЗаменить(ТекстИсключения, "#ГруппуИлиЭлемент" , ?(ИскатьГруппу, "группу", "элемент"));
|
||||
ТекстИсключения = СтрЗаменить(ТекстИсключения, "#ИмяСправочника" , ИмяСправочника);
|
||||
ТекстИсключения = СтрЗаменить(ТекстИсключения, "#ПредставлениеПоиска", ПредставлениеПоиска);
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Справочник.Ссылка
|
||||
|ИЗ
|
||||
| Справочник.Пользователи КАК Справочник
|
||||
|ГДЕ
|
||||
| &МоиУсловия";
|
||||
|
||||
ТекстМоиУсловия = "";
|
||||
|
||||
Если ИскатьГруппу Тогда
|
||||
СформироватьТекстУсловияЗапроса(ТекстМоиУсловия, "Справочник.ЭтоГруппа = &ИскатьГруппу");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Код) Тогда
|
||||
СформироватьТекстУсловияЗапроса(ТекстМоиУсловия, "Справочник.Код = &Код");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Наименование) Тогда
|
||||
СформироватьТекстУсловияЗапроса(ТекстМоиУсловия, "Справочник.Наименование = &Наименование");
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(ТекстМоиУсловия) Тогда
|
||||
ТекстМоиУсловия = "ИСТИНА";
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаЗаменыСправочника = "Справочник." + ИмяСправочника + " КАК Справочник";
|
||||
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&МоиУсловия", ТекстМоиУсловия);
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "Справочник.Пользователи КАК Справочник", СтрокаЗаменыСправочника);
|
||||
|
||||
Запрос.УстановитьПараметр("ИскатьГруппу", ИскатьГруппу);
|
||||
Запрос.УстановитьПараметр("Код", Код);
|
||||
Запрос.УстановитьПараметр("Наименование", Наименование);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если ДолженБыть И РезультатЗапроса.Пустой() Тогда
|
||||
ВызватьИсключение ТекстИсключения;
|
||||
КонецЕсли;
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
ВыборкаДетальныеЗаписи.Следующий();
|
||||
|
||||
Возврат ВыборкаДетальныеЗаписи.Ссылка;
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура СформироватьТекстУсловияЗапроса(ТекстРезультат, ТекстУсловия)
|
||||
Если НЕ ПустаяСтрока(ТекстРезультат) Тогда
|
||||
ТекстРезультат = ТекстРезультат + " И "
|
||||
КонецЕсли;
|
||||
ТекстРезультат = ТекстРезультат + ТекстУсловия;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура утвУдалитьЭлементСправочника(ИмяСправочника, ЭлементСправочника)
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Справочник.Ссылка
|
||||
|ИЗ
|
||||
| Справочник." + ИмяСправочника + " КАК Справочник
|
||||
|ГДЕ
|
||||
| Справочник.Ссылка = &ЭлементСправочника";
|
||||
|
||||
Запрос.УстановитьПараметр("ЭлементСправочника", ЭлементСправочника);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если РезультатЗапроса.Пустой() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
ЭлементОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
|
||||
|
||||
ЭлементОбъект.Удалить();
|
||||
КонецЦикла;
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьЗначениеРеквизитаСправочника(ЭлементСправочника, ИмяРеквизита, Значение, ЗначениеВХранилище = ЛОЖЬ)
|
||||
СпрОбъект = ЭлементСправочника.ПолучитьОбъект();
|
||||
Если ЗначениеВХранилище Тогда
|
||||
СпрОбъект[ИмяРеквизита] = Новый ХранилищеЗначения(Значение);
|
||||
Иначе
|
||||
СпрОбъект[ИмяРеквизита] = Значение;
|
||||
КонецЕсли;
|
||||
СпрОбъект.Записать();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПолучитьАктивноеОкноИзТестовоеПриложение()
|
||||
Возврат КонтекстСохраняемый.ТестовоеПриложение.ПолучитьАктивноеОкно();
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПолучитьАктивноеОкноИзКонтекста()
|
||||
Возврат Контекст.АктивноеОкно;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция НайтиПолеПоИмени(ИмяПоля,НужнаяФорма = Неопределено)
|
||||
Получилось = Ложь;
|
||||
Если Не Получилось Тогда
|
||||
Если НужнаяФорма = Неопределено Тогда
|
||||
ОкноПриложения = ПолучитьАктивноеОкноИзТестовоеПриложение();
|
||||
НужнаяФорма = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
|
||||
КонецЕсли;
|
||||
|
||||
Если НужнаяФорма = Неопределено Тогда
|
||||
//иногда 1С некорректно отдаёт текущее окно, тогда будем искать во всех окнах
|
||||
//сначала поищем в недавно открытом окне
|
||||
|
||||
Попытка
|
||||
ОкноПриложения = ПолучитьАктивноеОкноИзКонтекста();
|
||||
НужнаяФорма = ОкноПриложения.НайтиОбъект(Тип("ТестируемаяФорма"));
|
||||
Исключение
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
//Если НужнаяФорма = Неопределено Тогда
|
||||
// //затем будем искать во всех окнах
|
||||
// МассивОкон = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения"));
|
||||
// Для каждого ТекОкно Из МассивОкон Цикл
|
||||
//
|
||||
// НужнаяФорма = ТекОкно.НайтиОбъект(Тип("ТестируемаяФорма"));
|
||||
// Если НужнаяФорма <> Неопределено Тогда
|
||||
// Контекст.Вставить("АктивноеОкно",ОкноПриложения); //произошла неявная смена активного окна
|
||||
// КонецЕсли;
|
||||
//
|
||||
// КонецЦикла;
|
||||
//
|
||||
//КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ИмяПоля = "" Тогда
|
||||
Поле = НужнаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"));
|
||||
Иначе
|
||||
Поле = НужнаяФорма.НайтиОбъект(Тип("ТестируемоеПолеФормы"),,ИмяПоля);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Поле;
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьЗначениеКонстаны(ИмяКонстанты, Результат)
|
||||
Константы[ИмяКонстанты].Установить(Результат);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
//Тогда я стал наблюдателем за задачей "ЭтоТестоваяЗадача" с номером '9999999'
|
||||
//@ЯСталНаблюдателемЗаЗадачейСНомером(Парам01,Парам02)
|
||||
Процедура ЯСталНаблюдателемЗаЗадачейСНомером(НаименованиеЗадачи, НомерЗадачи) Экспорт
|
||||
|
||||
Результат = ПолучитьЗаписьРСПоЗадаче(КонтекстСохраняемый.Задача);
|
||||
|
||||
Ванесса.ПроверитьНеРавенство(Неопределено, Результат, "Ожидаемое значение результата");
|
||||
Ванесса.ПроверитьРавенство(НаименованиеЗадачи, Результат.Наименование, "Ожидаемое значение наименования задачи");
|
||||
Ванесса.ПроверитьРавенство(НомерЗадачи, Результат.Номер, "Ожидаемое значение номера задачи");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьЗаписьРСПоЗадаче(Задача)
|
||||
|
||||
Результат = Неопределено;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
| узНаблюдателиЗаЗадачами.Задача.Наименование КАК Наименование,
|
||||
| узНаблюдателиЗаЗадачами.Задача.Код КАК Номер,
|
||||
| узНаблюдателиЗаЗадачами.Пользователь КАК Пользователь
|
||||
|ИЗ
|
||||
| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|
||||
|ГДЕ
|
||||
| узНаблюдателиЗаЗадачами.Задача = &Задача
|
||||
| И узНаблюдателиЗаЗадачами.Пользователь = &Пользователь";
|
||||
|
||||
Запрос.УстановитьПараметр("Задача", Задача);
|
||||
Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Если Выборка.Следующий() Тогда
|
||||
Результат = Новый Структура("Наименование, Номер", Выборка.Наименование, Формат(Выборка.Номер,"ЧГ=0"));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
//окончание текста модуля
|
@ -0,0 +1 @@
|
||||
|
@ -0,0 +1 @@
|
||||
Form\Форма\Форма.bsl-->70e297e0-e8a2-43bf-8be1-62e408f610a1.0 (46, 358)
|
@ -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
|
@ -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}
|
@ -0,0 +1,395 @@
|
||||
{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},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},"//начало текста модуля
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//Служебные функции и процедуры
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
&НаКлиенте
|
||||
// контекст фреймворка Vanessa-Behavior
|
||||
Перем Ванесса;
|
||||
|
||||
&НаКлиенте
|
||||
// Структура, в которой хранится состояние сценария между выполнением шагов. Очищается перед выполнением каждого сценария.
|
||||
Перем Контекст Экспорт;
|
||||
|
||||
&НаКлиенте
|
||||
// Структура, в которой можно хранить служебные данные между запусками сценариев. Существует, пока открыта форма Vanessa-Behavior.
|
||||
Перем КонтекстСохраняемый Экспорт;
|
||||
|
||||
&НаКлиенте
|
||||
// Функция экспортирует список шагов, которые реализованы в данной внешней обработке.
|
||||
Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт
|
||||
Ванесса = КонтекстФреймворкаBDD;
|
||||
|
||||
ВсеТесты = Новый Массив;
|
||||
|
||||
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,""ЯСталНаблюдателемЗаЗадачейСНомером(Парам01,Парам02)"",""ЯСталНаблюдателемЗаЗадачейСНомером"",""Тогда я стал наблюдателем за задачей """"ЭтоТестоваяЗадача"""" с номером '9999999'"");
|
||||
|
||||
Возврат ВсеТесты;
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
// Служебная функция.
|
||||
Функция ПолучитьМакетСервер(ИмяМакета)
|
||||
ОбъектСервер = РеквизитФормыВЗначение(""Объект"");
|
||||
Возврат ОбъектСервер.ПолучитьМакет(ИмяМакета);
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
// Служебная функция для подключения библиотеки создания fixtures.
|
||||
Функция ПолучитьМакетОбработки(ИмяМакета) Экспорт
|
||||
Возврат ПолучитьМакетСервер(ИмяМакета);
|
||||
КонецФункции
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//Работа со сценариями
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
&НаКлиенте
|
||||
// Процедура выполняется перед началом каждого сценария
|
||||
Процедура ПередНачаломСценария() Экспорт
|
||||
СостояниеVanessaBehavior = Ванесса.ПолучитьСостояниеVanessaBehavior();
|
||||
ИмяСценария = СостояниеVanessaBehavior.ТекущийСценарий.Имя;
|
||||
ПредставлениеСправочника = ""узЗадачи"";
|
||||
|
||||
ЭлементСправочника = утвПолучитьЭлементГруппуСправочника(ПредставлениеСправочника, , ""ЭтоТестоваяЗадача"");
|
||||
утвУдалитьЭлементСправочника(ПредставлениеСправочника, ЭлементСправочника);
|
||||
|
||||
СоздатьЭлементСправочникаСНаименованиеНаСервере(ПредставлениеСправочника, ""ЭтоТестоваяЗадача"");
|
||||
Задача = утвПолучитьЭлементГруппуСправочника(ПредставлениеСправочника, , ""ЭтоТестоваяЗадача"",,ИСТИНА);
|
||||
|
||||
УстановитьЗначениеРеквизитаСправочника(Задача, ""Код"", 9999999);
|
||||
|
||||
КонтекстСохраняемый.Вставить(""Задача"", Задача);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
// Процедура выполняется перед окончанием каждого сценария
|
||||
Процедура ПередОкончаниемСценария() Экспорт
|
||||
КонецПроцедуры
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//Реализация шагов
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
&НаСервере
|
||||
Процедура СоздатьЭлементСправочникаСНаименованиеНаСервере(ИмяСправочника, Наименование)
|
||||
ЭлементСправочника = Справочники[ИмяСправочника].СоздатьЭлемент();
|
||||
ЭлементСправочника.Наименование = Наименование;
|
||||
ЭлементСправочника.Записать();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция утвПолучитьЭлементГруппуСправочника(ИмяСправочника, Код = """", Наименование = """", ИскатьГруппу = Ложь, ДолженБыть = ЛОЖЬ)
|
||||
ПредставлениеПоиска = """";
|
||||
|
||||
Если Истина
|
||||
И ПустаяСтрока(Код)
|
||||
И ПустаяСтрока(Наименование)
|
||||
Тогда
|
||||
|
||||
ВызватьИсключение ""Не заполнено ни одно свойство поиска"";
|
||||
|
||||
ИначеЕсли Истина
|
||||
И ЗначениеЗаполнено(Код)
|
||||
И ЗначениеЗаполнено(Наименование)
|
||||
Тогда
|
||||
|
||||
ПредставлениеПоиска = ""коду """""" + Код + """""" и наименованию """""" + Наименование + """""""";
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(Код) Тогда
|
||||
ПредставлениеПоиска = ""коду """""" + Код + """""""";
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(Наименование) Тогда
|
||||
ПредставлениеПоиска = ""наименованию """""" + Наименование + """""""";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ТекстИсключения = ""Не нашли #ГруппуИлиЭлемент справочника #ИмяСправочника по #ПредставлениеПоиска"";
|
||||
|
||||
ТекстИсключения = СтрЗаменить(ТекстИсключения, ""#ГруппуИлиЭлемент"" , ?(ИскатьГруппу, ""группу"", ""элемент""));
|
||||
ТекстИсключения = СтрЗаменить(ТекстИсключения, ""#ИмяСправочника"" , ИмяСправочника);
|
||||
ТекстИсключения = СтрЗаменить(ТекстИсключения, ""#ПредставлениеПоиска"", ПредставлениеПоиска);
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
""ВЫБРАТЬ
|
||||
| Справочник.Ссылка
|
||||
|ИЗ
|
||||
| Справочник.Пользователи КАК Справочник
|
||||
|ГДЕ
|
||||
| &МоиУсловия"";
|
||||
|
||||
ТекстМоиУсловия = """";
|
||||
|
||||
Если ИскатьГруппу Тогда
|
||||
СформироватьТекстУсловияЗапроса(ТекстМоиУсловия, ""Справочник.ЭтоГруппа = &ИскатьГруппу"");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Код) Тогда
|
||||
СформироватьТекстУсловияЗапроса(ТекстМоиУсловия, ""Справочник.Код = &Код"");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Наименование) Тогда
|
||||
СформироватьТекстУсловияЗапроса(ТекстМоиУсловия, ""Справочник.Наименование = &Наименование"");
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(ТекстМоиУсловия) Тогда
|
||||
ТекстМоиУсловия = ""ИСТИНА"";
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаЗаменыСправочника = ""Справочник."" + ИмяСправочника + "" КАК Справочник"";
|
||||
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, ""&МоиУсловия"", ТекстМоиУсловия);
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, ""Справочник.Пользователи КАК Справочник"", СтрокаЗаменыСправочника);
|
||||
|
||||
Запрос.УстановитьПараметр(""ИскатьГруппу"", ИскатьГруппу);
|
||||
Запрос.УстановитьПараметр(""Код"", Код);
|
||||
Запрос.УстановитьПараметр(""Наименование"", Наименование);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если ДолженБыть И РезультатЗапроса.Пустой() Тогда
|
||||
ВызватьИсключение ТекстИсключения;
|
||||
КонецЕсли;
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
ВыборкаДетальныеЗаписи.Следующий();
|
||||
|
||||
Возврат ВыборкаДетальныеЗаписи.Ссылка;
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура СформироватьТекстУсловияЗапроса(ТекстРезультат, ТекстУсловия)
|
||||
Если НЕ ПустаяСтрока(ТекстРезультат) Тогда
|
||||
ТекстРезультат = ТекстРезультат + "" И ""
|
||||
КонецЕсли;
|
||||
ТекстРезультат = ТекстРезультат + ТекстУсловия;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура утвУдалитьЭлементСправочника(ИмяСправочника, ЭлементСправочника)
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
""ВЫБРАТЬ
|
||||
| Справочник.Ссылка
|
||||
|ИЗ
|
||||
| Справочник."" + ИмяСправочника + "" КАК Справочник
|
||||
|ГДЕ
|
||||
| Справочник.Ссылка = &ЭлементСправочника"";
|
||||
|
||||
Запрос.УстановитьПараметр(""ЭлементСправочника"", ЭлементСправочника);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если РезультатЗапроса.Пустой() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
ЭлементОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
|
||||
|
||||
ЭлементОбъект.Удалить();
|
||||
КонецЦикла;
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьЗначениеРеквизитаСправочника(ЭлементСправочника, ИмяРеквизита, Значение, ЗначениеВХранилище = ЛОЖЬ)
|
||||
СпрОбъект = ЭлементСправочника.ПолучитьОбъект();
|
||||
Если ЗначениеВХранилище Тогда
|
||||
СпрОбъект[ИмяРеквизита] = Новый ХранилищеЗначения(Значение);
|
||||
Иначе
|
||||
СпрОбъект[ИмяРеквизита] = Значение;
|
||||
КонецЕсли;
|
||||
СпрОбъект.Записать();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПолучитьАктивноеОкноИзТестовоеПриложение()
|
||||
Возврат КонтекстСохраняемый.ТестовоеПриложение.ПолучитьАктивноеОкно();
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПолучитьАктивноеОкноИзКонтекста()
|
||||
Возврат Контекст.АктивноеОкно;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция НайтиПолеПоИмени(ИмяПоля,НужнаяФорма = Неопределено)
|
||||
Получилось = Ложь;
|
||||
Если Не Получилось Тогда
|
||||
Если НужнаяФорма = Неопределено Тогда
|
||||
ОкноПриложения = ПолучитьАктивноеОкноИзТестовоеПриложение();
|
||||
НужнаяФорма = ОкноПриложения.НайтиОбъект(Тип(""ТестируемаяФорма""));
|
||||
КонецЕсли;
|
||||
|
||||
Если НужнаяФорма = Неопределено Тогда
|
||||
//иногда 1С некорректно отдаёт текущее окно, тогда будем искать во всех окнах
|
||||
//сначала поищем в недавно открытом окне
|
||||
|
||||
Попытка
|
||||
ОкноПриложения = ПолучитьАктивноеОкноИзКонтекста();
|
||||
НужнаяФорма = ОкноПриложения.НайтиОбъект(Тип(""ТестируемаяФорма""));
|
||||
Исключение
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
//Если НужнаяФорма = Неопределено Тогда
|
||||
// //затем будем искать во всех окнах
|
||||
// МассивОкон = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъекты(Тип(""ТестируемоеОкноКлиентскогоПриложения""));
|
||||
// Для каждого ТекОкно Из МассивОкон Цикл
|
||||
//
|
||||
// НужнаяФорма = ТекОкно.НайтиОбъект(Тип(""ТестируемаяФорма""));
|
||||
// Если НужнаяФорма <> Неопределено Тогда
|
||||
// Контекст.Вставить(""АктивноеОкно"",ОкноПриложения); //произошла неявная смена активного окна
|
||||
// КонецЕсли;
|
||||
//
|
||||
// КонецЦикла;
|
||||
//
|
||||
//КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ИмяПоля = """" Тогда
|
||||
Поле = НужнаяФорма.НайтиОбъект(Тип(""ТестируемоеПолеФормы""));
|
||||
Иначе
|
||||
Поле = НужнаяФорма.НайтиОбъект(Тип(""ТестируемоеПолеФормы""),,ИмяПоля);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Поле;
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьЗначениеКонстаны(ИмяКонстанты, Результат)
|
||||
Константы[ИмяКонстанты].Установить(Результат);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
//Тогда я стал наблюдателем за задачей ""ЭтоТестоваяЗадача"" с номером '9999999'
|
||||
//@ЯСталНаблюдателемЗаЗадачейСНомером(Парам01,Парам02)
|
||||
Процедура ЯСталНаблюдателемЗаЗадачейСНомером(НаименованиеЗадачи, НомерЗадачи) Экспорт
|
||||
|
||||
Результат = ПолучитьЗаписьРСПоЗадаче(КонтекстСохраняемый.Задача);
|
||||
|
||||
Ванесса.ПроверитьНеРавенство(Неопределено, Результат, ""Ожидаемое значение результата"");
|
||||
Ванесса.ПроверитьРавенство(НаименованиеЗадачи, Результат.Наименование, ""Ожидаемое значение наименования задачи"");
|
||||
Ванесса.ПроверитьРавенство(НомерЗадачи, Результат.Номер, ""Ожидаемое значение номера задачи"");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьЗаписьРСПоЗадаче(Задача)
|
||||
|
||||
Результат = Неопределено;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = ""ВЫБРАТЬ
|
||||
| узНаблюдателиЗаЗадачами.Задача.Наименование КАК Наименование,
|
||||
| узНаблюдателиЗаЗадачами.Задача.Код КАК Номер,
|
||||
| узНаблюдателиЗаЗадачами.Пользователь КАК Пользователь
|
||||
|ИЗ
|
||||
| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|
||||
|ГДЕ
|
||||
| узНаблюдателиЗаЗадачами.Задача = &Задача
|
||||
| И узНаблюдателиЗаЗадачами.Пользователь = &Пользователь"";
|
||||
|
||||
Запрос.УстановитьПараметр(""Задача"", Задача);
|
||||
Запрос.УстановитьПараметр(""Пользователь"", Пользователи.ТекущийПользователь());
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Если Выборка.Следующий() Тогда
|
||||
Результат = Новый Структура(""Наименование, Номер"", Выборка.Наименование, Формат(Выборка.Номер,""ЧГ=0""));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
//окончание текста модуля",
|
||||
{4,1,
|
||||
{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}
|
||||
},0,0,
|
||||
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
|
||||
aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
|
||||
LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
|
||||
OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
|
||||
dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
|
||||
cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
|
||||
Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
|
||||
Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
|
||||
LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
|
||||
LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
|
||||
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
|
||||
L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=}
|
||||
},
|
||||
{0,0},
|
||||
{0,0},
|
||||
{0,0},
|
||||
{0,0},0,0}
|
@ -0,0 +1,17 @@
|
||||
{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},"ПроверкаДобавленияАвтораКомментарияВНаблюдателиЗаЗадачей",
|
||||
{1,"ru","Проверка добавления автора комментария в наблюдатели за задачей"},"",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,0}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
{3,1,0,"",0}
|
@ -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,"ПроверкаДобавленияАвтораКомментарияВНаблюдателиЗаЗадачей"}
|
||||
}
|
||||
},
|
||||
{1,
|
||||
{1fa267af-3d54-4f70-ac00-718486d7aafd,8aa13ab8-188a-4f59-be4f-031aa5450c90,0}
|
||||
},
|
||||
{0},
|
||||
{0,0},
|
||||
{0}
|
||||
}
|
@ -0,0 +1 @@
|
||||
{2,79a499cc-1782-4a2f-abe7-61ea4d49fd5a,}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
{216,0}
|
||||
}
|
@ -0,0 +1 @@
|
||||
{1,9,"",866c4490-4922-4015-a5b0-51a4d39d3c60,"70e297e0-e8a2-43bf-8be1-62e408f610a1",27c05e94-b56f-40c5-aef2-487ae177b3b0,"70e297e0-e8a2-43bf-8be1-62e408f610a1.0",476d9837-3cce-4887-af1d-ee503fa28c80,"79a499cc-1782-4a2f-abe7-61ea4d49fd5a",42fb4a9f-54d2-4034-85d1-3dfcdb050889,"8aa13ab8-188a-4f59-be4f-031aa5450c90.0",8f078f9d-d37e-43c8-a027-62db3be5182d,"copyinfo",b6e043a5-113e-4684-93bd-3bbd4c57396e,"root",38b1a0cb-6e17-4dac-84f0-ac47726dc9b7,"version",b1509780-834c-4127-b5b7-5f619ab2384b,"versions",063e6699-909b-41cc-8b1c-6a4d0e3d3a0b}
|
Loading…
Reference in New Issue
Block a user