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

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

Пример вызова
```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> и стилями.
//  В этой процедуре можно обработать текст одной новости, без стилей (то, что внутри <body></body>).
// Здесь можно изменить окончательный текст новости, например:
//   найти теги <div> с идентификатором id="MainOrganization" и заменить на наименование основной организации;
//   найти теги <a> с идентификатором id="Total51AccountTurnover" и заменить на общую сумму оборота по 51 счету;
//   найти комментарий <!-- Вставить здесь html-текст для бухгалтера --> и заменить.
// Примеры:
// // Преобразовать текст ХТМЛ в документДОМ для обработки
// ЧтениеХТМЛ = Новый ЧтениеHTML;
// ЧтениеХТМЛ.УстановитьСтроку(ТекстХТМЛ);
// ПостроительДОМ = Новый ПостроительDOM;
// ДокументДОМ = ПостроительДОМ.Прочитать(ЧтениеХТМЛ);
// // Найти и заменить элементы внутри body (только первого уровня вложенности!)
// Для каждого ТекущийЭлементХТМЛ Из ДокументДОМ.Тело.ДочерниеУзлы Цикл
//	// Дополнение текстов
//	Если ТекущийЭлементХТМЛ.ТипУзла = ТипУзлаDOM.Элемент Тогда
//		Если ВРег(ТекущийЭлементХТМЛ.Идентификатор) = ВРег("MainOrganization") Тогда
//			ТекущийЭлементХТМЛ.ТекстовоеСодержимое = ТекущийЭлементХТМЛ.ТекстовоеСодержимое + ", ...";
//		КонецЕсли;
//	КонецЕсли;
// КонецЦикла;
// // Преобразовать документДОМ обратно в строку
// ЗаписьХТМЛ = Новый ЗаписьHTML;
// ЗаписьХТМЛ.УстановитьСтроку();
// ЗаписьДОМ = Новый ЗаписьDOM;
// ЗаписьДОМ.Записать(ДокументДОМ, ЗаписьХТМЛ);
// ТекстХТМЛ = ЗаписьХТМЛ.Закрыть();
// // Можно обрабатывать текст ХТМЛ как строку - это быстрее чем ДОМ.
// // Заменить "длинную" ссылку на полный текст новости на гиперссылку с надписью "здесь".
// НайденоНачалоБлока = СтрНайти(ТекстХТМЛ, "<div id=""newsHyperlink"">");
// Если НайденоНачалоБлока > 0 Тогда
//	НайденКонецБлока = 0;
//	Для С=НайденоНачалоБлока+24 По СтрДлина(ТекстХТМЛ)-6 Цикл
//		Если ВРег(Сред(ТекстХТМЛ, С, 6)) = ВРег("</div>") Тогда
//			НайденКонецБлока = С;
//			Прервать;
//		КонецЕсли;
//	КонецЦикла;
//	Если НайденКонецБлока > 0 Тогда
//		// Все что между - это <a href="...">...</a>, можно заменить
//		НачалоГиперссылки = НайденоНачалоБлока + 24;
//		КонецГиперссылки = НайденКонецБлока;
//		ВременныйТекстХТМЛ =
//			Лев(ТекстХТМЛ, НачалоГиперссылки)
//			+ Символы.Таб + Символы.Таб + Символы.Таб + Символы.Таб + Символы.Таб + "%СсылкаНаПолныйТекстНовости%" + Символы.ПС
//			+ Символы.Таб + Символы.Таб + Символы.Таб + Символы.Таб + Прав(ТекстХТМЛ, СтрДлина(ТекстХТМЛ) - КонецГиперссылки + 1);
//		Если ПустаяСтрока(ОбъектНовости.СсылкаНаПолныйТекстНовости) Тогда
//			ВременныйТекстХТМЛ = СтрЗаменить(ВременныйТекстХТМЛ, "%СсылкаНаПолныйТекстНовости%", "");
//		Иначе
//			// Всегда писать "здесь"
//			ВременныйТекстХТМЛ = СтрЗаменить(
//				ВременныйТекстХТМЛ,
//				"%СсылкаНаПолныйТекстНовости%",
//				"Полный текст новости <a href=""" + СокрЛП(ОбъектНовости.СсылкаНаПолныйТекстНовости) + """>здесь</a>");
//		КонецЕсли;
//		ТекстХТМЛ = ВременныйТекстХТМЛ;
//	КонецЕсли;
// КонецЕсли; // Конец примера.
// Примечания:
//  - Не рекомендуется для замены использовать СтрШаблон() и СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(),
//     т.к. это может "повредить" ссылки (удалятся "%1", "%2", ...). Пример ссылки, которая может быть повреждена:
//       HTTP://its.1c.ru/news/redirect?utm_source=news_center&utm_medium=prog&url=%2Fdb%2Farbit%23content%3A4506%3Ahdoc.
//
// Параметры:
//  ОбъектНовости - СправочникОбъект.Новости - Новость, для которой необходимо изменить уже подготовленный текст;
//  ТекстХТМЛ     - Строка - уже подготовленный текст, который по-умолчанию будет отображен в форме просмотра новости.
//
// Возвращаемое значение:
//   Строка - окончательный текст новости (то, что внутри <body></body>).
//
//@skip-warning
Процедура ДополнительноОбработатьТекстНовостиПередПоказом(ОбъектНовости, ТекстХТМЛ) Экспорт
```

