Расходный кассовый ордер / Форма документа / Модуль формы

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

&НаКлиенте
Процедура СтрокаФизическиеЛицаНажатие(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ОчиститьСообщения();
	
	//++ Локализация


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	УсловноеОформление.Элементы.Очистить();
	
	//ВалютаВзаиморасчетов
	ДенежныеСредстваСервер.УстановитьУсловноеОформлениеВалютыВзаиморасчетов(ЭтотОбъект);
	
	//Партнер
	ДенежныеСредстваСервер.УстановитьУсловноеОформлениеПартнера(ЭтотОбъект);
	
	//

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

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

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

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

	//

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

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

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

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

	//

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

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

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

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

	//

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

	Объект.Выдать = "";
	Объект.ПоДокументу = "";
	Объект.Основание = "";
	Объект.Приложение = "";

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

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

	ДенежныеСредстваСервер.ОчиститьОбъектРасчетов(Объект, СтрокаРасшифровки);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
КонецПроцедуры

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

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

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

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

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

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

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

&НаКлиенте
Процедура Подключаемый_ОбработкаВыбораЛокализация(РезультатВыбора, ИсточникВыбора)
	
	ОбработкаВыбора(РезультатВыбора, ИсточникВыбора);
	
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

// ЭлектронноеВзаимодействие.ОбменСКонтрагентами

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

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

// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами

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

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

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

&НаСервере
Процедура ВедомостьПриИзмененииНаСервере()
	
	
	Возврат; // в УТ пустой
	
КонецПроцедуры

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

#КонецЕсли

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

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