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