Пример вызова
```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> и стилями.
//  В этой процедуре можно обработать результирующий текст одной или списка новости, включая заголовки, стили и т.п.
// Здесь можно изменить окончательный текст новости, например:
//   найти теги <div> с идентификатором id="MainOrganization" и заменить на наименование основной организации
//   найти теги <a> с идентификатором id="Total51AccountTurnover" и заменить на общую сумму оборота по 51 счету
//   найти стиль с описанием класса с именем class="ShowOnlyIfAutoUpdateAvailable" и заменить
//     .ShowOnlyIfAutoUpdateAvailable:{display:block} на
//     .ShowOnlyIfAutoUpdateAvailable:{display:none}, в случае, если недоступно автообновление из интернет
//   найти комментарий <!-- Вставить здесь html-текст для бухгалтера --> и заменить.
// // Преобразовать текст ХТМЛ в документДОМ для обработки
// ЧтениеХТМЛ = Новый ЧтениеHTML;
// ЧтениеХТМЛ.УстановитьСтроку(ТекстХТМЛ);
// ПостроительДОМ = Новый ПостроительDOM;
// ДокументДОМ = ПостроительДОМ.Прочитать(ЧтениеХТМЛ);
// // Найти и заменить элементы внутри body (только первого уровня вложенности!)
// Для каждого ТекущийЭлементХТМЛ Из ДокументДОМ.Тело.ДочерниеУзлы Цикл
//	// Дополнение текстов
//	Если ТекущийЭлементХТМЛ.ТипУзла = ТипУзлаDOM.Элемент Тогда
//		Если ВРег(ТекущийЭлементХТМЛ.Идентификатор) = ВРег("MainOrganization") Тогда
//			ТекущийЭлементХТМЛ.ТекстовоеСодержимое = ТекущийЭлементХТМЛ.ТекстовоеСодержимое + ", ...";
//		КонецЕсли;
//	КонецЕсли;
// КонецЦикла;
// // Преобразовать документДОМ обратно в строку
// ЗаписьХТМЛ = Новый ЗаписьHTML;
// ЗаписьХТМЛ.УстановитьСтроку();
// ЗаписьДОМ = Новый ЗаписьDOM;
// ЗаписьДОМ.Записать(ДокументДОМ, ЗаписьХТМЛ);
// ТекстХТМЛ = ЗаписьХТМЛ.Закрыть();
// Примечания:
//  - Можно обрабатывать текст ХТМЛ как строку - это быстрее чем ДОМ.
//  - Не рекомендуется для замены использовать СтрШаблон() и СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(),
//     т.к. это может "повредить" ссылки (удалятся "%1", "%2", ...). Пример ссылки, которая может быть повреждена:
//       HTTP://its.1c.ru/news/redirect?utm_source=news_center&utm_medium=prog&url=%2Fdb%2Farbit%23content%3A4506%3Ahdoc.
//
// Параметры:
//  ТекстХТМЛ     - Строка - уже подготовленный текст, который по-умолчанию будет отображен в форме просмотра новости.
//
// Возвращаемое значение:
//   Строка - окончательный текст одной или списка новости.
//
//@skip-warning
Процедура ДополнительноОбработатьТекстСпискаНовостейПередПоказом(ТекстХТМЛ) Экспорт
```

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

