Змінюй хід війни! Допомагай ЗСУ!

вопрос по 1с

🔴 09:00 Повітряна тривога в Харків.обл.
Статус: Offline
Реєстрація: 23.08.2006
Повідом.: 1220
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #1
вопрос по 1с

Может кто знает, как можно в 1с програмно закрыть окно сообщений?
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #2
Зайди на Посилання видалено. Раньше был самый толковый форум по 1С
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #3
Спасибо, но там ответа нет:(

Да, речь идет о версии 8.1
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #4
Посилання видалено
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #5
Для данной наработки использовался
Windows Script Host - Позволяет писать скрипты на VB и JScript
Можно скачать по адресу:
Посилання видалено


«Как закрыть окно сообщений после того, как туда выведено всё, что нужно ?»

Этот вопрос актуален в нескольких случаях:
1. Когда сбоит V7Plus или другое внешнее приложение, при запуске 1С-Предприятие,
а сообщения уже общеизвестны “не найден ClassID” или др., то как правило
пользователей это раздражает и желательно все-таки программно закрыть окошко.
2. Делаем большую обработку – она обрабатывается довольно долго – пишет
Сообщения – которые нужно прочитать – но через N-секунд надо окно закрыть
Можно руками – но лучше программно.

Для работы данной функции, надо чтобы был установлен Windows Script Host
Код:
Функция гл_ЗакрытьОкноСообщений() Экспорт 
  Попытка 
    wshShell=СоздатьОбъект("wScript.shell");
    wshShell.appActivate("1С:Предприятие");
    wshShell.sendKeys("^+(z)");
    wshShell.sendKeys("^+(я)"); //разрешение проблемы с раскладкой 
    Возврат 1;
  Исключение 
    Возврат 0;
  КонецПопытки;
КонецФункции
//-----------------------------------------------------------------------------
Процедура ОчиститьОкно() Экспорт 
  Если  гл_ЗакрытьОкноСообщений()=0 then
     Предупреждение("Неудача :(");
   КонецЕсли;
КонецПроцедуры
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #6
Очень замороченно.
Вернее сказать не очень:) но при переносе базы/перестановке базы нужно еще вспомнить об установленном Windows Script Host.
интересуеь именно вариант решенный только методами 1с
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #7
о ужос, это же ruby тока по-русски
простити за офтоп, не удержался
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #8
Очень замороченно.
Вернее сказать не очень:) но при переносе базы/перестановке базы нужно еще вспомнить об установленном Windows Script Host.
интересуеь именно вариант решенный только методами 1с
Методами 1С пока никак, можно через WinAPI так ничего устанавливать не прийдется но так сложнее, надо отлавливать хэндл окна и т.п.

Кажется еще была внешняя компонента...

З.Ы. можно сделать проверку при первом запуске конфы на наличие Windows Script Host если нет выдавать сообщение и ссылочку где его скачать...:клас:
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #9
на winapi кстати относительно несложно.
както наваял прогу, которая при появлении окна печать в 1с ставила количество копий=1 :)
вроде сначала ищет окна приложения
EnumWindows((WNDENUMPROC)EnumWinCallback,0);,
а потом окна самого приложения
EnumChildWindows(hWnd,(WNDENUMPROC)EnumChild,0).
немного отладки и все прелестно работает. :)

могу запостить исходник, если нуна (она только окна не закрывает, и ищет не окно сообщений, а принтер :))
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #10
Ребят в чем ошибка??
// На чтение
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Переменная = Выборка.Наименование;

// Обработка полученого сообщения

КонецЦикла;

{Справочник.Номенклатура.Форма.ФормаВыбора.Форма(2,11)}: Переменная не определена (Справочники)
Выборка = <<?>>Справочники.Номенклатура.Выбрать(); (Проверка: Тонкий клиент)
 
  • 🔴 09:00 Повітряна тривога в Харків.обл.
  • #11
Ребят в чем ошибка??
// На чтение
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Переменная = Выборка.Наименование;

// Обработка полученого сообщения

КонецЦикла;

{Справочник.Номенклатура.Форма.ФормаВыбора.Форма(2,11)}: Переменная не определена (Справочники)
Выборка = <<?>>Справочники.Номенклатура.Выбрать(); (Проверка: Тонкий клиент)

Ошибка в том что ты пытаешься на клиенте выполнить код, который должен выполнятся на сервере, почитай:

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


З.Ы. надеюсь АК47 имеется ввиду оружие а не малолетний имбицил
 
Назад
Зверху Знизу