---
title: Обработка новостей
slug: zup/обработка-новостей
---


## РазрешитьРаботуСНовостями
<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

// Процедура устанавливает одинаковые состояния для новостей в текущей области данных.
// Это полезно, например, при первом старте программы (при создании из cf),
//  когда необходимо отключить оповещения и поставить признак прочтенности
//  у всех новостей для предыдущих версий программы.
// Так как справочник Пользователи разделенный, то в модели сервиса процедуру
//  можно запускать только в разделенном сеансе.
//
// Параметры:
//  ВыбранныеПользователи - Массив из СправочникСсылка.Пользователи, СправочникСсылка.Пользователи, Неопределено - Массив пользователей
//                           или единственный пользователь, для которых необходимо установить состояния новостей;
//  СтруктураОтборов    - Структура - структура со значениями отборов. Возможные ключи:
//    * СписокНовостей - СписокЗначений - список новостей. Если параметр установлен,
//                       то остальные параметры отбора игнорируются;
//    * СписокЛентНовостей - СписокЗначений - список лент новостей. Если не указан, то по всем.;
//    * ИнтервалВерсийПродукта - Структура - отбор по версиям продукта. Содержит ключи:
//       * Продукт  - Строка - наименование продукта;
//       * ВерсияОТ - Строка - начальная версия в формате 99.99.999.9999;
//       * ВерсияДО - Строка - конечная версия в формате 99.99.999.9999;
//    * ИнтервалВерсийПлатформы - Структура - отбор по версиям платформы. Содержит ключи:
//       * ВерсияОТ - Строка - начальная версия в формате 99.99.999.9999;
//       * ВерсияДО - Строка - конечная версия в формате 99.99.999.9999;
//  ЗначенияСостояний   - Структура - структура значений для заполнения реквизитов
//                                    регистра сведений СостоянияНовостей. Возможны ключи:
//    * Прочтена                - Булево - Признак прочтенности. Если не указано, то не будет изменено;
//    * Пометка                 - Число  - Признак пометки флажком. Если не указано, то не будет изменено;
//    * ОповещениеВключено      - Булево - Признак снятия оповещения. Если не указано, то не будет изменено;
//    * ДатаНачалаОповещения    - Дата   - Дата начала оповещения (UTC+0). Если не указано, то не будет изменено;
//    * УдаленаИзСпискаНовостей - Булево - Признак помещения в корзину. Если не указано, то не будет изменено.
//
Процедура УстановитьСостояниеНовостейДляПользователей( Экспорт
```

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

// Процедура помечает для текущего пользователя несколько новостей пометкой (число 0..9, где 0 = нет пометки).
// При вызове из неразделенного сеанса в модели сервиса будет ошибка.
//
// Параметры:
//  МассивНовостей - Массив из СправочникСсылка.Новости - массив ссылок на новости;
//  Пометка        - Число - число в интервале 0..9, где 0 - неотмеченная новость.
//
Процедура ИзменитьПометкуНовостей(Знач МассивНовостей, Знач Пометка = 1) Экспорт
```

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

// Процедура изменяет для текущего пользователя признак прекращения оповещения у новостей.
// Имеет смысл только для важных и очень важных новостей.
// При вызове из неразделенного сеанса в модели сервиса будет ошибка.
//
// Параметры:
//  МассивНовостей       - Массив из СправочникСсылка.Новости - массив ссылок на новости;
//  ОповещениеВключено   - Булево - Истина, если новость будет всплывать, ложь - не будет;
//  ДатаНачалаОповещения - Дата - дата (UTC+0), начиная с которой необходимо включить всплывание.
//
Процедура ИзменитьПризнакОповещенияНовостей(Знач МассивНовостей, Знач ОповещениеВключено = Ложь, Знач ДатаНачалаОповещения = '00010101') Экспорт
```

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

// Функция возвращает реальное состояние оповещения для новости на текущую дату.
// Возможна ситуация, когда записи в регистре сведений "СостоянияНовостей" нет, тогда программа рассчитывает их,
//   исходя из состояния Важности новости и Важности в привязке к метаданным (если важность > 0, то оповещение включено).
//
// Параметры:
//  МассивНовостей - Массив из СправочникСсылка.Новости - массив новостей, которые необходимо обработать.
//
// Возвращаемое значение:
//   Соответствие - соответствие, где:
//     * ключ     - СправочникСсылка.Новости;
//     * значение - Булево - должно ли быть включено оповещение на данный момент или нет.
//
Функция ПолучитьСостояниеОповещения(МассивНовостей) Экспорт
```

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

// Функция возвращает результат конкатенации КатегорияНовостей и ЗначениеКатегорииНовостей.
// Нужно только для формирования XML-представления новости.
//
// Параметры:
//  КатегорияНовостей         - ПланВидовХарактеристикСсылка.КатегорииНовостей - категория новостей;
//  ЗначениеКатегорииНовостей - Произвольный - значение категории новостей.
//
// Возвращаемое значение:
//  Строка - строковое описание связки категории и значения.
//
Функция ПолучитьПредставлениеКатегорииИЗначения(КатегорияНовостей, ЗначениеКатегорииНовостей) Экспорт
```

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

## ДобавитьПрограммноеЗначениеОтбора_Общий
<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

// Процедура-обработчик перехода с другой программы, например с БухгалтерияБазовая на БухгалтерияПРОФ.
// В случае перехода с другой программы надо будет загрузить новости по новой программе (БухгалтерияПРОФ) за 1 месяц,
//   для этого необходимо отредактировать данные регистра сведений ДатыЗагрузкиПоследнихНовостей.
// Должна вызываться или вручную, или с помощью функциональности БСП (см. ПриДобавленииОбработчиковПереходаСДругойПрограммы(Обработчики)).
//
Процедура ПриПереходеСДругойПрограммы() Экспорт
```

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

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

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

## НайтиНовости
<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

// Функция возвращает таблицу новостей для определенного объекта метаданных, имени формы и события.
// Настроенные пользователем отборы НЕ накладываются.
// При вызове из неразделенного сеанса в модели сервиса будет ошибка.
//
// Параметры:
//  СписокЛентНовостей           - СписокЗначений, Массив, Неопределено - в каких лентах новостей искать новость;
//  ИмяМетаданных                - Строка - имя метаданных, обязательная часть идентификатора новости;
//  ИмяФормы                     - Строка, Неопределено - имя формы, необязательная часть идентификатора новости;
//  ИмяСобытия                   - Строка, Неопределено - имя события, необязательная часть идентификатора новости;
//  Вариант                      - Строка:
//    * если = "Для форм, все поля", то выводить подробную таблицу, с событиями и именами форм - в этом случае новости
//       будут встречаться по два раза. Этот вариант нужен для заполнения реквизита Новости справочников
//       и документов (чтобы при возникновении события можно было показать новость).
//    * если = "Для форм, простой", то выводить таблицу с именами форм, но без событий
//              (удобно для получения уникального списка новостей).
//    * если = "Для формы контекстных новостей", то выводить сжатую таблицу с уникальностью по новостям.
//       Этот вариант нужен для формы контекстных новостей;
//  НастройкиПолученияНовостей   - Структура, Неопределено - структура с ключами:
//   * ПолучатьКатегорииНовостей - Булево - если Истина, то в реквизите формы будут также сохраняться
//                                  категории новостей. Это может быть полезно для реализации особенного
//                                  отбора новостей, который невозможно реализовать
//                                  с помощью регистров сведений ОтборыПоЛентамНовостей*.
//
// Возвращаемое значение:
//  Таблица значений с колонками:
//    * НомерСтрокиНовости      - Число - для реализации нажатия в подменю формы;
//    * ЛентаНовостей           - СправочникСсылка.ЛентаНовостей;
//    * Новость                 - СправочникСсылка.Новости;
//    * НовостьНаименование     - Строка (100) - заголовок новости;
//    * НовостьПодзаголовок     - Строка (100) - подзаголовок новости;
//    * НовостьКодЛентыНовостей - Строка (20) - код ленты новостей;
//    * УИННовости              - Строка (255) -;
//    * ДатаПубликации          - Дата;
//    * Важность                - Число (1,0) - рассчитанная на текущую дату контекстная важность
//                                  (с учетом даты сброса контекстной важности);
//    * Актуальность            - Булево - рассчитанная на текущую дату актуальность (с учетом даты завершения новости);
//    * Метаданные              - Строка (50);
//    * Форма                   - Строка (50);
//    * Событие                 - Строка (50) // Для варианта "Для форм, простой" - пустая строка;
//    * ПоказыватьВФормеОбъекта - Булево // Для варианта "Для форм, простой" - всегда ЛОЖЬ;
//    * ЭтоПостояннаяНовость    - Булево // Для варианта "Для форм, простой" - всегда ЛОЖЬ;
//    * Прочтена                - Булево;
//    * ОповещениеВключено      - Булево // Ложь, если ДатаНачалаОповещения > ТекущаяУниверсальнаяДата();
//    * ДатаНачалаОповещения    - Дата // Для варианта "Для форм, простой" - всегда пустая дата (01.01.0001);
//    * ИконкаНовости           - Картинка, Неопределено - иконка важной новости;
//    * СпособОповещения        - Строка - имя перечисления СпособыОповещенияПользователяОНовостях.
//
Функция ПолучитьКонтекстныеНовости( Экспорт
```

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

// Функция возвращает структуру новости из массива структур контекстных новостей.
// Массив структур готовится с помощью ОбщегоНазначения.ТаблицаЗначенийВМассив(ПолучитьКонтекстныеНовости(...)).
//
// Параметры:
//  АдресМассиваНовостей - Строка - Адрес временного хранилища;
//  НомерСтрокиНовости  - Число  - идентификатор новости, которую необходимо найти по значению ключа НомерСтрокиНовости.
//
// Возвращаемое значение:
//   Структура - структура с ключами:
//    * НомерСтрокиНовости      - Число - для реализации нажатия в подменю формы;
//    * ЛентаНовостей           - СправочникСсылка.ЛентаНовостей;
//    * Новость                 - СправочникСсылка.Новости;
//    * НовостьНаименование     - Строка (100) - заголовок новости;
//    * НовостьПодзаголовок     - Строка (100) - подзаголовок новости;
//    * УИННовости              - Строка (255) -;
//    * ДатаПубликации          - Дата;
//    * Важность                - Число (1,0) - рассчитанная на текущую дату контекстная важность
//                                  (с учетом даты сброса контекстной важности);
//    * Актуальность            - Булево - рассчитанная на текущую дату актуальность (с учетом даты завершения новости);
//    * Метаданные              - Строка (50);
//    * Форма                   - Строка (50);
//    * Событие                 - Строка (50) // Для варианта "Для форм, простой" - пустая строка;
//    * ПоказыватьВФормеОбъекта - Булево // Для варианта "Для форм, простой" - всегда ЛОЖЬ;
//    * ЭтоПостояннаяНовость    - Булево // Для варианта "Для форм, простой" - всегда ЛОЖЬ;
//    * Прочтена                - Булево;
//    * ОповещениеВключено      - Булево;
//    * ДатаНачалаОповещения    - Дата // Для варианта "Для форм, простой" - всегда пустая дата (01.01.0001).
//
Функция НайтиКонтекстнуюНовостьВМассиве(АдресМассиваНовостей, НомерСтрокиНовости) Экспорт
```

Пример вызова
```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. Получение и обработка новостей с серверов новостных центров
//	     (ежеминутно, каждые 15 минут, каждый час, ежедневно);
//   2. Обновление классификаторов (ежедневно);
//   3. Автоудаление новостей (ежедневно);
//   4. Обновление периодических свойств (важность, актуальность) (каждые 30 минут);
//   5. Обновление привязок к метаданным (+ важность) (каждые 30 минут);
//   6. Проверка версии платформы (каждые 6 часов);
//
Процедура ВсеОбновленияНовостей() Экспорт
```

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

## ЗаполнитьЗначенияАвтоматическихОтборов_ДляОбластиДанных
<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

// Процедура удаляет из регистров сведений ОтборыПоЛентамНовостейОбщие, ОтборыПоЛентамНовостейДляОбластиДанных
//   и ОтборыПоЛентамНовостейПользовательские категории значения категорий, которые некорректны.
// Некорректными записями этих регистров считаются:
//  1. записи с категориями, которых нет в табличной части "ДоступныеКатегорииНовостей" в ленте новостей;
//  2. общие отборы по области данных, по значениям категорий, по которым уже установлен общий отбор (неразделенный),
//     а значения отбора по области данных не входят в подмножество общего отбора (неразделенного)
//     (например, общий отбор (неразделенный): География = Москва, Хабаровск,
//     а отбор по области данных установили География = Киев);
//  3. пользовательские отборы по категориям, по которым в ленте новостей установлен признак
//     РазрешеноНастраиватьПользователям = Ложь, (за исключением записей,
//     у которых реквизит УстановленоПрограммно = Истина);
//  4. пользовательские отборы, по значениям категорий, по которым уже установлен общий отбор
//     (неразделенный или по области данных), а значения пользовательского отбора не входят
//     в подмножество общего отбора (неразделенного или по области данных) (например, общий отбор:
//     География = Москва, Хабаровск, а пользователь установил География = Киев);
// Такие ситуации возможны, если:
//  а) со временем из какой-то ленты новостей удалили категории;
//  б) администратор со временем отключил пользователям возможность настраивать какие-то категории
//     (но программно может задавать им отборы);
//  в) администратор со временем изменил общие неразделенные отборы;
//  г) администратор со временем изменил общие отборы по области данных.
// Процедура должна вызываться после получения новостей, но перед пересчетом отборов (ПересчитатьОтборыПоНовостям_*).
// При работе в локальном режиме может запускаться без ограничений.
// При работе в модели сервиса:
//   - если запущена из неразделенного сеанса (регламентным заданием), то пересчитает и общие,
//       и общие для области данных, и пользовательские отборы;
//   - если запущена из разделенного сеанса (обработчик обновления каждой области данных),
//       то пересчитает только общие для области данных и пользовательские отборы.
//
// Параметры:
//  КонтекстВыполнения - Структура, Неопределено - структура контекста выполнения.
//
Процедура ОптимизироватьОтборыПоНовостям(КонтекстВыполнения = Неопределено) Экспорт
```

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

// Процедура анализирует регистр сведений ДатыЗагрузкиПоследнихНовостей, и если по ленте новостей были проблемы
//  с получением новостей, то в этой ленте новостей будет создана специальная новость с предложением
//  отключить ленту новостей из автоматического обновления, чтобы не генерировать ненужный трафик или не заставлять
//  сервер зависать при обращении на несуществующий адрес.
// Новость о ошибке имеет фиксированный УИН - 6588f3f9-d569-478f-a370-7cd75d833966.
//
// Параметры:
//  КонтекстВыполнения - Структура, Неопределено - структура контекста выполнения.
//
Процедура НайтиИОбработатьНеактивныеЛентыНовостей(КонтекстВыполнения = Неопределено) Экспорт
```

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

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

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

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

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

## ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_1_4
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Процедура вызывается при обновлении библиотеки БИП на новую версию.
// Процедура - для общих данных.
// Перенесено в этот модуль из ОбновлениеИнформационнойБазыБИП,
//  чтобы при частичном внедрении (без подсистемы Новостей) не выдавались ошибки при проверке конфигурации.
//
Процедура ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_1_4() Экспорт
```

Пример вызова
```bsl
ОбработкаНовостей.ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_1_4() 
```
</details>

## ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_1_5
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Процедура вызывается при обновлении библиотеки БИП на новую версию.
// Процедура - для общих данных.
// Перенесено в этот модуль из ОбновлениеИнформационнойБазыБИП,
//  чтобы при частичном внедрении (без подсистемы Новостей) не выдавались ошибки при проверке конфигурации.
//
Процедура ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_1_5() Экспорт
```

Пример вызова
```bsl
ОбработкаНовостей.ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_1_5() 
```
</details>

## ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_2_3
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Процедура вызывается при обновлении библиотеки БИП на новую версию.
// Процедура - для общих данных.
//
Процедура ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_2_3() Экспорт
```

Пример вызова
```bsl
ОбработкаНовостей.ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_2_2_3() 
```
</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>

## ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию_2_1_4
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Процедура вызывается при обновлении библиотеки БИП на новую версию.
// Процедура - для каждой области данных.
// Перенесено в этот модуль из ОбновлениеИнформационнойБазыБИП,
//  чтобы при частичном внедрении (без подсистемы Новостей) не выдавались ошибки при проверке конфигурации.
//
Процедура ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию_2_1_4() Экспорт
```

Пример вызова
```bsl
ОбработкаНовостей.ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию_2_1_4() 
```
</details>

## ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию_2_1_5
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

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

```bsl

// Процедура вызывается при обновлении библиотеки БИП на новую версию.
// Процедура - для каждой области данных.
// Перенесено в этот модуль из ОбновлениеИнформационнойБазыБИП,
//  чтобы при частичном внедрении (без подсистемы Новостей) не выдавались ошибки при проверке конфигурации.
//
Процедура ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию_2_1_5() Экспорт
```

Пример вызова
```bsl
ОбработкаНовостей.ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию_2_1_5() 
```
</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

// АПК:142-выкл 5 необязательных параметров.

// Процедура записывает сообщение в журнал регистрации.
//
// Параметры:
//  ИмяСобытия                      - строка;
//  ИдентификаторШага               - строка;
//  УровеньРегистрации              - строковое представление константы УровеньЖурналаРегистрации;
//  ОбъектМетаданных                - строковое представление объекта метаданных;
//  Данные                          - данные;
//  Комментарий                     - строка - произвольный комментарий;
//  ВестиПодробныйЖурналРегистрации - Булево - признак записи незначащих событий (Информации и Примечания).
//
Процедура ЗаписатьСообщениеВЖурналРегистрации( Экспорт
```

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

// АПК:142-вкл

// Выгружает журнал регистрации по событиям во временное хранилище.
//
// Параметры:
//  ПараметрыОтбора - Структура - структура с ключами:
//   * ДатаНачала    - Дата - начало периода журнала;
//   * ДатаОкончания - Дата - конец периода журнала;
//   * Событие       - Массив - массив событий (см. [МодульПодсистемыКлиентСервер].ПолучитьСписокВсехСобытийЖурналаРегистрации);
//   * Метаданные    - Массив, Неопределено - массив метаданных для отбора.
//  ПараметрыФайлаВыгрузки - Структура, Неопределено - структура с ключами:
//   * Архивировать - Булево - Истина, если необходимо архивировать выгрузку.
//
// Возвращаемое значение:
//   Структура с ключами:
//    * АдресВременногоХранилищаФайла - Строка - Адрес выгруженных данных в хранилище;
//    * ТекстОшибки - Строка - Текст ошибки или пустая строка.
//
Функция ВыгрузитьВсеСобытияЖурналаРегистрации(ПараметрыОтбора, ПараметрыФайлаВыгрузки = Неопределено) Экспорт
```

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

// Для объекта ХДТО возвращает его xml представление - нужно для отладки.
// В отличие от ОбщегоНазначения.ОбъектXDTOВСтрокуXML возвращает строку другого формата.
//
// Параметры:
//  ОбъектХДТО  - ОбъектXDTO  - требуемый объект;
//  ФабрикаХДТО - ФабрикаXDTO - на каком основании создавать тип (может быть по-умолчанию - из конфигурации, и из веб-сервиса).
//
// Возвращаемое значение:
//   Строка - xml-представление объекта.
//
Функция ПредставлениеОбъектаХДТО(ОбъектХДТО, ФабрикаХДТО = Неопределено) Экспорт
```

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

// Процедура по имени объекта метаданных дополняет стандартные значения.
// По-умолчанию стандартные значения берутся из макетов с именем "СтандартныеЗначения" для следующих объектов метаданных:
//  - Справочник.ЗначенияКатегорийНовостей,
//  - Справочник.ЛентыНовостей,
//  - ПланВидовХарактеристик.КатегорииНовостей.
//
// Параметры:
//  ИмяОбъектаМетаданных - Строка - Имя загружаемого объект метаданных. Возможные значения:
//     * "Справочники.ЗначенияКатегорийНовостей";
//     * "Справочники.ЛентыНовостей";
//     * "ПланыВидовХарактеристик.КатегорииНовостей".
//  СтандартныеЗначения - Соответствие - Сюда необходимо добавить свои тексты стандартных значений.
//                                       Тексты должны быть оформлены в формате XML так же, как это сделано
//                                         в макете СтандартныеЗначения нужного объекта метаданных:
//                                      * Ключ - произвольный идентификатор;
//                                      * Значение - Текст в формате XML.
//
Процедура ПолучитьДополнительныеСтандартныеЗначенияКлассификаторов(ИмяОбъектаМетаданных, СтандартныеЗначения) Экспорт
```

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

// Процедура по ссылке на ленту новостей дополняет стандартные значения.
// По-умолчанию стандартные значения берутся из макетов справочника Новости с именем "СтандартныеЗначения_<КодЛентыНовостей>".
//
// Параметры:
//  ЛентаНовостей - СправочникСсылка.ЛентыНовостей - Ссылка на ленту новостей, в которую необходимо загрузить данные;
//  СтандартныеЗначения - Соответствие - Сюда необходимо добавить свои тексты стандартных значений.
//                                       Тексты должны быть оформлены в формате XML так же, как это сделано
//                                         в макете СтандартныеЗначения нужного объекта метаданных:
//                                      * Ключ - произвольный идентификатор;
//                                      * Значение - Текст в формате XML.
//
Процедура ПолучитьДополнительныеСтандартныеЗначенияНовостей(ЛентаНовостей, СтандартныеЗначения) Экспорт
```

Пример вызова
```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С данных, обработчика ПередЗаписью нет,
//  т.е. манипулировать отменой записи нельзя. Также отсутствует параметр Отказ.
//
// Параметры:
//  КлассификаторСсылка - СправочникСсылка - Классификатор, который был только что записан.
//
Процедура ДополнительноОбработатьКлассификаторПослеПолученияПослеЗаписи(КлассификаторСсылка) Экспорт
```

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

// Устанавливает состояние подсистемы.
//
// Параметры:
//  СостояниеПодсистемы - Строка - Допустимые состояния:
//    * Активна - подсистема работает в штатном режиме, все новости показываются;
//    * ТребуетсяПересчетОтборовПослеДлительногоОжидания - база долго не запускалась, возможно устарели все отборы.
//        Никакие новости не показываются, пока не будут пересчитаны отборы. Не более 1 часа;
//    * СейчасЗагружаютсяНовости - в данный момент происходит загрузка новостей, после которой будут пересчитываться отборы.
//        Новые и обновленные  новости в этот момент показывать НЕ надо (т.к. могли измениться отборы); Не более 6 часов;
//
Процедура УстановитьСостояниеПодсистемы(СостояниеПодсистемы) Экспорт
```

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

---
