---
title: Оценка производительности клиент
slug: bsp/оценка-производительности-клиент
---


## ЗамерВремени
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Начинает замер времени ключевой операции.
// Результат замера будет записан в регистр сведений ЗамерыВремени.
// Поскольку клиентские замеры хранятся в клиентском буфере и записываются с периодичностью,
// указанной в константе ОценкаПроизводительностиПериодЗаписи (по умолчанию, каждую минуту),
// в случае завершения сеанса часть замеров может быть потеряна.
//
// Параметры:
//  КлючеваяОперация - Строка - 	имя ключевой операции. Если Неопределено, то ключевую операцию
//									необходимо указать явно вызовом процедуры
//									УстановитьКлючевуюОперациюЗамера.
//  ФиксироватьСОшибкой - Булево -	признак автоматической фиксации ошибки.
//									Истина - при автоматическом завершении замера, он будет записан
//									с признаком "Выполнен с ошибкой". В том месте кода, где ошибка явно
//									не может возникнуть, необходимо либо явно завершить замер методом
//									ЗавершитьЗамерВремени, либо снять признак ошибки с помощью метода
//									УстановитьПризнакОшибкиЗамера.
//									Ложь - замер будет считаться корректным при автоматическом завершении.
//  АвтоЗавершение - Булево	 - 		признак автоматического завершения замера.
//									Истина - завершение замера будет выполнено автоматически
//									через глобальный обработчик ожидания.
//									Ложь - завершить замер необходимо явно вызовом процедуры
//									ЗавершитьЗамерВремени.
//
// Возвращаемое значение:
//  УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер.
//
Функция ЗамерВремени(КлючеваяОперация = Неопределено, ФиксироватьСОшибкой = Ложь, АвтоЗавершение = Истина) Экспорт
```

Пример вызова
```bsl
Результат = ОценкаПроизводительностиКлиент.ЗамерВремени(КлючеваяОперация, ФиксироватьСОшибкой, АвтоЗавершение);
```
</details>

## НачатьЗамерВремениТехнологический
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Начинает технологический замер времени ключевой операции.
// Результат замера будет записан в РегистрСведений.ЗамерыВремени.
//
// Параметры:
//  АвтоЗавершение - Булево	 - 	признак автоматического завершения замера.
//								Истина - завершение замера будет выполнено автоматически
//								через глобальный обработчик ожидания.
//								Ложь - завершить замер необходимо явно вызовом процедуры
//								ЗавершитьЗамерВремени.
//  КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено> то ключевую операцию
//								необходимо указать явно вызовом процедуры
//								УстановитьКлючевуюОперациюЗамера.
//
// Возвращаемое значение:
//  УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер.
//
Функция НачатьЗамерВремениТехнологический(АвтоЗавершение = Истина, КлючеваяОперация = Неопределено) Экспорт
```

Пример вызова
```bsl
Результат = ОценкаПроизводительностиКлиент.НачатьЗамерВремениТехнологический(АвтоЗавершение, КлючеваяОперация);
```
</details>

## ЗавершитьЗамерВремени
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Завершает замер времени на клиенте.
//
// Параметры:
//  УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера.
//  ВыполненСОшибкой - Булево - признак того, что замер не был выполнен до конца,
//  							а выполнение ключевой операции завершилось с ошибкой.
//
Процедура ЗавершитьЗамерВремени(УИДЗамера, ВыполненСОшибкой = Ложь) Экспорт
```

Пример вызова
```bsl
ОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(УИДЗамера, ВыполненСОшибкой);
```
</details>

## УстановитьПараметрыЗамера
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устанавливает параметры замера.
//
// Параметры:
//  УИДЗамера	- УникальныйИдентификатор - уникальный идентификатор замера.
//  ПараметрыЗамера	- Структура:
//    * КлючеваяОперация - Строка		- имя ключевой операции.
//    * ВесЗамера		- Число			- количественный показатель сложности замера.
//    * Комментарий		- Строка
//						- Соответствие - дополнительная произвольной информации замера.
//    * ВыполненаСОшибкой - Булево			- признак выполнения замера с ошибкой,
//											см. процедуру УстановитьПризнакОшибкиЗамера.
//
Процедура УстановитьПараметрыЗамера(УИДЗамера, ПараметрыЗамера) Экспорт
```

Пример вызова
```bsl
ОценкаПроизводительностиКлиент.УстановитьПараметрыЗамера(УИДЗамера, ПараметрыЗамера) 
```
</details>

