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