8.х предупреждение закрыть программно, узнать о появлении окна предупреждения

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Svetatvt, 29 ноя 2009.

  1. TopicStarter Overlay
    Svetatvt
    Offline

    Svetatvt

    Регистрация:
    29 ноя 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Написана внешняя обработка, которая создает и проводит документы. При обращении к процедуре документа "обработкаПроведения", если какие-то обязательные реквизиты не заполнены выдается предупреждение (вызов предупреждения происходит одной из процедур, вызываемой в процедуре документа) .
    Как узнать, что выдано предупреждение, чтобы закрыть его программным способом, а не ручками? Вывод предупреждений зависит от установленной константы "ПриПроведенииВыводитьТолькоСообщения". Но дело в том, что обработка запускается часто и разными пользователями и не хотелось бы постоянно изменять значение константы.
    Нашла один способ, но он ненадежный: При обновленииОтображения основной формы обработки, если значение переменной "Стопор" = Истина вызываю процедуру ЗакрытьПредупреждение() (значение переменной Стопор устанавливается при попытке проведения документа в зависимости от константы), а отображение формы изменяется, так как при выдаче Предупреждения поверх формы в модальном режиме изменяется цвет загаловка основной формы (становится серым). пока работает, но а вдруг отображение обновится по какой-либо другой причине и при этом у меня переменная "стопор" будет равна истине, тогда процедурой ЗакрытьПредупреждение() могу закрыть саму программу, так как
    в процедуре ЗакрытьПредупреждение() просто эмулирую нажатие клавиш Alt+F4.
    Процедура ЗакрытьПредупреждение()
    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.SendKeys("%{F4}");
    КонецПроцедуры
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Установите в предупреждениях таймаут, и будут они сами закрываться.
  3. TopicStarter Overlay
    Svetatvt
    Offline

    Svetatvt

    Регистрация:
    29 ноя 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    В коде программы нельзя ничего изменять, мне нужно это сделать как-то во внешней обработке, а предупреждение вызывается процедурой документа
  4. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Еще одно направление рассуждений:
    переложить код на сервер ;) (если используется "клиент-сервер")

Поделиться этой страницей