25.07.2013
Версия 1.01 — исправлены выявленые ошибки
— если в кластере добавлены резервные процессы, то попытка подключиться и прочитать свойства баз заканчивалась ошибкой, сейчас добавлена проверка на свойство процесса Use = 1 (т.е рабочий)
— прочие недочеты
Интро:
Однажды так случилось, что в свойствах боевой базы установили флаг «Блокировать фоновые задания», и очень важный регламент не выполнился и все получили по шапке. Собственно тогда и встал вопрос, как так сделать, что бы каждый вечер мониторилось такое свойство и результат рапортовался на e-mail. Надо — сделаем!
Сразу скажу, что идея не нова, и есть ренее созданные похожие публикации
вот сходу нашел такие варианты:
Скрипт на VBS, который проверяет работают ли регламентные/фоновые задания
и вот, уже на 1С, но с вполне конкретной целью «наоборот»
Отключение регламентных заданий в копии базы
Нюансы:
в кластере серверов 1С могут быть созданы свои пользователи «Администраторы кластра», и что бы выполнить необходимые нам дальнейшие действия, нужно выполнить Аутентификацию под администратором кластера.
В кластере серверов могут быть несколько баз, и у этих базах могут быть разные пользователи с ролью «Администратор», и нужно выполнить метод AddAuthentication([пользователь БД],[пароль пользователя БД]) для каждого такого пользователя.
Опять же в кластере может быть много баз, а проверку нам нужно выполнить для некоторых…
Подход:
Один из способов решения такой задачи, это создать отдельную БД, прописать в регламент со всеми этими проверками и рассылками, и никогда не трогать. Да, имеет право на жизнь, и можно этим воспользоваться, но решение в этой статье реализовано на VB и вылняется по расписанию настроенному обычным виндовым шедуллером.
Создается объект «V82.ComConnector«, подымается коннект к кластеру серверов и выполняет нужные нам действия. Все шаги логирует и высылает на заданные e-mail адреса, и так же отдельно сохраняет log файл.
Все нужные нам методы и свойства описаны в синтаксис помощнике 1С Предприятия, в разделе «Средства интеграции и администрироования» — «Менеджер COM-Соединений»
По порядку:
- создать объект V82.COMConnector
- подключиться кластеру серверов connectAgent([строка подключения кластера])
- получить кластреы GetClusters()
- залогиниться под Администратором кластера Authenticate([cluster],[админ крастера],[пароль админа кластера] )
- получить рабочие процессы GetWorkingProcesses([cluster])
- подключиться к рабочему процессу ConnectWorkingProcess([строка подключения к рабочему процессу])
- залогиниться под всеми Администраторами AddAuthentication([пользователь БД],[пароль пользователя БД])
- получаем список баз GetInfoBases()
- проверяем свойство базы ScheduledJobsDenied
Что бы получить свойства информационной базы, неодбходимо залогиниться под пользователем этой базы с ролью Администратор. Поэтмоу существует возможность указать различные варианты таких пользователей, что бы в цикле выполнить метод рабочего процесса AddAuthentication(,), тогда мы сможем прочитать свойства всех баз.
Так же можно указать несколько адресов для рассылки лога выполненой операции
Иерархия файлов параметров
.config
.configsrv.txt
.configsrvMail.txt
.configauth.txt
.configemails.txt
.configase.txt
* — Обязательные параметры
1. .configsrv.txt
Файл параметров подключения к серверу 1С
*Первая строка: *[IPадрес/Имя менеджера кластера серверов],*[порт подключения к кластеру серверов]
Вторая строка: [админ кластера],[пароль админа кластера]
2. .configsrvMail.txt
Файл содержит описание подключения к почтовому серверу
*Первая строка: *[ящик от чьего имени отсылать],*[адрес почтового сервера],[порт, если не указано то = 25]
3. .configauth.txt
Файл содержит параметры аутентификации пользователей баз с ролью Администратор
[user1],[pass1]
[user2],[pass2]
….
[userN],[passN]
4. .configemails.txt
Файл содержит строки с e-mail адресами для рассылки
[email1]
[email2]
…
[emailN]
5. .configase.txt
Файл содержит строки с именами баз для проверки установленной блокировки, если файл пустой,
то проверяются все базы
[base1]
[base2]
…
[baseN]
Получилась полноценная мини программа на VB, естественно с говнокодом внутри, но работающая исправно. Так же во вложении исходный код, который можно подредактировать под себя.
Писалось на MsVS2012
Минусы:
Все параметры хранятся в простых *.txt файлах, и поэтому это неочень безопасно. Но если у вас «всякие нехорошие» не имеют доступ к серверу, то это не сильно страшно.
Но опять же, все на ваше усмотрение.
прошу критику и предложения в комменты или личку.
Нужно переделать под 83 коннектор и добавить опцию включить или отключить блокировку регламентных заданий на все базы. у меня их 150+ штук
(1) mixperm, привет.
прикольно, попробую с 83.
можешь в личку стукнуть, спишемся там.
(2)можо в личку под 8.3
(3) ответил