IE2017

Анализ настроек кластеров 1С (+ менеджер файлов на сервере)

Администрирование - Сервисные утилиты

Итак, у вас количество баз давно перевалило за десяток. Все эти базы раскиданы по кластерам. К тому же и версии платформы 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)

  • Показывает несоответствие структуры каталога кластера и настроек конфигурационного файла (т.е. ситуации, когда фактически существует каталог, не связанный с базами кластера или наоборот, нет каталога для конкретной базы, прописаной в конфигурационном файле)

  • По полученным данным есть возможность сформировать отчет, построенный на базе СКД со всеми вытекающими возможностями (группировки, фильтры, отборы и пр.).
  • Код обработки открыт

Бонусом вы получаете универсальные алгоритмы, которые можно использовать при дальнейшей разработке

  • программное формирование меню
  • программное формирование отчета на базе СКД с внешним источником данных для управляемых форм.
  • открытие сайта, почтового клиента, чтение ключей реестра Windows и пр...

P.S.

Если Ваш файл с настройками  вдруг не распознался, Вы можете прислать мне этот файл с указанием релиза платформы кластера 1С, данные которого содержит этот файл, и я постараюсь :) добавить формат файла в обработку.

История версий:

19.04.2017, релиз 1.1.0
Ограничения

Для исключения ошибки "Открытие окон при завершении работы запрещено" в версиях 8.3.8 и выше используется расширенный в этих релизах набор параметров события ПередЗакрытием:

Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)

Чтобы запустить обработку в ранних релизах можно заменить описание обработчика на:

Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)

Доработан функционал

Добавлен менеджер файлов сервера со следующим функционалом:

  • навигация по файловой системе сервера
  • вывод информации по файлам (размер, дата, атрибуты(только для чтения, скрытый))
  • расчет размеров каталогов (только для windows сервера)
  • вывод информации по диску (функцией ..., только для windows сервера
  • открытие небольших файлов "как текст"
  • скачивание с сервера файлов
Доработан функционал

Доработан интерфейс.

  • добавлен переход "Перейти к настройкам файла"  (переход на страницу "Настройки кластеров" с фильтром по файлу с настройками)
  • добавлен переход "Показать каталоги кластера" (переход на страницу "Содержимое каталогов с настройками" с фильтром по настройке кластера)
  • добавлен переход "Перейти к каталогу в менеджере файлов" (открытие менеджера файлов с позиционированием на текущем каталоге с настройками)
  • при открытии в обычном режиме (не управляемом) выдается предложение открыть 1с Предприятие в управляемом режиме
31.01.2017, релиз 1.0.3
Доработан функционал
  • Добавлен разбор запущенных сервисов (на сервере и клиенте) для анализа файлов из путей, прописанных в параметре "-d" строки запуска сервиса "ragent" (функционал добавлен с подачи пользователя Sergey Due)
12.01.2016, релиз 1.0.2
Исправлена ошибка
  • В некоторых случаях некорректно формировался отчет (задваивались данные)
Доработан функционал
  • В поле с ошибкой добавлена рекомендация по ее исправлению

Полностью история изменений доступна по кнопке "О программе" меню "Информация".

Отблагодарить автора

Скачать файлы

Наименование Файл Версия Размер
Анализ настроек кластеров 1С
.epf 66,55Kb
19.04.17
35
.epf 66,55Kb 35 Скачать

См. также

Комментарии
1. Сергей Старых (tormozit) 4336 26.12.15 14:11 Сейчас в теме
Ссылки на ИТС сломанные.
2. Евгений - (zenechka) 366 27.12.15 01:36 Сейчас в теме
(1) tormozit, спасибо, исправил
3. BigB (BigB) 162 27.12.15 20:17 Сейчас в теме
(0) О какая полезная обработка. Как бы она мне пригодилась тогда когда я ползал по 1Совским (и не только) серверам и тырил смотрел у них информацию. Инструмент который у меня тогда был в арсенале позволял сделать, что угодно с данными, но вот эти плюшки мне бы точно пригодились. Сейчас правда этим не занимаюсь.
4. Александр Полетаев (Alias) 34 28.12.15 15:38 Сейчас в теме
О да, занимался я тоже таким делом... если кому интересно, вот кусок моей обработки который парсит файл настроек в массив массивов. Может кто-то захочет покопаться там во внутренностях... чтоб велосипед(парсинг) не изобретать.
Прикрепленные файлы:
РазобратьНастройкуКластера.epf
5. Николай Зевеке (zekrus) 103 30.12.15 14:33 Сейчас в теме
УТ 11.0.9.8 платформа 8.3.4.408 выдает ошибку:
{Форма.Форма.Форма(69)}: Ошибка при вызове метода контекста (ОткрытьФорму)
ОткрытьФорму("ВнешняяОбработка.АдминистрированиеНастроекКластера.Форма.ФормаСКД", СтруктураПараметров);
по причине:
Ошибка инициализации модуля: Форма.ФормаСКД.Форма
по причине:
{Форма.ФормаСКД.Форма(187,51)}: Переменная не определена (ЭтотОбъект)
Возврат ХранилищеВариантовОтчетов.ПолучитьСписок(<<?>>ЭтотОбъект.ИмяФормы, ИмяПользователя());
6. Артем Боровлев (borrman) 30.12.15 15:31 Сейчас в теме
> теперь есть возможность запускать консоли разных версий
Как? Как это делать??
7. Виталий (PVG_73) 16 30.12.15 16:32 Сейчас в теме
Жека, класс! Чуть позжее даже помучаю..... ;-)
8. Евгений - (zenechka) 366 30.12.15 21:02 Сейчас в теме
(5) zekrus, спасибо, что нашли и прислали ошибку :)
Конфигурация не важна, у Вас скорей всего стоит режим совместимости с 8.2, а ЭтотОбъект для управляемых форм стал доступен в 8.3.3.
Я обновил обработку, чтобы можно было запускать и в Вашем случае. Вроде как Вы можете скачивать ее несколько раз, я уточню, если нет - вышлю измененную версию.
9. Евгений - (zenechka) 366 30.12.15 21:12 Сейчас в теме
(6) borrman, речь о том, что обработка парсит файлы от разных версий и показывает их в едином списке.
10. Vladimir Savelyev (gigapevt) 13 31.12.15 08:31 Сейчас в теме
С виндовыми всё ясно, а как же "Linux" сервера? качать файлы на локальный комп через консоль? создавать самба-шары (да и смысл)? а если доступа на сервер нету? напрягательно как-то. Или чего-то я недопонимаю. А так идея не плоха, поставлю "+".
11. Евгений - (zenechka) 366 31.12.15 09:23 Сейчас в теме
(10) gigapevt, писал изначально "для себя" и даже не задумывался в этом направлении.....надо будет заюзать..спасибо за наводку :)
13. Евгений - (zenechka) 366 31.12.15 10:36 Сейчас в теме
(10) gigapevt,
а с такими темпами скоро и для яблочной продукции надо будет рассматривать варианты ... https://www.iphones.ru/iNotes/518998

