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