Жизненная история
Итак, у вас количество баз давно перевалило за десяток. Все эти базы раскиданы по кластерам. К тому же и версии платформы 1С у этих баз разные. Ну а вы, к несчастью - администратор всего этого хозяйства.
К несчастью, потому что вы администратор 1С. А это необычный администратор. Случается так, что вы не имеете прав локального администратора, а консоль сервера приложений на вашем рабочем месте не установлена. Но не беда, поставить ее вам готовы уже завтра-послезавтра.
И вот вам поставили консоль, и вы даже подключили сервера. Но... не все сервера рады показать вам списки своих баз. Вспоминаете вы, что версии то у них разные.
Решаете вы и эту проблему. И теперь есть возможность запускать консоли разных версий и видеть соответствующие списки баз. Можно выдохнуть и открыть-таки настройки требуемой базы, чтобы понять в какой же базе SQL она лежит, разрешены ли в ней регламентные задания ну или что там еще вы хотели посмотреть изначально.
Но тут очередная беда подстерегает вас. Вы ведь не знаете заветную пару логин/ пароль администратора этой базы. И труды ваши были напрасны.
Актуальные задачи
Эту занимательную историю можно продолжать бесконечно. Для кого-то она покажется надуманной, а кто-то сможет дополнить ее еще новыми трудовыми этапами. Но все, кто сталкивался с поддержкой и обслуживанием различных кластеров с большим количеством баз рано или поздно озадачиваются вопросом получения сводной информацией о текущем состоянии всего этого зоопарка.
Это необходимо для оптимизации существующих ресурсов. Так, например, можно обнаружить в каталогах сервера приложений огромное количество папок с мало говорящими названиями в стиле GUID, но занимающих отнюдь не мало места на диске - это каталоги изначально связаны с конкретными базами, зарегистрированными на соответствующих кластерах. В какой то момент по разным причинам количество этих папок перестает соответствовать количеству зарегистрированных на текущий момент в кластере 1С баз и "лишние" папки можно/нужно удалять.
Полезно увидеть информацию о базах в разрезе кластеров, баз данных для понимания загруженности серверов; отобрать базы с "не выключенными" регламентными заданиями, базы с блокировкой подключений и пр. Вобщем посмотреть на это хозяйство сверху и принять.
Пример решения
Вся эта информация хранится в файликах 1CV8Clst.lst или 1CV8Reg.lst на серверах 1с в каталогах "...srvinfo". Подробней можно посмотреть на сайте ИТС здесь или здесь.
Путь к папкам "program files" можно получить из реестра (Shell.RegRead("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionProgramFilesDir (x86)") и Shell.RegRead("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionProgramW6432Dir")).
В зависимости от версии 1С, srvinfo может лежать либо в папке 1cv82 либо в 1cv8.
Доступ к этим файлам имеет, например пользователь, под которым запускается сервис сервера 1с. Т.е даже в случае отсутствия взаимопонимания с праведными администраторами есть возможность получить доступ к этим файликам из самой 1с, выполняя код на сервере. Тут стоит, однако оговориться, что выполнение кода на сервере не всегда гарантирует нам доступ к файлам с настройками. Если у кластера несколько рабочих серверов, то не факт, что серверный вызов будет на центральный сервер, где хранятся соответствующие настройки.
Соответственно имея ввиду вышесказанное можно написать обработку, которая найдет эти файлики, распарсит их и выведет всю необходимую информацию вам в виде отчета.
Так и родилась данная обработка.
Ограничения обработки
Данная обработка работает только на управляемых формах и на версиях 1C от 8.3.x.x
Функционал обработки
Обработка анализирует файлы настроек кластеров различных версий 1С (8.2, 8.3)
Показывает несоответствие структуры каталога кластера и настроек конфигурационного файла (т.е. ситуации, когда фактически существует каталог, не связанный с базами кластера или наоборот, нет каталога для конкретной базы, прописаной в конфигурационном файле)
Бонусом вы получаете универсальные алгоритмы, которые можно использовать при дальнейшей разработке
История изменений
19.04.2017, релиз 1.1.0 | |
Ограничения |
для исключения ошибки "Открытие окон при завершении работы запрещено" в версиях 8.3.8 и выше используется расширенный в этих релизах набор параметров события ПередЗакрытием:
чтобы запустить обработку в ранних релизах можно заменить описание обработчика на:
|
Доработан функционал |
|
Доработан функционал |
|
31.01.2017, релиз 1.0.3 | |
Доработан функционал |
|
12.01.2016, релиз 1.0.2 | |
Исправлена ошибка |
|
Доработан функционал |
|