ПриОпределенииТипаИСсылкиЕслиОтчетДополнительный (БСП)

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

При определении типа ссылки если отчет дополнительный. Получает ссылку дополнительного отчета, если он подключен к хранилищу подсистемы Варианты отчетов.

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

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

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

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

ПриОпределенииОтчетовСНастройками (БСП)

ПриДобавленииДополнительныхОтчетовДоступныхТекущемуПользователю (БСП)

ПриДобавленииДополнительныхОтчетовДоступныхУказанномуПользователю (БСП)

ВидВСтроку (БСП)

СформироватьИнформациюОбОтчетеПоПолномуИмени (БСП)

ПолучитьВидОбработкиПоСтроковомуПредставлениюВида (БСП)

ТипКомандыВызовКлиентскогоМетода (БСП)

ПриПодключенииОтчета (БСП)

ПриЗаписиДополнительногоОтчета (БСП)

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