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

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область Заполнение

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура ЗаполнитьПоПодарочномуСертификату(Знач ДокументОснование, ДанныеЗаполнения, СуммаКОплате = 0)

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

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

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

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

//++ Локализация
Процедура ЗаполнитьКодВалютнойОперации() Экспорт
	
	ТекстНазначениеПлатежа = ВРег(СтрЗаменить(НазначениеПлатежа, " ", ""));
	НачальнаяПозицияVO = СтрНайти(ТекстНазначениеПлатежа, "{VO");
	НачальнаяПозицияКВВО = СтрНайти(ТекстНазначениеПлатежа, "КВВО");
	
	Если НачальнаяПозицияVO <> 0 Тогда
		ИскомаяСтрока = Сред(ТекстНазначениеПлатежа, НачальнаяПозицияVO + 3, 5);
	ИначеЕсли НачальнаяПозицияКВВО <> 0 Тогда
		ИскомаяСтрока = Сред(ТекстНазначениеПлатежа, НачальнаяПозицияКВВО + 4, 5);
	Иначе
		Возврат;
	КонецЕсли;
	
	НайденнаяСсылка = Справочники.КодыВалютныхОпераций.НайтиПоКоду(ИскомаяСтрока);
		
	Если НайденнаяСсылка <> Неопределено Тогда
		КодВалютнойОперации = НайденнаяСсылка;
	КонецЕсли;
	
КонецПроцедуры
//-- Локализация

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

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

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

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

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

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

#КонецЕсли

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