Претензии / Форма элемента / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	УстановитьУсловноеОформление();
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);

	Если Объект.Ссылка.Пустая() Тогда
		
		Если Объект.Ответственный = Справочники.Пользователи.ПустаяСсылка() Тогда
			Объект.Ответственный = Пользователи.АвторизованныйПользователь();
		КонецЕсли;
		
		ПриСозданииЧтенииНаСервере();
		
	КонецЕсли;
	
	УстановитьЗаголовкиРеквизитов();
	Элементы.ПретензияПоставщику.ТолькоПросмотр = ЗначениеЗаполнено(Объект.Основание);
	Элементы.ВестиРасчетыПоПретензии.Видимость = ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов");
	
	ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтотОбъект);
	ОповеститьОСозданииОбъектаРасчетов = Параметры.ОповеститьОСозданииОбъектаРасчетов;
	
	// Обработчик механизма "Свойства"
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("Объект", Объект);
	ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "СтраницаДополнительныеРеквизиты");
	УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
	
	// СтандартныеПодсистемы.Взаимодействия
	Взаимодействия.ПодготовитьОповещения(ЭтаФорма, Параметры);
	// Конец СтандартныеПодсистемы.Взаимодействия
	
	// СтандартныеПодсистемы.ВерсионированиеОбъектов
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец ИнтеграцияС1СДокументооборотом

	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

	// СтандартныеПодсистемы.РаботаСФайлами
	ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
	ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
	РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	ПриСозданииЧтенииНаСервере();

	МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	Оповестить("Запись_Претензия", ПараметрыЗаписи, Объект.Ссылка);
	
	// Обработчик подсистемы "Взаимодействия"
	ВзаимодействияКлиент.ВзаимодействиеПредметПослеЗаписи(ЭтаФорма,Объект,ПараметрыЗаписи,"ПретензииКлиентов");

	МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
		МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
		МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

КонецПроцедуры

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	УстановитьПривилегированныйРежим(Истина);
	
	// Установим предмет взаимодействия
	Если ЗначениеЗаполнено(ВзаимодействиеОснование) Тогда
		Взаимодействия.ПриЗаписиПредметаИзФормы(
			ТекущийОбъект.Ссылка, ВзаимодействиеОснование, Отказ);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	УправлениеДоступностью();
	УстановитьВидимостьУчетныхРеквизитов();
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

КонецПроцедуры

&НаКлиенте
Процедура ДополнительнаяИнформацияПриИзменении(Элемент)
	ОтключитьОтметкуНезаполненного();
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

	// Обработчик механизма "Свойства"
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
	
	МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);

	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	// Конец ИнтеграцияС1СДокументооборотом
	
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	ТекущийТипДоговора = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, "ТипДоговора");
	
	Элементы.СтраницаДополнительнаяИнформация.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Объект.РезультатыОтработки);
	
	МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);

КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	// Обработчик механизма "Свойства"
	Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
		ОбновитьЭлементыДополнительныхРеквизитов();
		УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	КонецЕсли;
	
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
	// Конец СтандартныеПодсистемы.РаботаСФайлами
	
	Если ИмяСобытия = "Запись_КорректировкаЗадолженности" Тогда
		ОбновитьТекстДокументыНаОсновании();
	КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если Не ЗавершениеРаботы 
		И ЗначениеЗаполнено(Объект.Ссылка)
		И ОповеститьОСозданииОбъектаРасчетов Тогда
		ВзаиморасчетыКлиент.ФормаПриЗакрытии(ЭтотОбъект);
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ОписаниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
		Элемент.ТекстРедактирования,
		ЭтотОбъект,
		"Объект.ОписаниеПретензии",
		НСтр("ru='Описание'"));
	
КонецПроцедуры
	
&НаКлиенте
Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
		Элемент.ТекстРедактирования,
		ЭтотОбъект,
		"Объект.Комментарий",
		НСтр("ru='Описание'"));
	
КонецПроцедуры

