Интеграция ЦКК и ЦУП
Администрирование - Мониторинг
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
ЦУП является удобным инструментом для анализа проблемных ситуаций в работе 1С. Допустим, на сервере по непонятным причинам начинает расти база tempdb или загружается процессор на 100%. Запустив ЦУП, мы бы смогли узнать, какие запросы из какого контекста каким пользователем были запущены, что привело к нежелательной ситуации.
Появляется естественное желание - запускать ЦУП автоматически в зависимости от внешних факторов, например, если процессор поднялся выше 90% на полчаса. Запускать ЦУП через COM, как я понял, невозможно, т.к. весь функциональный код находится в модулях толстого клиента.
1. Запуск ЦУП автоматически
Мы всегда можем запустить ЦУП по командной строке, передав в параметры название сценария. В общую форму Монитор, которая открывается при запуске ЦУП, встраиваем в процедуру ПриОткрытии считываение наименования сценария из параметров запуска 1С. Сценарий нашли, теперь запускаем его.
Теперь рассмотрим доработку формы РедакторСценария. В этой форме есть таблица, в таблице колонка Параметры, которая имеет составной тип данных. Добавляем к типу данных ссылку на справочник "Настройка подключения к информационным базам" и нетиповой справочник "Алгоритмы". В результате можем сформировать такой сценарий:

Пример кода алгоритмов Завершить сценарий:
Структура = П_ОбщийМодуль.ПолучитьСтруктуруЗначенийИзСтроки(ПараметрЗапуска, "=", ";");
Если Структура.Свойство("ФайлПоЗавершениюДолженБытьРавенИстина") = Истина Тогда
ЗначениеВФайл(Структура["ФайлПоЗавершениюДолженБытьРавенИстина"], Истина);
КонецЕсли;
ЗавершитьРаботуСистемы(Ложь, Ложь);
Т.е. при завершении работы ЦУП делает пометку в файле. Это нужно для того, чтобы ЦКК, который будет запускать ЦУП, не запускал ЦУП в очередной раз, не убедившись, что прошлый запуск ЦУП был успешным.
Доработки на стороне ЦУП можно посмотреть в приложенном к статье файле.
2. Автоматический запуск ЦУП из ЦКК
ЦКК имеет встроенные механизмы добавления алгоритмов, которые отрабатывают в тех или иных случаях. Но из-за нехватки знаний и документации, встроил свою подсистему, которая состоит из справочника Алгоритмы и документа ВыполнениеАлгоритмов. Также создал регистр сведений, который идентичен регистру Замеры производительности, отличие заключается в том, что мой регистр периодический, т.е. в нём хранится вся история счетчиков производтельности, собираемая ЦКК. При записи типового регистра, данные попадают в нетиповой регистр. При записи нетипового регистра срабатывают алгоритмы, которые определяют, запускать ли ЦУП или нет.
Подсистема алгоритмов и пример заполнения в приложенном файле. Подробно изменения в ЦКК не описаны, т.к. эта часть статьи является второстепенной.
К статье прикладываю файл, в нём конфигурация измененных и добавленных объектов ЦУП и база измененных и добавленных объектов ЦКК. ЦКК выкладываю dt, чтобы можно было посмотреть примеры заполнения алгоритмов. Переносить в свои конфигурации руками.
Результат
В ЦКК настраиваем контролируемые события, например, определенные сочетания значений счётчиков производительности. При срабатывании события ЦКК запускает ЦУП с определённым сценарием (наименование сценария можно генерировать в самом ЦКК). ЦУП собирает данные и сам выключается через заданное время. При этом мы можем контролировать, чтобы ЦУП не запускался несколько раз в одном событии или при неуспешном прошлом запуске. Открыв ЦУП мы видим собранные данные за все периоды. в ЦКК ведётся протокол запуска ЦУП, история счётчиков и т.д.
Вступайте в нашу телеграмм-группу Инфостарт