Форум программистов, компьютерный форум, киберфорум
Наши страницы

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
Дмитрий666666
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 19
#1

Как вывести результат в документ по процедуре Завершить - 1С

06.03.2017, 21:32. Просмотров 169. Ответов 3
Метки нет (Все метки)

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
&НаСервере
Процедура ВпередНаСервере()
    Объект.ТекущийВопрос=Объект.ТекущийВопрос+1;
    ПолучитьТекущийВопрос();
КонецПроцедуры
 
&НаКлиенте
Процедура Вперед(Команда)
    Элементы.Назад.Доступность=Истина;
    Если Объект.ТекущийВопрос>=Объект.КолличествоВопросов-1 Тогда
        Элементы.Вперед.Доступность=Ложь;
        Элементы.Завершить.Доступность=Истина;
    КонецЕсли;
    ВпередНаСервере();
    ВывестиТекущийВопрос();
КонецПроцедуры
 
&НаСервере
Процедура НачатьНаСервере()
    
    Объект.ТекущийВопрос=1;
    ПолучитьТекущийВопрос();
КонецПроцедуры
 
&НаКлиенте
Процедура Начать(Команда)
    Если Объект.КолличествоВопросов>0 Тогда
        Элементы.Назад.Доступность=Ложь;
        Элементы.Вперед.Доступность=Истина;
        НачатьНаСервере();
        ВывестиТекущийВопрос();
    КонецЕсли;
    Элементы.Начать.Доступность=Ложь;
КонецПроцедуры
 
&НаКлиенте
Процедура ВывестиТекущийВопрос()    
    Элементы.ВыборОтвета.СписокВыбора.Очистить();
    м=1;
    Для каждого Стр из Объект.ВариантыОтветов Цикл
    Элементы.ВыборОтвета.СписокВыбора.Добавить(м,Стр.Ответ);
    м=м+1;
    КонецЦикла;
КонецПроцедуры
 
 
&НаСервере
Процедура ПолучитьТекущийВопрос()
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Вопросы.Наименование,
        |   Вопросы.ПравильныйОтвет,
        |   Вопросы.ВариантыОтветов.(
        |       Ответ
        |   )
        |ИЗ
        |   Справочник.Вопросы КАК Вопросы
        |ГДЕ
        |   Вопросы.Владелец = &Дисциплина
        |   И Вопросы.НомерВопроса = &НомерВопроса";
    
    Запрос.УстановитьПараметр("Дисциплина", Объект.Дисциплина);
    Запрос.УстановитьПараметр("НомерВопроса", Объект.ТекущийВопрос);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Объект.Вопрос=ВыборкаДетальныеЗаписи.Наименование;
        Варианты=ВыборкаДетальныеЗаписи.ВариантыОтветов.Выгрузить();
        Объект.ВариантыОтветов.Загрузить(Варианты);
        Объект.ПравильныйОтвет=ВыборкаДетальныеЗаписи.ПравильныйОтвет;
    КонецЦикла;
КонецПроцедуры
 
&НаКлиенте
Процедура Назад(Команда)
    Элементы.Вперед.Доступность=Истина;
    Если Объект.ТекущийВопрос<=2 Тогда
        Элементы.Назад.Доступность=Ложь;
    КонецЕсли;
    НазадНаСервере();
    ВывестиТекущийВопрос();
КонецПроцедуры
 
&НаСервере
Процедура НазадНаСервере()
     Объект.ТекущийВопрос=Объект.ТекущийВопрос-1;
    ПолучитьТекущийВопрос();
КонецПроцедуры
 
&НаКлиенте
Процедура Завершить(Команда)
    ЗавершитьНаСервере();
КонецПроцедуры
 
&НаСервере
Процедура ЗавершитьНаСервере()
    
КонецПроцедуры
 
&НаКлиенте
Процедура ВыборОтветаПриИзменении(Элемент)
    ВыборОтветаПриИзмененииНаСервере();
КонецПроцедуры
 
&НаСервере
Процедура ВыборОтветаПриИзмененииНаСервере()
    Ст=Объект.Ответы.Получить(Объект.ТекущийВопрос-1);
    Ст.ОтветСтудента=Объект.ВыборОтвета;
    Ст.ПравильныйОтвет=Объект.ПравильныйОтвет;
 
    КонецПроцедуры
 
&НаКлиенте
    Процедура ДисциплинаПриИзменении(Элемент)
        ДисциплинаПриИзмененииНаСервере();
    КонецПроцедуры
 