&НаКлиенте
Процедура СтатусПриИзменении(Элемент)
	
	УправлениеДоступностью();
	
	Если Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыПретензийКлиентов.Удовлетворена")
	                     Или Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыПретензийКлиентов.НеУдовлетворена") Тогда
		
		Объект.ДатаОкончания = ОбщегоНазначенияКлиент.ДатаСеанса();
		ОтключитьОтметкуНезаполненного();
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПричинаВозникновенияПриИзменении(Элемент)
	
	УправлениеДоступностью();
	
КонецПроцедуры

&НаКлиенте
Процедура ОснованиеНажатие(Элемент, СтандартнаяОбработка)
	
	Если ЗначениеЗаполнено(Объект.Основание) Тогда
		СтандартнаяОбработка = Ложь;
		ПоказатьЗначение(, Объект.Основание);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПретензияПоставщикуПриИзменении(Элемент)
	ПретензияПоставщикуПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ВестиРасчетыПоПретензиямПриИзменении(Элемент)
	
	УстановитьВидимостьУчетныхРеквизитов();
	Если ЗначениеЗаполнено(Объект.Основание) Тогда
		ЗаполнитьПоОснованиюНаСервере();
	КонецЕсли;
	ДоступностьТекстДокументыНаОсновании();
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
	УстановитьПараметрыВыбораДоговора();
	ОбновитьТекстДокументыНаОсновании();
КонецПроцедуры

&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
	ДоговорПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ДатаРегистрацииПриИзменении(Элемент)
	ДатаРегистрацииПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ТекстДокументыНаОснованииОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	ОчиститьСообщения();
	
	ПараметрыРегистрации = ПараметрыРегистрацииКорректировкиЗадолженностиСервер(Объект);
	ОбработкаНавигационнойСсылкиКорректировкиЗадолженности(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки,  СтандартнаяОбработка, ПараметрыРегистрации);
	
КонецПроцедуры

&НаКлиенте
Процедура ПартнерПриИзменении(Элемент)
	ОбновитьТекстДокументыНаОсновании();
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	ОбновитьТекстДокументыНаОсновании();
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
	 РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// ИнтеграцияС1СДокументооборотом
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
	
КонецПроцедуры
// Конец ИнтеграцияС1СДокументооборотом

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

// СтандартныеПодсистемы.Свойства

&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
	УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры

// Конец СтандартныеПодсистемы.Свойства

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура УстановитьУсловноеОформление()

	УсловноеОформление.Элементы.Очистить();

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПричинаВозникновения.Имя);

	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;

	ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ПричинаВозникновения");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;

	ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Статус");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
	СписокЗначений = Новый СписокЗначений;
	СписокЗначений.Добавить(Перечисления.СтатусыПретензийКлиентов.Обрабатывается);
	СписокЗначений.Добавить(Перечисления.СтатусыПретензийКлиентов.Удовлетворена);
	СписокЗначений.Добавить(Перечисления.СтатусыПретензийКлиентов.НеУдовлетворена);
	ОтборЭлемента.ПравоеЗначение = СписокЗначений;

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДатаОкончания.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Статус");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
	СписокЗначений = Новый СписокЗначений;
	СписокЗначений.Добавить(Перечисления.СтатусыПретензийКлиентов.Зарегистрирована);
	СписокЗначений.Добавить(Перечисления.СтатусыПретензийКлиентов.Обрабатывается);
	ОтборЭлемента.ПравоеЗначение = СписокЗначений;

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДополнительнаяИнформация.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Статус");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
	СписокЗначений = Новый СписокЗначений;
	СписокЗначений.Добавить(Перечисления.СтатусыПретензийКлиентов.Зарегистрирована);
	СписокЗначений.Добавить(Перечисления.СтатусыПретензийКлиентов.Обрабатывается);
	ОтборЭлемента.ПравоеЗначение = СписокЗначений;

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РезультатыОтработки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

КонецПроцедуры

