Операция по ЮKassa / Модуль менеджера

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

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

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

#Область Проведение

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

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

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

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

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет список команд создания на основании.
//
// Параметры:
//  КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//  Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
	
	Документы.ОперацияПоЯндексКассе.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	Документы.ЗаявкаНаРасходованиеДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	Документы.СписаниеБезналичныхДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	Документы.ВзаимозачетЗадолженности.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	Документы.КорректировкаГрафикаВзаиморасчетов.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
	ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
	
КонецПроцедуры

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

	Возврат Неопределено;
КонецФункции

// Определяет список команд отчетов.
//
// Параметры:
//   КомандыОтчетов - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
//   Параметры - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры
//
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
	
КонецПроцедуры

//++ НЕ УТ

// Функция возвращает текст запроса для отражения документа в регламентированном учете.
//
// Возвращаемое значение:
//	Строка - Текст запроса
//
Функция ТекстОтраженияВРеглУчете() Экспорт

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

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

#Область ОтражениеОтменыКомиссии

	ТекстЗапроса = "
	|ВЫБРАТЬ // Сторно начисления комиссии (Дт 44 :: Кт 57.03)
	|
	|	Операция.Ссылка КАК Ссылка,
	|	Операция.Дата КАК Период,
	|	Операция.Организация КАК Организация,
	|	НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
	|
	|	- ЕСТЬNULL(СуммыДокументовВВалютахУчета.СуммаБезНДСРегл, Операция.СуммаКомиссии) КАК Сумма,
	|	- ЕСТЬNULL(СуммыДокументовВВалютахУчета.СуммаБезНДСУпр, Операция.СуммаКомиссии / КурсВалютыУпрУчета.Курс) КАК СуммаУУ,
	|
	|	ЗНАЧЕНИЕ(Перечисление.ВидыСчетовРеглУчета.Расходы) КАК ВидСчетаДт,
	|	Операция.СтатьяРасходов КАК АналитикаУчетаДт,
	|	Операция.Подразделение КАК МестоУчетаДт,
	|
	|	ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаДт,
	|	Операция.Подразделение КАК ПодразделениеДт,
	|	Операция.НаправлениеДеятельности КАК НаправлениеДеятельностиДт,
	|
	|	ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетДт,
	|	Операция.СтатьяРасходов КАК СубконтоДт1,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыЗатратРегл.Прочее) КАК СубконтоДт2,
	|	Операция.АналитикаРасходов КАК СубконтоДт3,
	|	
	|	- Операция.СуммаКомиссии КАК ВалютнаяСуммаДт,
	|	0 КАК КоличествоДт,
	|	0 КАК СуммаНУДт,
	|	0 КАК СуммаПРДт,
	|	0 КАК СуммаВРДт,
	|	
	|	ЗНАЧЕНИЕ(Перечисление.ВидыСчетовРеглУчета.ПродажиПоЭквайрингу) КАК ВидСчетаКт,
	|	ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка) КАК АналитикаУчетаКт,
	|	НЕОПРЕДЕЛЕНО КАК МестоУчетаКт,
	|	
	|	Операция.Валюта КАК ВалютаКт,
	|	Операция.ДоговорЭквайринга.Подразделение КАК ПодразделениеКт,
	|	Операция.ДоговорЭквайринга.НаправлениеДеятельности КАК НаправлениеДеятельностиКт,
	|
	|	НЕОПРЕДЕЛЕНО КАК СчетКт,
	|	Операция.Эквайер КАК СубконтоКт1,
	|	Операция.ДоговорЭквайринга КАК СубконтоКт2,
	|	НЕОПРЕДЕЛЕНО КАК СубконтоКт3,
	|	
	|	- Операция.СуммаКомиссии КАК ВалютнаяСуммаКт,
	|	0 КАК КоличествоКт,
	|	0 КАК СуммаНУКт,
	|	0 КАК СуммаПРКт,
	|	0 КАК СуммаВРКт,
	|	""Отмена комиссии эквайера"" КАК Содержание
	|
	|ИЗ
	|	ДокументыКОтражению КАК ДокументыКОтражению
	|	
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		Документ.ОперацияПоЯндексКассе КАК Операция
	|	ПО
	|		ДокументыКОтражению.Ссылка = Операция.Ссылка
	|		
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.СуммыДокументовВВалютахУчета КАК СуммыДокументовВВалютахУчета
	|	ПО
	|		СуммыДокументовВВалютахУчета.Регистратор = ДокументыКОтражению.Ссылка
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		КурсыВалют КАК КурсВалютыУпрУчета
	|	ПО
	|		КурсВалютыУпрУчета.Валюта = &ВалютаУпрУчета
	|		И КурсВалютыУпрУчета.Дата = НАЧАЛОПЕРИОДА(Операция.Дата, День)
	|
	|ГДЕ
	|	Операция.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту)
	|	И Операция.СуммаКомиссии <> 0
	|	И Операция.СтатьяРасходов <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
	|	И НЕ Операция.ВестиУчетКомиссииВоВзаиморасчетах
	|";
	
	ТекстыОтражения.Добавить(ТекстЗапроса);
	
	ТекстыОтражения.Добавить(ПоступлениеБезналичныхДенежныхСредствЛокализация.ТекстКомиссияПоОперациямЭквайринга()); // Комиссия по операциям эквайринга (Дт 76 :: Кт 57.03)
	
