Состояние расчетов с комиссионерами (2.0) / Модуль объекта

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

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

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

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

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

#Область ОбработчикиСобытий

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СхемаКомпоновкиДанныхНаборыДанных = СхемаКомпоновкиДанных.НаборыДанных.РасчетыСКомиссионерами; // НаборДанныхОбъединениеСхемыКомпоновкиДанных
	
	ТекстЗапроса = СхемаКомпоновкиДанныхНаборыДанных.Элементы.ТоварыПереданныеНаКомиссию.Запрос;

	ТекстЗапроса = СтрЗаменить(
		ТекстЗапроса, 
		"&ТекстЗапросаКоэффициентУпаковки1", 
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки("ЦеныНоменклатуры.Упаковка", "ЦеныНоменклатуры.Номенклатура"));

	ТекстЗапроса = СтрЗаменить(
		ТекстЗапроса, 
		"&ТекстЗапросаКоэффициентУпаковки2", 
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки("СоглашениеСКлиентомТовары.Упаковка", "ТоварыПереданные.Номенклатура"));

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

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

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

Функция ФиксированнаяНастройкаПараметра(ИмяПараметра)
	ПараметрДанных = КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
	
	Возврат ПараметрДанных;
КонецФункции

Функция ПользовательскаяНастройкаПараметра(ИмяПараметра)
	ПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
	Если ПараметрДанных <> Неопределено Тогда
		ПараметрПользовательскойНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
		Если ПараметрПользовательскойНастройки <> Неопределено Тогда
			Возврат ПараметрПользовательскойНастройки;
		Иначе
			Возврат ПараметрДанных;
		КонецЕсли;
	КонецЕсли;
	
	Возврат Неопределено;
КонецФункции

Функция ИмяКлючаВариантаВЗависимостиОтФлагаБазовая(ИмяКлючаВарианта, ЭтоБазовая)
	
	Если Не ЭтоБазовая Тогда
		Возврат ИмяКлючаВарианта;
	КонецЕсли;
	
	Если ИмяКлючаВарианта = "СостояниеРасчетовСКомиссионерами" Тогда
		Возврат "СостояниеРасчетовСКомиссионерамиБазовая";
	ИначеЕсли ИмяКлючаВарианта = "СостояниеРасчетовСКомиссионерамиКонтекст" Тогда
		Возврат "СостояниеРасчетовСКомиссионерамиКонтекстБазовая";
	КонецЕсли;
	
КонецФункции

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

#КонецЕсли

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