&НаКлиенте
Процедура УправлениеДоступностью()
	
	ОтключитьОтметкуНезаполненного();	
	Элементы.ДатаОкончания.Доступность = (Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыПретензийКлиентов.Удовлетворена")
	                                      Или Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыПретензийКлиентов.НеУдовлетворена"));
	
КонецПроцедуры

&НаКлиенте
Процедура УстановитьВидимостьУчетныхРеквизитов()
	
	Элементы.СтраницаУчетнаяИнформация.Видимость = Объект.ВестиРасчетыПоПретензии;
	Элементы.Сумма.Видимость = Объект.ВестиРасчетыПоПретензии;
	Элементы.Организация.Видимость = Объект.ВестиРасчетыПоПретензии;
	Элементы.Контрагент.Видимость = Объект.ВестиРасчетыПоПретензии;
	Элементы.ГруппаДоговорВалюта.Видимость = Объект.ВестиРасчетыПоПретензии;
	Элементы.НаправлениеДеятельности.Видимость = Объект.ВестиРасчетыПоПретензии;
	
КонецПроцедуры

&НаСервере
Процедура ПриСозданииЧтенииНаСервере()
	
	ТекущийТипДоговора = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, "ТипДоговора");
	
	Элементы.СтраницаДополнительнаяИнформация.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Объект.РезультатыОтработки);
	НастроитьФормуПоРеквизитам();

	ОбновитьТекстДокументыНаОсновании();
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьДоговора()

	Элементы.ГруппаДоговорВалюта.Видимость = Объект.ЭтоПретензияПоставщику И ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСПоставщиками")
		ИЛИ НЕ Объект.ЭтоПретензияПоставщику И ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСКлиентами");

КонецПроцедуры

&НаСервере
Процедура УстановитьЗаголовкиРеквизитов()

	ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
		ЭтотОбъект, "ПартнерыИКонтактныеЛицаПартнер", НСтр("ru = 'Контрагент'"));
	ПартнерыИКонтрагенты.ЗаголовокРеквизитаВЗависимостиОтФОИспользоватьПартнеровКакКонтрагентов(
		ЭтотОбъект, "ПартнерыИКонтактныеЛицаРольПартнера", НСтр("ru = 'Роль контрагента'"));

КонецПроцедуры

&НаСервере
Процедура ДоговорПриИзмененииНаСервере()
	
	Если ЗначениеЗаполнено(Объект.Договор) Тогда
		Имена = "Организация,Контрагент,Партнер,ВалютаВзаиморасчетов,НаправлениеДеятельности,ГруппаФинансовогоУчета,ТипДоговора,ЦентрализованныйДоговор";
		Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Договор, Имена);
		ЗаполнитьЗначенияСвойств(Объект,Реквизиты,,"Организация");
		Если Реквизиты.ЦентрализованныйДоговор И НЕ ЗначениеЗаполнено(Объект.Организация)
			ИЛИ НЕ Реквизиты.ЦентрализованныйДоговор Тогда
			Объект.Организация = Реквизиты.Организация;
		КонецЕсли;
		Объект.Валюта = Реквизиты.ВалютаВзаиморасчетов;
		ТекущийТипДоговора = Реквизиты.ТипДоговора;
		Элементы.Валюта.ТолькоПросмотр = Истина;
	Иначе
		ТекущийТипДоговора = Неопределено;
		Элементы.Валюта.ТолькоПросмотр = Ложь;
	КонецЕсли;
	
	УстановитьПараметрыВыбораГФУ();
	
КонецПроцедуры

&НаСервере
Процедура ПретензияПоставщикуПриИзмененииНаСервере()
	
	Объект.ГруппаФинансовогоУчета = Неопределено;
	Объект.Контрагент = Неопределено;
	Объект.Договор = Неопределено;
	Объект.Валюта = Неопределено;
	ТекущийТипДоговора = Неопределено;
	
	Если ЗначениеЗаполнено(Объект.Партнер) Тогда
		ОтношенияСПартнером = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Партнер,"Клиент,Поставщик");
		ТолькоКлиент = ОтношенияСПартнером.Клиент И НЕ ОтношенияСПартнером.Поставщик;
		ТолькоПоставщик = ОтношенияСПартнером.Поставщик И НЕ ОтношенияСПартнером.Клиент;
		Если ТолькоКлиент И Объект.ЭтоПретензияПоставщику
			ИЛИ ТолькоПоставщик И НЕ Объект.ЭтоПретензияПоставщику Тогда
			Объект.Партнер = Неопределено;
		КонецЕсли;
	КонецЕсли;
	
	НастроитьФормуПоРеквизитам();
	
