Заявка на расходование денежных средств / Форма документа / Модуль формы

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

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

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

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

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

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


	//-- Локализация

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ВалютаПриИзменении(Элемент)
	
	НуженПереходНаСервер = ВалютаПриИзмененииКлиент();
	Если НуженПереходНаСервер Тогда
		ВалютаПриИзмененииСервер();
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ХозяйственнаяОперацияПоЗарплатеПриИзменении(Элемент)
	
	НуженПереходНаСервер = ХозяйственнаяОперацияПоЗарплатеПриИзмененииКлиент();
	Если НуженПереходНаСервер Тогда
		ХозяйственнаяОперацияПоЗарплатеПриИзмененииСервер();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	УправлениеЭлементамиФормы();
	НастроитьЗависимыеЭлементыФормыНаСервере("ПодотчетноеЛицо");
		
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПолучательПриИзменении(Элемент)

	ОрганизацияПолучательПриИзмененииСервер();
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура СверхЛимитаПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ВыполнитьПослеВыбораДаты(ВыбраннаяДата, Параметры) Экспорт
	
	ПериодАвансовогоОтчетаДата = (ТипЗнч(ПериодАвансовогоОтчета) = Тип("Дата"));
	НастроитьЗависимыеЭлементыФормы();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Если ПеречислениеСотрудникуЧерезБанк = 1 Тогда
		ФормаОплаты = "Безналичная";
	Иначе
		ФормаОплаты = "Любая";
	КонецЕсли;
	
	ФормаОплатыПриИзменении(Элемент);
	
	ПеречислениеСотрудникуЧерезБанкПриИзмененииНаСервере();

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПлатежиПо275ФЗПриИзменении(Элемент)
	
	//++ Локализация


	//-- Локализация
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура ТипПлатежаФЗ275ПриИзменении(Элемент)
	
	//++ Локализация


	//-- Локализация
	
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура НДФЛПоВедомостямПриИзменении(Элемент)
	
	//++ Локализация


	//-- Локализация
	Возврат;
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура ЗакрытаПриИзменении(Элемент)

	НастроитьЗависимыеЭлементыФормы("Закрыта");
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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


	Возврат;
	
КонецПроцедуры

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

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

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


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

	//++ Локализация
	ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
	//-- Локализация

	НастроитьЗависимыеЭлементыФормыНаСервере();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


	//-- Локализация
	
КонецПроцедуры

&НаКлиенте
Процедура ПодтверждающиеДокументыФайлНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	//++ Локализация


	//-- Локализация
	
	Возврат;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыВедомостиНаВыплатуЗарплаты

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

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

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

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

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

&НаКлиенте
Процедура РаспределениеПоСчетамПослеУдаления(Элемент)

	УстановитьПризнакПлатежаСКонвертацией();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПодборПоОстаткам(Команда)
	
	ПодборПоОстаткамОбработка("ПодборПоОстаткамЗавершение");
	
КонецПроцедуры

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЗаполнитьНазначениеПлатежа(Команда)
	
	ЗаполнитьНазначениеПлатежаСервер();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЗаполнитьСтатьюДвиженияДенежныхСредств(Команда)

	ДенежныеСредстваКлиент.ЗаполнитьСтатьюДвиженияДенежныхСредств(
		ЭтотОбъект, Элементы.ЛицевыеСчетаСотрудников, "ЛицевыеСчетаСотрудников");

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

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

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

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

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

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

&НаСервере
Процедура СписокФизЛицПриИзмененииНаСервере()

	СписокФизЛицВключеноПриИзмененииНаСервере();
	
	ОбновитьДанныеПоВалюте();

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

&НаСервере
Процедура СписокФизЛицВключеноПриИзмененииНаСервере()

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

	Объект.РасшифровкаПлатежа.Очистить();
	ИнициализироватьРасшифровкуПлатежа();
	УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
	ЗаполнитьВалютуВзаиморасчетовДокумента();

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

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

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

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

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

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

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

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

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

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

#Область ПриИзмененииРеквизитов

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

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

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

&НаСервере
Процедура ОбновитьДанныеПоВалюте()

	Если ТекущаяВалюта <> Объект.Валюта Тогда
		ПослеИзмененияВалюты();
	КонецЕсли;

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

