Поступление безналичных денежных средств / Форма документа / Модуль формы

файл
#Область ОписаниеПеременных

//используется механизмом обработки изменения реквизитов ТЧ
&НаКлиенте
Перем КэшированныеЗначения; 

&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;

//++ Локализация
&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;

&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;
//-- Локализация

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

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

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

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

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

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

&НаКлиенте
Процедура ОбработкаВыбора(РезультатВыбора, ИсточникВыбора)
	
	Если Окно <> Неопределено Тогда
		Окно.Активизировать();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
	
	ПринудительноЗакрытьФорму = Истина;
	
КонецПроцедуры

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

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

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

&НаСервере
Процедура ДатаПриИзмененииСервер()

	ЗаполнитьНалогообложениеНДС();
	//++ Локализация
	УстановитьПараметрыВыбораТипаНалогов();
	//-- Локализация
	УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();

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

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

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

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

&НаСервере
Процедура ДатаПроведенияБанкомПриИзмененииНаСервере()
	
	ЗаполнитьКурсКурсЗнаменательВзаиморасчетов();
	РассчитатьСуммыВзаиморасчетов();
	ЗаполнитьКурсКратностьТекстом();
	ЗаполнитьВалютуВзаиморасчетовДокумента();
	
	//++ Локализация
	УстановитьПараметрыВыбораТипаНалогов();
	//-- Локализация
	
	НастроитьЗависимыеЭлементыФормыНаСервере();
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура БанковскийСчетПриИзменении(Элемент)
	
	СтруктураВозврата = БанковскийСчетПриИзмененииКлиент("РазрешенПересчетВВалюту");
	Если СтруктураВозврата.НуженПереходНаСервер Тогда
		БанковскийСчетПриИзмененииСервер(СтруктураВозврата.РеквизитыБанковскогоСчета, СтруктураВозврата.ПересчитыватьСуммы);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

&НаСервере
Процедура БанковскийСчетКонтрагентаПриИзмененииСервер()
	
	УправлениеЭлементамиФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
	
	ФинансыКлиентСервер.ПересчитатьСуммыВСтрокеРасшифровкиПлатежа(Объект, Объект.СуммаДокумента, Ложь);
	СуммаДокументаПриИзмененииСервер();
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура БанковскийСчетОтправительПриИзменении(Элемент)
	
	БанковскийСчетОтправительПриИзмененииСервер();
	
КонецПроцедуры

&НаСервере
Процедура БанковскийСчетОтправительПриИзмененииСервер()
	
	ПриИзмененииБанковскийСчетОтправитель();
	УправлениеЭлементамиФормы();
	
КонецПроцедуры

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

&НаКлиенте
Процедура КурсКонвертацииПриИзменении(Элемент)
	
	ПересчитатьПараметрыКонвертации("КурсКонвертации");
	
КонецПроцедуры

&НаКлиенте
Процедура СуммаКонвертацииПриИзменении(Элемент)
	
	ПересчитатьПараметрыКонвертации("СуммаКонвертации");
	
	Если Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
		Объект.РасшифровкаПлатежа[0].Сумма = Объект.СуммаДокумента;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
	
	Если ТекущаяСтраница = Элементы.СтраницаРасшифровка И Не ПереключательРасшифровки И Не ТолькоПросмотр Тогда
		РасшифровкаПлатежаПриНачалеРедактирования(Элемент, Ложь, Ложь);
	КонецЕсли;
	
КонецПроцедуры

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

&НаКлиенте
Процедура ФискальнаяОперацияСтатусОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
	
	ФормированиеФискальныхЧековКлиент.ФискальнаяОперацияОбработкаНавигационнойСсылки(
		ЭтотОбъект, НавигационнаяСсылка, СтандартнаяОбработка);
	
КонецПроцедуры

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

&НаСервере
Процедура ФискальнаяОперацияЗавершениеНаСервере()
	
	ФормированиеФискальныхЧековСервер.ОбновитьГиперссылкуПробитияФискальногоЧека(Объект.Ссылка, ЭтотОбъект, ФискальнаяОперацияСтатус);
	
КонецПроцедуры

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

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

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

		Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(РеквизитыДоговора, "НаправлениеДеятельности") Тогда
			Объект.НаправлениеДеятельности = ДенежныеСредстваСервер.НаправлениеДеятельности(
				Объект.ХозяйственнаяОперация, 
				РеквизитыДоговора.НаправлениеДеятельности);
		КонецЕсли;

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

&НаКлиенте
Процедура ДоговорВозвратаСоздание(Элемент, СтандартнаяОбработка)

	СтандартнаяОбработка = Ложь;
	
	ДенежныеСредстваКлиент.ОткрытьСозданиеДоговораВозврата(ЭтотОбъект, Элемент);

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

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

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

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

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

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

&НаКлиенте
Процедура АналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура АналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура АналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ПодтверждениеЗачисленияЗарплатыПриИзменении(Элемент)

	ПодтверждениеЗачисленияЗарплатыПриИзмененииНаСервере();

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

