Анализ цен / Модуль менеджера

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

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

#Область КомандыПодменюОтчеты

// Добавляет команду отчета в список команд.
// 
// Параметры:
//   КомандыОтчетов - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
//   ИсточникВызова - Строка - дополнительный параметр, строка с именем откуда вызывается функция.
//
// Возвращаемое значение:
//   СтрокаТаблицыЗначений - новая команда отчета.
Функция ДобавитьКомандуОтчета(КомандыОтчетов, ИсточникВызова = "") Экспорт

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

	Возврат Неопределено;

КонецФункции

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

#Область ДляВызоваИзДругихПодсистем

// Задает расширенные настройки отчета
//
// Параметры:
//   Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки.
//
Процедура НастроитьВариантыОтчета(Настройки) Экспорт
	
	ОписаниеОтчета = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.АнализЦенПоставщиков);
	ОписаниеОтчета.ОпределитьНастройкиФормы = Истина;
	ВариантыОтчетовУТПереопределяемый.ОтключитьОтчет(ОписаниеОтчета);
	
КонецПроцедуры

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

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

#Область СлужебныеПроцедурыИФункции

Функция МассивИменДокументовФормирующихДанные()
	
	МассивДокументов = Новый Массив;
	МассивДокументов.Добавить("ЗаказКлиента");
	МассивДокументов.Добавить("РеализацияТоваровУслуг");
	МассивДокументов.Добавить("КоммерческоеПредложениеКлиенту");

	Возврат МассивДокументов;
	
КонецФункции

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

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

#КонецЕсли

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