Каждое звено является отдельной машиной. Клиенты подключаются через удаленное приложение. Бывают ситуации (например разрыв связи между тачками или проблемы с базой), когда пользователи не могут работать. Тех поддержка узнает о сбое зачастую спустя некоторое время от пользователей. Для более оперативного получения информации рассматриваем вариант периодического выполнения скрипта с локального ПК юзера который бы:
- запускал удаленное приложение 1С
- делал попытку авторизации
- в случае успешной авторизации выключался
- в противном случае отправлял письмо на ряд почтовых адресов
Собственно, есть у кого то нечто подобное(скрипт)?
P.S. Удавалось реализовывать схожий функционал при подключении Zabbix-ом к web-интерфейсу 1С. Однако, в силу определенных причин, в данной ситуации нет ни Zabbix ни опубликованной базы.
(1) zabbix был бы идеальным решением, но раз нет, то можете:
1. Скачать onescript (http://oscript.io/) 2. Установить его
3. Открыть cmd от админа, ввести команду "opm install InternetMail" для установки поддержки отправки мейлов (https://github.com/dmpas/oscript-mail) 4. Сами быстро накидать свой скрипт на привичном для вас языке "1С"
- в случае успешной авторизации выключался
- в противном случае отправлял письмо на ряд почтовых адресов
Вот как, интересно, вы собираетесь получить ответку от 1С, что предлагаете мониторить, какой параметр, по этим двум событиям - "успешной" авторизации и отказа?
Если учесть, что это не служба Windows (запуск базы 1С), она даже в логи ничего не пишет - чего, как там у неё происходит..
То, что вы с веб-сервером там что-то реализовали - так это вы события авторизации веб-сервера контролировали, а не самой 1С.
1С - это не веб-сервер ))
(8) ну попробуйте REST-запрос получить от 1С ))
И ответ вы получали не от базы, а от её публикации на веб-сервере, что не одно и то же.
Т.е., фактически, вы переговаривались с веб-сервером, а не с 1С.
А так да, попробуйте GET или POST запросить непосредственно к 1С-серверу - думаю, сразу станет все ясно ))
(8) ну как может быть готовое решение, если две причины, указанные в (7), непреодолимы? ))
Вот если использовать кого-то, посредника, кто будет фиксировать события входа, отказа, и прочие "системные" срабатывания 1С-сервера, - типа веб-сервера, - тогда да.
Но суть в том, что 1С-сервер - это закрытая система, и получить к нему доступ, если это не оговорено особо (через доступ к базам, веб-сервер и тому подобное), невозможно.
(10) (9) серьезно? Мне ответ придет данными публикации, а не базы ?
Удивительные вы для меня вещи рассказываете. Спасибо, что открыли глаза.
Однако, то что было реализовано и как - то так и должно было быть. Там и цели были немного другие и инструменты их достижения. Собственно, ваше мнение, по приведенному мною примеру, не особо интересно.
попробуйте GET или POST запросить непосредственно к 1С-серверу
1С-сервер - это закрытая система
Чего?! При чем тут сервер 1С?! Задача ровно такова как она описана. Если у вас нет идей по нахождению решения в описанных условиях, то дальнейшее обсуждение вопроса с вами бессмысленно.
Хотя, вы, похоже, не знаете, что здесь с чем работает, и причем тут 1С-сервер.
И да, просто интересно - кто, по-вашему, выдает окно авторизации и проверяет ввод при входе в базу в системе 1С?
Вы, ровно, считаете, что это Windows.
(12) Да при чем тут сервер 1С, когда на локальной тачке ключевого юзера, где должен быть размещен скрипт-проверялка нет связи - уборщица кабель вытащила?! Мне не важно что там с сервером 1С или сервером баз данных или терминальным сервером. Важно лишь получить сообщение того, что приложение 1С (как сочетание вот этой вот всей архитектуры) недоступно, до того как юзер попытается в нем поработать!
Хорошо, пусть я не понимаю что такое 1С-сервер и
И да, просто интересно - кто, по-вашему, выдает окно авторизации и проверяет ввод при входе в базу в системе 1С?
Вы, ровно, считаете, что это Windows.
считаю ровно как вы написали. Избавьте меня только от вашего участия.
(13) наверное, вы считаете, что круто разбираетесь в Линуксе, и во всяких виндовых-линуксовых скриптах?
Если вы с таким нахрапом и помпой влезли в 1С, плюете на советы, и считаете, что 1С - это всего лишь "приблуда", которые "да я их сотнями в линуксе через скрипты кидал!", то я бы засомневался, и все-таки, отправил вас на переобучение.
В Линуксе в том числе.
Боюсь, беседа с AlexO может продолжаться бесконечно, чего он собственно и добивается.
Если вдруг, из условия не очевидно, что авторизоваться в Windows недостаточно, то перефразирую:
- запустить удаленное приложение с локальной тачки
- авторизоваться в терминальной сессии
- запустить клиентское приложение 1С
- авторизоваться в нем
- получить некоторый ответ, который можем считать положительным
- при невыполнении любого из выше описанных пунктов оповестить по почте
(16) Да, я представляю в какую сторону надо смотреть, если не удастся получить готовое решение.
Хотелось бы подольше оттянуть знакомство с 1Script, но похоже, увы, без него эту задачу не решить)
такого языка не существует.
Все скрипты - исключительно на языках, поддерживаемых ОС, и в рамках неких сторонних оболочек, так или иначе работающих с 1С, но не "контролирующих" её.
Но не напрямую в 1С.
И да, есть немножечко ключей, которые можно задать при запуске сервера-приложения 1С. Вот и весь "скриптовой" набор от 1С.
А "OScript" - это, видимо, вам так дали общее название "скриптовые языки ОС" - всякие VBS, PShell, CMD и прочие.
(21)все скриптовые "языки" - конечно, не являются языками программирования в полной мере.
Но и сочетание "1С" и "Script" - это моветон: 1С плохо дружит с любыми скриптовыми языками, позволяя им делать только весьма примитивные операции, да и то - изнутри, а не "снаружи", как вы хотите.
А если про язык 1С - то он называется "Конфигурирование в 1С", но - никак и никоим боком к скриптам не лежал )
(25) а с чего вы взяли, что это - какой-то скриптовый язык?
Это очередная поделка "для своих", надстройка над функциями 1С.
Которые она вольна давать, волна - закрывать доступ.
Там нет своего компилятора, это, всего лишь - сборка возможностей и методов работы с 1С.
Там собраны воедино все, что кое-как, и как-нибудь "работает" с 1С - и COM, и VS, и CMD, и свои какие-то "левые" библиотеки, которые сугубо 100% "стабильна" лишь на компе своего создателя, и ADO, которое для 1С никак не указ, а фича, мешающая жить.
Аналогично - так это давно есть Телепат, или Снегопат для 8-ки, все тоже самое, и "встроено" в 1С (в конфигуратор). Но и там, несмотря на то, что проекту немеряна куча лет, и перетек из 7.7 - все так же неменьшая куча проблем (несовместимость версий, изменение библиотек 1С, реализация какого-то функционала в самой 1С и т.д.), которые сводят удобство от использования к минимуму.
(31)у вас, как обычно, путаница - Снегопат (Телепат) это сборка и оболочка (как и очередной OScript - ужо немало их было, той или иной меры раздутости) над скриптовыми языками (в том числе, там несколько шире функцинал за счет собственных библиотек): COM, VS, CMD, PShell.
- получить некоторый ответ, который можем считать положительным
- при невыполнении любого из выше описанных пунктов оповестить по почте
Еще раз повторяю вам - эти два пункта в 1С-сервере невозможны:
- получить некоторый ответ, который можем считать положительным
- при невыполнении любого из выше описанных пунктов оповестить по почтеполучить ответ об отказе
Вы можете сколько угодно писать скриптов, но средств таких, как события авторизации, 1С-сервер не предоставляет.
Там даже при программировании форм куцый набор событий безо всякой возможности повлиять на эти самый формы на уровне системы (форма, новые кнопки, и т.д.). Даже инфо о форме получить нельзя - если сам ключ не задашь внутри (средствами) 1С-сервера (на языке 1С).
Он даже логи о себе, любимом, не пишет в общий журнал, только в свой, хитро выструганный.
Вы можете попробовать использовать COM-подключение к базе, но опять же, в ответ получите только - установлено или нет это соединение, а по какой там причине чего не получилось, тем более - авторизация или еще там чего, - все закрыто от "посторонних глаз".
(22) а что оно может не быть просто по причине отсутствия связи - не вариант для анализа?
Или база "не той системы", или фоновое какое хитрое не дает, или пользователь там монопольный какой и прочее, и прочее..
Вы все еще считаете, что 1С - это так, на "уровне" скриптового языка Windows.. )
(23) "запустить удаленное приложение а-ля RemoteApp" - это одно. RemoteApp и расскажет только о своих "ощущениях" от взаимодействия с 1С.
Войти в базу 1С - другое.
Первое - это аналогично COM-соединению, один из вариантов использования сторонних оболочек для "понимания", что делает 1С.
Кстати, вот кривой "вариант" с журналом регистрации 1С: обрабатывать ЖР на предмет авторизации/отказа. Там эта информация есть.
Но два существенных "но":
- 1С не позволит обращаться к файлам журнала и напрямую читать его, только "изнутри" себя
- обрабатывать всю эту ересь то еще удовольствие
ну так попробуйте сами, потом здесь расскажете, как вы "успешно" всю дорогу боролись с блокировкой файла логов и вылетами 1С.
Проблемы-то нет )
Да и хоть бы почитали, сколько там веселого накручено вокруг - для всех, кроме 1С, простейшей операции, - открыть таблицу логов и найти нужное.
(36) вы журнал этот журнал так же видите первый раз, а я уже собак съел еще на предыдущей версии ЖР, там и то по-корректней информация хранилась.
И, кстати, версии ЖР, как обычно, не совместимы.
т.е. фактически, задача сводиться к проверке доступности сервера 1с извне
ну хоть кто-то еще прочитал все верно ))
Я уже устал человеку доказывать и разжевывать, что 1С-север и Windows-утилиты, помогающие во всех других, корректно и дружественно написанных windows-приложениях, - это из разных миров.
(35)так как он вообще до 1С-сервера достучался, если сети нет? )
В том и дело, что в 1С ничего не отловишь - сети там нет, уборщица убирается, или пользователь вместо пароля заснул на клавиатуре )
(42) имо для вашей задачи достаточно сделать регламентное задание которое буде писать файл на внешний фтп - это гарантия , что сервер 1с работает и доступен
(59) да и это сложности, я делал проще - сразу писал в отдельный регистр факт входа/невхода того или иного пользователя.
Все равно это нужно для 1С, и анализ в 1С, так все под рукой.
А если записи нет - значит, либо и не пытался, либо сервер 1С не работал.
Что одинаково с точки зрения контроля за документами.
(59) тут ведь понимаете вопрос далеко не только в сервере 1С. Между пользователем и базой расположена куча дряни с которой происходят удивительные, а иногда и страшные вещи. И никаким образом(пока что) не повлиять на происходящее. Сейчас ИТ-служба начинает заниматься проблемами уже после того, как пользователь пришел на работу, запустил заветный ярлычок и не получил ожидаемого. А знакомо ли вам такое поведение, когда у юзера что-то не работает и он вовсе молчит об этом?) Бывает порой и такое. Так вот задача добиться сигнала о неисправности до того как о ней узнает юзер.
(68) можно, но только пинг сильно ограничивает возможные варианты проблем.
К примеру, после перезапуска служб на сервере 1С не подключается клиентское приложение с других ПК.
На самом сервере 1С
(68) пинг ограничивает в вариантах исследования проблем.
Он нам не поможет, если окажется например, что отвалилась служба терминальных сессий на сервере клиентских приложений.
(29) согласен, с кабелем на локальной тачке так себе пример. В сущности, может быть невероятное количество проблем, которое не позволит запустить "проверялку" или отправить сообщение админу.
Но объектом наблюдения является именно связь из первого поста:
вы можете вместо "Сервер приложений 1С - Сервер клиентских приложений 1С" ставить любое другое приложение - и проверять его.
Сеть - пинг от сервера, запуск 1С - наличие процессов в стеке, и т.д.
Но о чем и речь, и пытаюсь доказать - "наблюдение" и "Сервер приложений 1С - Сервер клиентских приложений 1С" (да все, что "1С") - это из разных миров.
И так было всегда.
Разве что 7.7 попытались "вытянуть" альтруисты на должный уровень, но и тут 1С быстренько прикрыла лавочку, щелкнула по-носу, и погрозила "не-не-не, не сметь!", запустив в производство и начав бесконечную переделку своих снеговиков.
на autoit можно это сделать
причём как руками так и автоматом создать скрипт
autoit умеет записывать все движения мыши и клавы , им можно проверить соединение путём ping и запустить 1с и он может вводить логины пароли и дальнейшие дейсвия
(43) вы хоть проверьте что-нибудь сами, а потом отпишитесь, не сочтите за труд.
А то наводки и "спасибы" - есть, а результатов - нет.
Как-то недостает смысла )
(51) да, лично, я проверю и проконтролирую )
А можно здесь выложить, тут даже статьи не возбраняется писать.
Ну, или, хотя бы, как ответ на свой же вопрос.
autoit как настроите так и будет он может и сообщение во весь экран вывести пользователю и вам письмо отправить и комп вырубить и машину разогреть итд сп))
что проверить? дайте пример я вам накидаю скрипт, я им делал чтобы он закрывал 1с у пользовтаелй сам в терминальной сесиии закрывал все окна внутри 1с и потом уже нажимал alt+F4
AutoItMacroGenerator (34 Kb) программу я проверял
smtpsender я тоже проверял работает
autoit может отслеживать окно с "отказано в доступе" если он его увидит то соответственно уже произведет действия дальше , письмо отравит на почту или что-то еще
(54)ну так вы с таким же успехом можете отследить и запуск-незапуск процесса rphost или 1cv8c.exe.
Не спорю, скоро Windows позволит OCR-распознать на лету текст любого сообщения, которое приложению вдруг вздумалось выдать не текстом, а картинкой, к примеру.
Но что, это как-то решает проблему с 1С?
Вы даже это пресловутое окно "Отказано в доступе" можете не получить. 1С никому и ничего не должна )
тут как я понимаю нужно отследить имено связь+запуск 1с от пользовтаеля до удалённого сервера
и понимать есть ли подключение к самому серверу если да то проверять дальше запустится ли 1с
1 этап, пропинговали сервер ,записали лог , пинг есть ,если нет то отправили письмо и вывели на экран сообщение с ошибкой
2. подключились к серверу, записали в лог , подключение есть ,если нет то отправили письмо и вывели на экран сообщение с ошибкой
3. запустили 1с , записали в лог, запустилась ,если нет то отправили письмо и вывели на экран сообщение с ошибкой
4. если все этапы прошли успешно то отправили письмо о том что всё хорошо и прикрепили туда лог файл
(60) нужно - конкретно есть или нет авторизации.
В том и дело, что "конкретно" - не получается.
А если не важно, по какой причине не подключились, а сам факт неподключения - то и вопросов нет.
(60)это и было озвучено в самом начале - через костыли и "такой-то матери", по головам других приложений - можно сделать )
Но одно "но": все это работает уж очень недолго, цепочка порвалась - настраивай "систему мониторинга" снова.
А вот настройка отнимает кучу времени.
Поэтому - просто не стоит оно того.