#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Организация");
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Организация";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Менеджер", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Менеджер";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Подразделение", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Комиссионер";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Комиссионер";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"НаименованиеВходящегоДокумента", Параметры);
КонецПроцедуры
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Взаиморасчеты");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("ПередачаНаОтветхранение");
МеханизмыДокумента.Добавить("ПриемНаОтветхранение");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ОтчетПоКомиссииМеждуОрганизациямиОСписании") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТоварыПереданныеНаКомиссию(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПрочиеДоходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияНоменклатураДоходыРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияКонтрагентДоходыРасходы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаЗакупки(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры);
ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос,
ТекстыЗапроса,
Регистры);
КонецЕсли;
ПроведениеДокументов.ДобавитьЗапросыСторноДвижений(Запрос, ТекстыЗапроса, Регистры, ПустаяСсылка().Метаданные());
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
КомандаСоздатьНаОсновании = Неопределено;
Если ПравоДоступа("Добавление", Метаданные.Документы.ОтчетПоКомиссииМеждуОрганизациямиОСписании) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ОтчетПоКомиссииМеждуОрганизациямиОСписании.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ОтчетПоКомиссииМеждуОрганизациямиОСписании);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьПередачиТоваровМеждуОрганизациями";
КонецЕсли;
Возврат КомандаСоздатьНаОсновании;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Отчеты.КонтрольПередачТоваровМеждуОрганизациями.ДобавитьКомандуОформленияОтчетов(КомандыОтчетов);
ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
Функция РеквизитыДокумента(ДокументСсылка) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Комиссионер КАК Комиссионер,
| ДанныеДокумента.Комиссионер КАК ОрганизацияПолучатель,
| ДанныеДокумента.Валюта КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
|
| ДанныеДокумента.СуммаДокумента КАК СуммаВзаиморасчетов,
| 0 КАК СуммаВознаграждения,
|
| ДанныеДокумента.НачалоПериода КАК НачалоПериода,
| ДанныеДокумента.КонецПериода КАК КонецПериода,
| ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента КАК РасчетыЧерезОтдельногоКонтрагента,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.ПорядокРасчетов КАК ПорядокРасчетов,
| ДанныеДокумента.ДоговорПродажи КАК ДоговорПродажи,
| ДанныеДокумента.ДоговорПокупки КАК ДоговорПокупки
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &ДокументСсылка
|");
Запрос.УстановитьПараметр("ДокументСсылка", ДокументСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Дата = Выборка.Дата;
Организация = Выборка.Организация;
ОрганизацияПолучатель = Выборка.ОрганизацияПолучатель;
ВалютаВзаиморасчетов = Выборка.ВалютаВзаиморасчетов;
СуммаДокумента = Выборка.СуммаДокумента;
СуммаВзаиморасчетов = ?(Выборка.Проведен, Выборка.СуммаВзаиморасчетов, 0);
СуммаВознаграждения = ?(Выборка.Проведен, Выборка.СуммаВознаграждения, 0);
НачалоПериода = Выборка.НачалоПериода;
КонецПериода = Выборка.КонецПериода;
РасчетыЧерезОтдельногоКонтрагента = Выборка.РасчетыЧерезОтдельногоКонтрагента;
Партнер = ?(РасчетыЧерезОтдельногоКонтрагента, Выборка.Партнер, Справочники.Партнеры.НашеПредприятие);
Контрагент = ?(РасчетыЧерезОтдельногоКонтрагента, Выборка.Контрагент, Выборка.Организация);
НаправлениеДеятельности = Выборка.НаправлениеДеятельности;
ПорядокРасчетов = Выборка.ПорядокРасчетов;
Договор = Выборка.Договор;
ДоговорПродажи = Выборка.ДоговорПродажи;
ДоговорПокупки = Выборка.ДоговорПокупки;
Иначе
Дата = Дата(1,1,1);
Организация = Справочники.Организации.ПустаяСсылка();
ОрганизацияПолучатель = Справочники.Организации.ПустаяСсылка();
ВалютаВзаиморасчетов = Справочники.Валюты.ПустаяСсылка();
СуммаДокумента = 0;
СуммаВзаиморасчетов = 0;
СуммаВознаграждения = 0;
НачалоПериода = Неопределено;
КонецПериода = Неопределено;
РасчетыЧерезОтдельногоКонтрагента = Ложь;
Партнер = Справочники.Партнеры.ПустаяСсылка();
Контрагент = Справочники.Контрагенты.ПустаяСсылка();
НаправлениеДеятельности = Справочники.НаправленияДеятельности.ПустаяСсылка();
Договор = Справочники.ДоговорыМеждуОрганизациями.ПустаяСсылка();
ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПустаяСсылка();
ДоговорПродажи = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
ДоговорПокупки = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
СтруктураРеквизитов = Новый Структура();
СтруктураРеквизитов.Вставить("Дата", Дата);
СтруктураРеквизитов.Вставить("Организация", ОрганизацияПолучатель);
СтруктураРеквизитов.Вставить("ВалютаВзаиморасчетов", ВалютаВзаиморасчетов);
СтруктураРеквизитов.Вставить("ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациями);
СтруктураРеквизитов.Вставить("СуммаДокумента", СуммаДокумента);
СтруктураРеквизитов.Вставить("СуммаВзаиморасчетов", СуммаВзаиморасчетов);
СтруктураРеквизитов.Вставить("СуммаВознаграждения", СуммаВознаграждения);
СтруктураРеквизитов.Вставить("ОрганизацияОтправитель", Организация);
СтруктураРеквизитов.Вставить("ОрганизацияПолучатель", ОрганизацияПолучатель);
СтруктураРеквизитов.Вставить("НачалоПериода", НачалоПериода);
СтруктураРеквизитов.Вставить("КонецПериода", КонецПериода);
СтруктураРеквизитов.Вставить("РасчетыЧерезОтдельногоКонтрагента", РасчетыЧерезОтдельногоКонтрагента);
СтруктураРеквизитов.Вставить("Партнер", Партнер);
СтруктураРеквизитов.Вставить("Контрагент", Контрагент);
СтруктураРеквизитов.Вставить("НаправлениеДеятельности", НаправлениеДеятельности);
СтруктураРеквизитов.Вставить("ДоговорПродажи", ДоговорПродажи);
СтруктураРеквизитов.Вставить("ДоговорПокупки", ДоговорПокупки);
Если Не РасчетыЧерезОтдельногоКонтрагента Тогда
СтруктураРеквизитов.Вставить("Договор", Договор);
КонецЕсли;
СтруктураРеквизитов.Вставить("ПорядокРасчетов", ПорядокРасчетов);
Возврат СтруктураРеквизитов;
КонецФункции
Функция НаименованияВходящихДокументов() Экспорт
МассивНаименований = Новый Массив();
МассивНаименований.Добавить(НСтр("ru='Отчет по комиссии'"));
ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ДополнитьНаименованияВходящихДокументов(МассивНаименований);
Возврат МассивНаименований
КонецФункции
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьОтчетовПоКомиссии";
КомандаПечати.Идентификатор = "ОтчетКомиссионераСписание";
КомандаПечати.Представление = НСтр("ru = 'Отчет комиссионера о списании'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'Отчет комиссионера о списании'");
ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Функция ПолучитьДанныеДляПечатнойФормыОтчетПоКомиссии(ПараметрыПечати, МассивОбъектов) Экспорт
Запрос = Новый Запрос(
"
|////////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.ИсправляемыйДокумент.Номер КАК НомерИсправляемогоДокумента,
| ДанныеДокумента.ИсправляемыйДокумент.Дата КАК ДатаИсправляемогоДокумента,
| ДанныеДокумента.Комиссионер КАК Комиссионер,
| ДанныеДокумента.Организация КАК Комитент,
| ДанныеДокумента.Организация.Префикс КАК Префикс,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.СуммаВознаграждения КАК СуммаВознаграждения,
| """" КАК ПредставительКомитента,
| ДанныеДокумента.Менеджер.ФизическоеЛицо КАК ПредставительКомиссионера
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка В(&МассивДокументов)
| И ДанныеДокумента.Проведен
| И (НЕ ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка,
| ДанныеДокумента.Номер,
| ДанныеДокумента.Дата,
| ДанныеДокумента.ИсправляемыйДокумент.Номер КАК НомерИсправляемогоДокумента,
| ДанныеДокумента.ИсправляемыйДокумент.Дата КАК ДатаИсправляемогоДокумента,
| ДанныеДокумента.Комиссионер,
| ДанныеДокумента.Контрагент,
| ДанныеДокумента.Организация.Префикс,
| ДанныеДокумента.Валюта,
| ДанныеДокумента.СуммаВознаграждения,
| """",
| ДанныеДокумента.Менеджер.ФизическоеЛицо
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка В(&МассивДокументов)
| И ДанныеДокумента.Проведен
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
| И ДанныеДокумента.Комиссионер <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Ссылка,
| ДанныеДокумента.НомерВходящегоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента,
| ДанныеДокумента.ИсправляемыйДокумент.Номер КАК НомерИсправляемогоДокумента,
| ДанныеДокумента.ИсправляемыйДокумент.Дата КАК ДатаИсправляемогоДокумента,
| ДанныеДокумента.Контрагент,
| ДанныеДокумента.Организация,
| ДанныеДокумента.Организация.Префикс,
| ДанныеДокумента.Валюта,
| ДанныеДокумента.СуммаВознаграждения,
| """",
| ДанныеДокумента.Менеджер.ФизическоеЛицо
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка В(&МассивДокументов)
| И ДанныеДокумента.Проведен
| И ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
| И ДанныеДокумента.Организация <> ЗНАЧЕНИЕ(Справочник.Организации.УправленческаяОрганизация)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка КАК Ссылка,
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК ТоварНаименование,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование,
| ВложенныйЗапрос.Характеристика.НаименованиеПолное КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВложенныйЗапрос.Упаковка, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВложенныйЗапрос.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ВложенныйЗапрос.ДатаСчетаФактурыКомиссионера КАК ДатаСчетаФактуры,
| ВложенныйЗапрос.Покупатель КАК Покупатель,
| ВложенныйЗапрос.Цена КАК Цена,
| СУММА(ВложенныйЗапрос.Количество) КАК Количество,
| СУММА(ВложенныйЗапрос.СуммаКомитента) КАК СуммаКомитента,
| СУММА(ВложенныйЗапрос.СуммаПродажи) КАК СуммаПродажи,
| СУММА(ВложенныйЗапрос.СуммаВознаграждения) КАК СуммаВознаграждения,
| МАКСИМУМ(ВложенныйЗапрос.НомерСтроки) КАК НомерСтроки
|ИЗ
| (ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| &ТекстЗапросаЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ТаблицаТовары.ДатаСчетаФактурыКомиссионера КАК ДатаСчетаФактурыКомиссионера,
| ТаблицаТовары.Покупатель КАК Покупатель,
| ТаблицаТовары.КоличествоУпаковок КАК Количество,
| ТаблицаТовары.Цена КАК Цена,
| ТаблицаТовары.СуммаСНДС КАК СуммаКомитента,
| ТаблицаТовары.СуммаПродажи КАК СуммаПродажи,
| ТаблицаТовары.СуммаВознаграждения КАК СуммаВознаграждения,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки
| ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациями.Товары КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка В(&МассивДокументов)
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Характеристика,
| ВложенныйЗапрос.Упаковка,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Номенклатура.НаименованиеПолное,
| ВложенныйЗапрос.Номенклатура.Код,
| ВложенныйЗапрос.Номенклатура.Артикул,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление,
| ВложенныйЗапрос.Характеристика.НаименованиеПолное,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВложенныйЗапрос.Упаковка, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВложенныйЗапрос.Упаковка.Наименование
| КОНЕЦ,
| ВложенныйЗапрос.ДатаСчетаФактурыКомиссионера,
| ВложенныйЗапрос.Покупатель
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| НомерСтроки
|ИТОГИ
| СУММА(СуммаКомитента),
| СУММА(СуммаПродажи),
| СУММА(СуммаВознаграждения)
|ПО
| Ссылка");
Запрос.Текст = СтрЗаменить(
Запрос.Текст,
"&ТекстЗапросаЕдиницаИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Ссылка",
"ТаблицаТовары.Упаковка",
"ТаблицаТовары.Номенклатура"));
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
Заголовок = НСтр("ru = 'Отчет комиссионера о продажах'");
МассивРезультатов = Запрос.ВыполнитьПакет();
РезультатПоШапке = МассивРезультатов[0];
РезультатПоТабличнойЧасти = МассивРезультатов[1];
СтруктураДанныхДляПечати = Новый Структура(
"РезультатПоШапке, РезультатПоТабличнойЧасти, Заголовок",
РезультатПоШапке,
РезультатПоТабличнойЧасти,
Заголовок);
Возврат СтруктураДанныхДляПечати;
КонецФункции
Функция ПолучитьДанныеДляПечатнойФормыОтчетПоКомиссииОСписании(ПараметрыПечати, МассивОбъектов) Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Дата КАК Дата,
| ДанныеДокумента.Организация КАК Комитент,
| ДанныеДокумента.Комиссионер КАК Комиссионер,
| ДанныеДокумента.Организация.Префикс КАК Префикс,
| ДанныеДокумента.Валюта КАК Валюта,
| """" КАК ПредставительКомитента,
| ДанныеДокумента.Менеджер.ФизическоеЛицо КАК ПредставительКомиссионера
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка В(&МассивДокументов)
| И ДанныеДокумента.Проведен
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка КАК Ссылка,
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК ТоварНаименование,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование,
| ВложенныйЗапрос.Характеристика.НаименованиеПолное КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВложенныйЗапрос.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ВложенныйЗапрос.Цена КАК Цена,
| СУММА(ВложенныйЗапрос.Количество) КАК Количество,
| СУММА(ВложенныйЗапрос.Сумма) КАК Сумма,
| МАКСИМУМ(ВложенныйЗапрос.НомерСтроки) КАК НомерСтроки
|ИЗ
| (ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ВЫБОР
| КОГДА ТаблицаТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ ТаблицаТовары.Упаковка
| КОНЕЦ КАК ЕдиницаИзмерения,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ТаблицаТовары.КоличествоУпаковок КАК Количество,
| ТаблицаТовары.Цена КАК Цена,
| ТаблицаТовары.СуммаСНДС КАК Сумма,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки
| ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.Товары КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка В(&МассивДокументов)
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Характеристика,
| ВложенныйЗапрос.Упаковка,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Номенклатура.НаименованиеПолное,
| ВложенныйЗапрос.Номенклатура.Код,
| ВложенныйЗапрос.Номенклатура.Артикул,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление,
| ВложенныйЗапрос.Характеристика.НаименованиеПолное,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВложенныйЗапрос.Упаковка.Наименование
| КОНЕЦ
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| НомерСтроки
|ИТОГИ
| СУММА(Сумма)
|ПО
| Ссылка");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ВложенныйЗапрос.Упаковка",
"ВложенныйЗапрос.Номенклатура"));
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
Заголовок = НСтр("ru = 'Отчет комитенту о списании'", ОбщегоНазначения.КодОсновногоЯзыка());
МассивРезультатов = Запрос.ВыполнитьПакет();
РезультатПоШапке = МассивРезультатов[0];
РезультатПоТабличнойЧасти = МассивРезультатов[1];
СтруктураДанныхДляПечати = Новый Структура(
"РезультатПоШапке, РезультатПоТабличнойЧасти, Заголовок",
РезультатПоШапке,
РезультатПоТабличнойЧасти,
Заголовок);
Возврат СтруктураДанныхДляПечати;
КонецФункции
Процедура ЗаполнитьСтруктуруПолучателейПечатныхФорм(СтруктураДанныхОбъектаПечати) Экспорт
СтруктураДанныхОбъектаПечати.ОсновнойПолучатель = "Партнер";
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Партнер");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов") Тогда
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Контрагент");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ( ЗначениеРазрешено(Организация)
| ИЛИ ЗначениеРазрешено(Комиссионер)
| ) И ЗначениеРазрешено(Партнер)
| И ЗначениеРазрешено(Подразделение)";
КонецПроцедуры
#КонецОбласти
Функция ПараметрыЗаполненияНалогообложенияНДС(Документ) Экспорт
РеквизитыДокумента = Новый Структура("Дата, Организация, Договор, ДоговорПродажи,
|РасчетыЧерезОтдельногоКонтрагента, НаправлениеДеятельности");
Если ТипЗнч(Документ) = Тип("ДокументСсылка.ОтчетПоКомиссииМеждуОрганизациямиОСписании") Тогда
РеквизитыДокумента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Документ, РеквизитыДокумента);
Иначе
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, Документ);
КонецЕсли;
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСПродажи();
ЗаполнитьЗначенияСвойств(ПараметрыЗаполнения, РеквизитыДокумента, "Дата, Организация, НаправлениеДеятельности");
ПараметрыЗаполнения.Договор = ?(РеквизитыДокумента.РасчетыЧерезОтдельногоКонтрагента,
РеквизитыДокумента.ДоговорПродажи,
РеквизитыДокумента.Договор);
ПараметрыЗаполнения.ОтчетКомиссионера = Истина;
ПараметрыЗаполнения.ЭтоОперацияМеждуОрганизациями = Истина;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыВыбораСтатейИАналитик() Экспорт
МассивПаметровВыбора = Новый Массив;
#Область СтатьяРасходов
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект";
ПараметрыВыбора.Статья = "СтатьяРасходов";
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяРасходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("АналитикаРасходов");
МассивПаметровВыбора.Добавить(ПараметрыВыбора);
#КонецОбласти
#Область СтатьяДоходов
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект";
ПараметрыВыбора.Статья = "СтатьяДоходов";
ПараметрыВыбора.ВыборСтатьиДоходов = Истина;
ПараметрыВыбора.АналитикаДоходов = "АналитикаДоходов";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяДоходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаДоходов.Добавить("АналитикаДоходов");
МассивПаметровВыбора.Добавить(ПараметрыВыбора);
#КонецОбласти
Возврат МассивПаметровВыбора;
КонецФункции
Функция ПараметрыВзаиморасчеты(ДанныеЗаполнения = Неопределено) Экспорт
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ДанныеЗаполнения) Тогда
СтруктураДанныеЗаполнения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
ДанныеЗаполнения,
"РасчетыЧерезОтдельногоКонтрагента,
|ДоговорПродажи,
|ДоговорПокупки");
РасчетыЧерезОтдельногоКонтрагента = СтруктураДанныеЗаполнения.РасчетыЧерезОтдельногоКонтрагента;
ДоговорПродажи = СтруктураДанныеЗаполнения.ДоговорПродажи;
ДоговорПокупки = СтруктураДанныеЗаполнения.ДоговорПокупки;
ИначеЕсли ДанныеЗаполнения = Неопределено Тогда
РасчетыЧерезОтдельногоКонтрагента = Ложь;
ДоговорПродажи = Неопределено;
ДоговорПокупки = Неопределено;
Иначе
РасчетыЧерезОтдельногоКонтрагента = ДанныеЗаполнения.РасчетыЧерезОтдельногоКонтрагента;
ДоговорПродажи = ДанныеЗаполнения.ДоговорПродажи;
ДоговорПокупки = ДанныеЗаполнения.ДоговорПокупки;
КонецЕсли;
МассивСтруктур = Новый Массив;
#Область СоСтороныКомитента
СтруктураПараметров = ВзаиморасчетыСервер.ПараметрыМеханизма();
СтруктураПараметров.ЭтоПродажаЗакупка = Истина;
СтруктураПараметров.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСКлиентом;
Если РасчетыЧерезОтдельногоКонтрагента Тогда
СтруктураПараметров.Договор = "Объект.ДоговорПокупки";
СтруктураПараметров.Партнер = "Объект.Партнер";
СтруктураПараметров.Контрагент = "Объект.Контрагент";
Иначе
СтруктураПараметров.Договор = "Объект.Договор";
СтруктураПараметров.Партнер = Справочники.Партнеры.НашеПредприятие;
СтруктураПараметров.Контрагент = "Объект.Комиссионер";
КонецЕсли;
ПорядокРасчетаДоговора = ?(ЗначениеЗаполнено(ДоговорПокупки),"Объект.ДоговорПокупки.ПорядокРасчетов", Перечисления.ПорядокРасчетов.ПоНакладным);
СтруктураПараметров.ПорядокРасчетов = ?(РасчетыЧерезОтдельногоКонтрагента,
ПорядокРасчетаДоговора,
"Объект.ПорядокРасчетов");
СтруктураПараметров.КурсЧислитель = "";
СтруктураПараметров.КурсЗнаменатель = "";
СтруктураПараметров.ПутьКДаннымТЧ = "Объект.Товары";
СтруктураПараметров.ПутьКДаннымТЧРасшифровкаПлатежа = "Объект.РасшифровкаПлатежаСКлиентом";
СтруктураПараметров.Соглашение = "";
СтруктураПараметров.БанковскийСчетКонтрагента = "";
СтруктураПараметров.Менеджер = "Объект.Менеджер";
СтруктураПараметров.НомерВходящегоДокумента = "Объект.НомерВходящегоДокумента";
СтруктураПараметров.ДатаВходящегоДокумента = "Объект.ДатаВходящегоДокумента";
СтруктураПараметров.ГруппаФинансовогоУчета = "Объект.ГруппаФинансовогоУчета";
СтруктураПараметров.НаименованиеПервичногоДокумента = "Объект.НаименованиеВходящегоДокумента";
СтруктураПараметров.ЭлементыФормы.ГруппаФинансовогоУчета = "ГруппаФинансовогоУчета";
СтруктураПараметров.ЭлементыФормы.НаправлениеДеятельности = "НаправлениеДеятельности";
СтруктураПараметров.ЭлементыФормы.ЗачетОплаты = "ЗачетОплатыФормаОтправитель";
СтруктураПараметров.ЭлементыФормы.НадписьЭтапы = "ДекорацияЭтапыОплатыОтправитель";
СтруктураПараметров.НадписьЭтапыОплаты = "Форма.НадписьЭтапыОплатыОтправитель";
СтруктураПараметров.ДатаПлатежа = "Объект.ДатаПлатежа";
СтруктураПараметров.ГрафикОплаты = "Объект.ГрафикОплаты";
СтруктураПараметров.ОбъектРасчетов = "Объект.ОбъектРасчетовСКомиссионером";
МассивСтруктур.Добавить(СтруктураПараметров);
#КонецОбласти
#Область СоСтороныКомиссионера
СтруктураПараметров = ВзаиморасчетыСервер.ПараметрыМеханизма();
СтруктураПараметров.ЭтоПродажаЗакупка = Истина;
СтруктураПараметров.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСПоставщиком;
СтруктураПараметров.Организация = "Объект.Комиссионер";
Если РасчетыЧерезОтдельногоКонтрагента Тогда
СтруктураПараметров.Договор = "Объект.ДоговорПродажи";
СтруктураПараметров.Партнер = "Объект.Партнер";
СтруктураПараметров.Контрагент = "Объект.Контрагент";
Иначе
СтруктураПараметров.Договор = "Объект.Договор";
СтруктураПараметров.Партнер = Справочники.Партнеры.НашеПредприятие;
СтруктураПараметров.Контрагент = "Объект.Организация";
КонецЕсли;
ПорядокРасчетаДоговора = ?(ЗначениеЗаполнено(ДоговорПродажи),"Объект.ДоговорПродажи.ПорядокРасчетов", Перечисления.ПорядокРасчетов.ПоНакладным);
СтруктураПараметров.ПорядокРасчетов = ?(РасчетыЧерезОтдельногоКонтрагента,
ПорядокРасчетаДоговора,
"Объект.ПорядокРасчетов");
СтруктураПараметров.КурсЧислитель = "";
СтруктураПараметров.КурсЗнаменатель = "";
СтруктураПараметров.ПутьКДаннымТЧ = "Объект.Товары";
СтруктураПараметров.ПутьКДаннымТЧРасшифровкаПлатежа = "Объект.РасшифровкаПлатежаСПоставщиком";
СтруктураПараметров.Соглашение = "";
СтруктураПараметров.БанковскийСчетОрганизации = "Объект.БанковскийСчетОрганизацииПолучателя";
СтруктураПараметров.БанковскийСчетКонтрагента = "";
СтруктураПараметров.Касса = "Объект.КассаПолучатель";
СтруктураПараметров.Менеджер = "Объект.Менеджер";
СтруктураПараметров.НомерВходящегоДокумента = "Объект.НомерВходящегоДокумента";
СтруктураПараметров.ДатаВходящегоДокумента = "Объект.ДатаВходящегоДокумента";
СтруктураПараметров.ГруппаФинансовогоУчета = "Объект.ГруппаФинансовогоУчетаПолучателя";
СтруктураПараметров.НаименованиеПервичногоДокумента = "Объект.НаименованиеВходящегоДокумента";
СтруктураПараметров.ЭлементыФормы.ГруппаФинансовогоУчета = "ГруппаФинансовогоУчетаПолучателя";
СтруктураПараметров.ЭлементыФормы.ЗачетОплаты = "ЗачетОплатыФормаПолучатель";
СтруктураПараметров.ЭлементыФормы.НадписьЭтапы = "ДекорацияЭтапыОплатыПолучатель";
СтруктураПараметров.НадписьЭтапыОплаты = "Форма.НадписьЭтапыОплатыПолучатель";
СтруктураПараметров.ДатаПлатежа = "Объект.ДатаПлатежа";
СтруктураПараметров.ОбъектРасчетов = "Объект.ОбъектРасчетовСКомитентом";
МассивСтруктур.Добавить(СтруктураПараметров);
#КонецОбласти
Возврат МассивСтруктур;
КонецФункции
Функция КоллекцияТабличныхЧастейТоваров() Экспорт
ТаблицыДокумента = Новый Структура("Товары");
Возврат ТаблицыДокумента;
КонецФункции
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
Если Данные.РасчетыЧерезОтдельногоКонтрагента Тогда
ОбщегоНазначенияУТКлиентСервер.ОбработкаПолученияПредставленияВходящегоДокумента(
Данные, Представление, СтандартнаяОбработка, "ОтчетПоКомиссииМеждуОрганизациямиОСписании");
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Поля.Очистить();
Поля.Добавить("НаименованиеВходящегоДокумента");
Поля.Добавить("НомерВходящегоДокумента");
Поля.Добавить("ДатаВходящегоДокумента");
Поля.Добавить("Дата");
Поля.Добавить("Номер");
Поля.Добавить("РасчетыЧерезОтдельногоКонтрагента");
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст = "
|ВЫБРАТЬ
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Организация КАК Комитент,
| ДанныеДокумента.Комиссионер КАК Комиссионер,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
| ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента КАК РасчетыЧерезОтдельногоКонтрагента,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.Менеджер КАК Менеджер,
| ДанныеДокумента.Автор КАК Автор,
| ДанныеДокумента.СтатьяДоходов КАК СтатьяДоходов,
| ДанныеДокумента.АналитикаДоходов КАК АналитикаДоходов,
| ДанныеДокумента.СтатьяРасходов КАК СтатьяРасходов,
| ДанныеДокумента.АналитикаРасходов КАК АналитикаРасходов,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ВЫБОР
| КОГДА ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА ДанныеДокумента.Партнер
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| КОНЕЦ КАК Партнер,
| ВЫБОР
| КОГДА ДанныеДокумента.КонецПериода = ДАТАВРЕМЯ(1, 1, 1)
| ИЛИ ДанныеДокумента.КонецПериода > ДанныеДокумента.Дата
| ТОГДА ДанныеДокумента.Дата
| ИНАЧЕ ДанныеДокумента.КонецПериода
| КОНЕЦ КАК КонецПериода,
| ДанныеДокумента.ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетЗатрат, ЛОЖЬ) КАК УчетЗатратПоНД,
| ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетДоходов, ЛОЖЬ) КАК УчетДоходовПоНД,
| ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) КАК УчетРасчетовСПоставщикамиПоНД,
| ДанныеДокумента.ДоговорПродажи КАК ДоговорПродажи,
| ДанныеДокумента.ДоговорПокупки КАК ДоговорПокупки,
| ДанныеДокумента.ОбъектРасчетовСКомитентом КАК ОбъектРасчетовСКомитентом,
| ДанныеДокумента.ОбъектРасчетовСКомиссионером КАК ОбъектРасчетовСКомиссионером,
| ДанныеДокумента.ОбъектРасчетовСКомитентом.УникальныйИдентификатор КАК ИдентификаторОбъектаРасчетовСКомитентом,
| ДанныеДокумента.ОбъектРасчетовСКомиссионером.УникальныйИдентификатор КАК ИдентификаторОбъектаРасчетовСКомиссионером,
| ДанныеДокумента.ДатаПлатежа КАК ДатаПлатежа,
| ДанныеДокумента.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.НаименованиеВходящегоДокумента КАК НаименованиеВходящегоДокумента,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.Исправление КАК Исправление,
| ДанныеДокумента.СторнируемыйДокумент КАК СторнируемыйДокумент,
| ДанныеДокумента.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
ИдентификаторМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании");
ИнформацияПоКомитенту = НСтр("ru='Отчет от ""%Комитент%""'", ОбщегоНазначения.КодОсновногоЯзыка());
ИнформацияПоКомитенту = СтрЗаменить(ИнформацияПоКомитенту, "%Комитент%", Реквизиты.Комитент);
ИнформацияПоКомиссионеру = НСтр("ru='Отчет перед ""%Комиссионер%""'", ОбщегоНазначения.КодОсновногоЯзыка());
ИнформацияПоКомиссионеру = СтрЗаменить(ИнформацияПоКомиссионеру, "%Комиссионер%", Реквизиты.Комиссионер);
НомерДокумента = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер);
НомерВходящегоДокумента = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.НомерВходящегоДокумента);
Запрос.УстановитьПараметр("ВалютаВзаиморасчетов", Реквизиты.Валюта);
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ИдентификаторМетаданных);
Запрос.УстановитьПараметр("ИнформацияПоКомитенту", ИнформацияПоКомитенту);
Запрос.УстановитьПараметр("ИнформацияПоКомиссионеру", ИнформацияПоКомиссионеру);
Запрос.УстановитьПараметр("НомерДокумента", НомерДокумента);
Запрос.УстановитьПараметр("НомерВходящегоДокумента", НомерВходящегоДокумента);
Запрос.УстановитьПараметр("НаименованиеВходящегоДокумента", Реквизиты.НаименованиеВходящегоДокумента);
Запрос.УстановитьПараметр("КонецПериода", КонецДня(Реквизиты.КонецПериода));
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Реквизиты.ВалютаРегламентированногоУчета);
Запрос.УстановитьПараметр("ВалютаУправленческогоУчета", Константы.ВалютаУправленческогоУчета.Получить());
Запрос.УстановитьПараметр("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета", ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
Запрос.УстановитьПараметр("ИспользоватьУчетПрочихДоходовРасходов", ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихДоходовРасходов"));
Запрос.УстановитьПараметр("ОтчетКомитенту", Перечисления.ХозяйственныеОперации.ОтчетКомитентуОСписании);
Запрос.УстановитьПараметр("ОтчетКомиссионера", Перечисления.ХозяйственныеОперации.ОтчетКомиссионераОСписании);
Запрос.УстановитьПараметр("ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациямиОСписании);
Запрос.УстановитьПараметр("ОтчетКомитентуСправочник", Справочники.НастройкиХозяйственныхОпераций.ОтчетКомитентуОСписании);
Запрос.УстановитьПараметр("ОтчетКомиссионераСправочник", Справочники.НастройкиХозяйственныхОпераций.ОтчетКомиссионераОСписании);
Запрос.УстановитьПараметр("НастройкаХозяйственнойОперации", Справочники.НастройкиХозяйственныхОпераций.ОтчетПоКомиссииМеждуОрганизациямиОСписании);
Запрос.УстановитьПараметр("ИдентификаторНеиспользуемойФинЗаписи", ПроведениеДокументов.ИдентификаторНеиспользуемойФинЗаписи());
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Функция ТекстЗапросаТоварыПереданныеНаКомиссию(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыПереданныеНаКомиссию";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| МИНИМУМ(ВидыЗапасов.НомерСтроки) КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| ВидыЗапасов.НомерГТД КАК НомерГТД,
| ВидыЗапасов.АналитикаУчетаПереданнойНоменклатуры КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| &Комитент КАК Организация,
| ВидыЗапасов.ВидЗапасовКомитента КАК ВидЗапасов,
| СУММА(ВидыЗапасов.Количество) КАК Количество,
| СУММА(ВидыЗапасов.КоличествоПоРНПТ) КАК КоличествоПоРНПТ,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация
|ИЗ
| ВтТаблицаВидыЗапасов КАК ВидыЗапасов
|СГРУППИРОВАТЬ ПО
| ВидыЗапасов.АналитикаУчетаПереданнойНоменклатуры,
| ВидыЗапасов.ВидЗапасовКомитента,
| ВидыЗапасов.НомерГТД
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыКОформлениюОтчетовКомитенту";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &КонецПериода КАК Период,
| &Комиссионер КАК Организация,
| ТаблицаВидыЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| 0 КАК СуммаВыручки,
| 0 КАК СуммаВыручкиРегл,
| 0 КАК СуммаВыручкиУпр,
| 0 КАК КоличествоСписано,
| ТаблицаВидыЗапасов.Количество КАК КоличествоСписаноКОформлению,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоСписаноКОформлениюПоРНПТ,
| ТаблицаВидыЗапасов.ВидЗапасовКомитента КАК КорВидЗапасов,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
|
| &ИдентификаторОбъектаРасчетовСКомитентом КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасовВладельца
| ПО ТаблицаВидыЗапасов.ВидЗапасовВладельца = ВидыЗапасовВладельца.Ссылка
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Комиссионер КАК Организация,
| ТаблицаВидыЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| 0 КАК СуммаВыручки,
| 0 КАК СуммаВыручкиРегл,
| 0 КАК СуммаВыручкиУпр,
| ТаблицаВидыЗапасов.Количество КАК КоличествоСписано,
| 0 КАК КоличествоСписаноКОформлению,
| 0 КАК КоличествоСписаноКОформлениюПоРНПТ,
| ТаблицаВидыЗапасов.ВидЗапасовКомитента КАК КорВидЗапасов,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
|
| &ИдентификаторОбъектаРасчетовСКомитентом КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасовВладельца
| ПО ТаблицаВидыЗапасов.ВидЗапасовВладельца = ВидыЗапасовВладельца.Ссылка
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Строки.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &КонецПериода КАК Период,
| &Организация КАК Организация,
| Строки.Валюта КАК Валюта,
| Строки.ВидЗапасовКомитента КАК ВидЗапасов,
| Аналитика.КлючАналитики КАК АналитикаУчетаНоменклатуры,
| Строки.НомерГТД КАК НомерГТД,
| &ОтчетКомитенту КАК ХозяйственнаяОперация,
| 0 КАК СуммаВыручки,
| 0 КАК СуммаВыручкиРегл,
| 0 КАК СуммаВыручкиУпр,
| Строки.Количество КАК КоличествоСписано,
| Строки.Количество КАК КоличествоСписаноКОформлению,
| Строки.КоличествоПоРНПТ КАК КоличествоСписаноКОформлениюПоРНПТ,
| Строки.ВидЗапасовКомитента КАК КорВидЗапасов,
| Строки.Номенклатура КАК Номенклатура,
| Строки.Характеристика КАК Характеристика,
|
| &ИдентификаторОбъектаРасчетовСКомиссионером КАК ИдентификаторФинЗаписи,
| &ОтчетКомитентуСправочник КАК НастройкаХозяйственнойОперации,
| Строки.ИдентификаторСтроки КАК ИдентификаторСтроки
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК Строки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Аналитика.Номенклатура = Строки.Номенклатура
| И Аналитика.Характеристика = Строки.Характеристика
| И Аналитика.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И Аналитика.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И Аналитика.МестоХранения = Строки.ВидЗапасовКомитента.ВладелецТовара
|ГДЕ
| Строки.ВидЗапасовКомитента.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И (Строки.ВидЗапасовВладельца = ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИЛИ Строки.ВидЗапасовВладельца = Строки.ВидЗапасовКомитента)
| И Строки.ВидЗапасовКомитента <> Строки.ВидЗапасов
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры)
#Область КурсыВалютДокумента
ИмяРегистра = "ВременнаяТаблицаКурсыВалютДокумента";
ТекстЗапросаКурсыВалютДокумента =
"ВЫБРАТЬ
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Комиссионер КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| ДанныеДокументаШапка.ОбъектРасчетовСКомитентом КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокументаШапка
|ГДЕ
| ДанныеДокументаШапка.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Комиссионер КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.РасшифровкаПлатежаСПоставщиком КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| ДанныеДокументаШапка.ОбъектРасчетовСКомиссионером КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокументаШапка
|ГДЕ
| ДанныеДокументаШапка.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.РасшифровкаПлатежаСКлиентом КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
ТекстЗапросаКурсыВалютДокумента = ВзаиморасчетыСервер.ПолучитьТаблицуКурсовВалютНаправленийДеятельности(ТекстЗапросаКурсыВалютДокумента);
ТекстыЗапроса.Добавить(ТекстЗапросаКурсыВалютДокумента, ИмяРегистра);
#КонецОбласти
#Область ДобавитьТекстыОтраженияВзаиморасчетовЗакупки
#Область Закупка
ТекстЗакупка = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Комиссионер КАК Организация,
| ВЫБОР КОГДА Таблица.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА Таблица.Партнер
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| КОНЕЦ КАК Партнер,
| Таблица.Дата КАК ДатаРегистратора,
| Таблица.Номер КАК НомерРегистратора,
|
| Таблица.ОбъектРасчетовСКомитентом КАК ОбъектРасчетов,
| Таблица.ДатаПлатежа КАК ДатаПлатежа,
| НЕОПРЕДЕЛЕНО КАК ВариантОплаты,
| ВЫБОР
| КОГДА Таблица.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА ЕСТЬNULL(ДоговорыКонтрагентовПоставщик.Ссылка, Таблица.Ссылка)
| ИНАЧЕ ЕСТЬNULL(ДоговорыКонтрагентовПоставщик.Ссылка, Таблица.Ссылка)
| КОНЕЦ КАК ЗаказЗакупки,
| Таблица.СуммаДокумента КАК Сумма,
| Таблица.СуммаДокумента КАК СуммаВзаиморасчетов,
| 0 КАК СуммаВзаиморасчетовПоТаре,
|
| Таблица.ПорядокРасчетов КАК ПорядокРасчетов,
| ЛОЖЬ КАК НакладнаяПоЗаказам,
| Таблица.Валюта КАК ВалютаВзаиморасчетов,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациямиОСписании) КАК ХозяйственнаяОперация,
| Таблица.ФормаОплаты КАК ФормаОплаты,
| Таблица.Валюта КАК ВалютаДокумента,
| Таблица.Дата КАК ДатаКурса,
| Неопределено КАК СвязанныйДокумент
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК Таблица
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентовПоставщик
| ПО Таблица.ДоговорПокупки = ДоговорыКонтрагентовПоставщик.Ссылка
| И ДоговорыКонтрагентовПоставщик.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
|
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
#КонецОбласти
#Область УвеличениеПланаОплаты
ТекстПланОплаты = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Комиссионер КАК Организация,
| ВЫБОР КОГДА Таблица.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА Таблица.Партнер
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| КОНЕЦ КАК Партнер,
| Таблица.Дата КАК ДатаРегистратора,
| Таблица.Номер КАК НомерРегистратора,
| Таблица.ДатаПлатежа КАК ДатаПлатежа,
|
| Таблица.ОбъектРасчетовСКомитентом КАК ОбъектРасчетов,
| Таблица.ПорядокРасчетов КАК ПорядокРасчетов,
| ЛОЖЬ КАК НакладнаяПоЗаказам,
| ЛОЖЬ КАК СверхЗаказа,
| ВЫБОР
| КОГДА Таблица.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА ЕСТЬNULL(ДоговорыКонтрагентовПоставщик.Ссылка, Таблица.Ссылка)
| ИНАЧЕ ЕСТЬNULL(ДоговорыКонтрагентовПоставщик.Ссылка, Таблица.Ссылка)
| КОНЕЦ КАК ЗаказЗакупки,
| Таблица.СуммаДокумента КАК КОплате,
| Таблица.Валюта КАК ВалютаВзаиморасчетов,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациямиОСписании) КАК ХозяйственнаяОперация,
| Таблица.ФормаОплаты КАК ФормаОплаты,
| Таблица.Валюта КАК ВалютаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыПоставщику.ПредоплатаДоПоступления) КАК ВариантОплаты,
| Неопределено КАК СвязанныйДокумент
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК Таблица
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентовПоставщик
| ПО Таблица.ДоговорПокупки = ДоговорыКонтрагентовПоставщик.Ссылка
| И ДоговорыКонтрагентовПоставщик.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
|
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
#КонецОбласти
#Область ЗачетАвансов
ТекстЗачетАванса = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Ссылка.Комиссионер КАК Организация,
| ВЫБОР КОГДА Таблица.Ссылка.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА Таблица.Ссылка.Партнер
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| КОНЕЦ КАК Партнер,
|
| Таблица.ОбъектРасчетов КАК ОбъектРасчетовИсточник,
| Таблица.Ссылка.ОбъектРасчетовСКомитентом КАК ОбъектРасчетовПриемник,
|
| Таблица.Ссылка.Валюта КАК ВалютаВзаиморасчетов,
| Таблица.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| Таблица.Ссылка.Валюта КАК ВалютаДокумента,
| Таблица.Сумма КАК Сумма,
| Таблица.Ссылка.Дата КАК ДатаКурса,
| Таблица.Ссылка.Дата КАК ДатаРегистратора,
| Таблица.Ссылка.Номер КАК НомерРегистратора,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереносАванса) КАК ХозяйственнаяОперация
|
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.РасшифровкаПлатежаСПоставщиком КАК Таблица
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
|";
#КонецОбласти
ВзаиморасчетыСервер.ПроведениеЗакупки(Запрос, ТекстыЗапроса, Регистры, ТекстЗакупка, ТекстПланОплаты, ТекстЗачетАванса);
#КонецОбласти
#Область ДобавитьТекстыОтраженияВзаиморасчетовПродажи
#Область Продажа
ТекстПродажа =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Организация КАК Организация,
| ВЫБОР КОГДА Таблица.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА Таблица.Партнер
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| КОНЕЦ КАК Партнер,
|
| Таблица.ОбъектРасчетовСКомиссионером КАК ОбъектРасчетов,
| Таблица.ДатаПлатежа КАК ДатаПлатежа,
| ВЫБОР
| КОГДА Таблица.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА ЕСТЬNULL(ДоговорыКонтрагентовКлиент.Ссылка, Таблица.Ссылка)
| ИНАЧЕ ЕСТЬNULL(ДоговорыКонтрагентовКлиент.Ссылка, Таблица.Ссылка)
| КОНЕЦ КАК ЗаказПродажи,
| ЛОЖЬ КАК НакладнаяПоЗаказам,
| Таблица.СуммаДокумента КАК СуммаВзаиморасчетов,
| 0 КАК СуммаВзаиморасчетовПоТаре,
| Таблица.СуммаДокумента КАК Сумма,
|
| Таблица.ПорядокРасчетов КАК ПорядокРасчетов,
| Таблица.Дата КАК ДатаРегистратора,
| Таблица.Номер КАК НомерРегистратора,
| Таблица.Валюта КАК ВалютаВзаиморасчетов,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациямиОСписании) КАК ХозяйственнаяОперация,
| Таблица.Дата КАК ДатаКурса,
| Таблица.Валюта КАК ВалютаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыКлиентом.ПредоплатаДоОтгрузки) КАК ВариантОплаты,
| ЛОЖЬ КАК СверхЗаказа,
| НЕОПРЕДЕЛЕНО КАК СвязанныйДокумент
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК Таблица
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентовКлиент
| ПО Таблица.ДоговорПродажи = ДоговорыКонтрагентовКлиент.Ссылка
| И ДоговорыКонтрагентовКлиент.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
|
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
#КонецОбласти
#Область УвеличениеПланаОплат
ТекстПланированиеОплат = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Организация КАК Организация,
| ВЫБОР КОГДА Таблица.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА Таблица.Партнер
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| КОНЕЦ КАК Партнер,
|
| Таблица.Ссылка.ОбъектРасчетовСКомиссионером КАК ОбъектРасчетов,
| Таблица.Ссылка.Дата КАК ДатаРегистратора,
| Таблица.Ссылка.Номер КАК НомерРегистратора,
| Таблица.Ссылка.ПорядокРасчетов КАК ПорядокРасчетов,
| Таблица.Ссылка.Валюта КАК ВалютаВзаиморасчетов,
| Таблица.Ссылка.Валюта КАК ВалютаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациямиОСписании) КАК ХозяйственнаяОперация,
| Таблица.Ссылка.ФормаОплаты КАК ФормаОплаты,
|
| Таблица.Ссылка.ДатаПлатежа КАК ДатаПлатежа,
| ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыКлиентом.ПредоплатаДоОтгрузки) КАК ВариантОплаты,
| Таблица.СуммаДокумента КАК КОплате,
|
| ИСТИНА КАК ИсключатьПриКонтроле,
| ЛОЖЬ КАК НакладнаяПоЗаказам,
| ВЫБОР
| КОГДА Таблица.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА ЕСТЬNULL(ДоговорыКонтрагентовКлиент.Ссылка, Таблица.Ссылка)
| ИНАЧЕ ЕСТЬNULL(ДоговорыКонтрагентовКлиент.Ссылка, Таблица.Ссылка)
| КОНЕЦ КАК ЗаказПродажи,
| ЛОЖЬ КАК СверхЗаказа,
| НЕОПРЕДЕЛЕНО КАК СвязанныйДокумент
|
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК Таблица
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентовКлиент
| ПО Таблица.ДоговорПродажи = ДоговорыКонтрагентовКлиент.Ссылка
| И ДоговорыКонтрагентовКлиент.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
|
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
#КонецОбласти
#Область ЗачетАванса
ТекстЗачетАванса = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Ссылка.Организация КАК Организация,
| ВЫБОР КОГДА Таблица.Ссылка.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА Таблица.Ссылка.Партнер
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| КОНЕЦ КАК Партнер,
|
| Таблица.ОбъектРасчетов КАК ОбъектРасчетовИсточник,
| Таблица.Ссылка.ОбъектРасчетовСКомиссионером КАК ОбъектРасчетовПриемник,
|
| Таблица.Ссылка.Валюта КАК ВалютаВзаиморасчетов,
| Таблица.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| Таблица.Ссылка.Валюта КАК ВалютаДокумента,
| Таблица.Сумма КАК Сумма,
| Таблица.Ссылка.Дата КАК ДатаКурса,
| Таблица.Ссылка.Дата КАК ДатаРегистратора,
| Таблица.Ссылка.Номер КАК НомерРегистратора,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереносАванса) КАК ХозяйственнаяОперация
|
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.РасшифровкаПлатежаСКлиентом КАК Таблица
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
|";
#КонецОбласти
ВзаиморасчетыСервер.ПроведениеПродажи(Запрос, ТекстыЗапроса, Регистры, ТекстПродажа, ТекстПланированиеОплат, ТекстЗачетАванса);
#КонецОбласти
КонецПроцедуры
Процедура УстановитьПараметрЗапросаФИФОСкользящаяОценкаКомиссионера(Запрос)
Если Запрос.Параметры.Свойство("ФИФОСкользящаяОценкаКомиссионера") Тогда
Возврат;
КонецЕсли;
ПараметрыУчетнойПолитики = НастройкиНалоговУчетныхПолитик.ДействующиеПараметрыНалоговУчетныхПолитикНаДату("УчетнаяПолитикаФинансовогоУчета",
Запрос.Параметры.Комиссионер,
НачалоМесяца(Запрос.Параметры.Период));
Запрос.УстановитьПараметр("ФИФОСкользящаяОценкаКомиссионера",
(ПараметрыУчетнойПолитики <> Неопределено
И ПараметрыУчетнойПолитики.МетодОценкиСтоимостиТоваров = Перечисления.МетодыОценкиСтоимостиТоваров.ФИФОСкользящаяОценка));
КонецПроцедуры
Функция ТекстЗапросаТаблицаПрочиеДоходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПрочиеДоходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Комитент КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ВЫБОР
| КОГДА &УчетДоходовПоНД ТОГДА
| &НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельности,
| ДанныеДокумента.СтатьяДоходов КАК СтатьяДоходов,
| ДанныеДокумента.АналитикаДоходов КАК АналитикаДоходов,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВЫРАЗИТЬ(ДанныеДокумента.СуммаДокумента * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК Сумма,
| ВЫБОР
| КОГДА &УправленческийУчетОрганизаций
| ТОГДА ВЫРАЗИТЬ(ДанныеДокумента.СуммаДокумента * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаУпр,
| ВЫБОР
| КОГДА &ИспользоватьУчетПрочихДоходовРасходовРегл
| ТОГДА ВЫРАЗИТЬ(ДанныеДокумента.СуммаДокумента * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаРегл,
|
| &ИдентификаторОбъектаРасчетовСКомиссионером КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
|
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.СуммаДокумента <> 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено) Экспорт
ТекстЗапросаДанных = "
|ВЫБРАТЬ
| ""ВидыЗапасов"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаВзаиморасчетов,
| ТаблицаДокумента.Ссылка.Дата КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС КАК СуммаБезНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| ТаблицаДокумента.СуммаСНДС КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ИСТИНА КАК ОтражаетсяВРасчетах,
| ТаблицаДокумента.Ссылка.ОбъектРасчетовСКомиссионером КАК ОбъектРасчетов,
| ИСТИНА КАК ПересчитыватьПоДаннымРасчетов
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.ВидыЗапасов КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|";
РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(
Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных);
КонецПроцедуры
Функция ТекстЗапросаТаблицаДвиженияНоменклатураДоходыРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияНоменклатураДоходыРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| &Период КАК Период,
| &ОтчетКомиссионера КАК ХозяйственнаяОперация,
| &Комитент КАК Организация,
| &Подразделение КАК Подразделение,
|
| ТаблицаТовары.АналитикаУчетаПереданнойНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК Склад,
| ТаблицаТовары.ВидЗапасовКомитента.ТипЗапасов КАК ТипЗапасов,
| ТаблицаТовары.ВидЗапасовКомитента КАК ВидЗапасов,
|
| &СтатьяРасходов КАК СтатьяДоходовРасходов,
| ВЫБОР
| КОГДА &УчетЗатратПоНД ТОГДА
| &НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельностиСтатьи,
| &АналитикаРасходов КАК АналитикаРасходов,
|
| ТаблицаТовары.Количество КАК Количество,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
|
| ВЫБОР КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета ТОГДА
| ТаблицаТовары.ВидЗапасовКомитента
| ИНАЧЕ
| ТаблицаТовары.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаТовары
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияКонтрагентДоходыРасходы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияКонтрагентДоходыРасходы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ДоходыПоОтчетуКомиссионераОСписании) КАК ХозяйственнаяОперация,
| &Комитент КАК Организация,
| &Подразделение КАК Подразделение,
|
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| ВЫБОР
| КОГДА &УчетРасчетовСПоставщикамиПоНД ТОГДА
| &НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельностиКонтрагента,
| &Договор КАК Договор,
| &ОбъектРасчетовСКомиссионером КАК ОбъектРасчетов,
|
| ДанныеДокумента.СтатьяДоходов КАК СтатьяДоходовРасходов,
| ВЫБОР
| КОГДА &УчетДоходовПоНД ТОГДА
| &НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельностиСтатьи,
| ДанныеДокумента.АналитикаДоходов КАК АналитикаДоходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
|
| ВЫРАЗИТЬ(ДанныеДокумента.СуммаДокумента * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК Сумма,
| 0 КАК СуммаБезНДС,
| ВЫРАЗИТЬ(ДанныеДокумента.СуммаДокумента * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
| 0 КАК СуммаРеглБезНДС,
|
| &Валюта КАК Валюта,
| ДанныеДокумента.СуммаДокумента КАК СуммаВВалюте,
| 0 КАК СуммаБезНДСВВалюте,
|
| &Валюта КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.СуммаДокумента КАК СуммаВВалютеВзаиморасчетов,
| 0 КАК СуммаБезНДСВВалютеВзаиморасчетов,
|
| &ОбъектРасчетовСКомиссионером КАК ИсточникГФУРасчетов,
| &ИдентификаторОбъектаРасчетовСКомитентом КАК ИдентификаторФинЗаписи
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.СуммаДокумента <> 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииТоваровОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &КонецПериода КАК Период,
| &Ссылка КАК Регистратор,
| &Комиссионер КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| &Ссылка КАК ДокументПоступления,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.СуммаСНДС КАК Стоимость,
| ТаблицаВидыЗапасов.СуммаБезНДС КАК СтоимостьБезНДС,
| ТаблицаВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИСТИНА КАК Первичное,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| &ПартионныйУчетВерсии21
| И ТаблицаВидыЗапасов.Количество > 0
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаЗакупки(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "Закупки";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтражениеЗадолженностиПередКомитентом) КАК ХозяйственнаяОперация,
| &Комиссионер КАК Организация,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Менеджер,
|
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Склад КАК Склад,
| ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
|
| &Партнер КАК Партнер,
| ВЫБОР
| КОГДА &РасчетыЧерезОтдельногоКонтрагента
| ТОГДА &Контрагент
| ИНАЧЕ &Комитент
| КОНЕЦ КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ВЫБОР КОГДА &РасчетыЧерезОтдельногоКонтрагента
| ТОГДА &ДоговорПокупки
| ИНАЧЕ &Договор
| КОНЕЦ КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Заказ,
|
| 0 КАК Количество,
|
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаСНДС * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК Сумма,
| ВЫРАЗИТЬ((ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС)
| * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаБезНДС,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаСНДС * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
| ВЫРАЗИТЬ((ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС)
| * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРеглБезНДС,
| 0 КАК СуммаСкидки,
|
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| 0 КАК СуммаДопРасходов,
| 0 КАК СуммаДопРасходовБезНДС,
|
| &Валюта КАК ВалютаДокумента,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаВВалютеДокумента,
| ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС КАК СуммаБезНДСВВалютеДокумента,
|
| &Валюта КАК ВалютаВзаиморасчетов,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаВВалютеВзаиморасчетов,
| ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС КАК СуммаБезНДСВВалютеВзаиморасчетов,
|
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| &ОбъектРасчетовСКомитентом КАК ИсточникГФУРасчетов
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса)
ТекстВыборкаПоляАналитик =
"ВЫБРАТЬ
| ""ВидыЗапасов"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Партнер КАК Поставщик,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ДанныеДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары) КАК ВидЦенности,
| 0 КАК КодСтроки
|ПОМЕСТИТЬ ВТПоляАналитикУчетаПартий
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.ВидыЗапасов КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаДокумента.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК СпрВидыЗапасов
| ПО ТаблицаДокумента.ВидЗапасов = СпрВидыЗапасов.Ссылка
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
| И СпрВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|";
ТекстЗапроса = Справочники.КлючиАналитикиУчетаПартий.ТекстЗапросаВтТаблицаАналитикУчетаПартий(ТекстВыборкаПоляАналитик, Запрос, ТекстыЗапроса);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтТаблицаВидыЗапасов";
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
УстановитьПараметрыАналитикВзаиморасчетов(Запрос);
ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос);
ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос);
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаАналитикУчетаПартий", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца КАК ВидЗапасовВладельца,
| ТаблицаВидыЗапасов.ВидЗапасов.РеализацияЗапасовДругойОрганизации КАК РеализацияЗапасовДругойОрганизации,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидЗапасовКомитента <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовКомитента
| КОГДА ТаблицаВидыЗапасов.ВидЗапасов.РеализацияЗапасовДругойОрганизации
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасовКомитента,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| АналитикаПереданногоТовара.КлючАналитики КАК АналитикаУчетаПереданнойНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаСНДС,
| ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС КАК СуммаБезНДС,
| ТаблицаВидыЗапасов.СуммаНДС КАК СуммаНДС,
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаСНДС
| * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)
| ) КАК СуммаРегл,
| ТаблицаВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидЗапасовКомитента.ВладелецТовара ССЫЛКА Справочник.Партнеры
| ТОГДА АналитикаРасчетов.КлючАналитики
| ИНАЧЕ &АналитикаКомитентКомиссионер
| КОНЕЦ КАК АналитикаРасчетовСКомитентом
|ПОМЕСТИТЬ ВтТаблицаВидыЗапасов
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПереданногоТовара
| ПО ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаПереданногоТовара.Номенклатура
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика = АналитикаПереданногоТовара.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)= АналитикаПереданногоТовара.Назначение
| И &Комиссионер = АналитикаПереданногоТовара.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)= АналитикаПереданногоТовара.Серия
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаРасчетов
| ПО АналитикаРасчетов.Организация = ТаблицаВидыЗапасов.Ссылка.Организация
| И АналитикаРасчетов.Партнер = ТаблицаВидыЗапасов.ВидЗапасовКомитента.ВладелецТовара
| И АналитикаРасчетов.Контрагент = ТаблицаВидыЗапасов.ВидЗапасовКомитента.Контрагент
| И АналитикаРасчетов.Договор = ТаблицаВидыЗапасов.ВидЗапасовКомитента.Договор
| И АналитикаРасчетов.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ТаблицаВидыЗапасов.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""ВидыЗапасов""
|
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросПредварительный = Новый Запрос("
|ВЫБРАТЬ
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Склад КАК Склад
|ИЗ (
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| &Серия КАК Серия,
| &Комиссионер КАК Склад
| ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
| ВЫБРАТЬ
| Строки.АналитикаУчетаНоменклатуры.Номенклатура,
| Строки.АналитикаУчетаНоменклатуры.Характеристика,
| &ПустоеНазначение КАК Назначение,
| &Серия КАК Серия,
| Строки.ВидЗапасовКомитента.ВладелецТовара КАК Склад
| ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.ВидыЗапасов КАК Строки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаКомитента
| ПО АналитикаКомитента.Номенклатура = Строки.АналитикаУчетаНоменклатуры.Номенклатура
| И АналитикаКомитента.Характеристика = Строки.АналитикаУчетаНоменклатуры.Характеристика
| И &ПустоеНазначение = Строки.АналитикаУчетаНоменклатуры.Назначение
| И АналитикаКомитента.Серия = Строки.АналитикаУчетаНоменклатуры.Серия
| И АналитикаКомитента.МестоХранения = Строки.ВидЗапасовКомитента.ВладелецТовара
| ГДЕ
| Строки.Ссылка = &Ссылка
| И АналитикаКомитента.Номенклатура ЕСТЬ NULL
| И НЕ Строки.ВидЗапасов.РеализацияЗапасовДругойОрганизации
| И Строки.ВидЗапасовКомитента.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ) КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И ТаблицаТовары.Назначение = Аналитика.Назначение
| И ТаблицаТовары.Серия = Аналитика.Серия
| И ТаблицаТовары.Склад = Аналитика.МестоХранения
|ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТовары.Склад,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.Назначение,
| ТаблицаТовары.Серия
|");
ЗапросПредварительный.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросПредварительный.УстановитьПараметр("Комиссионер", Запрос.Параметры.Комиссионер);
ЗапросПредварительный.УстановитьПараметр("Подразделение", Запрос.Параметры.Подразделение);
ЗапросПредварительный.УстановитьПараметр("Серия", Справочники.СерииНоменклатуры.ПустаяСсылка());
ЗапросПредварительный.УстановитьПараметр("ПустоеНазначение", Справочники.Назначения.ПустаяСсылка());
Выборка = ЗапросПредварительный.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка)
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаНоменклатурыИнициализированы", Истина);
КонецПроцедуры
Процедура ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаПоПартнерамИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросИнициализации = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Ссылка.Организация КАК Организация,
| ТаблицаТовары.ВидЗапасовКомитента.ВладелецТовара КАК Партнер,
| ТаблицаТовары.ВидЗапасовКомитента.Контрагент КАК Контрагент,
| ТаблицаТовары.ВидЗапасовКомитента.Договор КАК Договор,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании.ВидыЗапасов КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК Аналитика
| ПО Аналитика.Организация = ТаблицаТовары.Ссылка.Организация
| И Аналитика.Партнер = ТаблицаТовары.ВидЗапасовКомитента.ВладелецТовара
| И Аналитика.Контрагент = ТаблицаТовары.ВидЗапасовКомитента.Контрагент
| И Аналитика.Договор = ТаблицаТовары.ВидЗапасовКомитента.Договор
| И Аналитика.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|ГДЕ
| Аналитика.КлючАналитики ЕСТЬ NULL
| И ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.ВидЗапасовКомитента.ВладелецТовара ССЫЛКА Справочник.Партнеры
|");
ЗапросИнициализации.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
Выборка = ЗапросИнициализации.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьКлючАналитики(Выборка)
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаПоПартнерамИнициализированы", Истина);
КонецПроцедуры
Процедура УстановитьПараметрыАналитикВзаиморасчетов(Запрос)
Если Запрос.Параметры.Свойство("АналитикаКомитентКомиссионер")
И Запрос.Параметры.Свойство("АналитикаКомиссионерКомитент")
И Запрос.Параметры.Свойство("АналитикаВзаиморасчетовКомитентКомиссионер")
И Запрос.Параметры.Свойство("АналитикаВзаиморасчетовКомиссионерКомитент") Тогда
Возврат;
КонецЕсли;
СтруктураКомитентКомиссионер = Новый Структура();
СтруктураКомитентКомиссионер.Вставить("Организация", Запрос.Параметры.Комитент);
СтруктураКомитентКомиссионер.Вставить("Партнер", Справочники.Партнеры.НашеПредприятие);
СтруктураКомитентКомиссионер.Вставить("Контрагент", Запрос.Параметры.Комиссионер);
СтруктураКомитентКомиссионер.Вставить("Договор", Запрос.Параметры.Договор);
СтруктураКомитентКомиссионер.Вставить("НаправлениеДеятельности", Запрос.Параметры.НаправлениеДеятельности);
АналитикаКомитентКомиссионер = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(СтруктураКомитентКомиссионер);
СтруктураКомиссионерКомитент = Новый Структура();
СтруктураКомиссионерКомитент.Вставить("Организация", Запрос.Параметры.Комиссионер);
СтруктураКомиссионерКомитент.Вставить("Партнер", Справочники.Партнеры.НашеПредприятие);
СтруктураКомиссионерКомитент.Вставить("Контрагент", Запрос.Параметры.Комитент);
СтруктураКомиссионерКомитент.Вставить("Договор", Запрос.Параметры.Договор);
СтруктураКомиссионерКомитент.Вставить("НаправлениеДеятельности", Запрос.Параметры.НаправлениеДеятельности);
АналитикаКомиссионерКомитент = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(СтруктураКомиссионерКомитент);
Если Запрос.Параметры.РасчетыЧерезОтдельногоКонтрагента Тогда
СтруктураКомитентКомиссионер = Новый Структура();
СтруктураКомитентКомиссионер.Вставить("Организация", Запрос.Параметры.Комитент);
СтруктураКомитентКомиссионер.Вставить("Партнер", Запрос.Параметры.Партнер);
СтруктураКомитентКомиссионер.Вставить("Контрагент", Запрос.Параметры.Контрагент);
СтруктураКомитентКомиссионер.Вставить("Договор", Запрос.Параметры.ДоговорПродажи);
СтруктураКомитентКомиссионер.Вставить("НаправлениеДеятельности", Запрос.Параметры.НаправлениеДеятельности);
АналитикаВзаиморасчетовКомитентКомиссионер = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(СтруктураКомитентКомиссионер);
СтруктураКомиссионерКомитент = Новый Структура();
СтруктураКомиссионерКомитент.Вставить("Организация", Запрос.Параметры.Комиссионер);
СтруктураКомиссионерКомитент.Вставить("Партнер", Запрос.Параметры.Партнер);
СтруктураКомиссионерКомитент.Вставить("Контрагент", Запрос.Параметры.Контрагент);
СтруктураКомиссионерКомитент.Вставить("Договор", Запрос.Параметры.ДоговорПокупки);
СтруктураКомиссионерКомитент.Вставить("НаправлениеДеятельности", Запрос.Параметры.НаправлениеДеятельности);
АналитикаВзаиморасчетовКомиссионерКомитент = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(СтруктураКомиссионерКомитент);
Иначе
АналитикаВзаиморасчетовКомитентКомиссионер = АналитикаКомитентКомиссионер;
АналитикаВзаиморасчетовКомиссионерКомитент = АналитикаКомиссионерКомитент;
КонецЕсли;
Запрос.УстановитьПараметр("АналитикаКомитентКомиссионер", АналитикаКомитентКомиссионер);
Запрос.УстановитьПараметр("АналитикаКомиссионерКомитент", АналитикаКомиссионерКомитент);
Запрос.УстановитьПараметр("АналитикаВзаиморасчетовКомитентКомиссионер", АналитикаВзаиморасчетовКомитентКомиссионер);
Запрос.УстановитьПараметр("АналитикаВзаиморасчетовКомиссионерКомитент", АналитикаВзаиморасчетовКомиссионерКомитент);
КонецПроцедуры
Процедура УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУпр")
И Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Запрос.Параметры.Валюта,
Неопределено,
Запрос.Параметры.Период,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр", Коэффициенты.КоэффициентПересчетаВВалютуУПР);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
КонецПроцедуры
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтОснований", ТекстыЗапроса) Тогда
ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.ТипСсылки КАК ТипСсылки,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.ДополнительнаяЗапись КАК ДополнительнаяЗапись,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.МестоХранения КАК МестоХранения,
| ДанныеДокумента.ДатаДокументаИБ КАК ДатаДокументаИБ,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.НомерДокументаИБ КАК НомерДокументаИБ,
| ДанныеДокумента.Ответственный КАК Ответственный,
| ДанныеДокумента.Автор КАК Автор,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Сумма КАК Сумма,
| ДанныеДокумента.Статус КАК Статус,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.Дополнительно КАК Дополнительно,
| ДанныеДокумента.ДатаПервичногоДокумента КАК ДатаПервичногоДокумента,
| ДанныеДокумента.НомерПервичногоДокумента КАК НомерПервичногоДокумента,
| ДанныеДокумента.СторноИсправление КАК СторноИсправление,
| ДанныеДокумента.СторнируемыйДокумент КАК СторнируемыйДокумент,
| ДанныеДокумента.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ДанныеДокумента.НаименованиеВходящегоДокумента КАК НаименованиеПервичногоДокумента,
| ДанныеДокумента.ДатаДокументаИБ КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| ВтОснований КАК ДанныеДокумента";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтОснований";
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаРеестрДокументов.ТипСсылки КАК ТипСсылки,
| ТаблицаРеестрДокументов.Организация КАК Организация,
| ТаблицаРеестрДокументов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаРеестрДокументов.Партнер КАК Партнер,
| ТаблицаРеестрДокументов.Контрагент КАК Контрагент,
| МАКСИМУМ(ТаблицаРеестрДокументов.Договор) КАК Договор,
| ТаблицаРеестрДокументов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| МИНИМУМ(ТаблицаРеестрДокументов.ДополнительнаяЗапись) КАК ДополнительнаяЗапись,
| ТаблицаРеестрДокументов.Подразделение КАК Подразделение,
| ТаблицаРеестрДокументов.МестоХранения КАК МестоХранения,
| ТаблицаРеестрДокументов.ДатаДокументаИБ КАК ДатаДокументаИБ,
| ТаблицаРеестрДокументов.Ссылка КАК Ссылка,
| МАКСИМУМ(ТаблицаРеестрДокументов.НомерДокументаИБ) КАК НомерДокументаИБ,
| МАКСИМУМ(ТаблицаРеестрДокументов.Ответственный) КАК Ответственный,
| МАКСИМУМ(ТаблицаРеестрДокументов.Автор) КАК Автор,
| МАКСИМУМ(ТаблицаРеестрДокументов.Комментарий) КАК Комментарий,
| МАКСИМУМ(ТаблицаРеестрДокументов.Валюта) КАК Валюта,
| МАКСИМУМ(ТаблицаРеестрДокументов.Сумма) КАК Сумма,
| МАКСИМУМ(ТаблицаРеестрДокументов.Статус) КАК Статус,
| МАКСИМУМ(ТаблицаРеестрДокументов.Проведен) КАК Проведен,
| МАКСИМУМ(ТаблицаРеестрДокументов.ПометкаУдаления) КАК ПометкаУдаления,
| МАКСИМУМ(ТаблицаРеестрДокументов.Дополнительно) КАК Дополнительно,
| МАКСИМУМ(ТаблицаРеестрДокументов.ДатаПервичногоДокумента) КАК ДатаПервичногоДокумента,
| МАКСИМУМ(ТаблицаРеестрДокументов.Исправление) КАК СторноИсправление,
| МАКСИМУМ(ТаблицаРеестрДокументов.СторнируемыйДокумент) КАК СторнируемыйДокумент,
| МАКСИМУМ(ТаблицаРеестрДокументов.ИсправляемыйДокумент) КАК ИсправляемыйДокумент,
| МАКСИМУМ(ТаблицаРеестрДокументов.НаименованиеВходящегоДокумента) КАК НаименованиеВходящегоДокумента,
| МАКСИМУМ(ТаблицаРеестрДокументов.НомерПервичногоДокумента) КАК НомерПервичногоДокумента
|ПОМЕСТИТЬ ВтОснований
| ИЗ
| (ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Комитент КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Договор КАК Договор,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Ответственный,
| &Автор КАК Автор,
| ВЫРАЗИТЬ(&Комментарий КАК СТРОКА (100)) КАК Комментарий,
| &Валюта КАК Валюта,
| &СуммаДокумента КАК Сумма,
| НЕОПРЕДЕЛЕНО КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| ВЫРАЗИТЬ(&ИнформацияПоКомиссионеру КАК СТРОКА (100)) КАК Дополнительно,
| &Период КАК ДатаПервичногоДокумента,
| &Исправление КАК Исправление,
| &СторнируемыйДокумент КАК СторнируемыйДокумент,
| &ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| &НаименованиеВходящегоДокумента КАК НаименованиеВходящегоДокумента,
| &НомерДокумента КАК НомерПервичногоДокумента
| ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Комиссионер КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Договор КАК Договор,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Ответственный,
| &Автор КАК Автор,
| ВЫРАЗИТЬ(&Комментарий КАК СТРОКА (100)) КАК Комментарий,
| &Валюта КАК Валюта,
| &СуммаДокумента КАК Сумма,
| НЕОПРЕДЕЛЕНО КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ИСТИНА КАК ДополнительнаяЗапись,
| ВЫРАЗИТЬ(&ИнформацияПоКомитенту КАК СТРОКА (100)) КАК Дополнительно,
| ВЫБОР
| КОГДА &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА &Период
| ИНАЧЕ &ДатаВходящегоДокумента
| КОНЕЦ КАК ДатаПервичногоДокумента,
| &Исправление КАК Исправление,
| &СторнируемыйДокумент КАК СторнируемыйДокумент,
| &ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| ВЫБОР
| КОГДА &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ &НаименованиеВходящегоДокумента
| КОНЕЦ КАК НаименованиеВходящегоДокумента,
| ВЫБОР
| КОГДА &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА &НомерДокумента
| ИНАЧЕ &НомерВходящегоДокумента
| КОНЕЦ КАК НомерПервичногоДокумента
| ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка) КАК ТаблицаРеестрДокументов
|
|СГРУППИРОВАТЬ ПО
| ТаблицаРеестрДокументов.ТипСсылки,
| ТаблицаРеестрДокументов.Организация,
| ТаблицаРеестрДокументов.ХозяйственнаяОперация,
| ТаблицаРеестрДокументов.Партнер,
| ТаблицаРеестрДокументов.Контрагент,
| ТаблицаРеестрДокументов.НаправлениеДеятельности,
| ТаблицаРеестрДокументов.Подразделение,
| ТаблицаРеестрДокументов.МестоХранения,
| ТаблицаРеестрДокументов.ДатаДокументаИБ,
| ТаблицаРеестрДокументов.Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтИсходныеПрочиеРасходы";
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстОписаниеВтИсходныеПрочиеРасходы();
ТекстЗапроса = ТекстЗапроса + "ОБЪЕДИНИТЬ ВСЕ" + "
|ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| НЕОПРЕДЕЛЕНО КАК Организация,
| &Подразделение КАК Подразделение,
| &СтатьяРасходов КАК СтатьяРасходов,
| &АналитикаРасходов КАК АналитикаРасходов,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
|
| 0 КАК СуммаСНДС,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаБезНДСУпр,
| 0 КАК СуммаСНДСРегл,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаНоменклатуры,
|
| &ИдентификаторНеиспользуемойФинЗаписи КАК ИдентификаторФинЗаписи,
| НЕОПРЕДЕЛЕНО КАК НастройкаХозяйственнойОперации
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтПрочиеРасходы";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтИсходныеПрочиеРасходы", ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = РегистрыНакопления.ПрочиеРасходы.ТекстЗапросаТаблицаВтПрочиеРасходы();
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ТекстыЗапросаВременныхТаблиц = Новый Соответствие();
ТекстЗапросаПартенр = "
| ВЫБОР
| КОГДА ДанныеДокумента.РасчетыЧерезОтдельногоКонтрагента
| ТОГДА ДанныеДокумента.Партнер
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
| КОНЕЦ";
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерДокумента", """""");
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоКомитенту", """""");
ПереопределениеРасчетаПараметров.Вставить("НомерВходящегоДокумента", """""");
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоКомиссионеру", """""");
ПереопределениеРасчетаПараметров.Вставить("Комитент", "ДанныеДокумента.Ссылка.Организация");
ПереопределениеРасчетаПараметров.Вставить("Партнер", ТекстЗапросаПартенр);
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ХозяйственнаяОперация",
Перечисления.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациямиОСписании);
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ТекстыЗапросаВременныхТаблиц.Вставить("ВтОснований", ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса));
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
ДополнительныеПараметры.Добавить("АналитикаКомитентКомиссионер");
ДополнительныеПараметры.Добавить("АналитикаКомиссионерКомитент");
ДополнительныеПараметры.Добавить("АналитикаВзаиморасчетовКомитентКомиссионер");
ДополнительныеПараметры.Добавить("АналитикаВзаиморасчетовКомиссионерКомитент");
ДополнительныеПараметры.Добавить("ФИФОСкользящаяОценкаКомиссионера");
Если Запрос <> Неопределено Тогда
УстановитьПараметрыАналитикВзаиморасчетов(Запрос);
УстановитьПараметрЗапросаФИФОСкользящаяОценкаКомиссионера(Запрос);
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтТаблицаВидыЗапасов");
ДополнительныеТаблицы.Добавить("ВтПрочиеРасходы");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[1], ТекстыЗапроса) Тогда
ТекстЗапросаТаблицаВтПрочиеРасходы(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область СписаниеНаРасходыАктивы_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаПереданнойНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасовКомитента КАК ВидЗапасов,
| &НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаДокумента.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| ЕСТЬNULL(ПрочиеРасходы.ОрганизацияПолучатель, НЕОПРЕДЕЛЕНО) КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| &СтатьяРасходов КАК СтатьяРасходовАктивов,
| &АналитикаРасходов КАК АналитикаРасходовАктивов,
| НЕОПРЕДЕЛЕНО КАК КорНаправлениеДеятельности,
| ТаблицаВидыЗапасов.АналитикаРасчетовСКомитентом КАК АналитикаУчетаПоПартнерам,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтчетКомиссионераОСписании) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &ОтчетКомиссионераСправочник КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасовКомитента
| ПО ВидыЗапасовКомитента.Ссылка = ТаблицаВидыЗапасов.ВидЗапасовКомитента
| ЛЕВОЕ СОЕДИНЕНИЕ ВтПрочиеРасходы КАК ПрочиеРасходы
| ПО ПрочиеРасходы.СтатьяРасходов = &СтатьяРасходов
| И ПрочиеРасходы.АналитикаРасходов = &АналитикаРасходов
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.СписаниеНаРасходыАктивы,
ТекстЗапроса);
#КонецОбласти
#Область ВнешнееПоступление_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Комиссионер КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ТаблицаДокумента.Ссылка КАК Партия,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаДокумента.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
| ТаблицаДокумента.Партнер КАК Поставщик,
| ТаблицаДокумента.Контрагент КАК Контрагент,
| ТаблицаВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.СуммаСНДС КАК Стоимость,
| ТаблицаВидыЗапасов.СуммаБезНДС КАК СтоимостьБезНДС,
| ТаблицаВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтчетКомитентуОСписании) КАК ХозяйственнаяОперация,
| &ИдентификаторОбъектаРасчетовСКомитентом КАК ИдентификаторФинЗаписи,
| &ОтчетКомитентуСправочник КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнешнееПоступление,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
#КонецОбласти
#Область Состояние
Процедура РассчитатьСостояниеПолучатель(Знач ОтчетПоКомиссии, Знач Договор, СостояниеРасчетов, Организация=Неопределено) Экспорт
ЗаполнитьЗначенияСвойств(СостояниеРасчетов, СтруктураСостоянияРасчетовПолучатель());
Если ЗначениеЗаполнено(ОтчетПоКомиссии) И ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.РасчетыСПоставщиками) Тогда
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеПриход, 0) КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаОплатыПолучатель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеПриход, 0) * 100 / ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) КАК ЧИСЛО(15, 0))
| ИНАЧЕ 0
| КОНЕЦ КАК ПроцентОплатыПолучатель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) > 0
| И ЕСТЬNULL(РасчетыСПоставщикамиОстаткиНаДатуАктуальности.КОплатеОстаток, 0) < 0
| ТОГДА ВЫРАЗИТЬ(-ЕСТЬNULL(РасчетыСПоставщикамиОстаткиНаДатуАктуальности.КОплатеОстаток, 0) КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаПросроченнойОплатыПолучатель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) > 0
| ТОГДА ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаПоступления,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) * 100 / ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) КАК ЧИСЛО(15, 0))
| ИНАЧЕ 0
| КОНЕЦ КАК ПроцентПоступления,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.Проведен
| И (ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) > 0
| ИЛИ ДокументОтчетПоКомиссии.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов))
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСПоставщикамиОстатки.СуммаКонечныйОстаток, 0) КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаДолгаПолучатель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) > 0
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(РасчетыСПоставщикамиОстатки.СуммаКонечныйОстаток, 0) > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСПоставщикамиОстатки.СуммаКонечныйОстаток, 0) * 100 / ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) КАК ЧИСЛО(15, 0))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(-РасчетыСПоставщикамиОстатки.СуммаКонечныйОстаток, 0) * 100 / ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеРасход, 0) КАК ЧИСЛО(15, 0))
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК ПроцентДолгаПолучатель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.Проведен
| И ДокументОтчетПоКомиссии.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| ТОГДА -РасчетыСПоставщикамиОстатки.КОплатеКонечныйОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаКОплатеПолучатель
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДокументОтчетПоКомиссии
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты(
| ,
| ,
| ,
| ,
| ОбъектРасчетов = &ОбъектРасчетов
| И (АналитикаУчетаПоПартнерам.Организация = &Организация
| ИЛИ &Организация = НЕОПРЕДЕЛЕНО)) КАК РасчетыСПоставщикамиОстатки
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПоставщиками.Остатки(
| КОНЕЦПЕРИОДА(&ТекущаяДата, ДЕНЬ),
| ОбъектРасчетов = &ОбъектРасчетов
| И (АналитикаУчетаПоПартнерам = &Организация
| ИЛИ &Организация = НЕОПРЕДЕЛЕНО)) КАК РасчетыСПоставщикамиОстаткиНаДатуАктуальности
| ПО (ИСТИНА)
|ГДЕ
| ДокументОтчетПоКомиссии.Ссылка = &ОтчетПоКомиссии");
ОбъектРасчетов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОтчетПоКомиссии, "ОбъектРасчетовСКомитентом");
Запрос.УстановитьПараметр("ОтчетПоКомиссии", ОтчетПоКомиссии);
Запрос.УстановитьПараметр("ОбъектРасчетов", ОбъектРасчетов);
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("Организация", Организация);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ЗаполнитьЗначенияСвойств(СостояниеРасчетов, Выборка);
КонецЕсли;
КонецПроцедуры
Процедура РассчитатьСостояниеОтправитель(Знач ОтчетПоКомиссии, Знач Договор, СостояниеРасчетов, Организация) Экспорт
ЗаполнитьЗначенияСвойств(СостояниеРасчетов, СтруктураСостоянияРасчетовОтправитель());
Если ЗначениеЗаполнено(ОтчетПоКомиссии) И ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.РасчетыСКлиентами) Тогда
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ДокументОтчетПоКомиссии.СуммаДокумента > 0
| ТОГДА ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаОплатыОтправитель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ДокументОтчетПоКомиссии.СуммаДокумента > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеРасход, 0) * 100 / ДокументОтчетПоКомиссии.СуммаДокумента КАК ЧИСЛО(15, 0))
| ИНАЧЕ 0
| КОНЕЦ КАК ПроцентОплатыОтправитель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ДокументОтчетПоКомиссии.СуммаДокумента > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСКлиентамиОстаткиНаДатуАктуальности.КОплатеОстаток, 0) КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаПросроченнойОплатыОтправитель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ДокументОтчетПоКомиссии.СуммаДокумента > 0
| ТОГДА ЕСТЬNULL(РасчетыСКлиентамиОстатки.СуммаПриход, 0)
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаОтгрузки,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ДокументОтчетПоКомиссии.СуммаДокумента > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСКлиентамиОстатки.СуммаПриход, 0) * 100 / ДокументОтчетПоКомиссии.СуммаДокумента КАК ЧИСЛО(15, 0))
| ИНАЧЕ 0
| КОНЕЦ КАК ПроцентОтгрузки,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.Проведен
| И ( ДокументОтчетПоКомиссии.СуммаДокумента > 0
| ИЛИ ДокументОтчетПоКомиссии.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов))
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСКлиентамиОстатки.СуммаКонечныйОстаток, 0) КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаДолгаОтправитель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| И ДокументОтчетПоКомиссии.Проведен
| И ДокументОтчетПоКомиссии.СуммаДокумента > 0
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(РасчетыСКлиентамиОстатки.СуммаКонечныйОстаток, 0) > 0
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(РасчетыСКлиентамиОстатки.СуммаКонечныйОстаток, 0) * 100 / ДокументОтчетПоКомиссии.СуммаДокумента КАК ЧИСЛО(15, 0))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(-РасчетыСКлиентамиОстатки.СуммаКонечныйОстаток, 0) * 100 / ДокументОтчетПоКомиссии.СуммаДокумента КАК ЧИСЛО(15, 0))
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК ПроцентДолгаОтправитель,
| ВЫБОР
| КОГДА ДокументОтчетПоКомиссии.Проведен
| И ДокументОтчетПоКомиссии.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
| ТОГДА РасчетыСКлиентамиОстатки.КОплатеКонечныйОстаток
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаКОплатеОтправитель
|ИЗ
| Документ.ОтчетПоКомиссииМеждуОрганизациямиОСписании КАК ДокументОтчетПоКомиссии
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(
| ,
| ,
| ,
| ,
| ОбъектРасчетов = &ОбъектРасчетов
| И (АналитикаУчетаПоПартнерам.Организация = &Организация
| ИЛИ &Организация = НЕОПРЕДЕЛЕНО)) КАК РасчетыСКлиентамиОстатки
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.Остатки(
| КОНЕЦПЕРИОДА(&ТекущаяДата, ДЕНЬ),
| ОбъектРасчетов = &ОбъектРасчетов
| И (АналитикаУчетаПоПартнерам.Организация = &Организация
| ИЛИ &Организация = НЕОПРЕДЕЛЕНО)) КАК РасчетыСКлиентамиОстаткиНаДатуАктуальности
| ПО (ИСТИНА)
|ГДЕ
| ДокументОтчетПоКомиссии.Ссылка = &ОтчетПоКомиссии");
ОбъектРасчетов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОтчетПоКомиссии, "ОбъектРасчетовСКомиссионером");
Запрос.УстановитьПараметр("ОтчетПоКомиссии", ОтчетПоКомиссии);
Запрос.УстановитьПараметр("ОбъектРасчетов", ОбъектРасчетов);
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("Организация", Организация);
УстановитьПривилегированныйРежим(Истина);
Выборка = Запрос.Выполнить().Выбрать();
УстановитьПривилегированныйРежим(Ложь);
Выборка.Следующий();
ЗаполнитьЗначенияСвойств(СостояниеРасчетов, Выборка);
КонецЕсли;
КонецПроцедуры
Функция СтруктураСостоянияРасчетовПолучатель()
СтруктураСостоянияРасчетов = Новый Структура;
СтруктураСостоянияРасчетов.Вставить("СуммаОплатыПолучатель", 0);
СтруктураСостоянияРасчетов.Вставить("СуммаПоступления", 0);
СтруктураСостоянияРасчетов.Вставить("ПроцентОплатыПолучатель", 0);
СтруктураСостоянияРасчетов.Вставить("ПроцентПоступления", 0);
СтруктураСостоянияРасчетов.Вставить("СуммаПросроченнойОплатыПолучатель", 0);
СтруктураСостоянияРасчетов.Вставить("СуммаДолгаПолучатель", 0);
СтруктураСостоянияРасчетов.Вставить("ПроцентДолгаПолучатель", 0);
СтруктураСостоянияРасчетов.Вставить("СуммаКОплатеПолучатель", 0);
Возврат СтруктураСостоянияРасчетов
КонецФункции
Функция СтруктураСостоянияРасчетовОтправитель()
СтруктураСостоянияРасчетов = Новый Структура;
СтруктураСостоянияРасчетов.Вставить("СуммаОплатыОтправитель", 0);
СтруктураСостоянияРасчетов.Вставить("СуммаОтгрузки", 0);
СтруктураСостоянияРасчетов.Вставить("ПроцентОплатыОтправитель", 0);
СтруктураСостоянияРасчетов.Вставить("ПроцентОтгрузки", 0);
СтруктураСостоянияРасчетов.Вставить("СуммаПросроченнойОплатыОтправитель", 0);
СтруктураСостоянияРасчетов.Вставить("СуммаДолгаОтправитель", 0);
СтруктураСостоянияРасчетов.Вставить("ПроцентДолгаОтправитель", 0);
СтруктураСостоянияРасчетов.Вставить("СуммаКОплатеОтправитель", 0);
Возврат СтруктураСостоянияРасчетов
КонецФункции
#КонецОбласти
#Область Проведение
#КонецОбласти
#КонецОбласти
#КонецЕсли