КонецПроцедуры

&НаСервере
Процедура НастроитьФормуПоРеквизитам()
	

	Элементы.Партнер.Заголовок = ?(Объект.ЭтоПретензияПоставщику, НСтр("ru = 'Поставщик'"), НСтр("ru = 'Клиент'"));
	
	Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизаций") 
			И НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
		Объект.Организация = Справочники.Организации.ОрганизацияПоУмолчанию();
	КонецЕсли;
	УстановитьПодсказкуНаименования();
	УстановитьПараметрыВыбораПартнера();
	УстановитьВидимостьДоговора();
	УстановитьПараметрыВыбораДоговора();
	УстановитьПараметрыВыбораГФУ();
	УстановитьПараметрыВыбораНД();
	Элементы.ВиновноеПодразделение.Видимость = НЕ Объект.ЭтоПретензияПоставщику;
	Элементы.ВиновныйСотрудник.Видимость = НЕ Объект.ЭтоПретензияПоставщику;
	Элементы.Валюта.ТолькоПросмотр = ЗначениеЗаполнено(Объект.Договор);
	
КонецПроцедуры

&НаСервере
Процедура ДоступностьТекстДокументыНаОсновании()  
	ПараметрыРегистрации = Справочники.Претензии.КорректировкиЗадолженностиВведенныеНаОсновании(Справочники.Претензии.ПараметрыРегистрацииКорректировокЗадолженности(Объект));
	ЕстьПравоПросмотраДокументаПоОснованию = ПравоДоступа("Просмотр", Метаданные.Документы.КорректировкаЗадолженности);
	ЕстьПравоИнтерактивногоДобавленияДокументаПоОснованию = ПараметрыРегистрации.ЕстьПравоИнтерактивногоДобавленияДокументаПоОснованию;
	ВидимостьТекстДокументыНаОсновании = Объект.ВестиРасчетыПоПретензии И ЕстьПравоПросмотраДокументаПоОснованию;
	ДоступностьТекстДокументыНаОсновании = ЕстьПравоПросмотраДокументаПоОснованию И ЕстьПравоИнтерактивногоДобавленияДокументаПоОснованию;
	Элементы.ТекстДокументыНаОсновании.Видимость = ВидимостьТекстДокументыНаОсновании;
	Элементы.ТекстДокументыНаОсновании.Доступность = ДоступностьТекстДокументыНаОсновании;
КонецПроцедуры

&НаСервере
Процедура ДатаРегистрацииПриИзмененииНаСервере()
	УстановитьПодсказкуНаименования();
КонецПроцедуры