#КонецОбласти

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

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

//-- НЕ УТ

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

// Заполняет список команд печати.
//
// Параметры:
//   КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт

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

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

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

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

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Организация)
	|	И ЗначениеРазрешено(Партнер)";

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

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

#КонецЕсли

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

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

Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	Представление = СтрШаблон(НСтр("ru = '%1 (%2) %3 от %4'"),
			НСтр("ru = 'Операция по ЮKassa'"),
			Данные.ХозяйственнаяОперация,
			Данные.Номер,
			Данные.Дата);
	
КонецПроцедуры

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

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

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

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

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

// Возвращает информацию об оплатах пришедших из Яндекс.Кассы
//
// Параметры:
//  ИдентификаторПлатежа  - Строка - ИдентификаторПлатежа (Поле 22 "Код").
//
// Возвращаемое значение:
//   ВыборкаИзРезультатаЗапроса  - выборка вида:
//      * СуммаДокумента - Сумма - Сумма к зачислению на счет организации поступившего платежа
//      * СуммаКомиссии 	- Сумма - Сумма комиссии которую удерживает сервис Яндекс.Касса
//      * ДатаОплаты 	- Дата - Момент времени оплаты заказа в Яндекс.Деньгах.
//
Функция ОплатыПоУИП(УИП) Экспорт

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

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

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

Функция ЭтоОснованиеПлатежаЧерезЯндексКассу(ТипЗначения)
	
	ОснованияПлатежа = Новый Массив;
	
	ИнтеграцияСЯндексКассойУТ.ПриОпределенииОснованийПлатежа(ОснованияПлатежа);
	
	Возврат ОснованияПлатежа.Найти(ТипЗначения) <> Неопределено;
		
КонецФункции

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

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

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

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

#Область ОбновлениеДокументов

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

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

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

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

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

Функция ПреобразоватьСтрокуВДату(СтрокаДанных)
	
	ДатаЧека = ТекущаяДатаСеанса();
	
	Если ТипЗнч(СтрокаДанных) = Тип("Строка") Тогда // Формат: dd.MM.yyyy HH:mm:ss
		Попытка
			
			СтрокаДаты = Лев(СтрокаДанных, 10);
			СтрокаВремени = Прав(СтрокаДанных, 8);
			
			МассивДаты 		= СтрРазделить(СтрокаДаты, ".", Ложь);
			МассивВремени 	= СтрРазделить(СтрокаВремени, ":", Ложь);
			
			Если МассивДаты.Количество() >= 3
				И МассивВремени.Количество() >= 3 Тогда
				
				Для каждого ЭлементКоллекции Из МассивДаты Цикл
					ЭлементКоллекции = Число(СокрЛП(ЭлементКоллекции));
				КонецЦикла;
				Для каждого ЭлементКоллекции Из МассивВремени Цикл
					ЭлементКоллекции = Число(СокрЛП(ЭлементКоллекции));
				КонецЦикла;
				
				ДатаЧека = Дата(МассивДаты[2], МассивДаты[1], МассивДаты[0], МассивВремени[0], МассивВремени[1], МассивВремени[2]);	
			КонецЕсли; 
			
		Исключение
			ДатаЧека = ТекущаяДатаСеанса();	
		КонецПопытки;
	ИначеЕсли ТипЗнч(СтрокаДанных) = Тип("Дата") Тогда	
		ДатаЧека = СтрокаДанных;
	КонецЕсли; 

	Возврат ДатаЧека;
	
КонецФункции

#Область Проведение

Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт

	ИсточникиДанных = Новый Соответствие;

	Возврат ИсточникиДанных; 

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

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

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

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

#Область ТекстыЗапроса

#Область ВременныеТаблицы

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

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

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

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

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

Функция ТекстЗапросаТаблицаДвиженияДенежныеСредстваДоходыРасходы(Запрос, ТекстыЗапроса, Регистры)

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

	Возврат ТекстЗапроса;

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

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

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

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

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

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

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

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

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

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

//++ НЕ УТ

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

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

//-- НЕ УТ

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

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

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

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

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

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

#КонецЕсли

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