![]() |
Некорректная работа метода Popup()? Использую следующий код в процедуре &НаСервере: Для Каждого СтрокаТЗ из ТЗ Цикл WshShell = Новый COMОбъект("WScript.Shell"); WshShell.Popup(ТекстСообщения2,3,"Загрузка оборотов",64); КонецЦикла; Окно не закрывается по таймауту через 3 секунды (2-й параметр метода), висит до интерактивного нажатия. Причем, если окно 1С свернуть, то popup отрабатывает нормально - появится и пропадет само. Где собака порылась? Как заставить срабатывать таймаут? Самое интересное, что и послать команду нажатия клавиши SendKey() не могу - она ждет завершения предыдущего метода (popup). |
[em][b]Для Каждого[/b] СтрокаТЗ из ТЗ [b]Цикл[/b] WshShell = [b]Новый[/b] COMОбъект("WScript.Shell");[/em] ... Ой. |
(1) Пока в отладке обработка, потом отлакирую. Мне бы побороть хрень с сабж. |
2-US1C > Не надо [em]ЭТО[/em] отлакировывать. |
(3) Хорошо. Не буду. |
4-US1C > Уффф... Во-первых, в VSH можно использовать подпрограммы, выводя всяческие создания объектов из-под циклов. Во-вторых, вообще неча что-то выводить таким варваским способом на монитор. Это ты явно злоупотребляешь терминалом: а если у нас сеть? Просто сеть, а? В третьих, есть наработанные методики вывода сообщений на экран пользователю. Есть метод сообщения через всплывающее окно. Есть простейший метод, когда сообщения, выданные в серверном режиме, проявляются после возврата в клиентский (ты его не хочешь, понятно из сабжа). Наконец, есть метод, когды ты в серверном режиме организуешь сам независимое всплывающее окно, и выводишь инфу туда. Вариант прогресса при обновлении, например: на форме зарезервирован для этого реквизит, и обработка (в серверном режиме) этот реквизит постоянно изменяет. |
(5) Спасибо за развернутый ответ. Насчет создания объектов в цикле уже понял. Обработка будет крутиться у меня на локальном компе - никому проблем не создам. Сообщения стандартные не устраивают. Через реквизит формы попробовал использовать метод Состояние() - не взлетело. Т.е. сначала показал мне прогрессбар 1% и окно пропало, все остальное осталось за кадром до окончания обработки. Как заставить его висеть на протяжении всей обработки? |
6-US1C > Щаз, поищу. |
6-US1C > Посмотри на инфостарте у Душелова (баллов не требует). У него есть примерчик вывода сообщений в процессе обработки запроса. Через Состояние(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>) Там всего ничего: форма с кнопкой, и вся музыка в модуле формы: Запускается в сервере Запрос, потом результат просматривается, одновременно генерируя сообщение в правом нижнем углу. Там вообщено, иллюстрация прогресса, но ничто не мешает таким способом и сообщать что-то внятное. |
(8) По абонементу. |
9-US1C > Смотри личку. |
(10) Спасибо! Щас буду внедрять в свою. |
(10) Засада. Там цикл в процедуре &наКлиенте обращается к серверной процедуре, затем в процедуре &НаКлиенте генерит Состояние(). У меня весь цикл в серверной процедуре. |
12-US1C > Ну, снабди свою обработку формой. Её ведь можно и не открывать ;) А вот модулем формы снабдить вполне. Как-то разделить придется. С сервера выдачи нет без клиента. |
Текущее время: 15:28. Часовой пояс GMT +3. |