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 > Ну, снабди свою обработку формой. Её ведь можно и не открывать ;) А вот модулем формы снабдить вполне. Как-то разделить придется. С сервера выдачи нет без клиента. | |
| Интернет-форум Краснодарского края и Краснодара |