ПриЗаполненииСпискаТекущихДел (БСП)

Автор: 1С
ОбщийМодуль.ПодключениеСервисовСопровождения
БСП

При заполнении списка текущих дел. Интеграция с подсистемой СтандартныеПодсистемы.ТекущиеДела.

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

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

Рекомендации

Похожие публикации

ПриЗаполненииСпискаТекущихДел (БСП)

TurboConf 6 - расширение Конфигуратора 1С