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