К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Некорректная работа метода Popup()?

Гость
0 - 28.05.2015 - 13:14
Использую следующий код в процедуре &НаСервере:
Для Каждого СтрокаТЗ из ТЗ Цикл
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Popup(ТекстСообщения2,3,"Загрузка оборотов",64);
КонецЦикла;
Окно не закрывается по таймауту через 3 секунды (2-й параметр метода), висит до интерактивного нажатия. Причем, если окно 1С свернуть, то popup отрабатывает нормально - появится и пропадет само.
Где собака порылась? Как заставить срабатывать таймаут? Самое интересное, что и послать команду нажатия клавиши SendKey() не могу - она ждет завершения предыдущего метода (popup).



Гость
1 - 28.05.2015 - 14:34
Для Каждого СтрокаТЗ из ТЗ Цикл
WshShell = Новый COMОбъект("WScript.Shell");

...
Ой.
Гость
2 - 28.05.2015 - 14:39
(1) Пока в отладке обработка, потом отлакирую. Мне бы побороть хрень с сабж.
Гость
3 - 28.05.2015 - 14:45
2-US1C > Не надо ЭТО отлакировывать.
Гость
4 - 28.05.2015 - 14:48
(3) Хорошо. Не буду.
Гость
5 - 28.05.2015 - 15:22
4-US1C > Уффф...
Во-первых, в VSH можно использовать подпрограммы, выводя всяческие создания объектов из-под циклов.
Во-вторых, вообще неча что-то выводить таким варваским способом на монитор. Это ты явно злоупотребляешь терминалом: а если у нас сеть? Просто сеть, а?
В третьих, есть наработанные методики вывода сообщений на экран пользователю.
Есть метод сообщения через всплывающее окно.
Есть простейший метод, когда сообщения, выданные в серверном режиме, проявляются после возврата в клиентский (ты его не хочешь, понятно из сабжа).
Наконец, есть метод, когды ты в серверном режиме организуешь сам независимое всплывающее окно, и выводишь инфу туда.
Вариант прогресса при обновлении, например: на форме зарезервирован для этого реквизит, и обработка (в серверном режиме) этот реквизит постоянно изменяет.
Гость
6 - 28.05.2015 - 15:31
(5) Спасибо за развернутый ответ.
Насчет создания объектов в цикле уже понял.
Обработка будет крутиться у меня на локальном компе - никому проблем не создам. Сообщения стандартные не устраивают. Через реквизит формы попробовал использовать метод Состояние() - не взлетело. Т.е. сначала показал мне прогрессбар 1% и окно пропало, все остальное осталось за кадром до окончания обработки. Как заставить его висеть на протяжении всей обработки?
Гость
7 - 28.05.2015 - 15:42
6-US1C > Щаз, поищу.
Гость
8 - 28.05.2015 - 16:06
6-US1C > Посмотри на инфостарте у Душелова (баллов не требует). У него есть примерчик вывода сообщений в процессе обработки запроса.
Через Состояние(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Там всего ничего: форма с кнопкой, и вся музыка в модуле формы: Запускается в сервере Запрос, потом результат просматривается, одновременно генерируя сообщение в правом нижнем углу.
Там вообщено, иллюстрация прогресса, но ничто не мешает таким способом и сообщать что-то внятное.
Гость
9 - 28.05.2015 - 16:13
(8) По абонементу.
Гость
10 - 28.05.2015 - 16:21
9-US1C > Смотри личку.
Гость
11 - 28.05.2015 - 16:28
(10) Спасибо! Щас буду внедрять в свою.
Гость
12 - 28.05.2015 - 17:10
(10) Засада. Там цикл в процедуре &наКлиенте обращается к серверной процедуре, затем в процедуре &НаКлиенте генерит Состояние(). У меня весь цикл в серверной процедуре.
Гость
13 - 28.05.2015 - 17:40
12-US1C > Ну, снабди свою обработку формой. Её ведь можно и не открывать ;)
А вот модулем формы снабдить вполне.

Как-то разделить придется. С сервера выдачи нет без клиента.


К списку вопросов






Copyright ©, Все права защищены