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

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

При добавлении дополнительных отчетов доступных указанному пользователю. Дополняет массив ссылкам дополнительных отчетов, доступных текущему пользователю.

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

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

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

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

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

ДоступныеОтчеты (БСП)

ОтчетыТекущегоПользователя (БСП)

РазделыДополнительныхОтчетов (БСП)

ОпределитьРазделыСДополнительнымиОтчетами (БСП)

ПравоДобавления (БСП)

Дополнительная расшифровка отчета БСП

ПолучитьДействияСПользователемСервиса (БСП)

ПриПроверкеПраваДобавления (БСП)

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