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

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

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

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

	ИначеЕсли ТипОснования = Тип("СправочникСсылка.ПодарочныеСертификаты") 
		Или ТипОснования = Тип("Структура") 
			И ДанныеЗаполнения.Свойство("ПодарочныйСертификат")
			И ДанныеЗаполнения.Свойство("Контрагент") Тогда
		
		ЗаполнитьПоПодарочномуСертификату(ДанныеЗаполнения, ДанныеЗаполнения);
		
	//++ НЕ УТ

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

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

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

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

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

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

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

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

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

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

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

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

#Область ИнициализацияИЗаполнение

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

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

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

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

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

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

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

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

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

КонецПроцедуры
//-- НЕ УТ

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

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

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

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

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


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

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

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

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

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

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

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

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

//++ НЕ УТ

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

Процедура ЗаполнитьПоДоговоруАренды(Знач ДокументОснование, ДанныеЗаполнения)

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

//++ Устарело_Переработка24

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

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

//++ Устарело_Переработка24

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

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

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

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

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

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

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

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

	ПодарочныйСертификат = ДокументОснование;
	Если ТипЗнч(ДокументОснование) = Тип("Структура") Тогда
		Если ТипЗнч(ДанныеЗаполнения.ПодарочныйСертификат) = Тип("Массив") Тогда
			ПодарочныйСертификат = ДанныеЗаполнения.ПодарочныйСертификат[0];
		Иначе
			ПодарочныйСертификат = ДанныеЗаполнения.ПодарочныйСертификат;
		КонецЕсли;
	КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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