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