Имя: Пароль:
1C
 
ПоказатьВводСтроки() ПриОткрытии()
0 Сметанин
 
25.07.18
12:41
Всем доброго дня.

Такая задача. Внешнюю обработку нужно защитить паролем при запуске.

В модуле формы пишу такой код:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Строка = "";
    ОписаниеОповещения = Новый ОписаниеОповещения("ПроверкаКода", ЭтаФорма);
    ПоказатьВводСтроки(ОписаниеОповещения, Строка, "Введите код");
    Если ВведенныйКод <> "123" Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПроверкаКода(ПолученноеЗначение, ПереданныеПараметры) Экспорт
    ВведенныйКод = ПолученноеЗначение;
КонецПроцедуры

ВведенныйКод  - это реквизит формы.
Процедура не отрабатывает так как нужно, то есть ВведенныйКод  при проверке остается пустое. Как правильно написать?
1 Сметанин
 
25.07.18
12:42
Через ВвестиСтроку работает, но ругается, что использование модальных окон запрещено
2 Малыш Джон
 
25.07.18
12:44
"при проверке  остается пустое": проверка - это условие в процедуре ПриОткрытии()?
3 Сметанин
 
25.07.18
12:44
да
4 spectre1978
 
25.07.18
12:45
(0) наверно, придется поменять логику. По умолчанию форма должна открываться. Но - неработоспособной (например, все поля и кнопки неактивные). И только при наличии верного пароля все должно ожить.
5 Сметанин
 
25.07.18
12:53
(4) В этом случае все равно придется писать условие ПриОткрытии, а там введенный пароль не получается проверить
6 Сметанин
 
25.07.18
13:04
(4) Хотя можно делать проверку при нажатии на кнопку выполнения. За идею спасибо
7 hhhh
 
25.07.18
13:06
(5) ну так

&НаКлиенте
Процедура ПроверкаКода(ПолученноеЗначение, ПереданныеПараметры) Экспорт
    ВведенныйКод = ПолученноеЗначение;
    Если ВведенныйКод <> "123" Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры
8 Малыш Джон
 
25.07.18
13:07
(3) потому что это немодальные окна

Ты ПоказатьВВодСтроки() запустил, оповещение сделал, но ПриОткрытии() от этого не затормозилось, а как продолжало выполняться - так и выполняется
9 Малыш Джон
 
25.07.18
13:08
(7) а на что этот Отказ будет влиять?
10 Сметанин
 
25.07.18
13:09
(7) Так не работает. Форма всегда открывается
11 hhhh
 
25.07.18
13:10
(9) ну так тогда


&НаКлиенте
Процедура ПроверкаКода(ПолученноеЗначение, ПереданныеПараметры) Экспорт
    ВведенныйКод = ПолученноеЗначение;
    Если ВведенныйКод <> "123" Тогда
        Закрыть();
    КонецЕсли;
КонецПроцедуры
12 D_E_S_131
 
25.07.18
13:11
(10) Вместо "отказа" поставь "Закрыть()"
13 Малыш Джон
 
25.07.18
13:11
(10) ставь форму только на просмотр при открытии

а в оповещении - если прошел проверку - разблокируешь, нет - закрываешь форму
14 Сметанин
 
25.07.18
13:17
(11) (12) Спасибо! работает