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