Подготовить оповещение форм об изменении. Формирует сведения, необходимые для оповещения на клиенте открытых форм и динамических списков
// Формирует сведения, необходимые для оповещения на клиенте открытых форм и динамических списков
// о массовых изменениях объектов, которые произошли на сервере.
//
// Параметры:
// ИзмененныеОбъекты - ЛюбаяСсылка, Тип, Массив - содержит сведения об измененных объектах.
// Может быть передана ссылка или массив ссылок на измененные объекты,
// либо можно указать тип или массив типов измененных объектов.
//
Функция ПодготовитьОповещениеФормОбИзменении(ИзмененныеОбъекты) Экспорт
Результат = Новый Соответствие;
Если ИзмененныеОбъекты = Неопределено Тогда
Возврат Результат;
КонецЕсли;
МассивТипов = Новый Массив;
ТипСсылкиИлиТипаИлиМассива = ТипЗнч(ИзмененныеОбъекты);
Если ТипСсылкиИлиТипаИлиМассива = Тип("Массив") Тогда
Для Каждого Элемент Из ИзмененныеОбъекты Цикл
ТипЭлемента = ТипЗнч(Элемент);
Если ТипЭлемента = Тип("Тип") Тогда
ТипЭлемента = Элемент;
КонецЕсли;
Если МассивТипов.Найти(ТипЭлемента) = Неопределено Тогда
МассивТипов.Добавить(ТипЭлемента);
КонецЕсли;
КонецЦикла;
Иначе
МассивТипов.Добавить(ИзмененныеОбъекты);
КонецЕсли;
Для Каждого ТипЭлемента Из МассивТипов Цикл
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЭлемента);
Если ТипЗнч(ОбъектМетаданных) <> Тип("ОбъектМетаданных") Тогда
Продолжить;
КонецЕсли;
ИмяСобытия = "Запись_" + ОбъектМетаданных.Имя;
Попытка
ПустаяСсылка = ПредопределенноеЗначение(ОбъектМетаданных.ПолноеИмя() + ".ПустаяСсылка");
Исключение
ПустаяСсылка = Неопределено;
КонецПопытки;
Результат.Вставить(ТипЭлемента, Новый Структура("ИмяСобытия,ПустаяСсылка", ИмяСобытия, ПустаяСсылка));
КонецЦикла;
Возврат Результат;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОповещенияОбИзмененияхНеИспользуются (БСП)
ОбработатьОповещениеОбИзменении (БСП)
ОбработкаОповещенияИзмененияФлажкаИспользоватьПоиск (БСП)
ОбработкаОповещенияИзмененияФлажкаУдалятьПоРасписанию (БСП)
ОбработкаОповещенияИзмененияФлажкаХранитьИсторию (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)