---
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

// Для процедуры ПриДобавленииСерверныхОповещений общего модуля ОбщегоНазначенияПереопределяемый.
//
// Параметры:
//  Имя - Строка - имя оповещения, подходящее для имени свойства структуры.
//
// Возвращаемое значение:
//  Структура:
//   * Имя - Строка - имя оповещения.
//
//   * ИмяМодуляОтправки - Строка - имя серверного общего модуля, например, "СоединенияИБ",
//                    содержащего экспортную процедуру ПриОтправкеСерверногоОповещения.
//                    Вызов процедуры выполняется в привилегированном режиме.
//                    Смотри пример в общем модуле СтандартныеПодсистемыСервер.
//                    Может быть не заполнено. В этом случае вызываться не будет,
//                    например, используется для отправки сообщений об изменении
//                    настроек функциональных опций в момент изменения их констант,
//                    вместо отслеживания изменений в регламентом задании.
//
//   * ИмяМодуляПолучения - Строка - имя клиентского общего модуля, например, "СоединенияИБКлиент",
//                    содержащего экспортную процедуру ПриПолученииСерверногоОповещения.
//                    Смотри пример в общем модуле СтандартныеПодсистемыКлиент.
//
//   * Параметры - Произвольный - любое сериализуемое значение, которое нужно передать
//                    в процедуру ПриОтправкеСерверногоОповещения в качестве параметров.
//                    Должно быть как можно меньшего размера в сериализованном виде.
//                    Например, описание метаданных и расширений сеанса, для вычисления
//                    добавленных и удаленных расширений и исправлений в регламентном
//                    задании при вызове ПриОтправкеСерверногоОповещения, и отправке
//                    оповещения с вычисленными отличиями соответствующим сеансам.
//
//   * ПериодПроверки - Число - количество секунд, через которое требуется
//                         вызывать ПриОтправкеСерверногоОповещения для проверки
//                         состояния сервера и отправки оповещения, если требуется.
//                         Начальное значение 20 минут.
//                         Если указано время меньше 1 мин, тогда будет 1 мин.
//                         Следует учитывать, что в модели сервиса реальный минимальный
//                         период может быть значительно больше и нестабильным: 5-10 минут.
//
//
Функция НовоеСерверноеОповещение(Имя) Экспорт
```

Пример вызова
```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

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

Пример вызова
```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).

---
