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