Имя: Пароль:
1C
1С v8
ОткрытьФорму() как открыть полученную форму?
,
0 bootini
 
24.05.16
16:03
В справке по ОткрытьФорму написано:
"Можно открывать уже полученную форму. В этом случае в параметрах передается уже полученная форма и окно, в котором открыть форму.
"
Не могу передать параметры, хелп.


    ФормаВопроса = ПолучитьФорму("Документ.Обучение.Форма.ФормаВопроса");
    ФормаВопроса.Заголовок = "Вопрос " +СтруктураВопроса.НомерВопроса;
    ФормаВопроса.Элементы.ТекстВопроса.Заголовок = СтруктураВопроса.Вопрос;
    
    НомерОтвета = 0;
    
    Для Каждого Эл Из СтруктураВопроса Цикл
        Если Не СтрНайти(Эл.Ключ, "_") = 0 Тогда
            НомерОтвета = Прав(Эл.Ключ, СтрДЛина(Эл.Ключ) - 1);
            ТекстОтвета  = "" + НомерОтвета + ". " + Эл.Значение;
            ЭлементФлажок = ФормаВопроса.Элементы.Найти("Ответ" + НомерОтвета);    
            ЭлементФлажок.Заголовок = ТекстОтвета;
            ЭлементФлажок.Видимость = Истина;
        КонецЕСли;
    КонецЦикла;    
    //ФормаВопроса.Открыть();
    Оповещение = Новый ОписаниеОповещения("ОткрытьПараметрыЗавершение", ЭтотОбъект);
     ?????? П = Новый Структура("ЭтаФорма, Окно", ФормаВопроса, Неопределено);
    ОткрытьФорму("Документ.Обучение.Форма.ФормаВопроса",П,ЭтаФорма,,,,Оповещение);
1 bootini
 
24.05.16
16:08
Пи таком варианте кода вылетает ошибка:
"Ошибка отображения типов:
Отсутствует отображение для типа 'УправляемаяФорма'"
2 Сергиус
 
24.05.16
16:10
(1)Все верно. Ты в параметрах пытаешься передать Форму(ФормаВопроса), на это и ругается.
3 bootini
 
24.05.16
16:12
(2) А как правильно-то?

В справке написано:
"Можно открывать уже полученную форму. В этом случае в параметрах передается уже полученная форма и окно, в котором открыть форму."
4 silent person
 
24.05.16
16:18
(3) это для такого синтаксиса

Вариант синтаксиса: По форме

Синтаксис:

ОткрытьФорму(<Форма>, <Окно>)
5 bootini
 
24.05.16
16:23
(4) Ой, спс. Слона то я не заметил.

Как же теперь программно-измененную форму открыть с оповещением?
6 Сергиус
 
24.05.16
16:40
(5)

ОткрытьФорму(ФормаВопроса)
7 bootini
 
24.05.16
17:09
(6) Нет так не подходит не перехватывает закрытие формы, а мне как раз это надо чтобы получить ответ от ФормыВопроса без использования модальности.
8 Nuobu
 
24.05.16
17:10
(7) ПоказатьФорму??
9 Nuobu
 
24.05.16
17:11
(8) ой, туплю. в (6) правильно написано.
10 bootini
 
24.05.16
17:38
http://v8.1c.ru/o7/201301nm/

Вот тут пример с получением текста из из одной формы в другую. Мне надо примерно тоже самое, только в форме где вводится текст, вместо слова "Текст" предварительно вписывать вопрос, который берется из справочника(т.е. программно изменить форму) и только тогда открывать форму с обработчиком оповещения.
11 singlych
 
24.05.16
17:45
Почему бы тупо не открыть форму вопроса через ОткрытьФорму, не передать структуру СтруктураВопроса через параметры и не реализовать логику из (0) в форме вопроса в ПриСозданииНаСервере?
12 lodger
 
24.05.16
17:54
а ПоказатьВопрос() не канает?
13 bootini
 
24.05.16
18:00
(11) Да, спс, так правильно, уже начал переделывать.
14 singlych
 
24.05.16
18:12
(12) там походу не тот вопрос
15 lodger
 
24.05.16
18:16
(14)
СписокЗначений
ДаНет
ДаНетОтмена
ОК
ОКОтмена
ПовторитьОтмена
ПрерватьПовторитьПропустить

вот какой еще вопрос может быть?
16 singlych
 
24.05.16
18:20
(15) еще бывают вопросы с выбором нескольких вариантов или вообще открытые.
17 bootini
 
24.05.16
18:25
(12) Да, там вопрос и несколько вариантов ответ, тестирование короче. Нужно получить номер ответа(Флажка), который отметил пользователь.
18 lodger
 
24.05.16
18:27
(16) ну только если множественный выбор.
для текстового поля есть ПоказатьВводСтроки.
19 lodger
 
24.05.16
18:27
(17) вопросы ответы и правильные ответы где лежат?
20 bootini
 
24.05.16
18:39
(19) Структуре СтруктураВопроса лежат тексты вопроса и ответов. ПриСозданииНаСервере форма заполняется, тест вопроса и заголовки флажков, соответственно включается видимость флажков. С программным добавлением полей флажков на форму не стал заморачиваться, знаю что больше 8 вариантов ответов быить не может, тупо добавил 10 полей и видимость ложь.
21 lodger
 
24.05.16
18:53
ну так то балалайка какая-то. форму-открой-закрой 20 раз ради кучки текста.
не проще весь тест отправить на клиента и пускай живет у себя там пока не надоест или не пройдет тест?
22 bootini
 
24.05.16
19:31
(21) Не представляю как это, но у меня сначала на клиентье выбирается Раздел(эл. справочника) тестирования, на сервере формируется список вопросов(справочник подчененный справочнику "Разделы") из этого раздела, перемешиваются случайным образом и заполняются в ТЧ документа. А потом бежим по ТЧ дока. выбираем вопрос, тащим из регистра варианты ответов и выводим пользователю, получаем от пользователя номер ответа и пишем в док.
23 lodger
 
25.05.16
16:09
(22) как я примерно вижу это дело:
а) сформировался список вопросов. запрошены все необходимые данные из регистров.
б) собралось ТЗ или структура текстов ответов передалось в форму проведения опроса.
в) программно прорисовалась форма со страницами вопросами с ответами внутри и временем жизни экзаменовки.
г) по выполнению, выходу или окончании времени форируется ТЗ или структура с отмеченными пунктами и отдается назад.
д) проверка и результат.