&НаКлиенте
Процедура ДекорацияИндексыСПАРКРискиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)

	//++ Локализация
	СПАРКРискиКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
	//-- Локализация
	
	Возврат;

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

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

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

&НаКлиенте
Процедура ИдентификаторПлатежаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	//++ Локализация
	ИдентификаторПлатежаОбработкаВыбораНаСервере(ВыбранноеЗначение);
	//-- Локализация
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ТипНалогаПриИзменении(Элемент)
	
	//++ Локализация
	ТипНалогаПриИзмененииНаСервере();
	//-- Локализация
	
	Возврат;
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПеречислениеВБюджетПриИзменении(Элемент)
	
	//++ Локализация
	ПеречислениеВБюджетПриИзмененииСервер();
	//-- Локализация
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура КратностьКурсаКонвертацииПриИзменении(Элемент)

	КратностьКурсаКонвертацииПриИзмененииНаСервере();

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

&НаКлиенте
Процедура НаправлениеДеятельностиПриИзменении(Элемент)

	НаправлениеДеятельностиПриИзмененииНаСервере();

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

&НаКлиенте
Процедура ГруппаФинансовогоУчетаПриИзменении(Элемент)

	ГруппаФинансовогоУчетаПриИзмененииНаСервере();

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

&НаКлиенте
Процедура РасшифровкаБезРазбиенияПартнерПриИзменении(Элемент)

	РасшифровкаПлатежаПартнерПриИзмененииНаСервере();

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

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

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

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

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежа

&НаКлиенте
Процедура ПереключательРасшифровкиПриИзменении(Элемент)
	
	Если Не ПереключательРасшифровки Тогда
		Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
			Объект.РасшифровкаПлатежа.Добавить();
			Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
			РасшифровкаПлатежаПриНачалеРедактирования(Элементы.РасшифровкаПлатежа, Истина, Ложь);
		ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
			Если Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Неопределено Тогда
				Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
			КонецЕсли;
		ИначеЕсли Объект.РасшифровкаПлатежа.Количество() > 1 Тогда
			ОчиститьСообщения();
			ТекстСообщения = НСтр("ru = 'Переключение в режим без разбиения невозможно, если в расшифровке платежа введено более одной строки!'");
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
			ПереключательРасшифровки = 1;
		КонецЕсли;
	КонецЕсли;
	
	УправлениеЭлементамиФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаПлатежаПриИзменении(Элемент)

	//++ НЕ УТ
	ОпределитьИспользованиеРасчетногоДокументаПоАренде();
	//-- НЕ УТ
	
	Возврат;

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

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

	//Настройка счетов учета 
	Если НоваяСтрока И Копирование Тогда
		НастройкаСчетовУчетаКлиент.ПриКопированииСтроки(ЭтотОбъект, Элемент);
	КонецЕсли;
	//-- НЕ УТ
	
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаПлатежаПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
	РасшифровкаПлатежаПриОкончанииРедактированияНаСервере();
	
КонецПроцедуры

&НаСервере
Процедура РасшифровкаПлатежаПриОкончанииРедактированияНаСервере()
	
	ЗаполнитьВалютуВзаиморасчетовДокумента();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаБезРазбиенияОснованиеПлатежаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	РасшифровкаПлатежаОснованиеПлатежаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	
	ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура РасшифровкаПлатежаВалютаВзаиморасчетовПриИзменении(Элемент)
	
	РасшифровкаПлатежаВалютаВзаиморасчетовПриИзмененииНаСервере();
	
КонецПроцедуры

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

&НаКлиенте
Процедура РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзменении(Элемент)
	
	РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзмененииНаСервере();
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура РасшифровкаПлатежаСтатьяДоходовПриИзменении(Элемент)
	
	РасшифровкаПлатежаСтатьяДоходовПриИзмененииСервер(Элемент.Имя);
	
КонецПроцедуры

