Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Построение круговой диаграммы по результатам теста.

Построение круговой диаграммы по результатам теста.
Я
   Reraru
 
11.02.20 - 10:41
Есть справочник вопросы и справочник ответы, которые содержат вопросы (реквизит ТекстВопроса) в справочнике вопросы и ответы (реквизит ПравильныеОтветы) к тесту в справочнике Ответы. Регистров накопления, табличной части и документов нет.
Когда пользователь завершил тест то ему формируется то насколько правильно он ответил. Всего 22 вопроса, если вопросы будут удаляться или добавлятся то эти изменения должны отражаться на диаграмме.
Количество верных ответов должно влиять на диаграмму:
оценка 5 - 22, 4 - 19, 3 - 13, 2 - 5.
Я неправильно построил диаграмму и теперь не понимаю что  мне исправить или добавить нужно новые объекты в конфигурацию.

Сама диаграмма имеет реквизит на форме Диаграмма, типа - круговая, а запрос построен по справочнику Ответы. Что как я уже понял - неправильно.

&НаКлиенте
Процедура ЗавершитьТест(Команда)
    ОтветНаВопрос=Вопрос("Вы действительно хотите закончить тест?",РежимДиалогаВопрос.ДаНет);
    if ОтветНаВопрос=КодВозвратаДиалога.Нет then return endif;
    КолПО=0;
    if НЕ ПроверкаОтветаНаВсеВопросы(КолПО) then return endif;
    ТестВПроцессе=Ложь;
    Элементы.Тест.Видимость=Ложь;
    Элементы.РезультатТекст.Заголовок="Вы ответили правильно на "+КолПО+" вопросов из "+ВопросыОтветы.Количество();
    Элементы.РезультатТекст.Видимость=Истина;
    
ВывестиНаСервере();
    
КонецПроцедуры

Процедура ВывестиНаСервере()

        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

        Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Ответы.ПравильныйОтвет КАК ПравильныйОтвет
        |ИЗ
        |    Справочник.Ответы КАК Ответы
        |ИТОГИ ПО
        |    ПравильныйОтвет";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Диаграмма = Элементы.Диаграмма;
    Диаграмма.Обновление = Ложь;
    Диаграмма.Очистить();
    Диаграмма.АвтоТранспонирование = Ложь;
    
    ВыборкаПравильныйОтвет = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаПравильныйОтвет.Следующий() Цикл
        Серия = Диаграмма.УстановитьСерию(ВыборкаПравильныйОтвет.ПравильныйОтвет);
        Серия.Текст = ВыборкаПравильныйОтвет.ПравильныйОтвет;
        Серия.Расшифровка = ВыборкаПравильныйОтвет.ПравильныйОтвет;
        Точка = Диаграмма.УстановитьТочку(ВыборкаПравильныйОтвет);
        Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаПравильныйОтвет, Серия.Расшифровка);
    КонецЦикла;
    
    Диаграмма.АвтоТранспонирование = Истина;
    Диаграмма.Обновление = Истина;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

    
КонецПроцедуры
 
 
   vicof
 
1 - 11.02.20 - 10:44
"if ОтветНаВопрос=КодВозвратаДиалога.Нет then return endif;"
Серьезно)
   vicof
 
2 - 11.02.20 - 10:45
Диаграмма = Элементы.Диаграмма;
Diagram = Elemens.Diagram; не?))
   Reraru
 
3 - 11.02.20 - 10:47
(1) Это часть кода относящегося именно к диаграмме. Чем дополнить я пока что не знаю.
   Reraru
 
4 - 11.02.20 - 10:56
(2) если будет проще, то я могу скинуть саму информационную базу.
   vicof
 
5 - 11.02.20 - 11:00
Спасибо, не надо. Ты даже не описал проблему.
   Reraru
 
6 - 11.02.20 - 11:05
(5) как не описал? У меня проблема в неправильном выводе диаграммы
   vicof
 
7 - 11.02.20 - 11:10
И в чем эта неправильность?
   Reraru
 
8 - 11.02.20 - 11:26
(1) Когда я формирую запрос то из какого справочника мне брать данные? Так как диаграмма строится по количеству правильных ответов я брал справочник Ответы.
   Reraru
 
9 - 11.02.20 - 11:31
(7) я не знаю как мне правильно построить запрос для вывода нужной мне диаграммы.
   Reraru
 
10 - 11.02.20 - 11:41
(7) Процедура ВывестиНаСервере()
        
           //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

    // Данный фрагмент построен конструктором.

    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Ответы.ПравильныйОтвет КАК ПравильныйОтвет
        |ИЗ
        |    Справочник.Ответы КАК Ответы
        |
        |СГРУППИРОВАТЬ ПО
        |    Ответы.ПравильныйОтвет
        |
        |УПОРЯДОЧИТЬ ПО
        |    ПравильныйОтвет
        |ИТОГИ ПО
        |    ПравильныйОтвет";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Диаграмма.Обновление = Ложь;
    Диаграмма.Очистить();
    Диаграмма.АвтоТранспонирование = Ложь;
    
    ВыборкаПравильныйОтвет = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаПравильныйОтвет.Следующий() Цикл
        Серия = Диаграмма.УстановитьСерию(ВыборкаПравильныйОтвет.ПравильныйОтвет);
        Серия.Текст = ВыборкаПравильныйОтвет.ПравильныйОтвет;
        Серия.Расшифровка = ВыборкаПравильныйОтвет.ПравильныйОтвет;
        Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаПравильныйОтвет., Серия.Расшифровка);
    КонецЦикла;
    
    Диаграмма.АвтоТранспонирование = Истина;
    Диаграмма.Обновление = Истина;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА


    
КонецПроцедуры
   Reraru
 
11 - 11.02.20 - 11:43
(7) Когда я формирую запрос с обработкой результата в диаграмму то получаю следующие ошибки. Эти ошибки появляются сразу после формирования запроса:

{ОбщаяФорма.Главная.Форма(151,69)}: Ожидается идентификатор
        Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаПравильныйОтвет.<<?>>, Серия.Расшифровка); (Проверка: Сервер)
{ОбщаяФорма.Главная.Форма(151,70)}: Ожидается символ ')'
        Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаПравильныйОтвет.,<<?>> Серия.Расшифровка); (Проверка: Сервер)
{ОбщаяФорма.Главная.Форма(151,69)}: Ожидается идентификатор
        Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаПравильныйОтвет.<<?>>, Серия.Расшифровка); (Проверка: Тонкий клиент)
{ОбщаяФорма.Главная.Форма(151,70)}: Ожидается символ ')'
        Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаПравильныйОтвет.,<<?>> Серия.Расшифровка); (Проверка: Тонкий клиент)
   vicof
 
12 - 11.02.20 - 12:10
Точки убери
   Reraru
 
13 - 11.02.20 - 15:07
(12)     Пока ВыборкаПравильныйОтвет.Следующий() Цикл
        Серия = Диаграмма.УстановитьСерию(ВыборкаПравильныйОтвет.ПравильныйОтвет);
        Серия.Текст = ВыборкаПравильныйОтвет.ПравильныйОтвет;
        Серия.Расшифровка = ВыборкаПравильныйОтвет.ПравильныйОтвет;
        Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаПравильныйОтвет, Серия.Расшифровка);
    КонецЦикла;

{ОбщаяФорма.Главная.Форма(140,32)}: Переменная не определена (Точка)
        Диаграмма.УстановитьЗначение(<<?>>Точка, Серия, ВыборкаПравильныйОтвет, Серия.Расшифровка); (Проверка: Сервер)

Список тем форума
Рекламное место пустует  Рекламное место пустует
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.