А по поводу линукса ....думаю что найтифайлы оно и на линуксе найтифайлы, нужно только пути соответствующие прописать и должно взлететь...
14. Николай Зевеке (zekrus) 103 03.01.16 14:40 Сейчас в теме
15. Евгений - (zenechka) 366 12.01.16 17:19 Сейчас в теме
Исправил ошибку в отчете.
Тем, кто скачал обработку, готов выслать ее новую версию на почту.
Пишите в личку свою почту.
16. Sergey Due (due) 348 30.01.17 17:03 Сейчас в теме
Добрый день, Евгений!

Обработка ругается на неизвестный формат файла. Платформа 8.3.9.2033.
Прикрепленные файлы:
17. Евгений - (zenechka) 366 30.01.17 22:13 Сейчас в теме
(16) Судя по пути, по крайней мере один кластер сервера 1С 8.2. Есть возможность прислать в личку эти 2 файла?
18. Евгений - (zenechka) 366 31.01.17 09:20 Сейчас в теме
(16) еще, как вариант, в указанных кластерах нет информации по настройкам (см вложение).
Прикрепленные файлы:
19. Sergey Due (due) 348 31.01.17 10:03 Сейчас в теме
(17) на сервере две платформы 8.3:
- 8.3.6.2390
- 8.3.9.2033
возможно это и сбивает с толку вашу обработку. Соответственно отдельный каталог кластера (ключ агента "-d<...>".

Посмотрел код обработки т.к. у вас пути прописаны напрямую, придется дописывать свой блок.
20. Евгений - (zenechka) 366 31.01.17 11:25 Сейчас в теме
(19)

возможно это и сбивает с толку вашу обработку.

обработка пытается распарсить файлы по разным шаблонам. Привязки к конкретным версиям нет (форматы не всегда меняются с новой версией платформы).
Такая ошибка может появиться, когда ни один шаблон не подошел (изменился формат файла), либо, когда файл не содержит настроек (как на скрине выше).

Если файлы лежат в другом каталоге, обработка их просто не увидит и ошибки не будет. Такие файлы можно добавить вручную (кнопка "Выбрать файл настройки")

Посмотрел код обработки т.к. у вас пути прописаны напрямую,


Указаны следующие пути:
C:\Program Files\1cv8\srvinfo
C:\Program Files\1cv82\srvinfo
C:\Program Files (x86)\1cv8\srvinfo
C:\Program Files (x86)\1cv82\srvinfo

плюс анализируются соответствующие ключи реестра (для 1cv82\srvinfo, 1cv8\srvinfo):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion­\ProgramFilesDir (x86)*
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion­\ProgramW6432Dir*

А где у Вас хранятся файлы?

придется дописывать свой блок

Так вроде файлы нашлись, только не смогли прочитаться? Нет?
21. Sergey Due (due) 348 31.01.17 11:55 Сейчас в теме
(20) дополнительный агент запускается с ключом -d "D:\1cv8\srvinfo[DEBUG]".
Хотя в принципе каталог может быть использован любой, и на другом диски в том числе.
Думаю, надо добавить парсинг реестра по сервисам. Как вариант из строки запуска агента получать путь к каталогам хранения служебных данных кластера.
22. Евгений - (zenechka) 366 31.01.17 12:29 Сейчас в теме
(21) понял задачу, надо подумать.

Спасибо, Сергей, за информацию.
23. Sergey Due (due) 348 01.02.17 14:48 Сейчас в теме
Мне было интересно посмотреть использование регулярных выражений - поиска и осуществления манипуляций с подстроками в тексте, нестандартное решение.
24. Евгений - (zenechka) 366 01.02.17 16:08 Сейчас в теме
(23) Скоро (все надеюсь на это :) ) выложу свою обновленную консоль запросов. Там тоже используется regexp для автоподстановки при написании запроса.
Можно так же поучаствовать в ее тестировании для ускорения процесса :) Для этого нужно зарегистрироваться здесь.
Оставьте свое сообщение