&НаСервере
Процедура РасшифровкаПлатежаСтатьяДоходовПриИзмененииСервер(ИмяЭлемента);
	
	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элементы[ИмяЭлемента]);
	
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаПлатежаСтатьяДоходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаДоходовПриИзменении(Элемент)
	
	ДоходыИРасходыКлиентСервер.АналитикаДоходовПриИзменении(ЭтотОбъект, Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаАктивовПассивовПриИзменении(Элемент)
	
	ДоходыИРасходыКлиентСервер.АналитикаАктивовПассивовПриИзменении(ЭтотОбъект, Элемент);
	
КонецПроцедуры

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

	ОткрытьФорму("ОбщаяФорма.ФормаВыбораРеквизитовОбъектаРасчетовПлатежа", 
		ПараметрыФормы,
		ЭтаФорма,,,,
		ОписаниеОповещения,
		РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	
КонецПроцедуры

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

&НаСервере
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершениеНаСервере()

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

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

&НаКлиенте
Процедура РасшифровкаБезРазбиенияПредставлениеОтраженияВРеглУчетеНажатие(Элемент, СтандартнаяОбработка)
	
	//++ НЕ УТ
	НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	//-- НЕ УТ
	Возврат;
	
КонецПроцедуры

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

&НаКлиенте
Процедура РасшифровкаПлатежаПослеУдаления(Элемент)
	
	РасшифровкаПлатежаПослеУдаленияСервер();
	
КонецПроцедуры

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

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

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

//++ НЕ УТ

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

&НаКлиенте
Процедура РасшифровкаБезРазбиенияТипПлатежаПоАрендеПриИзменении(Элемент)
	
	//++ НЕ УТ
	ОпределитьИспользованиеРасчетногоДокументаПоАренде();
	//-- НЕ УТ
	
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаПлатежаТипПлатежаПоАрендеПриИзменении(Элемент)

	//++ НЕ УТ
	ОпределитьИспользованиеРасчетногоДокументаПоАренде();
	//-- НЕ УТ
	
	Возврат;

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

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

&НаКлиенте
Процедура РасшифровкаБезРазбиенияНалогообложениеНДСПриИзменении(Элемент)
	
	ЗаполнитьНалогообложениеНДС();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура РасшифровкаБезРазбиенияВариантКурсаДоговораНажатие(Элемент, СтандартнаяОбработка)
	ВзаиморасчетыКлиент.РасшифровкаПлатежаВариантКурсаДоговораНажатие(Элементы.РасшифровкаПлатежа.ТекущиеДанные, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияПриИзменении(Элемент)
	
	Объект.РасшифровкаПлатежа[0].ДатаПогашения = ДатаПогашенияБезРазбиения;
	ОбновитьПредставлениеДатыПогашения();
	
КонецПроцедуры

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

&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОчистка(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Объект.РасшифровкаПлатежа[0].ДатаПогашения = Дата(1, 1, 1);
	ОбновитьПредставлениеДатыПогашения();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура РасшифровкаПлатежаДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ОбъектРасчетовДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаПлатежаПартнерПриИзменении(Элемент)

	РасшифровкаПлатежаПартнерПриИзмененииНаСервере();

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

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

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

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

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


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

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

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

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

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

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

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

&НаСервере
Процедура ПоместитьРасшифровкуПлатежаВоВременноеХранилище()
	ВзаиморасчетыСервер.ПоместитьРасшифровкуПлатежаВоВременноеХранилище(ЭтаФорма, "РасшифровкаПлатежаПодборПоОстаткам");
КонецПроцедуры

&НаКлиенте
Процедура ПодборПоОстаткамЗавершение(Результат, ДополнительныеПараметры) Экспорт
	Если Результат <> Неопределено Тогда
		ПодборПоОстаткамЗавершениеСервер();
	КонецЕсли;
КонецПроцедуры

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

&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамКонтрагенту(Команда)
	
	ЗаполнитьРасшифровкуПлатежаПоЗаймамКонтрагентуСервер();
	
КонецПроцедуры

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

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

	ОчиститьСообщения();
	ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);

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

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

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

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

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

&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
	
	Закрыть();
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамСотруднику(Команда)
	
	//++ Локализация
	ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуЛокализация(Команда);
	//-- Локализация
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура ПодборПоУИП(Команда)
	
	//++ Локализация
	ПодборПоУИПЛокализация(Команда);
	//-- Локализация
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
	
	//++ Локализация
	ПроверитьКонтрагентовЛокализация(Команда);
	//-- Локализация
	Возврат;
	
КонецПроцедуры

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

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

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

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

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

&НаСервере
Процедура КратностьКурсаКонвертацииПриИзмененииНаСервере()

	ПересчитатьПараметрыКонвертации("КратностьКурсаКонвертации");

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

&НаСервере
Процедура ПриИзмененииБанковскийСчетОтправитель()

	ЗаполнитьОрганизациюПлательщик();

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

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

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

#Область Свойства

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

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

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

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

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

#Область УправлениеЭлементамиФормы

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

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

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

&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(ИзмененныйРеквизит = "")
	
	ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтаФорма, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
	
КонецПроцедуры

&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныйРеквизит = "")
	
	ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтаФорма, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
	
КонецПроцедуры

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

&НаСервере
Процедура ИнициализироватьРасшифровкуПлатежа()
	
	МассивВсехРеквизитов = Новый Массив; МассивРеквизитовОперации = Новый Массив;
	Документы.ПоступлениеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
		Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
	
	Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа") = Неопределено Тогда
		Объект.РасшифровкаПлатежа.Очистить();
		ПереключательРасшифровки = 0;
	Иначе
		Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа.ДатаПогашения") = Неопределено Тогда
			Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
				СтрокаРасшифровки.ДатаПогашения = Дата(1 , 1 ,1);
			КонецЦикла;
		КонецЕсли;
		Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
			НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
			Элементы.РасшифровкаПлатежа.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
			ПереключательРасшифровки = 0;
			НоваяСтрока.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
			НоваяСтрока.Сумма = Объект.СуммаДокумента;
			НоваяСтрока.ВалютаВзаиморасчетов = Объект.Валюта;
			НоваяСтрока.КурсЧислительВзаиморасчетов = 1;
			НоваяСтрока.КурсЗнаменательВзаиморасчетов = 1;
			ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
			ЗаполнитьНалогообложениеНДС();
		ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
			Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
			ПереключательРасшифровки = 0;
			ЗаполнитьНалогообложениеНДС(Ложь);
		Иначе
			ПереключательРасшифровки = 1;
			ЗаполнитьНалогообложениеНДС(Ложь);
		КонецЕсли;
		ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
		ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаСервере
Процедура УточнитьСписокХозяйственныхОпераций()
	
	ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
	
	ДенежныеСредстваСервер.УстановитьВидимостьОперацийПередачиМеждуОрганизациями(ЭлементХозяйственнаяОперация);
	ДенежныеСредстваСервер.УстановитьВидимостьОперацийВнутреннейПередачи(ЭлементХозяйственнаяОперация);
	ДенежныеСредстваСервер.УстановитьВидимостьОперацийПоДоговорамКредитовИДепозитов(ЭлементХозяйственнаяОперация);
	ДенежныеСредстваСервер.УстановитьВидимостьОперацииПрочееПоступлениеДенежныхСредств(ЭлементХозяйственнаяОперация);
	ДенежныеСредстваСервер.УстановитьВидимостьОперацииКонвертацияВалютыБезналичные(ЭлементХозяйственнаяОперация);
	ДенежныеСредстваСервер.УстановитьВидимостьОперацииПоЗарплате(ЭлементХозяйственнаяОперация);
	ДенежныеСредстваСервер.УстановитьВидимостьОперацийЭквайринга(ЭлементХозяйственнаяОперация);
	ДенежныеСредстваСервер.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
	ДенежныеСредстваСервер.УстановитьВидимостьОперацийПеречисленияНаДругойСчет(ЭлементХозяйственнаяОперация);
	//++ НЕ УТ
	ДенежныеСредстваСервер.УстановитьВидимостьОперацииОплатаАрендодателю(ЭлементХозяйственнаяОперация);
	//-- НЕ УТ
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения()
	
	ДенежныеСредстваСервер.УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения(ЭтотОбъект);
	
КонецПроцедуры

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

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

&НаСервереБезКонтекста
Процедура ПолучитьПартнераПоУмолчаниюСервер(Контрагент, Партнер, ХозяйственнаяОперация)
	
	Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Контрагент, ХозяйственнаяОперация);
	
КонецПроцедуры

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

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

&НаСервере
Процедура ОбновитьНДССтрокиНаСервере(ИдСтроки)
	
	ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки);
	УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
	УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки)
	
	ДенежныеСредстваСервер.ОбновитьСтавкуНДСИПересчитатьСуммуНДС(Объект, ИдСтроки);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьПредставлениеДатыПогашения()
	Если Объект.РасшифровкаПлатежа.Количество() = 0 
		Или Не ЗначениеЗаполнено(Объект.РасшифровкаПлатежа[0].ДатаПогашения) Тогда
		ДатаПогашенияБезРазбиения = НСтр("ru='<автоматически>'");
	Иначе
		ДатаПогашенияБезРазбиения = Объект.РасшифровкаПлатежа[0].ДатаПогашения;
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВыбора(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат <> Неопределено Тогда
		Объект.РасшифровкаПлатежа[0].ДатаПогашения = Результат;
		Модифицированность = Истина;
	КонецЕсли;
	ОбновитьПредставлениеДатыПогашения();
	
КонецПроцедуры

&НаСервере
Процедура УстановитьОграничениеТипаДоговораРасшифровкиПлатежа()

	ДенежныеСредстваСервер.УстановитьОграничениеТипаДоговораРасшифровкиПлатежа(ЭтотОбъект);
	НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");

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

&НаСервере
Процедура НаправлениеДеятельностиПриИзмененииНаСервере()

	ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
	ОчиститьОбъектРасчетов(ТекущаяСтрока);

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

&НаСервере
Процедура ГруппаФинансовогоУчетаПриИзмененииНаСервере()

	ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
	ОчиститьОбъектРасчетов(ТекущаяСтрока);

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

&НаСервере
Процедура РасшифровкаПлатежаПартнерПриИзмененииНаСервере()

	ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
	ОчиститьОбъектРасчетов(ТекущаяСтрока);

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

&НаСервере
Процедура ИзменитьСуммуНераспределено()

	СуммаНераспределено = ДенежныеСредстваСервер.НераспределенныйОстатокПлатежа(Объект);
	НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");

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

&НаСервере
Процедура ОбработатьИзменениеУИП(СтрокаРасшифровки = Неопределено)
	
	Если СтрокаРасшифровки <> Неопределено Тогда
		ЗаполнитьИндексУИПОтличается(СтрокаРасшифровки);
	Иначе
		Для Каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
			ЗаполнитьИндексУИПОтличается(СтрокаТЧ);
		КонецЦикла;
	КонецЕсли;
	
	ОпределитьУИПОтличается();
	
КонецПроцедуры

&НаСервере
Процедура ОпределитьУИПОтличается()
	
	УИПОтличается = Объект.РасшифровкаПлатежа.Итог("ИндексУИПОтличается") <> 0;
	НастроитьЗависимыеЭлементыФормыНаСервере("УИПОтличается");
	
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьИндексУИПОтличается(СтрокаРасшифровки)
	
	Если ЗначениеЗаполнено(Объект.ИдентификаторПлатежа)
		И ЗначениеЗаполнено(СтрокаРасшифровки.ИдентификаторПлатежа)
		И СтрокаРасшифровки.ИдентификаторПлатежа <> Объект.ИдентификаторПлатежа Тогда
		СтрокаРасшифровки.ИндексУИПОтличается = 1;
	Иначе
		СтрокаРасшифровки.ИндексУИПОтличается = 0;
	КонецЕсли;
	
КонецПроцедуры

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

#Область Прочее

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

&НаСервере
Процедура ОбновитьНадписьЗеркальныйПлатеж()
	
	Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации Тогда
		Возврат;
	КонецЕсли;
	
	ЗеркальныйПлатежСсылка = Документы.ПоступлениеБезналичныхДенежныхСредств.НайтиЗеркальныйПлатеж(Объект.Ссылка);
	
	Если ЗначениеЗаполнено(ЗеркальныйПлатежСсылка) Тогда
		Элементы.НадписьЗеркальныйПлатеж.Гиперссылка = Истина;
		СоответствуетЗеркальномуПлатежу = Документы.ПоступлениеБезналичныхДенежныхСредств.СоответствуетЗеркальномуПлатежу(
			Объект.Ссылка,ЗеркальныйПлатежСсылка);
		Если СоответствуетЗеркальномуПлатежу Тогда
			Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ГиперссылкаЦвет;
			НадписьЗеркальныйПлатеж = ЗеркальныйПлатежСсылка;
		Иначе
			Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ЦветТекстаПредупреждение;
			НадписьЗеркальныйПлатеж = СтрШаблон(НСтр("ru = '%1 (есть различия)'"), ЗеркальныйПлатежСсылка);
		КонецЕсли;
	Иначе
		Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ЦветТекстаПредупреждение; 
		Элементы.НадписьЗеркальныйПлатеж.Гиперссылка = Ложь;
		НадписьЗеркальныйПлатеж = НСтр("ru = '<Списание безналичных денежных средств не найдено.>'");
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаСервере
Процедура УстановитьЗаголовокСтатьяДоходовРасходов()
	
	Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов") Тогда
		Элементы.РасшифровкаБезРазбиенияСтатьяДоходов.Заголовок = НСтр("ru = 'Статья доходов'");
		Элементы.РасшифровкаПлатежаСтатьяДоходов.Заголовок      = НСтр("ru = 'Статья доходов'");
	КонецЕсли;
	
КонецПроцедуры

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

&НаСервере
Функция ПоместитьРасшифровкуВоВременноеХранилище()
	Возврат ПоместитьВоВременноеХранилище(Объект.РасшифровкаПлатежа.Выгрузить());
КонецФункции

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

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

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

&НаСервере
Процедура РазблокироватьДанные()
	РазблокироватьДанныеДляРедактирования(,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаСервере
Функция УчитыватьТипСуммыКредитаДепозита(ТипСуммы)

	Возврат (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоДепозитам
		ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоЗаймамВыданным)
		И ЗначениеЗаполнено(ТипСуммы);

КонецФункции

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

&НаСервере
Процедура ОчиститьОбъектРасчетов(СтрокаРасшифровки)

	ДенежныеСредстваСервер.ОчиститьОбъектРасчетов(Объект, СтрокаРасшифровки);
	ИзменитьСуммуНераспределено();
	СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
	УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();

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

&НаСервере
Процедура ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(СтрокаРасшифровки, РеквизитыДоговора)

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

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

//++ НЕ УТ

&НаСервере
Процедура ОпределитьИспользованиеРасчетногоДокументаПоАренде()

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

//-- НЕ УТ

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

	Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектРасчетов, "Договор");
	
КонецФункции

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

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

	Объект.ОбъектРасчетовКомиссии = ?(ЗначениеЗаполнено(ДоговорКомиссии),
		ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКомиссии), Справочники.ОбъектыРасчетов.ПустаяСсылка());

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

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

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

