Закрыть модальное окно программно.

1. sevenlis 71 17.09.07 13:56 Сейчас в теме
Во время проведения дока открываю модальное окно обработки, чтобы выдать сообщение. Но вот надо бы его закрыть через 10 сек., если пользователь в ступоре... А не получается. Попробовал так (в форме обработки):
Код
//*******************************************
Процедура ЗакрытьФорму() 
   Док.Действие=3;
   Форма.ОбработкаОжидания("ЗакрытьФорму",0);
   Форма.Закрыть();
КонецПроцедуры
//******************************************* 
Процедура ПриОткрытии() 
   Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" Тогда  
      Док=Форма.Параметр.Получить("Контекст");
      Форма.ТекстСообщения.Заголовок(Форма.Параметр.Получить("ТекстСообщения"));
   КонецЕсли;
   Форма.ОбработкаОжидания("ЗакрытьФорму", 10);
КонецПроцедуры
//*******************************************
Показать полностью

не работает. Хелп! И возможно ли без использования ВК?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ssp_ 155 17.09.07 17:15 Сейчас в теме
В модальных формах не работает ОбработкаОжидания()
но есть решение без использования ВК.

http://avb1c.narod.ru/?=a20
3. sashulyT 201 17.09.07 17:19 Сейчас в теме
строка

Форма.ОбработкаОжидания("ЗакрытьФорму",0);

не нужна
4. sevenlis 71 17.09.07 17:33 Сейчас в теме
спс. будем разбираться. о результатах сообщу.
5. sevenlis 71 17.09.07 18:40 Сейчас в теме
все. работает. _GetPerformanceCounter() рулит! спасибо. сам бы тоже догадался, но не скоро... еще рас спасибы!
6. sevenlis 71 17.09.07 18:41 Сейчас в теме
текст с формулой в качестве обработки ожидания. а уж посчитать время от начала события - см. пред. пост.
7. CheBurator 2684 17.09.07 19:05 Сейчас в теме
В проведение пихать вопрос - двойка.
Вместо модального окна выдай Предупреждение("Программер-ламер!",60) - будет ждать 1 мин.
+ есть решение в формексе вроде обработку ожидания мождно и для модального окна
8. coder1cv8 3478 18.09.07 08:55 Сейчас в теме
9. sevenlis 71 19.09.07 21:03 Сейчас в теме
Сhe Burashka Написал:
-------------------------------------------------------
> В проведение пихать вопрос - двойка.
> Вместо модального окна выдай
> Предупреждение("Программер-ламер!",60) - будет
> ждать 1 мин.
> + есть решение в формексе вроде обработку ожидания
> мождно и для модального окна

Че, ты прав, конечно. Но. Это - замут самого пользователя. Уж очень любит он такие в**боны. Решение уже найдено и внедрено. Юзверь одобрил. Оч даже понравилось ему.
Смысл в чем: во время проведения снимается профит из регистра партий и передается в эту модальную обработку, которая спрашивает, чо делать: игнорировать тек. позицию, игнорировать все, или не проводить документ вообще. А когда у него (юзверя) манагер тупит и смотрит на модальное окно как баран - база для всех в незаконченой транзакции зависла. Я это понимаю, юзверь это понимает, а вот манагер - не понимает. И мешает всем работать. Поэтому по таймауту - не проводим нафиг да и все.

ЗЫ: Когда МонопольныйРежим()=1 никаких обработок, предупреждений, сообщений и т.п. не выводится.
10. poppy 20.09.07 00:30 Сейчас в теме
LiS Написал:
-------------------------------------------------------
> ЗЫ: Когда МонопольныйРежим()=1 никаких обработок,
> предупреждений, сообщений и т.п. не выводится.

ИМХО правильный замут. Это нужно для перепроведения документов и восстановления последовательности.

Но ИМХО нельзя исключать программного (пакетного) [пере]проведения документов в немонопольном режиме. Подумай об этом...
11. ssp_ 155 20.09.07 08:50 Сейчас в теме
LiS Написал:
> Смысл в чем: во время проведения снимается профит
> из регистра партий и передается в эту модальную
> обработку, которая спрашивает, чо делать:
> игнорировать тек. позицию, игнорировать все, или
> не проводить документ вообще.

Я бы эту проверку вставил до проведения документа. Делается так:
В формуле кнопки Провести:
ПроверкаПередПроведением(); #Записать Провести

В модуле формы:
Код
Процедура ПроверкаПередПроведением()
    // здесь проверяем, задаем вопросы
    Если РешилиЧтоНеНадоПроводить=1 Тогда
        СтрокаДействийФормы="Записать";
    КонецЕсли;
КонецПроцедуры
Показать полностью


Заодно решается проблема, о которой написала poppy.

2 Сhe Burashka:
Использовать Предупреждение() или Вопрос() в процедуре проведения - еще большая засада, чем модальную форму обработки. Ибо в них тайм-аут работает только при активном окне 1С. Вредителей, которые бросают одинэску на открытых модальных окнах, и переключаются в другие приложения, достаточно.
12. sevenlis 71 20.09.07 17:02 Сейчас в теме
для того, чтобы сделать ПроверкуПередПроведением() и правильно сосчитать профит, в регистре партий _текущий документ_ уже должен сделать движения. так что получается: Провести(); ?(Проверить()=0, СделатьНеПроведенным(), 1); так что ли? только вот незадача: клиент сетует на то, что доки медленно проводятся. и не мудрено: база работает с 2003 г. да еще и по сети. да еще и не скуль. терминалы не хотят. из соображений безопасности. сворачиваться пока тоже не хотят.
2poppy: да. я над этим думаю и помню, спасибо. такой хитрый замес только в одном документе нужен. в расходной накладной. и все.
13. ssp_ 155 20.09.07 17:18 Сейчас в теме
LiS Написал:
-------------------------------------------------------
> для того, чтобы сделать ПроверкуПередПроведением()
> и правильно сосчитать профит, в регистре партий
> _текущий документ_ уже должен сделать движения.
> так что получается: Провести(); ?(Проверить()=0,
> СделатьНеПроведенным(), 1); так что ли?

Не, так дела не будет.
Надо делать отдельную процедуру расчета профита. По аналогии с той, что в процедуре проведения, только без движений.

В чем же терминал представляет угрозу безопасности? ИМХО наоборот при грамотном подходе безопасность выше.
14. sevenlis 71 20.09.07 18:20 Сейчас в теме
ssp_ Написал:
-------------------------------------------------------

> Не, так дела не будет.
> Надо делать отдельную процедуру расчета профита.
> По аналогии с той, что в процедуре проведения,
> только без движений.
как же без движений? ВыгрузитьИтоги разве что... а там ХЕЗ какая партия под распределение попадет... хотя тоже вычисляемо. тока невпример больше кода кромать. а так - юзверь захотел - нате получите.

> В чем же терминал представляет угрозу
> безопасности? ИМХО наоборот при грамотном подходе
> безопасность выше.
да, просто грамотно подойтить нада. однако у них там 2000 сервер настроенный под ИИС, так что в терминал только админов и пускает. а как говорится, два админа на один сервак - это как у семи нянек... так что пусть сами со своим админом разбираются. нехватало мне еще между молотом и наковальней лезть. мое дело предложить и вежливо послать, когда недосуг.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот