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