// Если после получения новости надо "доработать" ее текст, реквизиты, категории и т.п.,
//  то это можно сделать в этой процедуре.
// Объект новости еще не записан, можно менять все его реквизиты (например, пометку удаления, чтобы управлять видимостью новости).
// Дополнительно передается НовостьХДТО - на случай, если передаются дополнительные теги, их можно отсюда получить.
// Здесь можно изменить все данные новости перед записью, например:
//   для новостей с определенными идентификаторами, которые в НовостномЦентре выдаются специфическим новостям,
//   изменить тексты новости и т.п.
// Список предопределенных УИН новостей (проверять на равенство СокрЛП(ВРег(ОбъектНовости.УИННовости)) и ВРег(указанный УИН)):
//  - для 7be471d8-3a5d-4a2b-bf67-ca8d632f34d8, сообщается о том, что лента новостей - закрытая,
//      и необходимо ввести логин / пароль для доступа к ней;
//  - для 8cb9d0fa-dd13-49d7-a023-b207d2cbc8c4 сообщается о том, что лента новостей - закрытая,
//      и введенные логин / пароль для доступа к ней неправильные;
//  - для bf94d306-8e11-41c2-a7cb-ebc92e8acb3b сообщается о том, что лента новостей - закрытая,
//      и требуется действующая подписка на ИТС;
//  - для 15796c0d-ed48-4a48-90f0-87aa03a158c6 сообщается о том, что лента новостей - закрытая,
//      а текущая подписка на ИТС уже закончена (просрочена);
//  - для a170042d-a073-456a-91b5-881796995a27 сообщается о том, что текущая конфигурация
//      не находится в списке купленных, хотя доступ к ленте новостей разрешен только тем, кто официально
//      приобрел конфигурацию;
//  - для 41dbfdc8-665b-4944-b771-608809627916 сообщается о том, что переданный URL содержит ошибки;
//  - для 1db8ce78-10e1-4556-b891-44b549fe22d7 сообщается о том, что лента новостей
//      не привязана в новостном центре к текущей конфигурации, а значит не должна пытаться получать новости по ней;
//  - для 505748bb-758a-47a5-9566-e4894f85b382 сообщается о том, что лента новостей не существует;
//  - для e91fabe3-adfd-4fdb-b37d-4799faee32ae сообщается о том, что указан неправильный формат (должен быть atom, rss или atom1c);
//  - для 313f4928-a71c-4cef-96ee-a4b6106c1275 или id=Ошибка сообщается обо всех остальных системных ошибках;
//  - для 6588f3f9-d569-478f-a370-7cd75d833966 сообщается о том, что по ленте новостей
//      давно не были получены новости из-за технических ошибок;
//      Новость должна создаваться самой конфигурацией, но возможны ситуации, что сервер сам предупреждает, что он будет отключен.
//  - для 8f9c7dca-3641-4ce1-88cb-5ea1ad021dfd можно в текст новости вставить тег <a id="ClientDebugInformation" />,
//      который будет заменяться на клиентскую отладочную информацию (в дополнение к информации от сервера).
//
// Параметры:
//  ОбъектНовости - СправочникОбъект.Новости - Новость, у которой необходимо изменить данные;
//  НовостьХДТО   - ОбъектXDTO - полученный объект новости.
//
//@skip-warning
Процедура ДополнительноОбработатьНовостьПослеПолученияПередЗаписью(ОбъектНовости, НовостьХДТО) Экспорт
```

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

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

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

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

Пример вызова
```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, то открывающая форма инициирует
//                                     открытие формы просмотра таких новостей.
//  МассивСтруктурНовостей           - Массив из Структура - Этот массив новостей можно редактировать. Например, удалить некоторые
//                                       ненужные новости или понизить их важность и т.п. Содержит структуры с ключами:
//   * НомерСтрокиНовости      - Число;
//   * ЛентаНовостей           - СправочникСсылка.ЛентаНовостей;
//   * Новость                 - СправочникСсылка.Новости;
//   * НовостьНаименование     - Строка;
//   * НовостьПодзаголовок     - Строка;
//   * УИННовости              - Строка;
//   * ДатаПубликации          - Дата;
//   * Важность                - Число;
//   * Актуальность            - Булево;
//   * Метаданные              - Строка;
//   * Форма                   - Строка;
//   * Событие                 - Строка;
//   * ПоказыватьВФормеОбъекта - Булево;
//   * ЭтоПостояннаяНовость    - Булево;
//   * Прочтена                - Булево;
//   * ОповещениеВключено      - Булево;
//   * СпособОповещения        - Строка - наименование из перечисления "СпособыОповещенияПользователяОНовостях".
//
//@skip-warning
Процедура ДополнительноОбработатьМассивКонтекстныхНовостей( Экспорт
```

Пример вызова
```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, то открывающая форма инициирует
//                                     открытие формы просмотра таких новостей.
//  ТаблицаКонтекстныхНовостей       - ТаблицаЗначений - Эту таблицу новостей можно редактировать. Например, удалить некоторые
//                                       ненужные новости или понизить их важность и т.п. Колонки:
//   * НомерСтрокиНовости      - Число;
//   * ЛентаНовостей           - СправочникСсылка.ЛентаНовостей;
//   * Новость                 - СправочникСсылка.Новости;
//   * НовостьНаименование     - Строка;
//   * НовостьПодзаголовок     - Строка;
//   * УИННовости              - Строка;
//   * ДатаПубликации          - Дата;
//   * Важность                - Число;
//   * Актуальность            - Булево;
//   * Метаданные              - Строка;
//   * Форма                   - Строка;
//   * Событие                 - Строка;
//   * ПоказыватьВФормеОбъекта - Булево;
//   * ЭтоПостояннаяНовость    - Булево;
//   * Прочтена                - Булево;
//   * ОповещениеВключено      - Булево;
//   * СпособОповещения        - Строка - наименование из перечисления "СпособыОповещенияПользователяОНовостях".
//
//@skip-warning
Процедура ДополнительноОбработатьТаблицуКонтекстныхНовостей( Экспорт
```

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

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

Пример вызова
```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 Тогда
//	//
//	КонецЕсли;
//	// Список "особенных" новостей, который можно вычислить каким-нибудь запросом.
//	СписокЗначенийНовостей = Новый СписокЗначений;
//	// Добавить элемент условного оформления по условию "ВСписке"
//	Элемент = УсловноеОформлениеФормы.Элементы.Добавить();
//	// Оформляемые поля
//	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
//	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ТаблицаНовостейНаименование");
//	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
//	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ТаблицаНовостейПодзаголовок");
//	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
//	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ТаблицаНовостейДатаПубликации");
//	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
//	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ТаблицаНовостейЛентаНовостей");
//	// Отбор
//	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаНовостей.Новость");
//	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
//	ОтборЭлемента.ПравоеЗначение = СписокЗначенийНовостей;
//	// Оформление
//	Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(ШрифтыСтиля.ШрифтНовостей, , , Истина)); // Жирный
//	// Использование
//	Элемент.Использование = Истина;
//
//@skip-warning
Процедура ДополнительноУстановитьУсловноеОформлениеФормыКонтекстныхНовостей(ФормаКонтекстныхНовостей, УсловноеОформлениеФормы) Экспорт
```

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

// Переопределяет сброс состояния новости при ее записи.
// По-умолчанию, если новость "приходит" заново (в результате перепубликации, например),
//  то ей заново устанавливаются свойства "Не прочтена", "Оповещение включено" и т.п.
// Здесь можно переопределить поведение по-умолчанию и в зависимости от своих условий сбрасывать или не сбрасывать состояние новости.
// Важное замечание: нельзя вносить изменения в ОбъектНовость, т.к. метод вызывается из события ПриЗаписи.
// Если новость новая, то этот метод не вызывается, т.е. нельзя переопределить сброс свойств для новых новостей.
// В ОбъектНовость.ДополнительныеСвойства есть полезное свойство "ВажностьДоЗаписи". Если увеличилась важность,
//  то рекомендуется сбросить свойства новости до "Не прочтена", "Оповещение включено" (т.е. установить СброситьСостояниеНовости = Истина).
// Возможны и более сложные сценарии: например, сбрасывать состояние новости только
//  если в тексте есть комментарий "<!-- Сбросить состояние новости -->".
//
// Параметры:
//  ОбъектНовость            - СправочникОбъект.Новости - записываемая новость;
//  СброситьСостояниеНовости - Булево - В эту переменную необходимо вернуть "Истина", если необходимо установить
//                             свойства "Не прочтена", "Оповещение включено",
//                             или Ложь, если надо оставить эти свойства в текущем состоянии.
//
//@skip-warning
Процедура ПереопределитьСбросСостоянияНовостиПриЗаписи(Знач ОбъектНовость, СброситьСостояниеНовости) Экспорт
```

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

// Переопределяет создание новости при неактивности ленты новостей.
//
// Параметры:
//  ЛентаНовостей - СправочникСсылка.ЛентыНовостей - Лента новостей;
//  НовостьОбъект - СправочникОбъект.Новости - заполненный объект справочника Новости, который будет создан или изменен;
//  Отказ         - Булево - в этот параметр надо передать Истина, если создание / изменение новости надо отменить.
//
//@skip-warning
Процедура ПереопределитьДействияКогдаНайденаНеактивнаяЛентаНовостей(ЛентаНовостей, НовостьОбъект, Отказ) Экспорт
```

Пример вызова
```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, то открывающая форма инициирует
//                                             открытие формы просмотра таких новостей;
//  СозданнаяКнопкаИлиПодменюНовости         - ГруппаФормы, КнопкаФормы, Неопределено - кнопка или подменю для открытия
//                                             формы контекстных новостей (только в случае, если она создавалась программно);
//  МассивСтруктурНовостей                   - Массив из Структура - Массив структур контекстных новостей для этой формы с ключами:
//   * НомерСтрокиНовости      - Число;
//   * ЛентаНовостей           - СправочникСсылка.ЛентаНовостей;
//   * Новость                 - СправочникСсылка.Новости;
//   * НовостьНаименование     - Строка;
//   * НовостьПодзаголовок     - Строка;
//   * УИННовости              - Строка;
//   * ДатаПубликации          - Дата;
//   * Важность                - Число;
//   * Актуальность            - Булево;
//   * Метаданные              - Строка;
//   * Форма                   - Строка;
//   * Событие                 - Строка;
//   * ПоказыватьВФормеОбъекта - Булево;
//   * ЭтоПостояннаяНовость    - Булево;
//   * Прочтена                - Булево;
//   * ОповещениеВключено      - Булево;
//
//@skip-warning
Процедура ДополнительноОбработатьФормуПриСозданииНаСервере( Экспорт
```

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

// В этой процедуре можно переопределить состав новостей формы показа новостей и другие действия с управляемой формой.
//
// Параметры:
//  Форма                - ФормаКлиентскогоПриложения - форма просмотра новостей для рабочего стола;
//  Отказ                - Булево - Признак отказа от создания формы. Если установить данному параметру значение Истина,
//                            то форма создана не будет;
//  СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения стандартной (системной) обработки события.
//                            Если в установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
//
//@skip-warning
Процедура ДополнительноОбработатьФормуПросмотраНовостейПриСозданииНаСервере( Экспорт
```

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

// В этой процедуре можно переопределить состав новостей формы показа новостей для рабочего стола и другие действия с управляемой формой.
// Пример:
//   ВозвращаемыеЗначения = Новый Структура("ПропуститьЗаполнениеНовостями", Истина);
//   НоваяСтрока = Форма.Новости.Добавить();
//   НоваяСтрока.Наименование = НСтр("ru='Как обновить конфигурацию'");
//   НоваяСтрока.Ссылка = Справочники.Новости.НайтиПоРеквизиту("УИННовости", "123456"); // Новость должна присутствовать в справочнике!
//   НоваяСтрока = Форма.Новости.Добавить();
//   НоваяСтрока.Наименование = НСтр("ru='Как настроить автообновление'");
//   НоваяСтрока.Ссылка = Справочники.Новости.НайтиПоРеквизиту("УИННовости", "234567"); // Новость должна присутствовать в справочнике!
//
// Параметры:
//  Форма                - ФормаКлиентскогоПриложения - форма просмотра новостей для рабочего стола;
//  ВозвращаемыеЗначения - Структура - структура с возвращаемыми значениями для дальнейшей обработки формой. Может содержать ключи:
//    * ПропуститьЗаполнениеНовостями - Булево - если Истина, то форма рабочего стола не будет проводить заполнение новостями.
//
//@skip-warning
Процедура ДополнительноОбработатьФормуПросмотраНовостейДляРабочегоСтолаПриСозданииНаСервере( Экспорт
```

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

// В этой процедуре можно переопределить действия с управляемой формой просмотра списка контекстных новостей (ФормаКонтекстныхНовостей).
//
// Параметры:
//  Форма                - ФормаКлиентскогоПриложения - форма просмотра списка контекстных новостей;
//  Отказ                - Булево - Признак отказа от создания формы. Если установить данному параметру значение Истина,
//                            то форма создана не будет;
//  СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения стандартной (системной) обработки события.
//                            Если в установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
//
//@skip-warning
Процедура ДополнительноОбработатьФормуКонтекстныхНовостейПриСозданииНаСервере( Экспорт
```

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

// В этой процедуре можно переопределить действия с управляемой формой просмотра списка
//  очень важных контекстных новостей (ФормаНовостей, ФормаНовостейСоСписком).
//
// Параметры:
//  Форма                - ФормаКлиентскогоПриложения - форма просмотра списка очень важных контекстных новостей;
//  Отказ                - Булево - Признак отказа от создания формы. Если установить данному параметру значение Истина,
//                            то форма создана не будет;
//  СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения стандартной (системной) обработки события.
//                            Если в установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
//
//@skip-warning
Процедура ДополнительноОбработатьФормуОченьВажныхНовостейПриСозданииНаСервере( Экспорт
```

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

// В этой процедуре можно переопределить действия с управляемой формой просмотра новости.
//
// Параметры:
//  Форма                - ФормаКлиентскогоПриложения - форма просмотра новости;
//  Отказ                - Булево - Признак отказа от создания формы. Если установить данному параметру значение Истина,
//                            то форма создана не будет;
//  СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения стандартной (системной) обработки события.
//                            Если в установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
//
//@skip-warning
Процедура ДополнительноОбработатьФормуНовостиПриСозданииНаСервере( Экспорт
```

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

// В этой процедуре можно переопределить процедуру расчета списка важных новостей
//  и их порядок для отображения в панели контекстных новостей.
//
// Параметры:
//  Форма                - ФормаКлиентскогоПриложения - форма объекта с панелью важных новостей;
//  ТаблицаНовостейДляПанелиКонтекстныхНовостей - ТаблицаЗначений - незаполненная таблица новостей для панели контекстных новостей.
//                           Список колонок см. ОбработкаНовостей.КонтекстныеНовости_ПриСозданииНаСервере;
//  СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения
//                           стандартной (библиотечной) обработки события.
//
//@skip-warning
Процедура ПанельКонтекстныхНовостей_ВыбратьНовости( Экспорт
```

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

// В этой процедуре можно переопределить реакцию системы на нажатие гиперссылки в тексте новости.
// По-умолчанию система при нажатии на, например, 1C:ShowPict001 ищет в самой новости действие с таким же идентификатором,
//  что заставляет в каждой новости прописывать действие и его параметры. С помощью этого переопределения можно заполнять
//  параметры в коде на стороне клиента, что упростит написание текстов новостей.
// Здесь можно заполнить параметры Действие и СписокПараметров произвольными значениями, которые будут переданы в
//   ОбработкаНовостейКлиент.ОбработкаНавигационнойСсылки.
//
// Метод заполняет параметры Действие и СписокПараметров для объекта
//  новости по переданному уникальному идентификатору гиперссылки.
//
// Параметры:
//  Объект           - ДанныеФормыКоллекция, ДокументСсылка.Новости, СправочникСсылка.Новости - ссылка на новость;
//  УИНДействия      - Строка - идентификатор действия;
//  Действие         - Строка - действие;
//  СписокПараметров - СписокЗначений - список параметров действия.
//
//@skip-warning
Процедура ДополнительноПодготовитьПараметрыНавигационнойСсылки( Экспорт
```

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

// В этой процедуре можно задать действия при записи пользователя.
// Например, при записи нового пользователя можно определить текущую версию конфигурации
//  и отметить новости для старых версий как прочтенные.
// Здесь можно задать действия при записи пользователя.
// Например, для нового пользователя отметить прочтенными новости для предыдущих версий конфигурации.
//
// Параметры:
//  ПользовательОбъект   - СправочникОбъект.Пользователи - записываемый объект;
//  ЭтоНовыйПользователь - Булево - Истина, если записывается новый пользователь;
//  Отказ                - Булево - установить в Истина, если надо отменить запись.
//
//@skip-warning
Процедура ОбработатьЗаписьПользователя( Экспорт
```

Пример вызова
```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 месяц, для этого необходимо отредактировать
//   данные регистра сведений ДатыЗагрузкиПоследнихНовостей.
// Здесь можно задать действия при переходе с другой программы,
//   если действия по умолчанию (загрузить новости за 1 месяц) не устраивает.
// Например, можно вообще очистить регистр сведений ДатыЗагрузкиПоследнихНовостей.
//
//@skip-warning
Процедура ПриПереходеСДругойПрограммы() Экспорт
```

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

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

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

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

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

// Вызывается при обновлении библиотеки БИП на новую версию.
// Обработчики из библиотеки для общих данных и для области данных уже были вызваны.
// Метод - для всех областей данных.
// Здесь можно задать действия при обновлении ИБ.
// Например, программно добавить новости, или изменить свойства лент новостей, или изменить расписание регламентного задания ВсеОбновленияНовостей.
//
//@skip-warning
Процедура ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_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

// Вызывается при обновлении библиотеки БИП на новую версию.
// Обработчики из библиотеки для общих данных и для области данных уже были вызваны.
// Метод - для всех областей данных.
// Здесь можно задать действия при обновлении ИБ.
// Например, программно добавить новости, или изменить свойства лент новостей, или изменить расписание регламентного задания ВсеОбновленияНовостей.
//
//@skip-warning
Процедура ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию_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

// Вызывается при первом запуске библиотеки БИП.
// Обработчики из библиотеки для общих данных и для области данных уже были вызваны.
// Метод - для каждой области данных.
// Здесь можно задать действия при первоначальном запуске ИБ.
// Например, произвести настройки пользователей.
//
//@skip-warning
Процедура ОбновлениеИнформационнойБазы_ОбластьДанных_ПервыйЗапуск() Экспорт
```

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

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

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

// Вызывается при обновлении библиотеки БИП на новую версию.
// Обработчики из библиотеки для общих данных и для области данных уже были вызваны.
// Метод - для каждой области данных.
// Здесь можно задать действия при обновлении ИБ в области данных.
// Например, произвести настройки пользователей.
//
//@skip-warning
Процедура ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию_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

// Вызывается при обновлении библиотеки БИП на новую версию.
// Обработчики из библиотеки для общих данных и для области данных уже были вызваны.
// Метод - для каждой области данных.
// Здесь можно задать действия при обновлении ИБ в области данных.
// Например, произвести настройки пользователей.
//
//@skip-warning
Процедура ОбновлениеИнформационнойБазы_ОбластьДанных_ПерейтиНаВерсию_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

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

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

// Переопределяет значение категории, если для нее установлено свойство "ЗаполняетсяАвтоматически".
// Переопределение имеет смысл только если необходимо возвращать значения, отличные от значений по-умолчанию.
//
// Параметры:
//  Категория - ПланВидовХарактеристикСсылка.КатегорииНовостей, Строка - категория новостей или ее код;
//  Значение  - Произвольный - значение, которое можно изменить.
//
//@skip-warning
Процедура ЗначениеПредопределеннойКатегории(Категория, Значение) Экспорт
```

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

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

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

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

// После вызова ОбработкаНовостей.ДобавитьПрограммноеЗначениеОтбора_*
//  или ОбработкаНовостей.УдалитьПрограммноеЗначениеОтбора_*
//  эти значения категорий должны попасть в регистры сведений ОтборыПоЛентамНовостей*.
// Чтобы эти значения попали туда автоматически, необходимо заполнить массив кодами категорий,
//   для которых необходимо найти значения категорий в новостях,
//   для дальнейшего расчета соответствия этих значений настройкам базы.
//
// Параметры:
//  КодыКатегорийНовостей - Массив из Строка - Массив кодов категорий новостей;
//  ОбластьВидимости      - Строка - "Общее" или "ДляОбластиДанных". Пользовательские - не заполнять;
//  КонтекстВыполнения    - Структура, Неопределено - структура контекста выполнения.
//
//@skip-warning
Процедура ЗаполнитьКодыКатегорийДляАвтоматическогоРасчетаОтборовНовостей( Экспорт
```

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

// Рассчитывает значение отбора по категории и значению категории для дальнейшего определения,
//  какие новости скрывать в зависимости от категории и значения категории новости.
//
// Параметры:
//  КатегорияНовостей         - ПланВидовХарактеристикСсылка.КатегорииНовостей - категория новостей;
//  КодКатегорииНовостей      - Строка - код категории новостей;
//  ЗначениеКатегорииНовостей - Строка - значение категории новостей;
//  РезультатРасчета          - Булево - в эту переменную будет возвращено значение расчета по категории новостей;
//  ОбластьДанных             - Число, Неопределено - номер области данных или Неопределено для неразделенных значений
//                                или при работе в коробке;
//  КонтекстВыполнения        - Структура, Неопределено - структура контекста выполнения;
//  СтандартнаяОбработка      - Булево - признак выполнения стандартной обработки.
//
//@skip-warning
Процедура РассчитатьОтборПоКатегории( Экспорт
```

Пример вызова
```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.
// Если включено разделение данных, то такой список должен получаться только при включенном разделителе.
//
// Параметры:
//  ОченьВажныеНовости - Массив из Структура - массив структур, в который будут возвращены новости с важностью "Очень важная", где:
//    * Новость                        - СправочникСсылка.Новости - ссылка на новость;
//    * НовостьУникальныйИдентификатор - УникальныйИдентификатор - УИН от ссылки на новость;
//    * НовостьНаименование            - Строка - заголовок новости;
//    * НовостьПодзаголовок            - Строка - подзаголовок новости;
//    * НовостьКодЛентыНовостей        - Строка - код ленты новостей;
//    * ОповещениеВключено             - Булево - Признак, что оповещение включено;
//    * ИконкаНовости                  - Неопределено - всегда Неопределено;
//    * СпособОповещения               - Строка - имя перечисления СпособыОповещенияПользователяОНовостях;
//  ВажныеНовости      - Массив из Структура - массив структур, в который будут возвращены новости с важностью "Важная", где:
//    * Новость                        - СправочникСсылка.Новости - ссылка на новость;
//    * НовостьУникальныйИдентификатор - УникальныйИдентификатор - УИН от ссылки на новость;
//    * НавигационнаяСсылка            - Строка - навигационная ссылка на новость;
//    * НовостьНаименование            - Строка - заголовок новости;
//    * НовостьПодзаголовок            - Строка - подзаголовок новости;
//    * НовостьКодЛентыНовостей        - Строка - код ленты новостей;
//    * ОповещениеВключено             - Булево - Признак, что оповещение включено;
//    * ИконкаНовости                  - Картинка, Неопределено - иконка новости для оповещения пользователю;
//    * СпособОповещения               - Строка - имя перечисления СпособыОповещенияПользователяОНовостях;
//  ДополнительныеПараметры - Произвольный - произвольные параметры;
//  СтандартнаяОбработка    - Булево - признак выполнения стандартной обработки.
//
//@skip-warning
Процедура ПолучитьНовостиСНапоминаниями( Экспорт
```

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

// Правила переопределения общих модулей для устаревшей функции не проверяются.
// АПК:288-выкл
// АПК:499-выкл
// АПК:503-выкл

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

Пример вызова
```bsl
Результат = ОбработкаНовостейПереопределяемый.ПолучитьЗначениеПредопределеннойКатегории(Категория, ПредыдущийРезультат) 
```
</details>

---

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

---