&НаСервере
Процедура ОчиститьДанныеПоФормеОплаты()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура ЗаполнитьДанныеОбОплатеЗаявки()
	
	Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
		ОстатокОплаты = -1;
	Иначе
		ОстатокОплаты = ОстатокОплатыПоЗаявке(Объект.Ссылка);
	КонецЕсли;
	
	Если ОстатокОплаты < 0 Тогда
		НадписьФактическаяОплата = СтроковыеФункции.ФорматированнаяСтрока(
			НСтр("ru='<span style=""color: %1"">Не оплачена</span>'"), "ЦветТекстаПредупреждение");
	ИначеЕсли ОстатокОплаты = 0 Тогда
		Если Объект.Закрыта Тогда
			СуммаЗакрыто = СуммаЗакрыто(Объект.Ссылка);
			НадписьФактическаяОплата = СтроковыеФункции.ФорматированнаяСтрока(
				НСтр("ru='Оплачена частично, <span style=""color: %1"">закрыто: %2</span>'"),
				"ЦветТекстаПредупреждение", ФормированиеПечатныхФорм.ФорматСумм(СуммаЗакрыто, Объект.Валюта));
		Иначе
			НадписьФактическаяОплата = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Оплачена полностью'"));
		КонецЕсли;
	Иначе
		НадписьФактическаяОплата = СтроковыеФункции.ФорматированнаяСтрока(
			НСтр("ru='Оплачена частично, <span style=""color: %1"">не оплачено: %2</span>'"),
			"ЦветТекстаПредупреждение", ФормированиеПечатныхФорм.ФорматСумм(ОстатокОплаты, Объект.Валюта));
	КонецЕсли;
	
	НастроитьЗависимыеЭлементыФормыНаСервере("ОстатокОплаты");
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

&НаКлиенте
Процедура УстановитьВидимостьДоступностьЭлементаРасшифровкаПлатежаПартнер()

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

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

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

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

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

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

&НаКлиенте
Процедура ОчиститьРаспределениеПоСчетамПоФормеОплаты()

	Инд = Объект.РаспределениеПоСчетам.Количество() - 1;
	Пока Инд >= 0 Цикл
		Если ФормаОплаты = "Наличная"
			И ТипЗнч(Объект.РаспределениеПоСчетам[Инд].БанковскийСчетКасса) <> Тип("СправочникСсылка.Кассы") Тогда
			Объект.РаспределениеПоСчетам.Удалить(Инд);
		ИначеЕсли ФормаОплаты = "Безналичная"
			И ТипЗнч(Объект.РаспределениеПоСчетам[Инд].БанковскийСчетКасса) <> Тип("СправочникСсылка.БанковскиеСчетаОрганизаций") Тогда
			Объект.РаспределениеПоСчетам.Удалить(Инд);
		КонецЕсли;
		Инд = Инд - 1;
	КонецЦикла;
	
	ФормаОплатыПриИзмененииФрагмент();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция НадписьКодыИнструкцийБанку(Объект)
	
	КодыИнструкцийБанку = "";
	
	Если Объект.ИнструкцииБанку.Количество() Тогда
		КодыИнструкцийБанку = НСтр("ru = 'Инструкции банку:'") + " ";
		Для каждого СтрокаИнструкции Из Объект.ИнструкцииБанку Цикл
			КодыИнструкцийБанку = КодыИнструкцийБанку + Строка(СтрокаИнструкции.Инструкция) + ", ";
		КонецЦикла;
		КодыИнструкцийБанку = Лев(КодыИнструкцийБанку, СтрДлина(КодыИнструкцийБанку) - 2);
	Иначе
		КодыИнструкцийБанку = НСтр("ru = '<Указать инструкции банку>'");
	КонецЕсли;
	
	Возврат КодыИнструкцийБанку;
	
КонецФункции

