Показано с 1 по 2 из 2
-
13.02.2020, 23:49 #1
- Регистрация
- 13.02.2020
- Сообщений
- 2
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Разработка конфигурации Тест.
Есть справочник Вопросы содержащий реквизит ТекстВопроса (тип строка) и справочник Ответы с реквизитом правильный ответ (булево). Вместе, эти 2 справочника нужны чтобы пользователь мог составить тест тому кого собирается тестировать: вводится текст вопроса в реквизит ТекстВопроса :)
1 Перемешивание вопросов и ответов которые заданы к вопросу.
Какую задать команду или обработчик чтобы порядок реквизитов каждый раз был бы случайным?
Пользователь при нажатии на кнопку перемешает созданный порядок вопросов и ответов к ним, причём изменяются только номер вопроса и положение реквизитов в созданном вопросе.
Возможный вариант: прикрутить ГСЧ к их именам, но я пока не знаю как именно это нужно сделать. :confused:
Второй вариант: код справочника рандомно прописывается по нажатию кнопки. И выводи вопросы отсортированные по коду. Но здесь следует учесть что код будет в пределах заданных ответов отдельно к каждому вопросу: в одном вопросе может быть разное число ответов.
2 Выбор нескольких вариантов правильных ответов проходящим тест и их засчитывание как верное, если пользователь при создании вопроса задал несколько правильных ответов. Пока что я не знаю как это реализовать, у меня получилось сделать пока что только так: 1 вопрос - 1 верный ответ.
3 Как уместить несколько вопросов с ответами на одной странице, и кнопкам: назад и вперед задать горячие клавиши на лево и право (я про кнопки в виде стрелок) ? :confused:
https://sun9-20.userapi.com/c200824/...cloaaLCFkQ.jpg
1. Код формы Главная: эта страница по которой пользователь после авторизации или регистрации, в случае если он гость, попадает на страницу где по нажатию кнопки Начать тест он проходит тест.
Код:&НаКлиенте Процедура НачатьТест(Команда) ТестВПроцессе=Истина; ЗапВопросыОтветы(); Если ВопросыОтветы.Количество()=0 Тогда Предупреждение ("Тест не найден. Обратитесь к администратору"); Возврат; КонецЕсли; Элементы.Начало.Видимость=Ложь; Элементы.Тест.Видимость=Истина; НомерТекущегоВопроса=1; ЗапОтветы(); КонецПроцедуры &НаКлиенте Процедура УстановитьВидимость() Если НомерТекущегоВопроса=1 Тогда Элементы.Назад.Видимость=Ложь; Элементы.ЗавершитьТест.Видимость=Ложь; ИначеЕсли ВопросыОтветы.Количество()= НомерТекущегоВопроса Тогда Элементы.Вперед.Видимость=Ложь; Элементы.ЗавершитьТест.Видимость=Истина; Иначе Элементы.Назад.Видимость=Истина; Элементы.Вперед.Видимость=Истина; Элементы.ЗавершитьТест.Видимость=Ложь; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Вперед(Команда) НомерТекущегоВопроса=НомерТекущегоВопроса+1; ЗапОтветы(); КонецПроцедуры &НаКлиенте Процедура Назад(Команда) НомерТекущегоВопроса=НомерТекущегоВопроса-1; ЗапОтветы(); КонецПроцедуры &НаКлиенте Процедура ЗапОтветы() УстановитьВидимость(); ЗапОтветыНаСервере(); КонецПроцедуры &НаСервере Процедура ЗапОтветыНаСервере() ВариантОтвета.Очистить(); Стр=ВопросыОтветы.Получить(НомерТекущегоВопроса-1); З=Новый Запрос; З.Текст=" |ВЫБРАТЬ | Ссылка |ИЗ | Справочник.Ответы |ГДЕ Владелец=&Вопрос |УПОРЯДОЧИТЬ ПО КОД"; З.УстановитьПараметр("Вопрос",Стр.Вопрос); Выб=З.Выполнить().Выбрать(); Пока Выб.Следующий() Цикл ВариантОтвета.Добавить(Выб.Ссылка,Выб.Ссылка.Наименование); КонецЦикла; Если НЕ Стр.Ответ.Пустая() Тогда Зн=ВариантОтвета.НайтиПоЗначению(Стр.Ответ); Зн.Пометка=Истина; КонецЕсли; Элементы.ТекстВопроса.Заголовок=Стр.Вопрос.Наименование+Символы.ПС+Стр.Вопрос.ТекстВопроса; КонецПроцедуры &НаСервере Процедура ЗапВопросыОтветы() З=Новый Запрос; З.Текст=" |ВЫБРАТЬ |Ссылка КАК Вопрос |ИЗ Справочник.Вопросы |ГДЕ НЕ ПометкаУдаления |УПОРЯДОЧИТЬ ПО Код"; ВопросыОтветы.Загрузить(З.Выполнить().Выгрузить()); КонецПроцедуры &НаСервере Функция ПроверкаОтветаНаВсеВопросы(КолПО) фл=Истина; Для Каждого Стр Из ВопросыОтветы Цикл Если Стр.Ответ.Пустая() Тогда фл=Ложь; Сообщить("Вы не ответили на "+Стр.Вопрос.Наименование); КонецЕсли; Если Стр.Ответ.ПравильныйОтвет Тогда КолПО=КолПО+1; КонецЕсли; КонецЦикла; Возврат фл; КонецФункции &НаКлиенте Процедура ЗавершитьТест(Команда) ОтветНаВопрос=Вопрос("Вы действительно хотите закончить тест?",РежимДиалогаВопрос.ДаНет); Если ОтветНаВопрос=КодВозвратаДиалога.Нет Тогда Возврат КонецЕсли; КолПО=0; Если НЕ ПроверкаОтветаНаВсеВопросы(КолПО) Тогда Возврат КонецЕсли; ТестВПроцессе=Ложь; Элементы.Тест.Видимость=Ложь; Элементы.РезультатТекст.Заголовок="Вы ответили правильно на "+КолПО+" вопросов из "+ВопросыОтветы.Количество(); Элементы.РезультатТекст.Видимость=Истина; КонецПроцедуры &НаКлиенте Процедура ВариантОтветаПометкаПриИзменении(Элемент) Стр=Элементы.ВариантОтвета.ТекущиеДанные; Если Стр.Пометка Тогда Для Каждого Зн Из ВариантОтвета Цикл Если Стр.Значение=Зн.Значение Тогда Продолжить КонецЕсли; Зн.Пометка=Ложь; КонецЦикла; Зн=ВопросыОтветы.Получить(НомерТекущегоВопроса-1); Зн.Ответ=Стр.Значение; Иначе Зн=ВопросыОтветы.Получить(НомерТекущегоВопроса-1); Зн.Ответ=NULL; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) ТестВПроцессе=Ложь; КонецПроцедуры &НаКлиенте Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) Отказ=ТестВПроцессе; КонецПроцедуры &НаКлиенте Процедура Войти(Команда) ОткрытьФорму("ОбщаяФорма.Авторизация"); КонецПроцедуры
https://sun9-71.userapi.com/c200824/...rJMoFANru0.jpg
https://sun9-16.userapi.com/c200824/...bO_72OuoAY.jpg
Справочник Ответы имеет форму элемента и форму списка: пока что без кода.
-
14.02.2020, 09:14 #2
- Регистрация
- 13.02.2020
- Сообщений
- 2
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: Разработка конфигурации Тест.
Я жду ответы, консультации и помощи с примерным кодом.
Похожие темы
-
Тест для андроид 1С Профессионал Управление торговлей 8
от pogoda74 в разделе Обучение 1с. Курсы. Подготовка к экзаменам, тестам 1сОтветов: 0Последнее сообщение: 05.07.2016, 19:52 -
Разработка конфигурации
от ganster123 в разделе Конфигурирование, программирование 1С - ПредприятиеОтветов: 2Последнее сообщение: 24.02.2014, 14:55 -
Прокси HTTP и SOCKS от AwmProxy! Бесплатный тест
от awmproxy в разделе Интернет и сетиОтветов: 1Последнее сообщение: 01.09.2011, 08:59 -
Сравнительный тест веб-браузеров от ArsTechnica
от DEL в разделе Новости Microsoft WindowsОтветов: 0Последнее сообщение: 19.10.2010, 15:50 -
Тест американских военных пилотов. Испытайте себя!
от Speaker18 в разделе Комната отдыхаОтветов: 2Последнее сообщение: 15.02.2008, 19:38
Социальные закладки