## УстановитьКлючевуюОперациюЗамера
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устанавливает ключевую операцию замера.
//
// Параметры:
//  УИДЗамера 			- УникальныйИдентификатор - уникальный идентификатор замера.
//  КлючеваяОперация	- Строка - наименование ключевой операции.
//
// Если на момент начала замера имя ключевой операции еще неизвестно,
// то с помощью этой процедуры в любой момент до завершения замера можно
// доопределить имя ключевой операции.
// Например, при проведении документа, т.к. в момент начала проведения
// мы не можем гарантировать, что проведение документа завершиться и не будет отказа.
//
// &НаКлиенте
// Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
//	Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
//		ИдентификаторЗамераПроведение = ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина);
//	КонецЕсли;
// КонецПроцедуры
//
// &НаКлиенте
// Процедура ПослеЗаписи(ПараметрыЗаписи)
//	Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
//		ОценкаПроизводительностиКлиент.УстановитьКлючевуюОперациюЗамера(ИдентификаторЗамераПроведение, "ПроведениеДокумента");
//	КонецЕсли;
// КонецПроцедуры
//
Процедура УстановитьКлючевуюОперациюЗамера(УИДЗамера, КлючеваяОперация) Экспорт
```

Пример вызова
```bsl
ОценкаПроизводительностиКлиент.УстановитьКлючевуюОперациюЗамера(УИДЗамера, КлючеваяОперация) 
```
</details>

## УстановитьВесЗамера
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устанавливает вес операции замера.
//
// Параметры:
//  УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера.
//  ВесЗамера - Число					- количественный показатель сложности
//										  замера, например количество строк в документе.
//
Процедура УстановитьВесЗамера(УИДЗамера, ВесЗамера) Экспорт
```

Пример вызова
```bsl
ОценкаПроизводительностиКлиент.УстановитьВесЗамера(УИДЗамера, ВесЗамера) 
```
</details>

## УстановитьКомментарийЗамера
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устанавливает комментарий операции замера.
//
// Параметры:
//  УИДЗамера   - УникальныйИдентификатор - уникальный идентификатор замера.
//  Комментарий - Строка
//              - Соответствие из КлючИЗначение - дополнительная произвольной информации замера.
//                               В случае указания соответствия:
//                                            * Ключ     - Строка - имя дополнительного параметра информации замера.
//                                            * Значение - Строка
//                                                       - Число
//                                                       - Булево - значение дополнительного параметра замера.
//
Процедура УстановитьКомментарийЗамера(УИДЗамера, Комментарий) Экспорт
```

Пример вызова
```bsl
ОценкаПроизводительностиКлиент.УстановитьКомментарийЗамера(УИДЗамера, Комментарий) 
```
</details>

## УстановитьПризнакОшибкиЗамера
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устанавливает признак ошибки операции замера.
//
// Параметры:
//  УИДЗамера	- УникальныйИдентификатор	- уникальный идентификатор замера.
//  Признак		- Булево					- признак замера. Истина - замер выполнился без ошибок.
//											  Ложь - при выполнении замера есть ошибка.
//
Процедура УстановитьПризнакОшибкиЗамера(УИДЗамера, Признак) Экспорт
```

Пример вызова
```bsl
ОценкаПроизводительностиКлиент.УстановитьПризнакОшибкиЗамера(УИДЗамера, Признак) 
```
</details>