//++ Локализация
#Область Локализация

#Область Локализация_ПодключаемыеОбработчикиСобытийФормы

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

&НаСервере
Процедура Подключаемый_ПриЧтенииНаСервереЛокализация(ТекущийОбъект)
	
	ПриЧтенииНаСервере(ТекущийОбъект);
	
	ПриЧтенииСозданииНаСервереЛокализация();
	
КонецПроцедуры

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

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

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

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

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

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

#Область Локализация_ПодключаемыеОбработчикиСобытийЭлементовФормы

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

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

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

&НаКлиенте
Процедура Подключаемый_ДатаПроведенияБанкомПриИзмененииЛокализация(Элемент)
	
	ДатаПроведенияБанкомПриИзменении(Элемент);
	ОбновитьИнформациюОЗадолженностиСотрудника();
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_БанковскийСчетКонтрагентаПриИзмененииЛокализация(Элемент)
	
	БанковскийСчетКонтрагентаПриИзмененииСерверЛокализация();
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура Подключаемый_ПодотчетноеЛицоПриИзмененииЛокализация(Элемент)
	
	ПодотчетноеЛицоПриИзмененииСерверЛокализация();
	
КонецПроцедуры

&НаСервере
Процедура ПодотчетноеЛицоПриИзмененииСерверЛокализация()
	
	ПодотчетноеЛицоПриИзмененииСервер();
	
	Если ЗначениеЗаполнено(Объект.ПодотчетноеЛицо) Тогда
		ЗаполнитьДокументВыдачи();
	КонецЕсли;
	
	//++ НЕ УТ
	Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПогашениеЗаймаСотрудником
		И ИспользоватьНачислениеЗарплатыУТ Тогда
		
		Объект.Подразделение = ИнтеграцияБЗК.МестоСотрудникаВСтруктуреПредприятия(
			Объект.Организация, Объект.ПодотчетноеЛицо, Объект.Дата);
	КонецЕсли;
	//-- НЕ УТ
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_РасшифровкаБезРазбиенияТипСуммыКредитаДепозитаПриИзмененииЛокализация(Элемент)
	
	ТипСуммыКредитаДепозитаПриИзмененииСерверЛокализация();
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаТипСуммыКредитаДепозитаПриИзмененииЛокализация(Элемент)
	
	ТипСуммыКредитаДепозитаПриИзмененииСерверЛокализация();
	