&НаСервере
Процедура УстановитьПараметрыВыбораДоговора()
	
	ТипДоговора = Новый Массив;
	Если Объект.ЭтоПретензияПоставщику Тогда
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СПоставщиком);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.ВвозИзЕАЭС);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.Импорт);
		//++ Устарело_Переработка24
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СПереработчиком);
		//-- Устарело_Переработка24
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СПереработчиком2_5);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СПереработчиком2_5_ЕАЭС);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СКомиссионером);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СХранителем);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СКомитентомНаЗакупку);
	Иначе
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СПокупателем);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СКомитентом);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СПоклажедателем);
		ТипДоговора.Добавить(Перечисления.ТипыДоговоров.СКомитентомНаЗакупку);
	КонецЕсли;
	
	// Установим параметр выбора
	МассивПараметров = Новый Массив;
	МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ТипДоговора", ТипДоговора));
	МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ПометкаУдаления",Ложь));
	Элементы.Договор.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьПараметрыВыбораГФУ()
	
	МассивПараметров = Новый Массив;
	
	Если ТекущийТипДоговора = Перечисления.ТипыДоговоров.СПоставщиком
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.ВвозИзЕАЭС
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.Импорт
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.СПереработчиком
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.СКомиссионером
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.СХранителем
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.СКомитентомНаЗакупку Тогда
		МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.РасчетыСПоставщиками", Истина));
	//++ НЕ УТ
	ИначеЕсли ТекущийТипДоговора = Перечисления.ТипыДоговоров.СПереработчиком2_5 Тогда
		МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.РасчетыСПереработчиками", Истина));
	//-- НЕ УТ
	ИначеЕсли ТекущийТипДоговора = Перечисления.ТипыДоговоров.СПокупателем
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.СКомитентом
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.СДавальцем
		Или ТекущийТипДоговора = Перечисления.ТипыДоговоров.СПоклажедателем Тогда
		МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.РасчетыСКлиентами", Истина));
	ИначеЕсли Объект.ЭтоПретензияПоставщику Тогда
		МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.РасчетыСПоставщиками", Истина));
	Иначе
		МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.РасчетыСКлиентами", Истина));
	КонецЕсли;
	
	Элементы.ГруппаФинансовогоУчета.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьПодсказкуНаименования()
	
	Элементы.Наименование.ПодсказкаВвода = Справочники.Претензии.АвтоНаименование(Объект);
		
КонецПроцедуры

&НаСервере
Процедура УстановитьПараметрыВыбораПартнера()
	
	МассивПараметров = Новый Массив;
	ПараметрВыбора = Новый ПараметрВыбора(?(Объект.ЭтоПретензияПоставщику, "Отбор.Поставщик", "Отбор.Клиент"), Истина);
	МассивПараметров.Добавить(ПараметрВыбора);
	Элементы.Партнер.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьПараметрыВыбораНД()
	
	МассивПараметров = Новый Массив;
	ПараметрВыбора = Новый ПараметрВыбора(?(Объект.ЭтоПретензияПоставщику, "Отбор.УчетРасчетовСПоставщиками", "Отбор.УчетДоходов"), Истина);
	МассивПараметров.Добавить(ПараметрВыбора);
	Элементы.НаправлениеДеятельности.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
	
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьПоОснованиюНаСервере()
	
	ОбъектДокумента = РеквизитФормыВЗначение("Объект");
	ОбъектДокумента.Заполнить(Объект.Основание);
	ЗначениеВРеквизитФормы(ОбъектДокумента, "Объект");
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПараметрыРегистрацииКорректировкиЗадолженностиСервер(Знач Объект)
	
	Возврат Справочники.Претензии.ПараметрыРегистрацииКорректировокЗадолженности(Объект);
	
КонецФункции

&НаКлиенте
Процедура ОбработкаНавигационнойСсылкиКорректировкиЗадолженности(Форма, НавигационнаяСсылка, СтандартнаяОбработка, ПараметрыРегистрации)
	
	Если НавигационнаяСсылка = "ОткрытьСписокКорректировокЗадолженности" Тогда
		СтандартнаяОбработка = Ложь;
		СтруктураОтбор = Новый Структура();
		СтруктураОтбор.Вставить("Ссылка", КорректировкиЗадолженностиВведенныеНаОсновании(ПараметрыРегистрации.Ссылка));
		ПараметрыФормы = Новый Структура("Отбор", СтруктураОтбор);
		ОткрытьФорму("Документ.КорректировкаЗадолженности.ФормаСписка", ПараметрыФормы, Форма);
	ИначеЕсли НавигационнаяСсылка = "ОткрытьКорректировкаЗадолженности" Тогда
		СтандартнаяОбработка = Ложь;
		Ключ = КорректировкаЗадолженностиВведеннаяНаОсновании(
				ПараметрыРегистрации.Ссылка, ПараметрыРегистрации.Организация);
		ПараметрыФормы = Новый Структура("Ключ", Ключ);
		ОткрытьФорму("Документ.КорректировкаЗадолженности.ФормаОбъекта", ПараметрыФормы, Форма);
	ИначеЕсли НавигационнаяСсылка = "ВвестиНовыйКорректировкаЗадолженности" Тогда
		СтандартнаяОбработка = Ложь;
		ВвестиКоректировкуЗадолженности(Форма, ПараметрыРегистрации);
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Функция КорректировкиЗадолженностиВведенныеНаОсновании(Ссылка)
	Возврат Документы.КорректировкаЗадолженности.КорректировкиЗадолженностиПоОснованию(Ссылка).ВыгрузитьКолонку("Ссылка");
