События мониторинга 1СПАРК Риски / Модуль объекта

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

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	// 1. Обновить события мониторинга.
	Если СПАРКРиски.ИспользованиеСПАРКРискиВключено() Тогда
		ВидОшибки = СПАРКРискиМониторингСобытий.ОбновитьСобытияМониторинга();
	Иначе
		ВидОшибки = Перечисления.ВидыОшибокСПАРКРиски.ИспользованиеОтключено;
	КонецЕсли;
	
	Если Не ВидОшибки.Пустая() Тогда
		СПАРКРиски.ЗаполнитьОписаниеОшибкиФормированияОтчета(
			ДокументРезультат,
			ВидОшибки);
		Возврат;
	КонецЕсли;
	
	// 2. Формирование запроса.
	Запросы = Новый Массив;
	ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.СобытияМониторинга.Запрос;
	ПозицияШаблон = СтрНайти(ТекстЗапроса, "//# Начало запроса");
	
	Запросы.Добавить(Лев(ТекстЗапроса, ПозицияШаблон - 1));
	ШаблонЗапроса = Сред(ТекстЗапроса, ПозицияШаблон + 19);
	
	СправочникиКонтрагенты = СПАРКРиски.СвойстваСправочниковКонтрагентов();
	
	ДобавитьОбъединить = Ложь;
	Для Каждого ОписаниеСправочника Из СправочникиКонтрагенты Цикл
		
		Если ДобавитьОбъединить Тогда
			Запросы.Добавить("ОБЪЕДИНИТЬ ВСЕ");
			ШаблонЗапроса = СтрЗаменить(ШаблонЗапроса, "РАЗРЕШЕННЫЕ", "");
		КонецЕсли;
		
		ТекстЗапроса =
			СтрЗаменить(
				ШаблонЗапроса,
				"%ИмяСправочникаКонтрагенты",
				ОписаниеСправочника.Имя);
		
		ТекстЗапроса =
			СтрЗаменить(
				ТекстЗапроса,
				"//#",
				"");
		
		Запросы.Добавить(ТекстЗапроса);
		
		ДобавитьОбъединить = Истина;
		
	КонецЦикла;
	
	СхемаКомпоновкиДанных.НаборыДанных.СобытияМониторинга.Запрос =
		СтрСоединить(Запросы, Символы.ПС);
	
	// 3. Заполнение параметров.
	НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
	ПараметрНадписьНаПортале = НастройкиОтчета.ПараметрыДанных.Элементы.Найти("НадписьНаПортале");
	Если ПараметрНадписьНаПортале <> Неопределено Тогда
		ПараметрНадписьНаПортале.Значение = НСтр("ru = 'на Портале 1С:ИТС'");
		ПараметрНадписьНаПортале.Использование = Истина;
	КонецЕсли;
	
	// 4. Вывод результата.
	ДокументРезультат.Очистить();
	
	СПАРКРиски.ВывестиУведомлениеПользователяВОтчете(ДокументРезультат);
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныйПрограммныйИнтерфейс

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

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

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

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

	СПАРКРиски.ПриОпределенииПараметровВыбора(СвойстваНастройки);
	
	Если СвойстваНастройки.ПолеКД = Новый ПолеКомпоновкиДанных("ПараметрыДанных.ТипСобытия") Тогда
		Если ТипЗнч(СвойстваНастройки.ПользовательскаяНастройкаКД.Значение) = Тип("СписокЗначений") Тогда
			ЭлементыКУдалению = Новый Массив;
			Для Каждого Элемент Из СвойстваНастройки.ПользовательскаяНастройкаКД.Значение Цикл
				Если Элемент.Значение = "" Тогда
					ЭлементыКУдалению.Добавить(Элемент);
				КонецЕсли;
			КонецЦикла;
			Для Каждого Элемент Из ЭлементыКУдалению Цикл
				СвойстваНастройки.ПользовательскаяНастройкаКД.Значение.Удалить(Элемент);
			КонецЦикла;
		ИначеЕсли СвойстваНастройки.ПользовательскаяНастройкаКД.Значение = "" Тогда
			СвойстваНастройки.ПользовательскаяНастройкаКД.Значение = Новый СписокЗначений;
		КонецЕсли;
	КонецЕсли;

КонецПроцедуры

#КонецОбласти

#КонецЕсли

Связанные материалы