Привет!
Понадобилось мне разворачивать окно 1С при "стечении определенных обстоятельств". Тыкал мыкал, что-то никак. Вспомнил про
1С Notifier, там вроде что-то такое было. Проверил - не работает. Почему не работает - фиг знает. И исходники искать надо. Короче, беда.
Пришлось писать компоненту, которая работала бы. Делюсь с вами.
Подключается стандартным способом:
Если Компонента = Неопределено Тогда
Если Не ПодключитьВнешнююКомпоненту("AddIn.WindowActivator") Тогда
Предупреждение("Не удалось загрузить компоненту");
Отказ = Истина;
КонецЕсли;
Попытка
Компонента = Новый("AddIn.WindowActivator");
Исключение
Отказ = Истина;
КонецПопытки;
КонецЕсли;
У компоненты один метод:
Компонента.Activate(ИмяОкна, Режим);
ИмяОкна - тип Строка - имя требуемого окна, как оно пишется в диспетчере задач. Если нужно развернуть текущее окно 1С, то для определения имени окна в 1С я использую 1С-ную функция
ПолучитьЗаголовокПриложения()Режим - тип Строка - есть 3 варианта:
- NORMAL - разворачивает окно в нормальном режиме
- MAXIMIZED - разворачивает окно на полный экран
- RESTORE - разворачивает окно в том виде, как оно было. Т.е. если спрятанное окно было развернуто на весь экран - появится на весь экран. Если было не на весь экран - появится не на весь экран
- Если передать туда что-то, кроме этих 3 вариантов, то будет использован режим RESTORE
Для того, чтобы компонента работала - её нужно зарегистрировать в системе. Делается это тоже обычным способом. Запускаем от имени администратора командную строку и пишем там:
regasm <Путь к компоненте> /codebaseЕсли после этого в окне командной строки вконце написало Types registered successfully - то все прошло нормально.
Желательно, чтобы в системе был установлен .NET Framework 4. На меньшем не проверял, но может и на меньших версиях работать будет.
Работа проверялась на платформа 8.2.19.130.
На 7.7 не проверял, но теоретически, должно и там работать.
Скачать:
WindowActivator.zip ( 5,8 килобайт )
Кол-во скачиваний: 43Пароль к архиву вы знаете
Сообщение отредактировал Vofka - 02.03.17, 15:36