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

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

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

// Если перед выводом новости пользователю, разработчику надо "доработать" ее текст - заменить какие-то теги, стили,
//  удалить блоки текста и т.п., то это можно сделать в этой процедуре.
// При формировании текста происходит несколько стадий: вначале компонуется ХТМЛ-текст одной или списка новостей
//  (то, что внутри <body></body>), затем полученный текст обрамляется тегами <html></html> и стилями.
//  В этой процедуре можно обработать результирующий текст одной или списка новости, включая заголовки, стили и т.п.
//  В тексте списка новостей есть комментарии, которые можно быстро заменить с помощью строковых функций:
//   <!-- Здесь можно вставить свои теги для заголовка --> (находится внутри <html><head>)
//     например, если точно известно, что на компьютере установлен Internet Explorer последней версии, то можно добавить тег
//       <meta HTTP-equiv="X-UA-Compatible" content="IE=edge">
//       и тогда в новостях можно будет выводить SVG картинки;
//   /* Здесь можно вставить свои стили */ (находится внутри <html><head><style type=""text/css"">).
//
// Параметры:
//  ТекстХТМЛ     - Строка - уже подготовленный текст, который по-умолчанию будет отображен в форме просмотра новости.
//
// Возвращаемое значение:
//   Строка - окончательный текст одной или списка новости.
//
Процедура ДополнительноОбработатьТекстСпискаНовостейПередПоказом(ТекстХТМЛ) Экспорт
```

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

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

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

---

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

---
