Подсистема встраивалась в УТ 11.0.8; в данной версии в типовой конфе она отсутствовала.
Не буду описывать как технически осуществляется интеграция, описания можно найти в интернете, например http://programmist1s.ru/ustanovka-podsistemyi-bsp-otsenka-proizvoditelnosti/
Остановлюсь вот на чем: в найденных мною описаниях речь идет о ранних версиях БСП, а её использование было несколько изменено начиная с БСП 2.0.1.
Цитирую: "Изменен тип объекта КлючевыеОперации - теперь это справочник. Необходимо перенести все ключевые операции из перечисления в справочник и в режиме 1С:Предприятия задать приоритет и целевое время для каждой операции. Для замеров времени больше не используется параметр сеанса ТекущийЗамерВремени, вместо него на клиенте используется глобальная переменная модуля управляемого или обычного приложения ОценкаПроизводительностиЗамерВремени."
Соответственно, после объединения подсистем, в модуль управляемого или обычного приложения нужно добавить глобальную переменную ОценкаПроизводительностиЗамерВремени, прописать значения в справочник КлючевыеОперации (я использовал предопределенные значения) и добавить вызовы замеров времени в нужных местах.
Опять же в интернете приведен пример интеграции замера в интерактивное проведение документа (замена стандартной кнопки OK).
Вот мой код кнопки "Провести и закрыть" применительно к БСП 2.0.
&НаКлиенте
Процедура _OK(Команда)
Если ОценкаПроизводительностиПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда
#Если ТолстыйКлиентОбычноеПриложение Тогда
КлючеваяОперация = Справочники.КлючевыеОперации.ПроведениеЗаказаКлиента;
#Иначе
КлючеваяОперация = ПредопределенноеЗначение("Справочник.КлючевыеОперации.ПроведениеЗаказаКлиента");
#КонецЕсли
ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(КлючеваяОперация);
КонецЕсли;
Попытка
#Если ТолстыйКлиентОбычноеПриложение Тогда
ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
#Иначе
ПараметрыЗаписи = Новый Структура("РежимЗаписи");
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
ЭтаФорма.Записать(ПараметрыЗаписи);
#КонецЕсли
Исключение
КонецПопытки;
ЭтаФорма.Закрыть();
КонецПроцедуры
Далее пример того, чего не находил в интернетах - замер времени открытия динамического списка (от нажатия пользователем на ссылку в интерфейсе). Изменяем код обработчика команды открытия списка Заказы клиентов.
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
//==========================
//замер времени открытия списка заказов клиентов
Если ОценкаПроизводительностиПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда
#Если ТолстыйКлиентОбычноеПриложение Тогда
КлючеваяОперация = Справочники.КлючевыеОперации.ОткрытиеСпискаЗаказовКлиентов;
#Иначе
КлючеваяОперация = ПредопределенноеЗначение("Справочник.КлючевыеОперации.ОткрытиеСпискаЗаказовКлиентов");
#КонецЕсли
ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(КлючеваяОперация);
КонецЕсли;
//================
//стандартный код
ОткрытьФорму("Документ.ЗаказКлиента.Форма.ФормаСпискаДокументов",
, // ПараметрыФормы,
ПараметрыВыполненияКоманды.Источник,
ПараметрыВыполненияКоманды.Уникальность,
ПараметрыВыполненияКоманды.Окно
);
КонецПроцедуры
Ну и поскольку пока цель - накопление статистики, а не анализ его по APDEX (в отсутствие целевых эталонных времен) - реализован отчет на СКД, который показывает в виде диаграмм количество, максимальное и среднее время выполнения операций в разрезе подразделений (у нас территориально распределенная сеть).
Особенность отчета - для вариантов "среднее время операций", "максимальное время выполнения операций" отбрасываются 10% минимальных и максимльных значений замеров внутри дня и ключевой операции. Это нужно для исключения случайных выпадений. Например пользователь выполняет замеряемую операцию, внутри который имеется интерактивный диалог - а вместо ответа "Да/Нет" пользователь вышел покурить / отвечает на телефонный звонок и т.п. или случился "затык" канала связи и время вместо 8 секунд стало 70 :).