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

Автор: 1С
ОбщийМодуль.ДополнительныеОтчетыИОбработки
БСП

При заполнении списка текущих дел. См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.

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

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

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

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

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

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