КонецПроцедуры

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

&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПослеУдаленияЛокализация(Элемент)
	РасшифровкаПлатежаПослеУдаленияСерверЛокализация();
КонецПроцедуры

&НаСервере
Процедура РасшифровкаПлатежаПослеУдаленияСерверЛокализация()
	
	РасшифровкаПлатежаПослеУдаленияСервер();
	ОбновитьИнформациюОЗадолженностиСотрудника();
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_РасшифровкаБезРазбиенияДоговорЗаймаСотрудникуПриИзмененииЛокализация(Элемент)
	ОбновитьИнформациюОЗадолженностиСотрудника();
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаДоговорЗаймаСотрудникуПриИзмененииЛокализация(Элемент)
	Если Элементы.РасшифровкаПлатежа.ТекущиеДанные.НомерСтроки = 1 Тогда
		ОбновитьИнформациюОЗадолженностиСотрудника();
	КонецЕсли;
КонецПроцедуры

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

#Область ЛокализацияОбработчикиСобытийЭлементовФормы

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

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

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

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

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

&НаСервере
Процедура УправлениеПоказателямиПлатежаВБюджет()
	
	ПлатежиВБюджет.УстановитьНадписьРеквизитовПлатежаВБюджет(ЭтаФорма);
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежаЛокализация

