#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.ПриСозданииНаСервере = Истина;
Настройки.События.ПередЗагрузкойВариантаНаСервере = Истина;
КонецПроцедуры
Процедура ПередЗагрузкойВариантаНаСервере(ЭтаФорма, НовыеНастройкиКД) Экспорт
Отчет = ЭтаФорма.Отчет;
КомпоновщикНастроекФормы = Отчет.КомпоновщикНастроек;
НастроитьПараметрыОтборыПоФункциональнымОпциям(КомпоновщикНастроекФормы);
УстановитьОбязательныеНастройки(КомпоновщикНастроекФормы, Истина);
НовыеНастройкиКД = КомпоновщикНастроекФормы.Настройки;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт
КомпоновщикНастроекФормы = ЭтаФорма.Отчет.КомпоновщикНастроек;
Параметры = ЭтаФорма.Параметры;
Если Параметры.Свойство("ПараметрКоманды")
И Параметры.Свойство("ОписаниеКоманды")
И Параметры.ОписаниеКоманды.Свойство("ДополнительныеПараметры") Тогда
ЭтаФорма.НастройкиОтчета.РазрешеноВыбиратьВарианты = Ложь;
Если Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "СостояниеРасчетовСПоставщиком" Тогда
СформироватьПараметрыСостояниеРасчетовСПоставщиком(Параметры.ПараметрКоманды, ЭтаФорма, Параметры);
ИначеЕсли Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "СостояниеРасчетовСПоставщикомПоДокументам" Тогда
ПараметрКоманды = Параметры.ПараметрКоманды;
СтруктураНастроек = НастройкиОтчета(ПараметрКоманды);
ЗначенияФункциональныхОпций = СтруктураНастроек.ЗначенияФункциональныхОпций;
ЭтаФорма.ФормаПараметры.КлючНазначенияИспользования = ПараметрКоманды;
Параметры.КлючНазначенияИспользования = ПараметрКоманды;
СформироватьПараметрыОтчета(Параметры.ПараметрКоманды, ЭтаФорма, Параметры);
Параметры.КлючВарианта = ИмяКлючаВариантаВЗависимостиОтФлагаБазовая("ЗадолженностьПоставщикамПоОбъектуРасчетовКонтекст",
ЗначенияФункциональныхОпций.БазоваяВерсия);
ЭтаФорма.КлючТекущегоВарианта = ИмяКлючаВариантаВЗависимостиОтФлагаБазовая("ЗадолженностьПоставщикамПоОбъектуРасчетовКонтекст",
ЗначенияФункциональныхОпций.БазоваяВерсия);
КонецЕсли;
КонецЕсли;
ФормаПараметры = ЭтаФорма.ФормаПараметры;
КонецПроцедуры
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПользовательскиеНастройкиМодифицированы = Ложь;
УстановитьОбязательныеНастройки(КомпоновщикНастроек, ПользовательскиеНастройкиМодифицированы);
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
ТекстЗапроса = ТекстЗапроса();
ВзаиморасчетыСервер.ДобавитьОтборыВыбранныхПолейВЗапрос(ТекстЗапроса, НастройкиОтчета, СхемаКомпоновкиДанных.ВычисляемыеПоля, "Расчеты");
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос = ТекстЗапроса;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ВзаиморасчетыСервер.ВывестиПредупреждениеОбОбновлении(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Если ПользовательскиеНастройкиМодифицированы Тогда
КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ПользовательскиеНастройкиМодифицированы", Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура УстановитьОбязательныеНастройки(КомпоновщикНастроек, ПользовательскиеНастройкиМодифицированы)
СегментыСервер.ВключитьОтборПоСегментуПартнеровВСКД(КомпоновщикНастроек);
УстановитьДатуОтчета(КомпоновщикНастроек, ПользовательскиеНастройкиМодифицированы);
КонецПроцедуры
Процедура УстановитьДатуОтчета(КомпоновщикНастроек, ПользовательскиеНастройкиМодифицированы)
ПараметрДатаОстатков = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек, "ДатаОтчета");
ПараметрДатаОстатков.Использование = Истина;
ПараметрДатаОтчетаГраница = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек, "ДатаОтчетаГраница");
ПараметрДатаОтчетаГраница.Использование = Истина;
Если ТипЗнч(ПараметрДатаОстатков.Значение) = Тип("СтандартнаяДатаНачала") Тогда
Если НЕ ЗначениеЗаполнено(ПараметрДатаОстатков.Значение.Дата) Тогда
ПараметрДатаОтчетаГраница.Значение = Дата(1, 1, 1);
Иначе
ПараметрДатаОтчетаГраница.Значение = Новый Граница(КонецДня(ПараметрДатаОстатков.Значение.Дата), ВидГраницы.Включая);
КонецЕсли;
Иначе
Если НЕ ЗначениеЗаполнено(ПараметрДатаОстатков.Значение) Тогда
ПараметрДатаОтчетаГраница.Значение = Дата(1, 1, 1);
Иначе
ПараметрДатаОтчетаГраница.Значение = Новый Граница(КонецДня(ПараметрДатаОстатков.Значение), ВидГраницы.Включая);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура НастроитьПараметрыОтборыПоФункциональнымОпциям(КомпоновщикНастроекФормы)
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") Тогда
КомпоновкаДанныхСервер.УдалитьЭлементОтбораИзВсехНастроекОтчета(КомпоновщикНастроекФормы, "Контрагент");
КонецЕсли;
КонецПроцедуры
Функция ТекстЗапроса()
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Сегменты.Партнер КАК Партнер,
| ИСТИНА КАК ИспользуетсяОтборПоСегментуПартнеров
|ПОМЕСТИТЬ ОтборПоСегментуПартнеров
|ИЗ
| РегистрСведений.ПартнерыСегмента КАК Сегменты
|{ГДЕ
| Сегменты.Сегмент.* КАК СегментПартнеров,
| Сегменты.Партнер.* КАК Партнер}
|
|ИНДЕКСИРОВАТЬ ПО
| Партнер,
| ИспользуетсяОтборПоСегментуПартнеров
|;
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| АналитикаУчета.Организация КАК Организация,
| АналитикаУчета.Партнер КАК Партнер,
| АналитикаУчета.Контрагент КАК Контрагент,
| АналитикаУчета.Договор КАК Договор,
| АналитикаУчета.НаправлениеДеятельности КАК НаправлениеДеятельностиАналитики,
| АналитикаУчета.КлючАналитики КАК КлючАналитики
|ПОМЕСТИТЬ ВТ_АналитикаУчетаПоПартнерам
|ИЗ
| РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаУчета
|ГДЕ
| АналитикаУчета.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
|{ГДЕ
| АналитикаУчета.Организация.* КАК Организация,
| АналитикаУчета.Партнер.* КАК Партнер,
| АналитикаУчета.Контрагент.* КАК Контрагент,
| АналитикаУчета.Договор.* КАК Договор,
| (АналитикаУчета.Партнер В
| (ВЫБРАТЬ
| ОтборПоСегментуПартнеров.Партнер
| ИЗ
| ОтборПоСегментуПартнеров
| ГДЕ
| ОтборПоСегментуПартнеров.ИспользуетсяОтборПоСегментуПартнеров = &ИспользуетсяОтборПоСегментуПартнеров))}
|ИНДЕКСИРОВАТЬ ПО
| КлючАналитики
|;
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Расчеты.Организация КАК Организация,
| Расчеты.Партнер КАК Партнер,
| Расчеты.Контрагент КАК Контрагент,
| Расчеты.Договор КАК Договор,
| Расчеты.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Расчеты.ОбъектРасчетов КАК ОбъектРасчетов,
| Расчеты.Валюта КАК Валюта,
| Расчеты.РасчетныйДокумент КАК РасчетныйДокумент,
| Расчеты.ДатаПлановогоПогашения КАК ДатаПлановогоПогашения,
| Расчеты.ДатаВозникновения КАК ДатаВозникновения,
| СУММА(Расчеты.НашДолг) КАК НашДолг,
| СУММА(Расчеты.ДолгПоставщика) КАК ДолгПоставщика,
|
| СУММА(Расчеты.ПлановаяОплатаАванс) КАК ПлановаяОплатаАванс,
| СУММА(Расчеты.ПлановаяОплатаПредоплата) КАК ПлановаяОплатаПредоплата,
| СУММА(Расчеты.ПлановаяОплатаКредит) КАК ПлановаяОплатаКредит,
| СУММА(Расчеты.ПлановаяОплатаНезависимо) КАК ПлановаяОплатаНезависимо,
| СУММА(Расчеты.ПлановаяОплатаПросрочено) КАК ПлановаяОплатаПросрочено,
| СУММА(Расчеты.ПлановаяОплатаВсего) КАК ПлановаяОплатаВсего,
| СУММА(Расчеты.Оплачивается) КАК Оплачивается,
|
| СУММА(Расчеты.ПлановоеПоступление) КАК ПлановоеПоступление,
| СУММА(Расчеты.ПлановоеПоступлениеПросрочено) КАК ПлановоеПоступлениеПросрочено
|ИЗ (
| ВЫБРАТЬ
| АналитикаУчета.Организация КАК Организация,
| АналитикаУчета.Партнер КАК Партнер,
| АналитикаУчета.Контрагент КАК Контрагент,
| АналитикаУчета.Договор КАК Договор,
| ВЫБОР КОГДА НЕ РасчетыПоСрокам.ОбъектРасчетов.РегистрыВзаиморасчетовНеДелятсяПоНаправлениямДеятельности
| ТОГДА АналитикаУчета.НаправлениеДеятельностиАналитики
| ИНАЧЕ РасчетыПоСрокам.ОбъектРасчетов.НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельности,
| РасчетыПоСрокам.ОбъектРасчетов КАК ОбъектРасчетов,
| РасчетыПоСрокам.Валюта КАК Валюта,
| РасчетыПоСрокам.РасчетныйДокумент КАК РасчетныйДокумент,
| РасчетыПоСрокам.ДатаПлановогоПогашения КАК ДатаПлановогоПогашения,
| РасчетыПоСрокам.ДатаВозникновения КАК ДатаВозникновения,
| РасчетыПоСрокам.ДолгОстаток КАК НашДолг,
| РасчетыПоСрокам.ПредоплатаОстаток КАК ДолгПоставщика,
|
| 0 КАК ПлановаяОплатаАванс,
| 0 КАК ПлановаяОплатаПредоплата,
| РасчетыПоСрокам.ДолгОстаток КАК ПлановаяОплатаКредит,
| 0 КАК ПлановаяОплатаНезависимо,
| ВЫБОР
| КОГДА РасчетыПоСрокам.ДатаПлановогоПогашения < НАЧАЛОПЕРИОДА(&ДатаОтчета,ДЕНЬ)
| ТОГДА РасчетыПоСрокам.ДолгОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК ПлановаяОплатаПросрочено,
| РасчетыПоСрокам.ДолгОстаток КАК ПлановаяОплатаВсего,
| 0 КАК Оплачивается,
|
| 0 КАК ПлановоеПоступление,
| 0 КАК ПлановоеПоступлениеПросрочено
| ИЗ
| РегистрНакопления.РасчетыСПоставщикамиПоСрокам.Остатки(&ДатаОтчетаГраница,
| АналитикаУчетаПоПартнерам В
| (ВЫБРАТЬ
| ВТ_АналитикаУчетаПоПартнерам.КлючАналитики
| ИЗ
| ВТ_АналитикаУчетаПоПартнерам)) КАК РасчетыПоСрокам
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АналитикаУчетаПоПартнерам КАК АналитикаУчета
| ПО РасчетыПоСрокам.АналитикаУчетаПоПартнерам = АналитикаУчета.КлючАналитики
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| АналитикаУчета.Организация КАК Организация,
| АналитикаУчета.Партнер КАК Партнер,
| АналитикаУчета.Контрагент КАК Контрагент,
| АналитикаУчета.Договор КАК Договор,
| ВЫБОР КОГДА НЕ РасчетыПланОплат.ОбъектРасчетов.РегистрыВзаиморасчетовНеДелятсяПоНаправлениямДеятельности
| ТОГДА АналитикаУчета.НаправлениеДеятельностиАналитики
| ИНАЧЕ РасчетыПланОплат.ОбъектРасчетов.НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельности,
| РасчетыПланОплат.ОбъектРасчетов КАК ОбъектРасчетов,
| РасчетыПланОплат.Валюта КАК Валюта,
| РасчетыПланОплат.ДокументПлан КАК ДокументПлан,
| РасчетыПланОплат.ДатаПлановогоПогашения КАК ДатаПлановогоПогашения,
| РасчетыПланОплат.ДатаВозникновения КАК ДатаВозникновения,
| 0 КАК НашДолг,
| 0 КАК ДолгПоставщика,
|
| ВЫБОР
| КОГДА РасчетыПланОплат.ВариантОплаты = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыПоставщику.АвансДоПодтверждения)
| ТОГДА РасчетыПланОплат.КОплатеОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК ПлановаяОплатаАванс,
| ВЫБОР
| КОГДА РасчетыПланОплат.ВариантОплаты = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыПоставщику.ПредоплатаДоПоступления)
| ТОГДА РасчетыПланОплат.КОплатеОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК ПлановаяОплатаПредоплата,
| ВЫБОР
| КОГДА РасчетыПланОплат.ВариантОплаты = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыПоставщику.КредитСдвиг)
| ТОГДА РасчетыПланОплат.КОплатеОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК ПлановаяОплатаКредит,
| ВЫБОР
| КОГДА РасчетыПланОплат.ВариантОплаты = ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыПоставщику.КредитПослеПоступления)
| ТОГДА РасчетыПланОплат.КОплатеОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК ПлановаяОплатаНезависимо,
| ВЫБОР
| КОГДА РасчетыПланОплат.ДатаПлановогоПогашения < НАЧАЛОПЕРИОДА(&ДатаОтчета,ДЕНЬ)
| ТОГДА РасчетыПланОплат.КОплатеОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК ПлановаяОплатаПросрочено,
| РасчетыПланОплат.КОплатеОстаток КАК ПлановаяОплатаВсего,
| 0 КАК Оплачивается,
|
| 0 КАК ПлановоеПоступление,
| 0 КАК ПлановоеПоступлениеПросрочено
| ИЗ
| РегистрНакопления.РасчетыСПоставщикамиПланОплат.Остатки(&ДатаОтчетаГраница,
| АналитикаУчетаПоПартнерам В
| (ВЫБРАТЬ
| ВТ_АналитикаУчетаПоПартнерам.КлючАналитики
| ИЗ
| ВТ_АналитикаУчетаПоПартнерам)
| И ТИПЗНАЧЕНИЯ(ДокументПлан) В (&ТипыДокументовПлана)) КАК РасчетыПланОплат
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АналитикаУчетаПоПартнерам КАК АналитикаУчета
| ПО РасчетыПланОплат.АналитикаУчетаПоПартнерам = АналитикаУчета.КлючАналитики
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| АналитикаУчета.Организация КАК Организация,
| АналитикаУчета.Партнер КАК Партнер,
| АналитикаУчета.Контрагент КАК Контрагент,
| АналитикаУчета.Договор КАК Договор,
| ВЫБОР КОГДА НЕ РасчетыПланПоставок.ОбъектРасчетов.РегистрыВзаиморасчетовНеДелятсяПоНаправлениямДеятельности
| ТОГДА АналитикаУчета.НаправлениеДеятельностиАналитики
| ИНАЧЕ РасчетыПланПоставок.ОбъектРасчетов.НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельности,
| РасчетыПланПоставок.ОбъектРасчетов КАК ОбъектРасчетов,
| РасчетыПланПоставок.Валюта КАК Валюта,
| РасчетыПланПоставок.ДокументПлан КАК ДокументПлан,
| РасчетыПланПоставок.ДатаПлановогоПогашения КАК ДатаПлановогоПогашения,
| РасчетыПланПоставок.ДатаВозникновения КАК ДатаВозникновения,
| 0 КАК НашДолг,
| 0 КАК ДолгПоставщика,
|
| 0 КАК ПлановаяОплатаАванс,
| 0 КАК ПлановаяОплатаПредоплата,
| 0 КАК ПлановаяОплатаКредит,
| 0 КАК ПлановаяОплатаНезависимо,
| 0 КАК ПлановаяОплатаПросрочено,
| 0 КАК ПлановаяОплатаВсего,
| 0 КАК Оплачивается,
|
| РасчетыПланПоставок.СуммаОстаток КАК ПлановоеПоступление,
| ВЫБОР
| КОГДА РасчетыПланПоставок.ДатаПлановогоПогашения < НАЧАЛОПЕРИОДА(&ДатаОтчета,ДЕНЬ)
| ТОГДА РасчетыПланПоставок.СуммаОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК ПлановоеПоступлениеПросрочено
| ИЗ
| РегистрНакопления.РасчетыСПоставщикамиПланПоставок.Остатки(&ДатаОтчетаГраница, НЕ НераспределенныйАванс
| И АналитикаУчетаПоПартнерам В
| (ВЫБРАТЬ
| ВТ_АналитикаУчетаПоПартнерам.КлючАналитики
| ИЗ
| ВТ_АналитикаУчетаПоПартнерам)) КАК РасчетыПланПоставок
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АналитикаУчетаПоПартнерам КАК АналитикаУчета
| ПО РасчетыПланПоставок.АналитикаУчетаПоПартнерам = АналитикаУчета.КлючАналитики
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| АналитикаУчета.Организация КАК Организация,
| АналитикаУчета.Партнер КАК Партнер,
| АналитикаУчета.Контрагент КАК Контрагент,
| АналитикаУчета.Договор КАК Договор,
| ВЫБОР КОГДА НЕ РасчетыСПоставщиками.ОбъектРасчетов.РегистрыВзаиморасчетовНеДелятсяПоНаправлениямДеятельности
| ТОГДА АналитикаУчета.НаправлениеДеятельностиАналитики
| ИНАЧЕ РасчетыСПоставщиками.ОбъектРасчетов.НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельности,
| РасчетыСПоставщиками.ОбъектРасчетов КАК ОбъектРасчетов,
| РасчетыСПоставщиками.Валюта КАК Валюта,
| Неопределено КАК ДокументПлан,
| ДАТАВРЕМЯ(1,1,1) КАК ДатаПлановогоПогашения,
| ДАТАВРЕМЯ(1,1,1) КАК ДатаВозникновения,
| 0 КАК НашДолг,
| 0 КАК ДолгПоставщика,
|
| 0 КАК ПлановаяОплатаАванс,
| 0 КАК ПлановаяОплатаПредоплата,
| 0 КАК ПлановаяОплатаКредит,
| 0 КАК ПлановаяОплатаНезависимо,
| 0 КАК ПлановаяОплатаПросрочено,
| 0 КАК ПлановаяОплатаВсего,
| -РасчетыСПоставщиками.ОплачиваетсяОстаток КАК Оплачивается,
|
| 0 КАК ПлановоеПоступление,
| 0 КАК ПлановоеПоступлениеПросрочено
| ИЗ
| РегистрНакопления.РасчетыСПоставщиками.Остатки(&ДатаОтчетаГраница,
| АналитикаУчетаПоПартнерам В
| (ВЫБРАТЬ
| ВТ_АналитикаУчетаПоПартнерам.КлючАналитики
| ИЗ
| ВТ_АналитикаУчетаПоПартнерам)) КАК РасчетыСПоставщиками
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_АналитикаУчетаПоПартнерам КАК АналитикаУчета
| ПО АналитикаУчета.КлючАналитики = РасчетыСПоставщиками.АналитикаУчетаПоПартнерам
| ГДЕ
| РасчетыСПоставщиками.ОплачиваетсяОстаток < 0) КАК Расчеты
|СГРУППИРОВАТЬ ПО
| Расчеты.Организация,
| Расчеты.Партнер,
| Расчеты.Контрагент,
| Расчеты.Договор,
| Расчеты.НаправлениеДеятельности,
| Расчеты.ОбъектРасчетов,
| Расчеты.Валюта,
| Расчеты.РасчетныйДокумент,
| Расчеты.ДатаПлановогоПогашения,
| Расчеты.ДатаВозникновения
|ИМЕЮЩИЕ
| (&ОтборыВыбранныхПолей)
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"&ТипыДокументовПлана", ПолучитьТипыДокументовПлана());
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьПараметрыСостояниеРасчетовСПоставщиком(ПараметрКоманды, ЭтаФорма, Параметры)
ПараметрыФормы = ЭтаФорма.ФормаПараметры;
Если ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда
ЭтоМассив = Истина;
Если ПараметрКоманды.Количество() > 0 Тогда
ПервыйЭлемент = ПараметрКоманды[0];
Иначе
ПервыйЭлемент = Неопределено;
КонецЕсли;
Иначе
ЭтоМассив = Ложь;
ПервыйЭлемент = ПараметрКоманды;
КонецЕсли;
Если ЭтоМассив Тогда
ЕстьПодчиненныеПартнеры = Ложь;
Для Каждого ЭлементПараметраКоманды Из ПараметрКоманды Цикл
Если ПартнерыИКонтрагенты.ЕстьПодчиненныеПартнеры(ЭлементПараметраКоманды) Тогда
ЕстьПодчиненныеПартнеры = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
ЕстьПодчиненныеПартнеры = ПартнерыИКонтрагенты.ЕстьПодчиненныеПартнеры(ПараметрКоманды);
КонецЕсли;
ЭтотБазоваяВерсия = ПолучитьФункциональнуюОпцию("БазоваяВерсия");
КлючВарианта = ЭтаФорма.КлючТекущегоВарианта;
Если ЕстьПодчиненныеПартнеры Тогда
ПараметрыФормы.КлючНазначенияИспользования = "ГруппаПартнеров";
Параметры.КлючНазначенияИспользования = "ГруппаПартнеров";
КлючВарианта = ИмяКлючаВариантаВЗависимостиОтФлагаБазовая("ЗадолженностьПоставщикамКонтекст",
ЭтотБазоваяВерсия);
Иначе
ПараметрыФормы.КлючНазначенияИспользования = ПараметрКоманды;
Параметры.КлючНазначенияИспользования = ПараметрКоманды;
Если ЭтоМассив И ПараметрКоманды.Количество() = 1 Тогда
КлючВарианта = ИмяКлючаВариантаВЗависимостиОтФлагаБазовая("ЗадолженностьПоставщикуКонтекст",
ЭтотБазоваяВерсия);
Иначе
КлючВарианта = ИмяКлючаВариантаВЗависимостиОтФлагаБазовая("ЗадолженностьПоставщикамКонтекст",
ЭтотБазоваяВерсия);
КонецЕсли;
КонецЕсли;
ЭтаФорма.КлючТекущегоВарианта = КлючВарианта;
Параметры.КлючВарианта = КлючВарианта;
ЗначениеОтбора = ПараметрКоманды;
ВидСравненияКД = ВидСравненияКомпоновкиДанных.Равно;
Если ЭтоМассив Тогда
ЗначениеОтбора = Новый СписокЗначений;
ЗначениеОтбора.ЗагрузитьЗначения(ПараметрКоманды);
Если ЕстьПодчиненныеПартнеры Тогда
ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии;
Иначе
ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВСписке;
КонецЕсли;
Иначе
Если ЕстьПодчиненныеПартнеры Тогда
ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВИерархии;
Иначе
ВидСравненияКД = ВидСравненияКомпоновкиДанных.Равно;
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
КомпоновщикНастроек.ФиксированныеНастройки.Отбор,
"Партнер",
ЗначениеОтбора,
ВидСравненияКД,,
Истина);
КонецПроцедуры
Процедура СформироватьПараметрыОтчета(ПараметрКоманды, ЭтаФорма, Параметры)
ПараметрыФормы = ЭтаФорма.ФормаПараметры;
Если ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда
ЭтоМассив = Истина;
Если ПараметрКоманды.Количество() > 0 Тогда
ПервыйЭлемент = ПараметрКоманды[0];
Иначе
ПервыйЭлемент = Неопределено;
КонецЕсли;
Иначе
ЭтоМассив = Ложь;
ПервыйЭлемент = ПараметрКоманды;
КонецЕсли;
Если ТипЗнч(ПервыйЭлемент) = Тип("СправочникСсылка.Партнеры") Тогда
Если ЭтоМассив Тогда
ЕстьПодчиненныеПартнеры = Ложь;
Для Каждого ЭлементПараметраКоманды Из ПараметрКоманды Цикл
Если ПартнерыИКонтрагенты.ЕстьПодчиненныеПартнеры(ЭлементПараметраКоманды) Тогда
ЕстьПодчиненныеПартнеры = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
ЕстьПодчиненныеПартнеры = ПартнерыИКонтрагенты.ЕстьПодчиненныеПартнеры(ПараметрКоманды);
КонецЕсли;
Если ЕстьПодчиненныеПартнеры Тогда
ПараметрыФормы.КлючНазначенияИспользования = "ГруппаПартнеров";
Параметры.КлючНазначенияИспользования = "ГруппаПартнеров";
Иначе
ПараметрыФормы.КлючНазначенияИспользования = ПараметрКоманды;
Параметры.КлючНазначенияИспользования = ПараметрКоманды;
КонецЕсли;
ЗначениеОтбора = ПараметрКоманды;
ВидСравненияКД = ВидСравненияКомпоновкиДанных.Равно;
Если ЭтоМассив Тогда
ЗначениеОтбора = Новый СписокЗначений;
ЗначениеОтбора.ЗагрузитьЗначения(ПараметрКоманды);
Если ЕстьПодчиненныеПартнеры Тогда
ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии;
Иначе
ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВСписке;
КонецЕсли;
Иначе
Если ЕстьПодчиненныеПартнеры Тогда
ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВИерархии;
Иначе
ВидСравненияКД = ВидСравненияКомпоновкиДанных.Равно;
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
КомпоновщикНастроек.ФиксированныеНастройки.Отбор,
"Партнер",
ЗначениеОтбора,
ВидСравненияКД,,
Истина);
ИначеЕсли ТипЗнч(ПервыйЭлемент) = Тип("СправочникСсылка.ДоговорыКонтрагентов")
ИЛИ ТипЗнч(ПервыйЭлемент) = Тип("СправочникСсылка.ДоговорыМеждуОрганизациями") Тогда
ПараметрыФормы.КлючНазначенияИспользования = ПараметрКоманды;
Параметры.КлючНазначенияИспользования = ПараметрКоманды;
ЗначениеОтбора = ПервыйЭлемент;
ВидСравненияКД = ВидСравненияКомпоновкиДанных.Равно;
Если ЭтоМассив Тогда
ЗначениеОтбора = Новый СписокЗначений;
ЗначениеОтбора.ЗагрузитьЗначения(ПараметрКоманды);
ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВСписке;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
КомпоновщикНастроек.ФиксированныеНастройки.Отбор,
"Договор",
ЗначениеОтбора,
ВидСравненияКД,,
Истина);
Иначе
ОбъектРасчетов = ВзаиморасчетыСервер.ПолучитьОбъектыРасчетовДляОтбораОтчета(ПараметрКоманды);
ПараметрыФормы.КлючНазначенияИспользования = ПервыйЭлемент;
Параметры.КлючНазначенияИспользования = ПервыйЭлемент;
ЗначениеОтбора = ОбъектРасчетов;
ВидСравненияКД = ВидСравненияКомпоновкиДанных.Равно;
Если ТипЗнч(ОбъектРасчетов) = Тип("Массив") Тогда
ЗначениеОтбора = Новый СписокЗначений;
ЗначениеОтбора.ЗагрузитьЗначения(ОбъектРасчетов);
ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВСписке;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
КомпоновщикНастроек.ФиксированныеНастройки.Отбор,
"ОбъектРасчетов",
ЗначениеОтбора,
ВидСравненияКД,,
Истина);
КонецЕсли;
КонецПроцедуры
Функция НастройкиОтчета(ПараметрКоманды)
ЗначенияФункциональныхОпций = Новый Структура;
ЗначенияФункциональныхОпций.Вставить("БазоваяВерсия", ПолучитьФункциональнуюОпцию("БазоваяВерсия"));
СтруктураНастроек = Новый Структура;
СтруктураНастроек.Вставить("ЗначенияФункциональныхОпций", ЗначенияФункциональныхОпций);
Возврат СтруктураНастроек
КонецФункции
Функция ИмяКлючаВариантаВЗависимостиОтФлагаБазовая(ИмяКлючаВарианта, ЭтоБазовая)
Если Не ЭтоБазовая Тогда
Возврат ИмяКлючаВарианта;
КонецЕсли;
Если ИмяКлючаВарианта = "ЗадолженностьПоставщикам" Тогда
Возврат "ЗадолженностьПоставщикамБазовая";
ИначеЕсли ИмяКлючаВарианта = "ЗадолженностьПоставщикамПоОбъектуРасчетовКонтекст" Тогда
Возврат "ЗадолженностьПоставщикамПоОбъектуРасчетовКонтекстБазовая";
ИначеЕсли ИмяКлючаВарианта = "ЗадолженностьПоставщикуКонтекст" Тогда
Возврат "ЗадолженностьПоставщикуКонтекстБазовая";
ИначеЕсли ИмяКлючаВарианта = "ЗадолженностьПоставщикамКонтекст" Тогда
Возврат "ЗадолженностьПоставщикамКонтекстБазовая";
КонецЕсли;
КонецФункции
Функция ПолучитьТипыДокументовПлана()
ТекстТиповДокументов = "";
ТекстТиповДокументов = ТекстТиповДокументов + "ТИП(Документ.ЗаказПереработчику), ";
ТекстТиповДокументов = ТекстТиповДокументов + "ТИП(Документ.ЗаказПереработчику2_5), ";
ТекстТиповДокументов = ТекстТиповДокументов + "ТИП(Документ.ЗаказПоставщику), ";
ТекстТиповДокументов = ТекстТиповДокументов + "ТИП(Документ.ГрафикИсполненияДоговора)";
Возврат ТекстТиповДокументов;
КонецФункции
#КонецОбласти
#КонецЕсли