&НаКлиентеНаСервереБезКонтекста
Функция НадписьИнформацияДляРегулирующихОрганов(Объект)
	
	ИнформацияДляРегулирующихОрганов = НСтр("ru = 'Для регулятора (77B):'");
	
	Если ЗначениеЗаполнено(Объект.ИнформацияДляРегулирующихОрганов) Тогда
		ИнформацияДляРегулирующихОрганов = ИнформацияДляРегулирующихОрганов + " " + Объект.ИнформацияДляРегулирующихОрганов;
	Иначе
		ИнформацияДляРегулирующихОрганов = ИнформацияДляРегулирующихОрганов + " " + НСтр("ru = '<Указать>'");
	КонецЕсли;
	
	Возврат ИнформацияДляРегулирующихОрганов;
	
КонецФункции

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция ЗаголовокЭквайринговойКомиссии(Сумма, Валюта, Ставка)
	
	Возврат НСтр("ru='Комиссия'") + " " + Строка(Сумма) + " " + Строка(Валюта) + " " + Строка(Ставка) + "%";
	
КонецФункции

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

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

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

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

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

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

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

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

&НаСервере
Процедура ПриИзмененииКонтрагента(
	Контрагент,
	БанковскийСчетКонтрагента,
	ЗаполнитьРасшифровкуПоКонтрагенту = Истина,
	ТекущийПартнер = Неопределено,
	ТекущаяСтрокаРасшифровки = Неопределено)

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

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

&НаСервере
Процедура ЗаполнитьРасшифровкуПлатежа(ТекущаяСтрокаТаблицы, ОбъектРасчетовДоговор)

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

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

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

&НаСервере
Процедура УстановитьПризнакПлатежаСКонвертацией(ЗначениеПоУмолчанию = Ложь)

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

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

&НаСервере
Процедура ЗаполнитьВалютуПоСчетуПолучателя(Счет)

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

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

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

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

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

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

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

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

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

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

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

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

	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
	ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
	ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
	ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
	ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
	ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
	ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
КонецПроцедуры

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

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

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

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

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

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

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


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

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

&НаКлиенте
Процедура Подключаемый_ХозяйственнаяОперацияПриИзмененииЛокализация(Элемент)
	
	НуженПереходНаСервер = ХозяйственнаяОперацияПриИзмененииКлиент();
	Если НуженПереходНаСервер Тогда
		ХозяйственнаяОперацияПриИзмененииСерверЛокализация();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура ХозяйственнаяОперацияПоЗарплатеПриИзмененииСерверЛокализация()
	
	ЗаполнитьСписокКодовВидаДохода();
	
	ХозяйственнаяОперацияПоЗарплатеПриИзмененииСервер();
	
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

	ОперацияССамозанятымПриИзмененииНаСервере();

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

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

	ДоговорПриИзмененииЛокализацияНаСервере();

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

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

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

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

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


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

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


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


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

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

&НаСервере
Процедура ДоговорПриИзмененииЛокализацияНаСервере()

	ДоговорПриИзмененииНаСервере();

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

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

&НаСервере
Процедура СписокФизЛицПриИзмененииЛокализацияНаСервере()

	СписокФизЛицВключеноПриИзмененииНаСервере();
	
	Если ТекущаяВалюта <> Объект.Валюта Тогда
		ВалютаПриИзмененииСерверЛокализация();
	КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ВыгрузитьФайлДляОбменаСБанкомЛокализация(Команда)
	
	Возврат;
	
КонецПроцедуры


&НаКлиенте
Процедура ЗаполнитьОстаткамиНевыданныхСуммСотрудникуЛокализация(Команда)
	
	Возврат;
	
КонецПроцедуры


&НаКлиенте
Процедура ЗаполнитьПодтверждающиеДокументыЛокализация(Команда)
	
	Возврат;
	
КонецПроцедуры


&НаКлиенте
Процедура ПросмотретьПодтверждающийДокументЛокализация(Команда)
	
	Возврат;
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПодобратьСчетаФактурыЛокализация(Команда)
	
	Возврат;
	
КонецПроцедуры

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


&НаКлиенте
Процедура Подключаемый_ПодборПоОстаткамЛокализация(Команда)
	
	ПодборПоОстаткамОбработка("ПодборПоОстаткамЗавершениеЛокализация");
	
КонецПроцедуры

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

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

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

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

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

#Область ПриИзмененииРеквизитовЛокализация

&НаСервере
Процедура ПослеИзмененияВалютыЛокализация()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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