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