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