Здравствуйте, не могу настроить автоматизированное тестирование системе на базе систем 1С:Предприятие
Помоги написать обработку, либо оптимизировать мой код
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ТекущийВопрос=0;
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОтветыНаТест.Вопрос КАК Вопрос,
| ОтветыНаТест.ПравильныйОтвет КАК ПравильныйОтвет,
| ОтветыНаТест.НеверныйОтвет1 КАК НеверныйОтвет1,
| ОтветыНаТест.НеверныййОтвет2 КАК НеверныййОтвет2,
| ОтветыНаТест.НеверныйОтвет3 КАК НеверныйОтвет3
|ИЗ
| РегистрСведений.ОтветыНаТест КАК ОтветыНаТест";
ЗначениеВРеквизитФормы(Запрос.Выполнить().Выгрузить(),"РезультатЗапроса");
Балл=0;
КоличествоВопросов=РезультатЗапроса.Количество();
Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1;
Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
КонецПроцедуры
&НаКлиенте
Процедура Ответ1(Команда)
Если РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет=Элементы.Ответ2.Заголовок Тогда
Балл=Балл+1;
КонецЕсли;
ТекущийВопрос=Число(ТекущийВопрос)+1;
Если ТекущийВопрос>(КоличествоВопросов-1) Тогда
Сообщить("Набранный балл: "+Балл+".");
Возврат;
Иначе
Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1;
Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Ответ2(Команда)
Если РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет=Элементы.Ответ2.Заголовок Тогда
Балл=Балл+1;
КонецЕсли;
ТекущийВопрос=ТекущийВопрос+1;
Если ТекущийВопрос>(КоличествоВопросов-1) Тогда
Сообщить("Набранный балл: "+Балл+".");
Возврат;
Иначе
Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1;
Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Ответ3(Команда)
Если РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет=Элементы.Ответ2.Заголовок Тогда
Балл=Балл+1;
КонецЕсли;
ТекущийВопрос=ТекущийВопрос+1;
Если ТекущийВопрос>(КоличествоВопросов-1) Тогда
Сообщить("Набранный балл: "+Балл+".");
Возврат;
Иначе
Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1;
Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Ответ4(Команда)
Если РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет=Элементы.Ответ2.Заголовок Тогда
Балл=Балл+1;
КонецЕсли;
ТекущийВопрос=ТекущийВопрос+1;
Если ТекущийВопрос>(КоличествоВопросов-1) Тогда
Сообщить("Набранный балл: "+Балл+".");
Возврат;
Иначе
Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1;
Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
КонецЕсли;
КонецПроцедуры
Показать
Дальше есть тестирование
&НаКлиенте
Функция ПолучитьЯндексТокен() Экспорт
СтруктуруЗапроса = СформироватьСтруктуруЗапроса();
СтрокаДляТела = РаботаСHTTP.СериализоватьВJSON(СтруктуруЗапроса);
Результат = ОтправитьЗапросПолучитьТокен(СтрокаДляТела);
Возврат Результат.iamToken;
КонецФункции
&НаКлиенте
Функция ОтправитьЗапросПолучитьТокен(СтрокаДляТела) Экспорт
SSL = Новый ЗащищенноеСоединениеOpenSSL();
HTTP = Новый HTTPСоединение("iam.api.cloud.yandex.net",,,,,,SSL);
ЗаголовокЗапросаHTTP = Новый Соответствие();
ЗаголовокЗапросаHTTP.Вставить("Authorization", "Inherit authfrom parent");
ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
ЗапросHTTP = Новый HTTPЗапрос("iam/v1/tokens", ЗаголовокЗапросаHTTP);
ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаДляТела);
ОтветHTTP = HTTP.ОтправитьДляОбработки(ЗапросHTTP);
JSON = ОтветHTTP.ПолучитьТелоКакСтроку();
Результат = РаботаСHTTP.ДесериализоватьJSON(JSON);
Возврат Результат;
КонецФункции
&НаКлиенте
Функция СформироватьСтруктуруЗапроса() Экспорт
yandexPassportOauthToken = "y0_AgAABj-7iuAATuwQAAAAEH0ViqAADwSZVvNZPvppKYGTZ1YLbY_ysUw";
СтруктуруЗапроса = Новый Структура("yandexPassportOauthToken", yandexPassportOauthToken);
Возврат СтруктуруЗапроса;
КонецФункции
#Область РаботаСJSON
&НаКлиенте
Функция СериализоватьВJSON(ДанныеОКлиенте) Экспорт
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, ДанныеОКлиенте);
СтрокаДляТела = ЗаписьJSON.Закрыть();
Возврат СтрокаДляТела;
КонецФункции
&НаКлиенте
Функция ДесериализоватьJSON(JSON, ЧитатьСоответствие = Ложь) Экспорт
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(JSON);
Результат = ПрочитатьJSON(ЧтениеJSON, ЧитатьСоответствие);
ЧтениеJSON.Закрыть();
Возврат Результат;
КонецФункции
#КонецОбласти
Процедура ЗаписатьКонс(Токен) Экспорт
Константы.Токен.Установить(Токен);
КонецПроцедуры
Показать