Всем привет!
Платформа 8.3.13
Дано: Предположим есть две базы 1С с разными конфигурациями. Мне нужно при определенных действиях пользователя проверить запущена ли вторая база 1С, если не запущена - то запустить, иначе активировать окно второй 1С.
Вопрос: Есть ли у кого-то пример как можно проверить открыта ли вторая база 1С (причем нужно определить что это именно та вторая база, их может быть 100), и если открыта - то активизировать окно? может есть какой-то скрипт? пока все примеры что находил - это утилитки на С# которые выводят на форму перечень запущенных процессов 1С с возможностью их закрытия. Мне же нужно как-то получить этот перечень в 1С, среди всех найти нужный и активировать окно с ним...
Хинт: Во второй базе настройте заголовок окна, чтобы он содержал имя базы и сервера, а затем уже допиливать внешнюю утилитку, чтобы она по заголовку окна искала/активизировала/открывала.
Как-то так
Если РольДоступна("ПолныеПрава") Тогда
ЗаголовокСистемы = ЗаголовокСистемы + СтрокаСоединенияИнформационнойБазы();
КонецЕсли;
У меня когда-то была подобная задача - выводить на передний план окно сторонней программы, если оно не на переднем плане или свернуто. Делал я это с помощью внешней компоненты, окно искалось по заголовку. Только средствами 1С вряд ли это можно сделать.
О, вот и компонента необходимо зарегистрироваться для просмотра ссылки
Vofka @ Вчера, 17:36 необходимо зарегистрироваться для просмотра ссылки
,
Спасибо, посмотрю.
Я думал попробовать Sell-овской командой типа tasklist получить все процессы, фильтрануть их чтобы остались только процессы 1С, а дальше играться с ID процесса как-то. Но не знаю как получить из командной строки Shell результат команды, т.е. грубо говоря считать результат команды в какую-то текстовую переменную в 1С.
Bernet, я сомневаюсь, что process id, в данном случае, что-то полезное вам даст. Процесс может быть один, окон от него может быть много. Поэтому тут нужно именно окно искать. Ваша задача, на мой взгляд, сводится к тому, что бы в одной программе как-то узнать заголовок окна второй программы (например, как pablo подсказал либо по каком-либо другому признаку/правилу) и с помощью компоненты его активировать.
Vofka @ Сегодня, 10:47 необходимо зарегистрироваться для просмотра ссылки
,
Попробовал вашу компоненту, получилось активировать окно второй 1С по заголовку. Жалко только что там метод а не функция - программно непонятно смогло оно окно открыть или нет, теперь надо придумать каким способом узнать открыта вторая 1С или нет, если нет то запустить
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.