КонецФункции

&НаСервере
Функция КорректировкаЗадолженностиВведеннаяНаОсновании(Ссылка, Организация)
	Возврат Документы.КорректировкаЗадолженности.КорректировкаЗадолженностиПоОснованию(Ссылка, Организация);
КонецФункции

&НаСервере
Процедура ОбновитьТекстДокументыНаОсновании()
	
	ТекстыПоляДокументыНаОсновании.Очистить();
	
	ОбновитьТекстКорректировкиЗадолженности();
	ОбщегоНазначенияУТКлиентСервер.ОбновитьТекстДокументыНаОсновании(ЭтотОбъект);
	ДоступностьТекстДокументыНаОсновании();
КонецПроцедуры

&НаСервере
Процедура ОбновитьТекстКорректировкиЗадолженности()
	
	ПараметрыРегистрации = Справочники.Претензии.ПараметрыРегистрацииКорректировокЗадолженности(Объект);
	КорректировкиЗадолженностиНаОсновании = Справочники.Претензии.КорректировкиЗадолженностиВведенныеНаОсновании(ПараметрыРегистрации);
	
	ТекстКорректировкиЗадолженности = Справочники.Претензии.СформироватьПредставлениеКомандФормированияКорректировкиЗадолженнностиНаОсновании(Объект.Ссылка, КорректировкиЗадолженностиНаОсновании);
	
	ТекстыПоляДокументыНаОсновании.Добавить(ТекстКорректировкиЗадолженности);
	
КонецПроцедуры

&НаКлиенте
Процедура ВвестиКоректировкуЗадолженности(Форма, ПараметрыРегистрации)
	
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("ПараметрыРегистрации",  ПараметрыРегистрации);
	ДополнительныеПараметры.Вставить("ОткрыватьСуществующую", Ложь);
	ДополнительныеПараметры.Вставить("Форма",                 Форма);
	
	Оповещение = Новый ОписаниеОповещения("ВвестиКорректировкуЗадолженностиЗавершение", ЭтотОбъект, ДополнительныеПараметры);
	ВыполнитьОбработкуОповещения(Оповещение, Форма.Объект.Ссылка);
	
КонецПроцедуры

&НаКлиенте
Процедура ВвестиКорректировкуЗадолженностиЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	ПараметрыРегистрации = ДополнительныеПараметры.ПараметрыРегистрации;
		
	Если ЗначениеЗаполнено(ПараметрыРегистрации.Ссылка) Тогда
		Претензия = ПараметрыРегистрации.Ссылка;
	Иначе
		Претензия = ДополнительныеПараметры.Форма.Объект.Ссылка;
	КонецЕсли;
		
	ПараметрыОткрытия = Новый Структура;
	ПараметрыОткрытия.Вставить("Претензия", 		Претензия);
	ПараметрыОткрытия.Вставить("Организация",       ПараметрыРегистрации.Организация);
	ПараметрыОткрытия.Вставить("Контрагент",        ПараметрыРегистрации.Контрагент);
	
	ПараметрыФормы = Новый Структура("Основание, ДокументОснование",ПараметрыОткрытия, Претензия);
	ОткрытьФорму("Документ.КорректировкаЗадолженности.ФормаОбъекта", ПараметрыФормы, ДополнительныеПараметры.Форма);
	
КонецПроцедуры


#Область СтандартныеПодсистемы

// СтандартныеПодсистемы.Свойства
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры

// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

#КонецОбласти

#КонецОбласти

Связанные материалы