&НаСервере
    Процедура ДисциплинаПриИзмененииНаСервере()
        Запрос=Новый Запрос;
        Запрос.Текст=
        "ВЫБРАТЬ
        |   Вопросы.Ссылка
        |ИЗ
        |   Справочник.Вопросы КАК Вопросы
        |ГДЕ
        |   Вопросы.Владелец = &Владелец";
        Запрос.УстановитьПараметр("Владелец",Объект.Дисциплина);
        РезультатЗапроса=Запрос.Выполнить();
        ВыборкаДетальныеЗаписи=РезультатЗапроса.Выбрать();
        Объект.КолличествоВопросов=ВыборкаДетальныеЗаписи.Количество();
        Для м=1 по Объект.КолличествоВопросов Цикл
            Объект.Ответы.Добавить();
            КонецЦикла;
    КонецПроцедуры
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2017, 21:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вывести результат в документ по процедуре Завершить (1С):

1C 8.x Определить табличный документ в отдельной процедуре - 1С
Добрый день, подскажите, как на обычных формах вынести описание табличного документа в отдельную процедуру? Как это правильно сделать?...

Как вывести остаток из регистра накопления в документ? - 1С
как вывести остаток из регистра накопления в документ!

Как правильно вывести результат запроса в список? - 1С
подскажите как правильно вывести результат запроса в список Процедура ТабличнаяЧастьНоменклатураНачалоВыбораИзСписка(Элемент,...

В процедуре в регистр AX помещается результат выражения, как его вернуть с процедуры, чтобы вывести на экран - Assembler
Имеется процедура, в ней в регистр AX помещается результат выражения, как его вернуть с процедуры, чтобы вывести на экран ? :) TITLE ...

Как в хранимой процедуре записывать результат в таблицу, имя которой задается переменной - SQL Server
Подскажите, как в хранимой процедуре SQL записывать результат в таблицу, имя которой задается переменной: set ntable=' Нужное имя...

Не получается завершить тест и просчитать результат - Visual Basic
Очень нужна помощь, с VB встречаюсь второй раз в жизни, для зачёта надо создать тест (Кеттелла_детский вариант) домучила тест до...

3
GreenkA
Модератор
Эксперт 1С
1793 / 1298 / 450
Регистрация: 25.06.2009
Сообщений: 3,666
06.03.2017, 21:37 #2
Дмитрий666666, конкретнее формулируйте ваши вопросы. Результат чего вам надо вывести и куда?
0
Дмитрий666666
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 19
06.03.2017, 21:57  [ТС] #3
Когда кто-то проходит тест результаты записываются в табличную часть и по кнопки Завершить эти записи должны записываться в документ и выдавать оценку если меньше 50% то 2, если до 80% то 5 а если свыше 80% то 5
0
GreenkA
Модератор
Эксперт 1С
1793 / 1298 / 450
Регистрация: 25.06.2009
Сообщений: 3,666
07.03.2017, 09:55 #4
Дмитрий666666, если я правильно поняла, то у вас в документе есть табличная часть Ответы с полями "ОтветСтудента" и "ПравильныйОтвет". В этом случае можно обойти табличную часть, сравнивая значения ответов. Вызов серверной процедуры не обязателен.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
&НаКлиенте
Процедура Завершить(Команда)
 ПравОтветы = 0;
 Для Каждого ТекСтрока Из Объект.Ответы Цикл
   Если ТекСтрока.ОтветСтудента = ТекСтрока.ПравильныйОтвет Тогда
     ПравОтветы = ПравОтветы + 1;
   КонецЕсли;
 КонецЦикла;
 ВсегоВопросов = Объект.Ответы.Количество();
 Процент = ПравОтветы / ВсегоВопросов * 100;
 
 Если Процент < 50 Тогда
  Оценка = 2;
 ИначеЕсли Процент >= 50 и Процент < 80 Тогда 
  Оценка = 3;
 Иначе
//разберитесь, что вы выше про оценки написали)
 КонецЕсли;
 
 Сообщение = Новый СообщениеПользователю();
 Сообщение.Текст = НСтр("ru = 'Ваша оценка = ' ") + Оценка;
 Сообщение.Сообщить();
 
КонецПроцедуры
0
07.03.2017, 09:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2017, 09:55
Привет! Вот еще темы с ответами:

Как вывести промежуточные действия в процедуре - Turbo Pascal
Есть процедура сортировки методом пузырька, в ней необходимо пошагово вывести промежуточные действия в процессе выполнения. как это...

Как результаты поиска вывести в форме таблицы и этот документ вывести на печать? - PHP БД
Есть форма поиска &lt;div id=poisk&gt; &lt;form method=&quot;GET&quot;&gt; &lt;input name=&quot;action&quot; value=&quot;search&quot; type=&quot;hidden&quot;&gt; ...

В процедуре неправильно выводится результат - Turbo Pascal
Процедура должна выводить сумму при вводе номера, но кроме суммы выводит еще что такого номера нет: if nom&lt;&gt;sh.plat then ...

Как передать значения массива в подпрограммму процедуру и вывести элементы в процедуре - Turbo Pascal
никак не получается Добавлено через 32 минуты чё никто не знает?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.