// Обработчик выбора в расшифровке
//
// Параметры:
//    Элемент - ПолеФормы - Поле расшифровки платежа
//    ВыбраннаяСтрока - Число - Индекс строки
//    Поле - ПолеФормы - Активная колонка
//    СтандартнаяОбработка - Булево - Признак стандартной обработки
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаВыборЛокализация(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	РасшифровкаПлатежаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
	Возврат;
	
КонецПроцедуры

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

#Область ЛокализацияКоманды

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

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

&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуЛокализация(Команда)
	
	//++ НЕ УТ
	ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуСервер();
	//-- НЕ УТ
	Возврат;
	
КонецПроцедуры

//++ НЕ УТ

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

#Область РаботаСКонтрагентами

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

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

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

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

&НаКлиенте
Процедура ПроверитьКонтрагентовЛокализация(Команда)
	
	// ИнтернетПоддержкаПользователей.РаботаСКонтрагентами
	ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
	// Конец ИнтернетПоддержкаПользователей.РаботаСКонтрагентами
	
КонецПроцедуры

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

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

#Область ЛокализацияСлужебные

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

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

&НаСервере
Процедура ЗаполнитьДокументВыдачи()
	
	Если (Объект.ХозяйственнаяОперация <> ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратНеперечисленныхДС")
		Или Не ИспользоватьНачислениеЗарплатыУТ)
		И Объект.ХозяйственнаяОперация <> ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратНеперечисленнойЗарплатыПоЗарплатномуПроекту") Тогда
		Возврат;
	КонецЕсли;
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1
		|	СписаниеБезналичныхДенежныхСредств.Ссылка,
		|	СписаниеБезналичныхДенежныхСредств.Дата КАК Дата
		|ИЗ
		|	Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
		|ГДЕ
		|	СписаниеБезналичныхДенежныхСредств.Организация = &Организация
		|	И СписаниеБезналичныхДенежныхСредств.ПодотчетноеЛицо = &ПодотчетноеЛицо
		|	И СписаниеБезналичныхДенежныхСредств.БанковскийСчетКонтрагента = &БанковскийСчетКонтрагента
		|	И СписаниеБезналичныхДенежныхСредств.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета)
		|	И СписаниеБезналичныхДенежныхСредств.БанковскийСчет = &БанковскийСчет
		|	И СписаниеБезналичныхДенежныхСредств.СуммаДокумента = &СуммаДокумента
		|	И СписаниеБезналичныхДенежныхСредств.Дата <= &Дата
		|	И НЕ СписаниеБезналичныхДенежныхСредств.ПометкаУдаления
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1
		|	СписаниеБезналичныхДенежныхСредств.Ссылка,
		|	СписаниеБезналичныхДенежныхСредств.Дата
		|ИЗ
		|	Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
		|ГДЕ
		|	СписаниеБезналичныхДенежныхСредств.Организация = &Организация
		|	И СписаниеБезналичныхДенежныхСредств.Контрагент = &Контрагент
		|	И СписаниеБезналичныхДенежныхСредств.БанковскийСчетКонтрагента = &БанковскийСчетКонтрагента
		|	И СписаниеБезналичныхДенежныхСредств.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту)
		|	И СписаниеБезналичныхДенежныхСредств.БанковскийСчет = &БанковскийСчет
		|	И СписаниеБезналичныхДенежныхСредств.Дата <= &Дата
		|	И НЕ СписаниеБезналичныхДенежныхСредств.ПометкаУдаления
		|
		|УПОРЯДОЧИТЬ ПО
		|	Дата УБЫВ";
	
	Запрос.УстановитьПараметр("БанковскийСчет",                   Объект.БанковскийСчет);
	Запрос.УстановитьПараметр("БанковскийСчетКонтрагента",        Объект.БанковскийСчетКонтрагента);
	Запрос.УстановитьПараметр("Дата",                             КонецДня(Объект.Дата));
	Запрос.УстановитьПараметр("Организация",                      Объект.Организация);
	Запрос.УстановитьПараметр("ПодотчетноеЛицо",                  Объект.ПодотчетноеЛицо);
	Запрос.УстановитьПараметр("Контрагент",                       Объект.Контрагент);
	Запрос.УстановитьПараметр("СуммаДокумента",                   Объект.СуммаДокумента);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	Если Выборка.Следующий() Тогда
		Объект.ДокументВыдачи = Выборка.Ссылка;
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаСервере
Процедура ОбновитьИнформациюОЗадолженностиСотрудника()
	
	Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПогашениеЗаймаСотрудником
		ИЛИ НЕ ИспользоватьЗаймыСотрудникам Тогда
		Возврат;
	КонецЕсли;
	
	//++ НЕ УТ
	Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
		Элементы.РасшифровкаБезРазбиенияДоговорЗаймаСотруднику.РасширеннаяПодсказка.Заголовок = "";
	Иначе
		ДанныеСтроки = Объект.РасшифровкаПлатежа[0];
		Элементы.РасшифровкаБезРазбиенияДоговорЗаймаСотруднику.РасширеннаяПодсказка.Заголовок =
			ИнформацияОЗадолженностиСотрудника(ДанныеСтроки.ДоговорЗаймаСотруднику, Объект.Дата, Объект.Ссылка);
	КонецЕсли;
	//-- НЕ УТ