## НачатьЗамерДлительнойОперации
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Начинает замер времени выполнения длительной ключевой операции. Закончить замер нужно явно вызовом
// процедуры ЗакончитьЗамерДлительнойОперации.
// Результат замера будет записан в регистр сведений ЗамерыВремени.
//
// Параметры:
//  КлючеваяОперация - Строка - имя ключевой операции.
//  ФиксироватьСОшибкой - Булево -	признак автоматической фиксации ошибки.
//									Истина - при автоматическом завершении замера, он будет записан
//									с признаком "Выполнен с ошибкой". В том месте кода, где ошибка явно
//									не может возникнуть, необходимо либо явно завершить замер методом
//									ЗавершитьЗамерВремени, либо снять признак ошибки с помощью метода
//									УстановитьПризнакОшибкиЗамера
//									Ложь - замер будет считаться корректны при автоматическом завершении.
//									ЗавершитьЗамерВремени.
//  АвтоЗавершение - Булево	 - 		признак автоматического завершения замера.
//									Истина - завершение замера будет выполнено автоматически
//									через глобальный обработчик ожидания.
//									Ложь - завершить замер необходимо явно вызовом процедуры
//									ЗавершитьЗамерВремени.
//  ИмяПоследнегоШага - Строка - 	имя последнего шага ключевой операции. Целесообразно использовать, если
//									замер запущен с автоматическим завершением. В противным случае последние
//									действия, выполненные между ЗафиксироватьЗамерДлительнойОперации и
//									срабатыванием обработчика ожидания будет записано под именем "Последний шаг".
//
// Возвращаемое значение:
//   Соответствие из КлючИЗначение:
//     * Ключ - Строка
//     * Значение - Произвольный
//   Ключи:
//     # КлючеваяОперация - Строка -  имя ключевой операции.
//     # ВремяНачала - Число - время начала ключевой операции в миллисекундах.
//     # ВремяПоследнегоЗамера - Число - время последнего замера ключевой операции в миллисекундах.
//     # ВесЗамера - Число - количество данных, обработанных в ходе выполнения действий.
//     # ВложенныеЗамеры - Соответствие - коллекция замеров вложенных шагов.
//
Функция НачатьЗамерДлительнойОперации(КлючеваяОперация, ФиксироватьСОшибкой = Ложь, АвтоЗавершение = Ложь, ИмяПоследнегоШага = "ПоследнийШаг") Экспорт
```

Пример вызова
```bsl
Результат = ОценкаПроизводительностиКлиент.НачатьЗамерДлительнойОперации(КлючеваяОперация, ФиксироватьСОшибкой, АвтоЗавершение, ИмяПоследнегоШага);
```
</details>

## ЗафиксироватьЗамерДлительнойОперации
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Фиксирует замер вложенного шага длительной операции.
// Параметры:
//  ОписаниеЗамера 		- Соответствие	 - должно быть получено вызовом метода НачатьЗамерДлительнойОперации.
//  КоличествоДанных 	- Число			 - количество данных, например, строк, обработанных в ходе выполнения вложенного шага.
//  ИмяШага 			- Строка		 - произвольное имя вложенного шага.
//  Комментарий 		- Строка		 - произвольное дополнительное описание замера.
//
Процедура ЗафиксироватьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага, Комментарий = "") Экспорт
```

Пример вызова
```bsl
ОценкаПроизводительностиКлиент.ЗафиксироватьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага, Комментарий);
```
</details>

## ЗакончитьЗамерДлительнойОперации
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Завершает замер длительной операции.
// Если указано имя шага, фиксирует его как отдельный вложенный шаг
// Параметры:
//  ОписаниеЗамера 		- Соответствие	 - должно быть получено вызовом метода НачатьЗамерДлительнойОперации.
//  КоличествоДанных 	- Число			 - количество данных, например, строк, обработанных в ходе выполнения вложенного шага.
//  ИмяШага 			- Строка		 - произвольное имя вложенного шага.
//  Комментарий 		- Строка		 - произвольное дополнительное описание замера.
//
Процедура ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага = "", Комментарий = "") Экспорт
```

Пример вызова
```bsl
ОценкаПроизводительностиКлиент.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага, Комментарий);
```
</details>

## НачатьЗамерВремени
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устарела. Будет удалена в следующей редакции библиотеки.
// Необходимо использовать процедуру
//		ОценкаПроизводительностиКлиент.ЗамерВремени
// Начинает замер времени ключевой операции.
// Результат замера будет записан в регистр сведений ЗамерыВремени.
// Поскольку клиентские замеры хранятся в клиентском буфере и записываются с периодичностью,
// указанной в константе ОценкаПроизводительностиПериодЗаписи (по умолчанию, каждую минуту),
// в случае завершения сеанса часть замеров может быть потеряна.
//
// Параметры:
//  АвтоЗавершение - Булево	 - 	признак автоматического завершения замера.
//								Истина - завершение замера будет выполнено автоматически
//								через глобальный обработчик ожидания.
//								Ложь - завершить замер необходимо явно вызовом процедуры
//								ЗавершитьЗамерВремени.
//  КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено> то ключевую операцию
//								необходимо указать явно вызовом процедуры
//								УстановитьКлючевуюОперациюЗамера.
//
// Возвращаемое значение:
//  УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер.
//
Функция НачатьЗамерВремени(АвтоЗавершение = Истина, КлючеваяОперация = Неопределено) Экспорт
```

Пример вызова
```bsl
Результат = ОценкаПроизводительностиКлиент.НачатьЗамерВремени(АвтоЗавершение, КлючеваяОперация);
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
