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