КонецПроцедуры

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

//++ НЕ УТ

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

&НаСервереБезКонтекста
Функция ИнформацияОЗадолженностиСотрудника(Договор, ДатаДокумента, ДокументСсылка)
	Если ЗначениеЗаполнено(Договор) Тогда
		Возврат ЗаймыСотрудникам.ИнформацияОЗадолженности(Договор, ДатаДокумента, ДокументСсылка);
	Иначе
		Возврат "";
	КонецЕсли;
КонецФункции
//-- НЕ УТ

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

// ИнтернетПоддержкаПользователей.СПАРКРиски

// Обновляет отображение индексов СПАРК Риски.
//
// Параметры:
//  Нет.
//
&НаКлиенте
Процедура Подключаемый_ОбновитьОтображениеИндексыСПАРК()

	ОбновитьОтображениеИндексыСПАРК(Объект.Контрагент);

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

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

&НаСервереБезКонтекста
Функция ВидКонтрагентаСПАРК(Контрагент)
	
	Возврат Перечисления.ЮрФизЛицо.ВидКонтрагентаСПАРКРиски(Контрагент);
	
КонецФункции
// Конец ИнтернетПоддержкаПользователей.СПАРКРиски

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

&НаСервере
Процедура ОпределитьБанковскийСчетПоГосконтрактуЛокализация()
	
	БанковскийСчетПоГосконтракту = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "СчетПоГосконтракту");
	
КонецПроцедуры

