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