&НаКлиенте
Процедура ПодобратьОснованияПлатежаКонвертацииПоУИП(Текст, ДанныеВыбора, СтандартнаяОбработка)

	Если СтрДлина(Текст) < 2 Тогда
		Возврат;
	КонецЕсли;
	
	СтандартнаяОбработка = Ложь;
	СформироватьСписокОснованийПлатежаКонвертации(Текст, ДанныеВыбора, Объект.Дата);

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

&НаСервереБезКонтекста
Процедура СформироватьСписокОснованийПлатежаКонвертации(Текст, ДанныеВыбора, НаДату)

	ДанныеВыбора = Новый СписокЗначений;
	ТаблицаОснований = ДенежныеСредстваСервер.ОснованияОперацииКонвертацииПоУИП(Текст, НаДату);
	
	Для Каждого СтрокаОснования Из ТаблицаОснований Цикл
		
		ЗначениеЭлемента = СоставЭлементаВыбораОснования();
		ЗаполнитьЗначенияСвойств(ЗначениеЭлемента, СтрокаОснования);
		Представление = СтрШаблон(НСтр("ru = '%1 (%2)'"), ЗначениеЭлемента.ИдентификаторПлатежа, ЗначениеЭлемента.Контрагент);
		ДанныеВыбора.Добавить(ЗначениеЭлемента, Представление);
		
	КонецЦикла;

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

&НаСервереБезКонтекста
Функция СоставЭлементаВыбораОснования()

	СтруктураЭлемента = Новый Структура;
	СтруктураЭлемента.Вставить("ОснованиеПлатежа", Неопределено);
	СтруктураЭлемента.Вставить("Организация", Справочники.Организации.ПустаяСсылка());
	СтруктураЭлемента.Вставить("БанковскийСчет", Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка());
	СтруктураЭлемента.Вставить("Контрагент", Справочники.Контрагенты.ПустаяСсылка());
	СтруктураЭлемента.Вставить("Партнер", Справочники.Партнеры.ПустаяСсылка());
	СтруктураЭлемента.Вставить("БанковскийСчетКонтрагента", Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка());
	СтруктураЭлемента.Вставить("ИдентификаторПлатежа", "");
	СтруктураЭлемента.Вставить("Подразделение", Справочники.СтруктураПредприятия.ПустаяСсылка());
	СтруктураЭлемента.Вставить("СтатьяДвиженияДенежныхСредств", Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка());
	СтруктураЭлемента.Вставить("СуммаКонвертации", 0);
	СтруктураЭлемента.Вставить("СуммаДокумента", 0);
	СтруктураЭлемента.Вставить("ВалютаКонвертации", Справочники.Валюты.ПустаяСсылка());
	СтруктураЭлемента.Вставить("Валюта", Справочники.Валюты.ПустаяСсылка());
	СтруктураЭлемента.Вставить("КурсКонвертации", 0);
	СтруктураЭлемента.Вставить("КратностьКурсаКонвертации", 0);
	
	Возврат СтруктураЭлемента;

КонецФункции

&НаСервере
Процедура ОбработатьВыборОснованияКонвертации(ВыбранноеЗначение)

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

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

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

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

#Область Инициализация

#Если НаСервере Тогда

Если Не ПодключеныОбработчикиЛокализация И ПолучитьФункциональнуюОпцию("ПоддержкаПлатежейРФ") Тогда
	
	ПодключеныОбработчикиЛокализация = Истина;
	
	ПодключаемыеОбработчикиСобытийФормы = Новый Массив;
	ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриСозданииНаСервере");
	ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЧтенииНаСервере");
	ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриОткрытии");
	ПодключаемыеОбработчикиСобытийФормы.Добавить("ПередЗаписьюНаСервере");
	ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЗаписиНаСервере");
	ПодключаемыеОбработчикиСобытийФормы.Добавить("ПослеЗаписиНаСервере");
	ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаОповещения");
	
	Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийФормы Цикл
		УстановитьДействие(Обработчик, "Подключаемый_" + Обработчик + "Локализация");
	КонецЦикла;
	
	ПодключаемыеОбработчикиСобытийЭлементов = Новый Соответствие; // Ключ - Элемент, Значение - Событие
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ХозяйственнаяОперация",       "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("БанковскийСчетКонтрагента",   "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("СуммаДокумента",              "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Контрагент",                  "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ПодотчетноеЛицо",             "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ДатаПроведенияБанком",        "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежа",          "Выбор");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежа",          "ПослеУдаления");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаБезРазбиенияТипСуммыКредитаДепозита", "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаТипСуммыКредитаДепозита",      "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаБезРазбиенияДоговорЗаймаСотруднику",  "ПриИзменении");
	ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаДоговорЗаймаСотруднику",       "ПриИзменении");
	
	Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийЭлементов Цикл
		Если Элементы.Найти(Обработчик.Ключ) <> Неопределено Тогда
			Элементы[Обработчик.Ключ].УстановитьДействие(
				Обработчик.Значение, "Подключаемый_" + Обработчик.Ключ + Обработчик.Значение + "Локализация");
		КонецЕсли;
	КонецЦикла;
	
КонецЕсли;

#КонецЕсли

#КонецОбласти
//-- Локализация

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