#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Взаиморасчеты");
МеханизмыДокумента.Добавить("Закупки");
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("ПодарочныеСертификаты");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
МеханизмыДокумента.Добавить("ПриемНаОтветхранение");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("УчетДенежныхСредств");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетРабот");
МеханизмыДокумента.Добавить("ЦеныИСкидки");
ОтчетОРозничныхПродажахЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ОтчетОРозничныхПродажах") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаВыручкаИСебестоимостьПродаж(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРасчетыПоЭквайрингу(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДенежныеСредстваВКассахККМ(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияДенежныеСредстваКонтрагент(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаИсторияПодарочныхСертификатов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаПодарочныеСертификаты(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаБонусныеБаллы(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаУслугиКОформлениюОтчетовПринципалу(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДенежныеСредстваВПути(Запрос, ТекстыЗапроса, Регистры);
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры);
ОтчетОРозничныхПродажахЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ОформитьОтгрузкуВРозницу(Запрос, ТекстыЗапроса, Регистры);
ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
Возврат;
КонецПроцедуры
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ОтчетОРозничныхПродажахЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
КомандаСоздатьНаОсновании = Неопределено;
Если ПравоДоступа("Добавление", Метаданные.Документы.ОтчетОРозничныхПродажах) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ОтчетОРозничныхПродажах.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ОтчетОРозничныхПродажах);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьРозничныеПродажи";
КонецЕсли;
Возврат КомандаСоздатьНаОсновании;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Отчеты.ОстаткиТоваровОрганизаций.ДобавитьКомандуОтчета(КомандыОтчетов);
ОтчетОРозничныхПродажахЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
#Область Серии
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
ИменаРеквизитов = "Склад,Дата";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерий = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыСерийСклада = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Истина);
ПараметрыУказанияСерий.ПолноеИмяОбъекта = "Документ.ОтчетОРозничныхПродажах";
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПараметрыСерийСклада.ИспользоватьСерииНоменклатуры;
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ОтгрузкаВРозницу);
Если СкладыСервер.ИспользоватьСкладскиеПомещения(Объект.Склад) Тогда
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Помещение");
КонецЕсли;
ПараметрыУказанияСерий.ЭтоНакладная = Истина;
ПараметрыУказанияСерий.ПланированиеОтбора = Истина;
ПараметрыУказанияСерий.ФактОтбора = Истина;
ПараметрыУказанияСерий.Дата = Объект.Дата;
ПараметрыУказанияСерий.ОперацияДокумента = Перечисления.ХозяйственныеОперации.РеализацияВРозницу;
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ЕстьПомещения = (ПараметрыУказанияСерий.ПоляСвязи.Найти("Помещение") <> Неопределено);
Если ЕстьПомещения Тогда
Возврат ТекстЗапросаЗаполненияСтатусовУказанияСерийСПомещениями();
Иначе
Возврат ТекстЗапросаЗаполненияСтатусовУказанияСерийБезПомещений();
КонецЕсли;
КонецФункции
#КонецОбласти
#Область Прочее
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(КассаККМ)
| И ЗначениеРазрешено(Подразделение)
| И ЗначениеРазрешено(Склад)";
КонецПроцедуры
#КонецОбласти
Функция ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСПродажи();
ПараметрыЗаполнения.Организация = Объект.Организация;
ПараметрыЗаполнения.Дата = Объект.Дата;
ПараметрыЗаполнения.Склад = Объект.Склад;
ПараметрыЗаполнения.Подразделение = Объект.Подразделение;
ПараметрыЗаполнения.РозничнаяПродажа = Истина;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция КоллекцияТабличныхЧастейТоваров() Экспорт
ТаблицыДокумента = Новый Структура("Товары");
Возврат ТаблицыДокумента;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
СинонимТаблицыДокумента = "";
ПолноеИмяДокумента = "Документ.ОтчетОРозничныхПродажах";
ПереопределениеРасчетаПараметров = Новый Структура;
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("Партнер", "ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)");
ПереопределениеРасчетаПараметров.Вставить("Контрагент", "ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)");
ПереопределениеРасчетаПараметров.Вставить("Договор", "ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)");
ПереопределениеРасчетаПараметров.Вставить("НаправлениеДеятельности", "ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)");
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоДоговору", """""");
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ВЗапросеЕстьИсточник = Ложь;
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров);
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст = "ВЫБРАТЬ
| СУММА(ТаблицаДляРасчетаСуммыОплатыНаличными.Сумма) КАК СуммаОплатыНаличными,
| СУММА(ТаблицаДляРасчетаСуммыОплатыНаличными.СуммаНДС) КАК СуммаНДС
|ИЗ
| (ВЫБРАТЬ
| ТаблицаДокумента.СуммаДокумента КАК Сумма,
| 0 КАК СуммаНДС
| ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ТаблицаДокумента
| ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| -ТабличнаяЧасть.Сумма,
| 0
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТабличнаяЧасть
| ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ТабличнаяЧасть.СуммаНДС
| ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ТабличнаяЧасть
| ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| -ТабличнаяЧасть.Сумма,
| 0
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ПодарочныеСертификаты КАК ТабличнаяЧасть
| ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка) КАК ТаблицаДляРасчетаСуммыОплатыНаличными";
ТаблицаРезультата = Запрос.Выполнить().Выгрузить();
Запрос.УстановитьПараметр("СуммаОплатыНаличными", ТаблицаРезультата[0].СуммаОплатыНаличными);
Запрос.УстановитьПараметр("СуммаНДС", ТаблицаРезультата[0].СуммаНДС);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.КассаККМ.ТипКассы КАК ТипКассы,
| ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) КАК Партнер,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
| ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) КАК Договор,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВРозницу) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПоступлениеОплатыОтКлиента) КАК СтатьяДвиженияДенежныхСредств,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.Подразделение.ВариантОбособленногоУчетаТоваров КАК ВариантОбособленногоУчетаТоваров,
| ДанныеДокумента.Ответственный КАК Менеджер,
| ДанныеДокумента.Ответственный КАК Ответственный,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ДанныеДокумента.КассоваяСмена КАК КассоваяСмена,
| ДанныеДокумента.КассоваяСмена.Статус КАК СтатусКассовойСмены,
| ДанныеДокумента.КассоваяСмена.СтатусРегламентныхОпераций КАК СтатусРегламентныхОпераций,
| ДанныеДокумента.ОрганизацияЕГАИС КАК ОрганизацияЕГАИС,
| ДанныеДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.РеализацияВРозницу) КАК НастройкаХозяйственнойОперации,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Если Реквизиты.ТипКассы = Перечисления.ТипыКассККМ.ФискальныйРегистратор
И ЗначениеЗаполнено(Реквизиты.КассоваяСмена) Тогда
ПолноеПроведение = (Реквизиты.СтатусКассовойСмены = Перечисления.СтатусыКассовойСмены.Закрыта
И Реквизиты.СтатусРегламентныхОпераций = Перечисления.СтатусыРегламентныхОперацийКассовойСмены.СозданОтчетЧекиЗаархивированы);
Иначе
ПолноеПроведение = Истина;
КонецЕсли;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.УстановитьПараметр("ПолноеПроведение", ПолноеПроведение);
Запрос.УстановитьПараметр("ЦенаВключаетНДС", ?(Реквизиты.ЦенаВключаетНДС, 0, 1));
Запрос.УстановитьПараметр("ЦенаНеВключаетНДС", ?(Реквизиты.ЦенаВключаетНДС, -1, 0));
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Реквизиты.ВалютаРегламентированногоУчета);
Запрос.УстановитьПараметр("ВалютаУправленческогоУчета", Константы.ВалютаУправленческогоУчета.Получить());
Запрос.УстановитьПараметр("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета", ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
Запрос.УстановитьПараметр("ИспользоватьПродажуАгентскихУслуг", ПолучитьФункциональнуюОпцию("ИспользоватьПродажуАгентскихУслуг"));
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяУниверсальнаяДата());
Запрос.УстановитьПараметр("НаправлениеДеятельности", Справочники.НаправленияДеятельности.ПустаяСсылка());
Запрос.УстановитьПараметр("ВыводитьБазовыеЕдиницыИзмерения", Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить());
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипЗнч(ДокументСсылка)));
ИнформацияПоДоговору = Неопределено;
Запрос.УстановитьПараметр("ИнформацияПоДоговору", ИнформацияПоДоговору);
Запрос.УстановитьПараметр("НомерНаПечать", Реквизиты.Номер);
Запрос.УстановитьПараметр("ДатаПолногоПогашенияМногоразовыхПС", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ДатаНачалаРаботыМеханизмаБонусныхБаллов_2_5", Константы.ДатаНачалаРаботыМеханизмаБонусныхБаллов_2_5.Получить());
УчетПрослеживаемыхТоваровЛокализация.УстановитьПараметрыИспользованияУчетаПрослеживаемыхТоваров(Запрос);
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Функция ТекстЗапросаТаблицаРасчетыПоЭквайрингу(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РасчетыПоЭквайрингу";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтСтатьиДДС", ТекстыЗапроса) Тогда
ТекстЗапросаВтСтатьиДДС(ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаПлатежей.НомерСтроки КАК НомерСтроки,
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ЗНАЧЕНИЕ(Перечисление.ТипыДенежныхСредствПоЭквайрингу.ПоступлениеПоПлатежнойКарте) КАК ТипДенежныхСредств,
| &Организация КАК Организация,
| &Валюта КАК Валюта,
| ТаблицаПлатежей.ЭквайринговыйТерминал КАК ЭквайринговыйТерминал,
| ВЫБОР
| КОГДА НЕ ТаблицаПлатежей.ДоговорПодключения = ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения
| ИНАЧЕ ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец
| КОНЕЦ КАК Договор,
| ТаблицаПлатежей.КодАвторизации КАК КодАвторизации,
| ТаблицаПлатежей.НомерПлатежнойКарты КАК НомерПлатежнойКарты,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиентаПоПлатежнойКарте) КАК ХозяйственнаяОперация,
| &Период КАК ДатаПлатежа,
| ТаблицаПлатежей.Сумма КАК Сумма,
| СтатьиДДС.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТаблицаПлатежей
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСтатьиДДС КАК СтатьиДДС
| ПО ТаблицаПлатежей.НомерСтроки = СтатьиДДС.НомерСтроки
|
|ГДЕ
| &ПолноеПроведение
| И ТаблицаПлатежей.Ссылка = &Ссылка
| И ТаблицаПлатежей.Сумма > 0
| И ВЫБОР
| КОГДА ТаблицаПлатежей.ДоговорПодключения <> ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения.ДетальнаяСверкаТранзакций
| ИНАЧЕ ЕСТЬNULL(ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец.ДетальнаяСверкаТранзакций, ИСТИНА)
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаПлатежей.НомерСтроки КАК НомерСтроки,
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| ЗНАЧЕНИЕ(Перечисление.ТипыДенежныхСредствПоЭквайрингу.СписаниеПоПлатежнойКарте) КАК ТипДенежныхСредств,
| &Организация КАК Организация,
| &Валюта КАК Валюта,
| ТаблицаПлатежей.ЭквайринговыйТерминал КАК ЭквайринговыйТерминал,
| ВЫБОР
| КОГДА НЕ ТаблицаПлатежей.ДоговорПодключения = ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения
| ИНАЧЕ ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец
| КОНЕЦ КАК Договор,
| ТаблицаПлатежей.КодАвторизации КАК КодАвторизации,
| ТаблицаПлатежей.НомерПлатежнойКарты КАК НомерПлатежнойКарты,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиентуНаПлатежнуюКарту) КАК ХозяйственнаяОперация,
| &Период КАК ДатаПлатежа,
| -ТаблицаПлатежей.Сумма КАК Сумма,
| СтатьиДДС.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТаблицаПлатежей
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСтатьиДДС КАК СтатьиДДС
| ПО ТаблицаПлатежей.НомерСтроки = СтатьиДДС.НомерСтроки
|
|ГДЕ
| &ПолноеПроведение
| И ТаблицаПлатежей.Ссылка = &Ссылка
| И ТаблицаПлатежей.Сумма < 0
| И ВЫБОР
| КОГДА ТаблицаПлатежей.ДоговорПодключения <> ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения.ДетальнаяСверкаТранзакций
| ИНАЧЕ ЕСТЬNULL(ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец.ДетальнаяСверкаТранзакций, ИСТИНА)
| КОНЕЦ
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса = "
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Склад КАК Склад,
| &Организация КАК ОрганизацияОтгрузки,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.РеализацияЗапасовДругойОрганизации ТОГДА
| ТаблицаВидыЗапасов.ВидЗапасовВладельца.Организация
| ИНАЧЕ
| &Организация
| КОНЕЦ КАК Организация,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.РеализацияЗапасовДругойОрганизации ТОГДА
| ТаблицаВидыЗапасов.ВидЗапасовВладельца
| ИНАЧЕ
| ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
|
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ
| &НалогообложениеНДС
| КОНЕЦ КАК НалогообложениеНДС
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|УПОРЯДОЧИТЬ ПО
| ТаблицаВидыЗапасов.НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизацийКПередаче";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Склад КАК Склад,
| ТаблицаВидыЗапасов.ВидЗапасовВладельца.Организация КАК ОрганизацияВладелец,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасовПродавца,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.РеализацияЗапасовДругойОрганизации
|УПОРЯДОЧИТЬ ПО
| ТаблицаВидыЗапасов.НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыКОформлениюОтчетовКомитенту";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтКурсыВалют", ТекстыЗапроса) Тогда
ТекстЗапросаВтКурсыВалют(Запрос, ТекстыЗапроса);
КонецЕсли;
ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос);
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.АналитикаНоменклатурыКомитента КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| &Ссылка КАК ДокументРеализации,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.Валюта = &Валюта
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДС
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаСНДС * КурсыВалют.КоэффициентПересчета
| КОНЕЦ КАК СуммаВыручки,
| ВЫБОР КОГДА ЕСТЬNULL(ТаблицаВидыЗапасов.ВидЗапасов.Договор.ПереоцениватьТоварыУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДСРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВыручкиРегл,
| ВЫБОР КОГДА ЕСТЬNULL(ТаблицаВидыЗапасов.ВидЗапасов.Договор.ПереоцениватьТоварыУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВыручкиУпр,
| ТаблицаВидыЗапасов.Количество КАК КоличествоКОформлению,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоКОформлениюПоРНПТ,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.Валюта = &Валюта
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДС
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаСНДС * КурсыВалют.КоэффициентПересчета
| КОНЕЦ КАК СуммаВыручкиКОформлению,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсыВалют КАК КурсыВалют
| ПО ТаблицаВидыЗапасов.ВидЗапасов.Валюта = КурсыВалют.Валюта
|
|ГДЕ
| ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВыручкаИСебестоимостьПродаж(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ВыручкаИСебестоимостьПродаж";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтРаботыУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтРаботыУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос);
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| &Период КАК Период,
| &Подразделение КАК Подразделение,
| РегистрАналитикаУчетаПоПартнерам.КлючАналитики КАК АналитикаУчетаПоПартнерам,
| РегистрАналитикаУчетаПоПартнерам.НаправлениеДеятельности КАК НаправлениеДеятельностиКонтрагента,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ТаблицаВидыЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
|
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссию)
| КОГДА ТаблицаВидыЗапасов.ЦеховаяКладовая
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПроизводственныеЗатраты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
| КОНЕЦ КАК РазделУчета,
| ТаблицаВидыЗапасов.АналитикаФинансовогоУчета КАК АналитикаФинансовогоУчета,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
|
| ТаблицаВидыЗапасов.Продавец КАК Менеджер,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.СуммаСНДСУпр КАК СуммаВыручки,
|
| ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СуммаВыручкиБезНДС,
|
| ТаблицаВидыЗапасов.СуммаБезНДСРегл КАК СуммаВыручкиРегл,
|
| ТаблицаВидыЗапасов.СуммаСНДСРегл КАК СуммаВыручкиСНДСРегл,
|
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| ТаблицаВидыЗапасов.СуммаСНДСУпр
| ИНАЧЕ
| 0
| КОНЕЦ КАК Стоимость,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| ТаблицаВидыЗапасов.СуммаБезНДСУпр
| ИНАЧЕ
| 0
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И &УправленческийУчетОрганизаций ТОГДА
| ТаблицаВидыЗапасов.СуммаБезНДСУпр
| ИНАЧЕ
| 0
| КОНЕЦ КАК СтоимостьУпр,
|
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар) ТОГДА
| ТаблицаВидыЗапасов.СуммаБезНДСРегл
| ИНАЧЕ
| 0
| КОНЕЦ КАК СтоимостьРегл,
|
| ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаРучнойСкидки
| * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаРучнойСкидки,
|
| ТаблицаВидыЗапасов.Склад КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
|
| &Валюта КАК ВалютаВзаиморасчетов,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаВВалютеВзаиморасчетов,
| ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС КАК СуммаБезНДСВВалютеВзаиморасчетов,
|
| &Валюта КАК ВалютаДокумента,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаВВалютеДокумента,
| ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС КАК СуммаБезНДСВВалютеДокумента,
|
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК НалогообложениеНДС,
| (ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКомиссионногоТовара)
| ИНАЧЕ &ХозяйственнаяОперация КОНЕЦ) КАК ХозяйственнаяОперация,
|
| ТаблицаВидыЗапасов.Номенклатура КАК ИсточникГФУНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУРасчетов,
|
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
| ПО
| РегистрАналитикаУчетаПоПартнерам.Организация = &Организация
| И РегистрАналитикаУчетаПоПартнерам.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| И ТаблицаВидыЗапасов.Партнер = РегистрАналитикаУчетаПоПартнерам.Партнер
| И РегистрАналитикаУчетаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| И РегистрАналитикаУчетаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|
|ГДЕ
| ТаблицаВидыЗапасов.Количество <> 0
| И НЕ ТаблицаВидыЗапасов.ПрослеживаемаяРабота
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| &Период КАК Период,
| &Подразделение КАК Подразделение,
| РегистрАналитикаУчетаПоПартнерам.КлючАналитики КАК АналитикаУчетаПоПартнерам,
| РегистрАналитикаУчетаПоПартнерам.НаправлениеДеятельности КАК НаправлениеДеятельностиКонтрагента,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры,
| ТаблицаТовары.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ВЫБОР
| КОГДА ТаблицаТовары.Номенклатура.Принципал <> НЕОПРЕДЕЛЕНО
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.АгентскаяУслуга)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Услуга)
| КОНЕЦ КАК ТипЗапасов,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| (ВЫБОР
| КОГДА ТаблицаТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПроизводственныеЗатраты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПустаяСсылка) КОНЕЦ) КАК РазделУчета,
| ТаблицаТовары.АналитикаФинансовогоУчета КАК АналитикаФинансовогоУчета,
| ТаблицаТовары.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
|
| ТаблицаТовары.Продавец КАК Менеджер,
|
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаСНДСУпр КАК СуммаВыручки,
|
| ТаблицаТовары.СуммаБезНДСУпр КАК СуммаВыручкиБезНДС,
|
| ТаблицаТовары.СуммаБезНДСРегл КАК СуммаВыручкиРегл,
|
| ТаблицаТовары.СуммаСНДСРегл КАК СуммаВыручкиСНДСРегл,
|
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| ТОГДА
| ТаблицаТовары.СуммаСНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК Стоимость,
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| ТОГДА
| ТаблицаТовары.СуммаБезНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| И &УправленческийУчетОрганизаций
| ТОГДА
| ТаблицаТовары.СуммаБезНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьУпр,
|
| ВЫБОР
| КОГДА ТаблицаТовары.Принципал <> НЕОПРЕДЕЛЕНО
| ТОГДА
| ТаблицаТовары.СуммаБезНДСРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьРегл,
|
| ВЫРАЗИТЬ(ТаблицаТовары.СуммаРучнойСкидки
| * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаРучнойСкидки,
|
| &Склад КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
|
| &Валюта КАК ВалютаВзаиморасчетов,
| (ТаблицаТовары.Сумма + &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС) КАК СуммаВВалютеВзаиморасчетов,
| (ТаблицаТовары.Сумма + &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС) - ТаблицаТовары.СуммаНДС КАК СуммаБезНДСВВалютеВзаиморасчетов,
|
| &Валюта КАК ВалютаДокумента,
| (ТаблицаТовары.Сумма + &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС) КАК СуммаВВалютеДокумента,
| (ТаблицаТовары.Сумма + &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС) - ТаблицаТовары.СуммаНДС КАК СуммаБезНДСВВалютеДокумента,
|
| ТаблицаТовары.ВидДеятельностиНДС КАК НалогообложениеНДС,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК ИсточникГФУНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУРасчетов,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| ВтРаботыУслуги КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
| ПО
| РегистрАналитикаУчетаПоПартнерам.Организация = &Организация
| И РегистрАналитикаУчетаПоПартнерам.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| И ТаблицаТовары.Партнер = РегистрАналитикаУчетаПоПартнерам.Партнер
| И РегистрАналитикаУчетаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| И РегистрАналитикаУчетаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|ГДЕ
| ТаблицаТовары.Количество <> 0
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДенежныеСредстваВКассахККМ(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДенежныеСредстваВКассахККМ";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ДанныеДокумента.КассаККМ.Владелец КАК Организация,
| ДанныеДокумента.КассаККМ КАК КассаККМ,
| ЕСТЬNULL(Суммы.СуммаСНДС, 0) КАК Сумма,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаРегл,
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаУпр,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента) КАК ХозяйственнаяОперация,
| &СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
|
| ДанныеДокумента.ИдентификаторДокумента КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеОплатыОтКлиента) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО Суммы.Ссылка = &Ссылка
| И Суммы.ИдентификаторСтроки = ДанныеДокумента.ИдентификаторДокумента
|ГДЕ
| ЕСТЬNULL(Суммы.СуммаСНДС, 0) <> 0
| И ДанныеДокумента.Ссылка = &Ссылка
| И &ПолноеПроведение
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияСерийТоваров";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Количество КАК Количество,
| &Ссылка КАК Документ,
| &Склад КАК Отправитель,
| ТаблицаСерии.Помещение КАК ПомещениеОтправителя,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтгрузкаВРозницу) КАК СкладскаяОперация,
| &Период КАК Период,
| &Ссылка КАК Регистратор,
| ИСТИНА КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Серии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Количество <> 0
| И &ПолноеПроведение
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ТаблицаСерии.Серия,
| СУММА(ТаблицаСерии.Количество),
| &Ссылка,
| &Склад,
| ТаблицаСерии.Помещение,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтгрузкаВРозницу),
| &Период,
| &Ссылка,
| ИСТИНА
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И &ПолноеПроведение
|СГРУППИРОВАТЬ ПО
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Помещение
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВРозницу) КАК ХозяйственнаяОперация,
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Договор КАК Договор,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Склад КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Ответственный КАК Ответственный,
| &Ответственный КАК Автор,
| &Комментарий КАК Комментарий,
| &Валюта КАК Валюта,
| &СуммаДокумента КАК Сумма,
| Неопределено КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| &ИнформацияПоДоговору КАК Дополнительно,
| &Период КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| &Период КАК ДатаОтраженияВУчете";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено) Экспорт
ТекстЗапросаДанных = "
|ВЫБРАТЬ
| ""Оплата"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
|
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Дата КАК Дата,
| ТаблицаДокумента.Валюта КАК ВалютаДокумента,
| ТаблицаДокумента.Организация КАК Организация,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| НЕОПРЕДЕЛЕНО КАК ПериодБазыНДС,
| ТаблицаДокумента.Дата КАК ДатаКурса,
|
| 0 КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторДокумента КАК ИдентификаторСтроки,
|
| &СуммаОплатыНаличными КАК СуммаБезНДС,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| 0 КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ТаблицаДокумента
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Оплата"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
|
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| НЕОПРЕДЕЛЕНО КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.Сумма КАК СуммаБезНДС,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| 0 КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""ТоварыРаботыУслуги"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
|
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| ТаблицаДокумента.Ссылка.Дата КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС КАК СуммаБезНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаДокумента
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""ТоварыРаботыУслуги"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
|
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| ТаблицаДокумента.Ссылка.Дата КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.Сумма
| - ВЫБОР
| КОГДА ТаблицаДокумента.Ссылка.ЦенаВключаетНДС
| ТОГДА ТаблицаДокумента.СуммаНДС
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаБезНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ТаблицаДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаЗапасов
| ПО ТаблицаДокумента.Ссылка = ТаблицаЗапасов.Ссылка
| И ТаблицаДокумента.АналитикаУчетаНоменклатуры = ТаблицаЗапасов.АналитикаУчетаНоменклатуры
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаЗапасов.Ссылка ЕСТЬ NULL
| И ТаблицаДокумента.Номенклатура.ТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Оплата"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
|
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| НЕОПРЕДЕЛЕНО КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.Сумма КАК СуммаБезНДС,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| 0 КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ПодарочныеСертификаты КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|";
РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(
Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных);
КонецПроцедуры
Функция ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "МатериалыИРаботыВПроизводстве";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтРаботыУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтРаботыУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Период КАК ДатаРегистратора,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.Количество КАК Количество,
| &НалогообложениеНДС КАК НалогообложениеНДС
|ИЗ
| ВтРаботыУслуги КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТаблицаТовары.Номенклатура.ПрослеживаемыйТовар
|
|УПОРЯДОЧИТЬ ПО
| ТаблицаТовары.НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтПодарочныеСертификатыБезОбъектаРасчетов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтПодарочныеСертификатыБезОбъектаРасчетов";
Если Не Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Коэффициенты = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Запрос.Параметры.Валюта, Запрос.Параметры.Валюта, Запрос.Параметры.Период, Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ПодарочныеСертификаты.ПодарочныйСертификат КАК ПодарочныйСертификат,
| ЕСТЬNULL(ОбъектыРасчетов.Ссылка, ЗНАЧЕНИЕ(Справочник.ОбъектыРасчетов.ПустаяСсылка)) КАК ОбъектРасчетов,
| СправочникПодарочныеСертификаты.Владелец.УчетПодарочныхСертификатов2_5 КАК УчетПодарочныхСертификатов2_5,
| СправочникПодарочныеСертификаты.Владелец.ЧастичнаяОплата КАК ЧастичнаяОплата,
| ПодарочныеСертификаты.СуммаВВалютеСертификата КАК Сумма,
| ПодарочныеСертификаты.Сумма * &КоэффициентПересчетаВВалютуРегл КАК СуммаРегл,
| ПодарочныеСертификаты.ИдентификаторСтроки КАК ИдентификаторСтроки
|ПОМЕСТИТЬ ВтПодарочныеСертификатыБезОбъектаРасчетов
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ПодарочныеСертификаты КАК ПодарочныеСертификаты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодарочныеСертификаты КАК СправочникПодарочныеСертификаты
| ПО СправочникПодарочныеСертификаты.Ссылка = ПодарочныеСертификаты.ПодарочныйСертификат
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбъектыРасчетов КАК ОбъектыРасчетов
| ПО (ОбъектыРасчетов.Объект = ПодарочныеСертификаты.ПодарочныйСертификат)
|
|ГДЕ
| ПодарочныеСертификаты.Ссылка = &Ссылка
| И СправочникПодарочныеСертификаты.Владелец.УчетПодарочныхСертификатов2_5 = ЛОЖЬ
| И &ПолноеПроведение
|
|ИНДЕКСИРОВАТЬ ПО
| ПодарочныйСертификат
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтПодарочныеСертификатыОстатки(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтПодарочныеСертификатыОстатки";
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПодарочныеСертификатыБезОбъектаРасчетов", ТекстыЗапроса) Тогда
ТекстЗапросаВтПодарочныеСертификатыБезОбъектаРасчетов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ПодарочныеСертификатыОстатки.ПодарочныйСертификат КАК ПодарочныйСертификат,
| СУММА(ПодарочныеСертификатыОстатки.Сумма) КАК Сумма
|ПОМЕСТИТЬ ВтПодарочныеСертификатыОстатки
|ИЗ
| (ВЫБРАТЬ
| ПодарочныеСертификатыОстатки.ПодарочныйСертификат КАК ПодарочныйСертификат,
| ПодарочныеСертификатыОстатки.СуммаОстаток КАК Сумма
| ИЗ
| РегистрНакопления.ПодарочныеСертификаты.Остатки(
| ,
| ПодарочныйСертификат В
| (ВЫБРАТЬ
| ПодарочныеСертификаты.ПодарочныйСертификат
| ИЗ
| ВтПодарочныеСертификатыБезОбъектаРасчетов КАК ПодарочныеСертификаты)) КАК ПодарочныеСертификатыОстатки
| ГДЕ
| &ПолноеПроведение
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ПодарочныеСертификатыДвижения.ПодарочныйСертификат,
| -ПодарочныеСертификатыДвижения.Сумма
| ИЗ
| РегистрНакопления.ПодарочныеСертификаты КАК ПодарочныеСертификатыДвижения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПодарочныеСертификатыБезОбъектаРасчетов КАК ПодарочныеСертификаты
| ПО ПодарочныеСертификатыДвижения.ПодарочныйСертификат = ПодарочныеСертификаты.ПодарочныйСертификат
| ГДЕ
| ПодарочныеСертификатыДвижения.Регистратор = &Ссылка
| И &ПолноеПроведение) КАК ПодарочныеСертификатыОстатки
|
|СГРУППИРОВАТЬ ПО
| ПодарочныеСертификатыОстатки.ПодарочныйСертификат
|
|ИНДЕКСИРОВАТЬ ПО
| ПодарочныйСертификат";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаИсторияПодарочныхСертификатов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ИсторияПодарочныхСертификатов";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПодарочныеСертификатыОстатки", ТекстыЗапроса) Тогда
ТекстЗапросаВтПодарочныеСертификатыОстатки(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА ТабличнаяЧасть.ЧастичнаяОплата
| И ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.Сумма, 0) < 0
| ТОГДА -ЕСТЬNULL(Остатки.Сумма, 0)
| ИНАЧЕ ЕСТЬNULL(Остатки.Сумма, 0)
| КОНЕЦ - ТабличнаяЧасть.Сумма = 0
| ТОГДА &ДатаПолногоПогашенияМногоразовыхПС
| ИНАЧЕ &Период
| КОНЕЦ КАК Период,
| ТабличнаяЧасть.ПодарочныйСертификат КАК ПодарочныйСертификат,
| ВЫБОР
| КОГДА ТабличнаяЧасть.ЧастичнаяОплата
| И ВЫБОР
| КОГДА ЕСТЬNULL(Остатки.Сумма, 0) < 0
| ТОГДА -ЕСТЬNULL(Остатки.Сумма, 0)
| ИНАЧЕ ЕСТЬNULL(Остатки.Сумма, 0)
| КОНЕЦ - ТабличнаяЧасть.Сумма <> 0
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыПодарочныхСертификатов.ЧастичноПогашен)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтатусыПодарочныхСертификатов.ПолностьюПогашен)
| КОНЕЦ КАК Статус
|ИЗ
| ВтПодарочныеСертификатыБезОбъектаРасчетов КАК ТабличнаяЧасть
| ЛЕВОЕ СОЕДИНЕНИЕ ВтПодарочныеСертификатыОстатки КАК Остатки
| ПО (Остатки.ПодарочныйСертификат = ТабличнаяЧасть.ПодарочныйСертификат)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаПодарочныеСертификаты(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПодарочныеСертификаты";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПодарочныеСертификатыБезОбъектаРасчетов", ТекстыЗапроса) Тогда
ТекстЗапросаВтПодарочныеСертификатыБезОбъектаРасчетов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| ТабличнаяЧасть.ПодарочныйСертификат КАК ПодарочныйСертификат,
| ТабличнаяЧасть.Сумма КАК Сумма,
| ТабличнаяЧасть.СуммаРегл КАК СуммаРегл,
| ТабличнаяЧасть.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТабличнаяЧасть.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтПодарочныеСертификатыБезОбъектаРасчетов КАК ТабличнаяЧасть
|ГДЕ
| &ПолноеПроведение
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаБонусныеБаллы(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "БонусныеБаллы";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтБонусныеБаллы", ТекстыЗапроса) Тогда
ТекстЗапросаВтБонусныеБаллы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| БонусныеБаллы.Период КАК Период,
| БонусныеБаллы.ДатаНачалаДействия КАК ДатаНачалаДействия,
| БонусныеБаллы.ДатаКОбработке КАК ДатаКОбработке,
| БонусныеБаллы.ВидДвижения КАК ВидДвижения,
| БонусныеБаллы.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| БонусныеБаллы.Партнер КАК Партнер,
| СУММА(БонусныеБаллы.Начислено) КАК Начислено,
| СУММА(БонусныеБаллы.КСписанию) КАК КСписанию
|ИЗ
| ВтБонусныеБаллы КАК БонусныеБаллы
|
|СГРУППИРОВАТЬ ПО
| БонусныеБаллы.БонуснаяПрограммаЛояльности,
| БонусныеБаллы.Партнер,
| БонусныеБаллы.ДатаНачалаДействия,
| БонусныеБаллы.ДатаКОбработке,
| БонусныеБаллы.Период,
| БонусныеБаллы.ВидДвижения
|ИМЕЮЩИЕ
| СУММА(БонусныеБаллы.Начислено) <> 0 ИЛИ
| СУММА(БонусныеБаллы.КСписанию) <> 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаУслугиКОформлениюОтчетовПринципалу(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "УслугиКОформлениюОтчетовПринципалу";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтРаботыУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтРаботыУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| КОформлению.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| КОформлению.АналитикаНоменклатурыПринципала КАК АналитикаУчетаНоменклатуры,
| КОформлению.Соглашение КАК Соглашение,
| КОформлению.Валюта КАК Валюта,
| КОформлению.Количество КАК Количество,
| КОформлению.СуммаСНДС
| * КурсыВалют.КоэффициентПересчета КАК СуммаВыручки,
| КОформлению.СуммаНДС
| * КурсыВалют.КоэффициентПересчета КАК СуммаНДС,
|
| ВЫБОР
| КОГДА ЕСТЬNULL(КОформлению.Соглашение.ПереоцениватьУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА КОформлению.СуммаСНДСРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВыручкиРегл,
| ВЫБОР
| КОГДА ЕСТЬNULL(КОформлению.Соглашение.ПереоцениватьУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА КОформлению.СуммаСНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаВыручкиУпр,
|
| &Ссылка КАК ДокументРеализации,
| КОформлению.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| КОформлению.ИдентификаторСтроки КАК ИдентификаторСтроки
|ИЗ
| ВтРаботыУслуги КАК КОформлению
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсыВалют КАК КурсыВалют
| ПО КОформлению.Валюта = КурсыВалют.Валюта
|ГДЕ
| КОформлению.АналитикаНоменклатурыПринципала <> НЕОПРЕДЕЛЕНО
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияДенежныеСредстваКонтрагент(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияДенежныеСредстваКонтрагент";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтСтатьиДДС", ТекстыЗапроса) Тогда
ТекстЗапросаВтСтатьиДДС(ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтСуммыНДСВРазрезеСтатейДДС", , Запрос.МенеджерВременныхТаблиц) Тогда
СоздатьВтСуммыНДСВРазрезеСтатейДДС(Запрос);
КонецЕсли;
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ТекстЗапроса = "
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ДанныеДокумента.КассаККМ КАК ДенежныеСредства,
| Значение(Перечисление.ТипыДенежныхСредств.Наличные) КАК ТипДенежныхСредств,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПоступлениеОплатыОтКлиента) КАК СтатьяДвиженияДенежныхСредств,
| ДанныеДокумента.Валюта КАК ВалютаПлатежа,
|
| Значение(Справочник.Партнеры.РозничныйПокупатель) КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| НЕОПРЕДЕЛЕНО КАК РасчетныйДокумент,
|
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаОплаты,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаОплатыРегл,
| ЕСТЬNULL(Суммы.СуммаСНДС, 0) КАК СуммаОплатыВВалютеПлатежа,
|
| 0 КАК СуммаПостоплаты,
| 0 КАК СуммаПостоплатыРегл,
| 0 КАК СуммаПостоплатыВВалютеПлатежа,
|
| 0 КАК СуммаПредоплаты,
| 0 КАК СуммаПредоплатыРегл,
| 0 КАК СуммаПредоплатыВВалютеПлатежа,
|
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСВВалютеПлатежа,
|
| ДанныеДокумента.Валюта КАК ВалютаВзаиморасчетов,
|
| ЕСТЬNULL(Суммы.СуммаСНДС, 0) КАК СуммаОплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПостоплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПредоплатыВВалютеВзаиморасчетов,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУРасчетов,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО Суммы.Ссылка = &Ссылка
| И Суммы.ИдентификаторСтроки = ДанныеДокумента.ИдентификаторДокумента
|ГДЕ
| ЕСТЬNULL(Суммы.СуммаСНДС, 0) <> 0
| И ДанныеДокумента.Ссылка = &Ссылка
| И &ПолноеПроведение
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиентаПоПлатежнойКарте) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ТаблицаОплатаПлатежнымиКартами.ЭквайринговыйТерминал.Владелец КАК ДенежныеСредства,
| Значение(Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУЭквайера) КАК ТипДенежныхСредств,
| СтатьиДДС.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ДанныеДокумента.Валюта КАК ВалютаПлатежа,
|
| Значение(Справочник.Партнеры.РозничныйПокупатель) КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| НЕОПРЕДЕЛЕНО КАК РасчетныйДокумент,
|
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаОплаты,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаОплатыРегл,
| ТаблицаОплатаПлатежнымиКартами.Сумма КАК СуммаОплатыВВалютеПлатежа,
|
| 0 КАК СуммаПостоплаты,
| 0 КАК СуммаПостоплатыРегл,
| 0 КАК СуммаПостоплатыВВалютеПлатежа,
|
| 0 КАК СуммаПредоплаты,
| 0 КАК СуммаПредоплатыРегл,
| 0 КАК СуммаПредоплатыВВалютеПлатежа,
|
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСВВалютеПлатежа,
|
| ДанныеДокумента.Валюта КАК ВалютаВзаиморасчетов,
|
| ТаблицаОплатаПлатежнымиКартами.Сумма КАК СуммаОплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПостоплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПредоплатыВВалютеВзаиморасчетов,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУРасчетов,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТаблицаОплатаПлатежнымиКартами
| ПО
| ДанныеДокумента.Ссылка = ТаблицаОплатаПлатежнымиКартами.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО Суммы.Ссылка = &Ссылка
| И Суммы.ИдентификаторСтроки = ТаблицаОплатаПлатежнымиКартами.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСтатьиДДС КАК СтатьиДДС
| ПО ТаблицаОплатаПлатежнымиКартами.НомерСтроки = СтатьиДДС.НомерСтроки
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И &ПолноеПроведение
| И ТаблицаОплатаПлатежнымиКартами.Сумма > 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиентуНаПлатежнуюКарту) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ТаблицаОплатаПлатежнымиКартами.ЭквайринговыйТерминал.Владелец КАК ДенежныеСредства,
| Значение(Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУЭквайера) КАК ТипДенежныхСредств,
| СтатьиДДС.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ДанныеДокумента.Валюта КАК ВалютаПлатежа,
|
| Значение(Справочник.Партнеры.РозничныйПокупатель) КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| НЕОПРЕДЕЛЕНО КАК РасчетныйДокумент,
|
| ЕСТЬNULL(-Суммы.СуммаСНДСУпр, 0) КАК СуммаОплаты,
| ЕСТЬNULL(-Суммы.СуммаСНДСРегл, 0) КАК СуммаОплатыРегл,
| -ТаблицаОплатаПлатежнымиКартами.Сумма КАК СуммаОплатыВВалютеПлатежа,
|
| 0 КАК СуммаПостоплаты,
| 0 КАК СуммаПостоплатыРегл,
| 0 КАК СуммаПостоплатыВВалютеПлатежа,
|
| 0 КАК СуммаПредоплаты,
| 0 КАК СуммаПредоплатыРегл,
| 0 КАК СуммаПредоплатыВВалютеПлатежа,
|
| 0 КАК СуммаНДС,
| 0 КАК СуммаНДСРегл,
| 0 КАК СуммаНДСВВалютеПлатежа,
|
| ДанныеДокумента.Валюта КАК ВалютаВзаиморасчетов,
|
| -ТаблицаОплатаПлатежнымиКартами.Сумма КАК СуммаОплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПостоплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПредоплатыВВалютеВзаиморасчетов,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУРасчетов,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДанныеДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТаблицаОплатаПлатежнымиКартами
| ПО
| ДанныеДокумента.Ссылка = ТаблицаОплатаПлатежнымиКартами.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО Суммы.Ссылка = &Ссылка
| И Суммы.ИдентификаторСтроки = ТаблицаОплатаПлатежнымиКартами.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСтатьиДДС КАК СтатьиДДС
| ПО ТаблицаОплатаПлатежнымиКартами.НомерСтроки = СтатьиДДС.НомерСтроки
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И &ПолноеПроведение
| И ТаблицаОплатаПлатежнымиКартами.Сумма < 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ДанныеДокумента.КассаККМ КАК ДенежныеСредства,
| ЕСТЬNULL(ТаблицаТовары.ТипДенежныхСредств, Значение(Перечисление.ТипыДенежныхСредств.Наличные)) КАК ТипДенежныхСредств,
| ТаблицаТовары.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ДанныеДокумента.Валюта КАК ВалютаПлатежа,
|
| Значение(Справочник.Партнеры.РозничныйПокупатель) КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| НЕОПРЕДЕЛЕНО КАК РасчетныйДокумент,
|
| 0 КАК СуммаОплаты,
| 0 КАК СуммаОплатыРегл,
| 0 КАК СуммаОплатыВВалютеПлатежа,
|
| 0 КАК СуммаПостоплаты,
| 0 КАК СуммаПостоплатыРегл,
| 0 КАК СуммаПостоплатыВВалютеПлатежа,
|
| 0 КАК СуммаПредоплаты,
| 0 КАК СуммаПредоплатыРегл,
| 0 КАК СуммаПредоплатыВВалютеПлатежа,
|
| СУММА(ТаблицаТовары.СуммаНДСУПР) КАК СуммаНДС,
| СУММА(ТаблицаТовары.СуммаНДСРегл) КАК СуммаНДСРегл,
| СУММА(ТаблицаТовары.СуммаНДС) КАК СуммаНДСВВалютеПлатежа,
|
| ДанныеДокумента.Валюта КАК ВалютаВзаиморасчетов,
|
| 0 КАК СуммаОплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПостоплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПредоплатыВВалютеВзаиморасчетов,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУРасчетов,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыНДСВРазрезеСтатейДДС КАК ТаблицаТовары
| ПО ТаблицаТовары.ВидыЗапасов
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И &ПолноеПроведение
| И Не ТаблицаТовары.СтавкаНДС Есть NULL
|
|СГРУППИРОВАТЬ ПО
| ДанныеДокумента.Дата,
| ДанныеДокумента.Организация,
| ДанныеДокумента.Подразделение,
| ДанныеДокумента.КассаККМ,
| ДанныеДокумента.Валюта,
| ТаблицаТовары.СтавкаНДС,
| ТаблицаТовары.СтатьяДвиженияДенежныхСредств,
| ЕСТЬNULL(ТаблицаТовары.ТипДенежныхСредств, Значение(Перечисление.ТипыДенежныхСредств.Наличные))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
|
| ДанныеДокумента.КассаККМ КАК ДенежныеСредства,
| ЕСТЬNULL(ТаблицаТовары.ТипДенежныхСредств, Значение(Перечисление.ТипыДенежныхСредств.Наличные)) КАК ТипДенежныхСредств,
| ТаблицаТовары.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ДанныеДокумента.Валюта КАК ВалютаПлатежа,
|
| Значение(Справочник.Партнеры.РозничныйПокупатель) КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| НЕОПРЕДЕЛЕНО КАК РасчетныйДокумент,
|
| 0 КАК СуммаОплаты,
| 0 КАК СуммаОплатыРегл,
| 0 КАК СуммаОплатыВВалютеПлатежа,
|
| 0 КАК СуммаПостоплаты,
| 0 КАК СуммаПостоплатыРегл,
| 0 КАК СуммаПостоплатыВВалютеПлатежа,
|
| 0 КАК СуммаПредоплаты,
| 0 КАК СуммаПредоплатыРегл,
| 0 КАК СуммаПредоплатыВВалютеПлатежа,
|
| СУММА(ТаблицаТовары.СуммаНДСУПР) КАК СуммаНДС,
| СУММА(ТаблицаТовары.СуммаНДСРегл) КАК СуммаНДСРегл,
| СУММА(ТаблицаТовары.СуммаНДС) КАК СуммаНДСВВалютеПлатежа,
|
| ДанныеДокумента.Валюта КАК ВалютаВзаиморасчетов,
|
| 0 КАК СуммаОплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПостоплатыВВалютеВзаиморасчетов,
| 0 КАК СуммаПредоплатыВВалютеВзаиморасчетов,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУДенежныхСредств,
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУРасчетов,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыНДСВРазрезеСтатейДДС КАК ТаблицаТовары
| ПО НЕ ТаблицаТовары.ВидыЗапасов
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И &ПолноеПроведение
| И Не ТаблицаТовары.СтавкаНДС Есть NULL
|
|СГРУППИРОВАТЬ ПО
| ДанныеДокумента.Дата,
| ДанныеДокумента.Организация,
| ДанныеДокумента.Подразделение,
| ДанныеДокумента.КассаККМ,
| ДанныеДокумента.Валюта,
| ТаблицаТовары.СтавкаНДС,
| ТаблицаТовары.СтатьяДвиженияДенежныхСредств,
| ЕСТЬNULL(ТаблицаТовары.ТипДенежныхСредств, Значение(Перечисление.ТипыДенежныхСредств.Наличные))
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаДвиженияКонтрагентКонтрагент(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияКонтрагентКонтрагент";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка.Дата КАК Период,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПодарочнымСертификатом) КАК ХозяйственнаяОперация,
| ДанныеДокумента.Ссылка.Организация КАК Организация,
| ДанныеДокумента.Ссылка.Подразделение КАК Подразделение,
|
| Значение(Справочник.Партнеры.РозничныйПокупатель) КАК Партнер,
| НЕОПРЕДЕЛЕНО КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| ПодарочныйСертификат КАК ОбъектРасчетов,
|
| Значение(Справочник.Партнеры.РозничныйПокупатель) КАК КорПартнер,
| НЕОПРЕДЕЛЕНО КАК КорКонтрагент,
| НЕОПРЕДЕЛЕНО КАК КорДоговор,
| НЕОПРЕДЕЛЕНО КАК КорНаправлениеДеятельности,
| ПодарочныйСертификат КАК КорОбъектРасчетов,
|
| ЗНАЧЕНИЕ(Перечисление.ТипыСуммЗадолженности.ДолгКлиента) КАК ТипСуммы,
| ЗНАЧЕНИЕ(Перечисление.ТипыСуммЗадолженности.АвансПолученный) КАК КорТипСуммы,
|
| ДанныеДокумента.Сумма КАК Сумма,
| 0 КАК СуммаБезНДС,
| ДанныеДокумента.Сумма КАК СуммаРегл,
| 0 КАК СуммаРеглБезНДС,
|
| ДанныеДокумента.Ссылка.Валюта КАК Валюта,
| ДанныеДокумента.Сумма КАК СуммаВВалюте,
| 0 КАК СуммаБезНДСВВалюте,
|
| ДанныеДокумента.Ссылка.Валюта КАК ВалютаВзаиморасчетов,
| ДанныеДокумента.Сумма КАК СуммаВВалютеВзаиморасчетов,
| 0 КАК СуммаБезНДСВВалютеВзаиморасчетов,
|
| ДанныеДокумента.Ссылка.Валюта КАК КорВалютаВзаиморасчетов,
| ДанныеДокумента.Сумма КАК КорСуммаВВалютеВзаиморасчетов,
| 0 КАК КорСуммаБезНДСВВалютеВзаиморасчетов,
|
| НЕОПРЕДЕЛЕНО КАК ИсточникГФУРасчетов,
| НЕОПРЕДЕЛЕНО КАК КорИсточникГФУРасчетов
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ПодарочныеСертификаты КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДенежныеСредстваВПути(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДенежныеСредстваВПути";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтСтатьиДДС", ТекстыЗапроса) Тогда
ТекстЗапросаВтСтатьиДДС(ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаПлатежей.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
|
| &Организация КАК Организация,
| ВЫБОР
| КОГДА НЕ ТаблицаПлатежей.ДоговорПодключения = ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения.БанковскийСчет
| ИНАЧЕ ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец.БанковскийСчет
| КОНЕЦ КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.ПоступлениеОтБанкаПоЭквайрингу) КАК ВидПереводаДенежныхСредств,
| ВЫБОР
| КОГДА НЕ ТаблицаПлатежей.ДоговорПодключения = ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения.Контрагент
| ИНАЧЕ ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец.Контрагент
| КОНЕЦ КАК Контрагент,
| ВЫБОР
| КОГДА НЕ ТаблицаПлатежей.ДоговорПодключения = ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения
| ИНАЧЕ ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец
| КОНЕЦ КАК Договор,
| НЕОПРЕДЕЛЕНО КАК ПлатежныйДокумент,
| &Валюта КАК Валюта,
|
| ЕСТЬNULL(Суммы.СуммаСНДС, 0) КАК Сумма,
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаУпр,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаРегл,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиентаПоПлатежнойКарте) КАК ХозяйственнаяОперация,
| СтатьиДДС.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
|
| ТаблицаПлатежей.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеОплатыОтКлиентаПоПлатежнойКарте) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТаблицаПлатежей
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО Суммы.Ссылка = &Ссылка
| И Суммы.ИдентификаторСтроки = ТаблицаПлатежей.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСтатьиДДС КАК СтатьиДДС
| ПО ТаблицаПлатежей.НомерСтроки = СтатьиДДС.НомерСтроки
|
|ГДЕ
| &ПолноеПроведение
| И ТаблицаПлатежей.Ссылка = &Ссылка
| И ТаблицаПлатежей.Сумма > 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаПлатежей.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
|
| &Организация КАК Организация,
| ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец.БанковскийСчет КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.ВидыПереводовДенежныхСредств.ПоступлениеОтБанкаПоЭквайрингу) КАК ВидПереводаДенежныхСредств,
| ВЫБОР
| КОГДА НЕ ТаблицаПлатежей.ДоговорПодключения = ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения.Контрагент
| ИНАЧЕ ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец.Контрагент
| КОНЕЦ КАК Контрагент,
| ВЫБОР
| КОГДА НЕ ТаблицаПлатежей.ДоговорПодключения = ЗНАЧЕНИЕ(Справочник.ДоговорыЭквайринга.ПустаяСсылка)
| ТОГДА ТаблицаПлатежей.ДоговорПодключения
| ИНАЧЕ ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец
| КОНЕЦ КАК Договор,
| НЕОПРЕДЕЛЕНО КАК ПлатежныйДокумент,
| &Валюта КАК Валюта,
|
| ЕСТЬNULL(-Суммы.СуммаСНДС, 0) КАК Сумма,
| ЕСТЬNULL(-Суммы.СуммаСНДСУпр, 0) КАК СуммаУпр,
| ЕСТЬNULL(-Суммы.СуммаСНДСРегл, 0) КАК СуммаРегл,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиентуНаПлатежнуюКарту) КАК ХозяйственнаяОперация,
| СтатьиДДС.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
|
| ТаблицаПлатежей.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВозвратОплатыКлиентуНаПлатежнуюКарту) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТаблицаПлатежей
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО Суммы.Ссылка = &Ссылка
| И Суммы.ИдентификаторСтроки = ТаблицаПлатежей.ИдентификаторСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСтатьиДДС КАК СтатьиДДС
| ПО ТаблицаПлатежей.НомерСтроки = СтатьиДДС.НомерСтроки
|
|ГДЕ
| &ПолноеПроведение
| И ТаблицаПлатежей.Ссылка = &Ссылка
| И ТаблицаПлатежей.Сумма < 0
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтСтатьиДДС(ТекстыЗапроса)
ИмяРегистра = "ВтСтатьиДДС";
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаПлатежей.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА НЕ ЕСТЬNULL(СведенияОДоговоре.СтатьяДвиженияДенежныхСредствПоступлениеОплаты,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка))
| = ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка)
|
| ТОГДА СведенияОДоговоре.СтатьяДвиженияДенежныхСредствПоступлениеОплаты
|
| КОГДА НЕ ЕСТЬNULL(СведенияОДоговореНаТерминал.СтатьяДвиженияДенежныхСредствПоступлениеОплаты,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка))
| = ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка)
|
| ТОГДА СведенияОДоговореНаТерминал.СтатьяДвиженияДенежныхСредствПоступлениеОплаты
|
| ИНАЧЕ &СтатьяДвиженияДенежныхСредств
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств
|ПОМЕСТИТЬ ВтСтатьиДДС
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТаблицаПлатежей
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыЭквайринга КАК СведенияОДоговоре
| ПО ТаблицаПлатежей.ДоговорПодключения = СведенияОДоговоре.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыЭквайринга КАК СведенияОДоговореНаТерминал
| ПО ТаблицаПлатежей.ЭквайринговыйТерминал.Владелец = СведенияОДоговореНаТерминал.Ссылка
|ГДЕ
| ТаблицаПлатежей.Ссылка = &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстыЗапроса;
КонецФункции
Функция ТекстЗапросаСуммаПлатежнымиКартамиВРазрезеСтатейДДС()
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА ЕСТЬNULL(ДоговорыЭквайринга.СтатьяДвиженияДенежныхСредствПоступлениеОплаты,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка))
| = ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка)
|
| ТОГДА ЕСТЬNULL(СведенияОДоговореНаТерминал.СтатьяДвиженияДенежныхСредствПоступлениеОплаты,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПоступлениеОплатыОтКлиента))
|
| ИНАЧЕ ДоговорыЭквайринга.СтатьяДвиженияДенежныхСредствПоступлениеОплаты
| КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
| СУММА(ТабличнаяЧасть.Сумма) КАК Сумма
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ТабличнаяЧасть
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыЭквайринга КАК ДоговорыЭквайринга
| ПО ТабличнаяЧасть.ДоговорПодключения = ДоговорыЭквайринга.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыЭквайринга КАК СведенияОДоговореНаТерминал
| ПО ТабличнаяЧасть.ЭквайринговыйТерминал.Владелец = СведенияОДоговореНаТерминал.Ссылка
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ЕСТЬNULL(ДоговорыЭквайринга.СтатьяДвиженияДенежныхСредствПоступлениеОплаты,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка))
| = ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПустаяСсылка)
|
| ТОГДА ЕСТЬNULL(СведенияОДоговореНаТерминал.СтатьяДвиженияДенежныхСредствПоступлениеОплаты,
| ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.ПоступлениеОплатыОтКлиента))
|
| ИНАЧЕ ДоговорыЭквайринга.СтатьяДвиженияДенежныхСредствПоступлениеОплаты
| КОНЕЦ";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаСведенияОбОплатеБезналичными()
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА СУММА(СуммыДокумента.ОбщаяСумма) = 0
| ТОГДА 0
| ИНАЧЕ СУММА(СуммыДокумента.СуммаБезналичных) / СУММА(СуммыДокумента.ОбщаяСумма)
| КОНЕЦ КАК КоэффициентОплатыБезналичными,
| СУММА(СуммыДокумента.СуммаБезналичных) КАК СуммаБезналичных
|ИЗ
| (ВЫБРАТЬ
| ОплатаПлатежнымиКартами.Сумма КАК СуммаБезналичных,
| 0 КАК ОбщаяСумма
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОплатаПлатежнымиКартами
| ГДЕ
| ОплатаПлатежнымиКартами.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ОтчетОРозничныхПродажахТовары.Сумма
| ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
| ГДЕ
| ОтчетОРозничныхПродажахТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ЕстьNULL(ОтчетОРозничныхПродажахТовары.СуммаНДС,0)
| ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
| ПО ДанныеДокумента.Ссылка = ОтчетОРозничныхПродажахТовары.Ссылка
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И НЕ ДанныеДокумента.ЦенаВключаетНДС) КАК СуммыДокумента";
Возврат ТекстЗапроса;
КонецФункции
Процедура СоздатьВтСуммыНДСВРазрезеСтатейДДС(Запрос)
ТекстЗапросаСтавкиНДС =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА ТаблицаТовары.СтавкаНДС.Ставка > 0
| И ТаблицаТовары.СтавкаНДС.РасчетнаяСтавка = ИСТИНА
| ТОГДА ТаблицаТовары.СтавкаНДС.СоответствующаяБазоваяСтавка
| ИНАЧЕ ТаблицаТовары.СтавкаНДС
| КОНЕЦ КАК СтавкаНДС,
| СУММА(ТаблицаТовары.СуммаНДС) КАК СуммаНДС,
| СУММА(ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0)) - СУММА(ЕСТЬNULL(Суммы.СуммаБезНДСУпр, 0)) КАК СуммаНДСУпр,
| СУММА(ЕСТЬNULL(Суммы.СуммаНДСРегл, 0)) КАК СуммаНДСРегл,
| ЛОЖЬ КАК ВидыЗапасов
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО ТаблицаТовары.Ссылка = Суммы.Ссылка
| И ТаблицаТовары.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.СтавкаНДС.Ставка > 0
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| )
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ТаблицаТовары.СтавкаНДС.Ставка > 0
| И ТаблицаТовары.СтавкаНДС.РасчетнаяСтавка = ИСТИНА
| ТОГДА ТаблицаТовары.СтавкаНДС.СоответствующаяБазоваяСтавка
| ИНАЧЕ ТаблицаТовары.СтавкаНДС
| КОНЕЦ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ТаблицаТовары.СтавкаНДС.Ставка > 0
| И ТаблицаТовары.СтавкаНДС.РасчетнаяСтавка = ИСТИНА
| ТОГДА ТаблицаТовары.СтавкаНДС.СоответствующаяБазоваяСтавка
| ИНАЧЕ ТаблицаТовары.СтавкаНДС
| КОНЕЦ,
| СУММА(ТаблицаТовары.СуммаНДС),
| СУММА(ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0)) - СУММА(ЕСТЬNULL(Суммы.СуммаБезНДСУпр, 0)),
| СУММА(ЕСТЬNULL(Суммы.СуммаНДСРегл, 0)),
| ИСТИНА
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО ТаблицаТовары.Ссылка = Суммы.Ссылка
| И ТаблицаТовары.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.СтавкаНДС.Ставка > 0
| И НЕ ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ТаблицаТовары.СтавкаНДС.Ставка > 0
| И ТаблицаТовары.СтавкаНДС.РасчетнаяСтавка = ИСТИНА
| ТОГДА ТаблицаТовары.СтавкаНДС.СоответствующаяБазоваяСтавка
| ИНАЧЕ ТаблицаТовары.СтавкаНДС
| КОНЕЦ";
ТекстыЗапросов = Новый Массив;
ТекстыЗапросов.Добавить(ТекстЗапросаСведенияОбОплатеБезналичными());
ТекстыЗапросов.Добавить(ТекстЗапросаСтавкиНДС);
ТекстыЗапросов.Добавить(ТекстЗапросаСуммаПлатежнымиКартамиВРазрезеСтатейДДС());
Запрос.Текст = СтрСоединить(ТекстыЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
ДанныеДляРаспределения = Запрос.ВыполнитьПакет();
ВыборкаБезналичные = ДанныеДляРаспределения[0].Выбрать();
ОписаниеКоэффициентаБезналичныхДС = Новый Структура("КоэффициентОплатыБезналичными,СуммаБезналичных",0,0);
Если ВыборкаБезналичные.Следующий() Тогда
ЗаполнитьЗначенияСвойств(ОписаниеКоэффициентаБезналичныхДС, ВыборкаБезналичные);
КонецЕсли;
СуммыНДС = ДанныеДляРаспределения[1].Выгрузить();
СтатьиДДС = ДанныеДляРаспределения[2].Выгрузить();
ТаблицаДляРаспределения = СтатьиДДС.СкопироватьКолонки();
ТаблицаДляРаспределения.Колонки.Добавить("СтавкаНДС", СуммыНДС.Колонки.СтавкаНДС.ТипЗначения);
ТаблицаДляРаспределения.Колонки.Добавить("СуммаУПР", СуммыНДС.Колонки.СуммаНДС.ТипЗначения);
ТаблицаДляРаспределения.Колонки.Добавить("СуммаРЕГЛ", СуммыНДС.Колонки.СуммаНДС.ТипЗначения);
ТаблицаДляРаспределения.Колонки.Добавить("ВидыЗапасов", СуммыНДС.Колонки.ВидыЗапасов.ТипЗначения);
ТаблицаДляРаспределения.Колонки.Добавить("ТипДенежныхСредств",
Новый ОписаниеТипов("ПеречислениеСсылка.ТипыДенежныхСредств"));
СтрокиКУдалению = Новый Массив;
Для Каждого СтрокаСуммНДС Из СуммыНДС Цикл
РаспределяемаяСуммаБезналичных = СтрокаСуммНДС.СуммаНДС;
РаспределяемаяСуммаБезналичныхУпр = СтрокаСуммНДС.СуммаНДСУпр;
РаспределяемаяСуммаБезналичныхРегл = СтрокаСуммНДС.СуммаНДСРегл;
Для Каждого СтрокаСтатейДДС Из СтатьиДДС Цикл
Если ОписаниеКоэффициентаБезналичныхДС.СуммаБезналичных <> 0 Тогда
СтрокаБезналичных = ТаблицаДляРаспределения.Добавить();
СтрокаБезналичных.СтавкаНДС = СтрокаСуммНДС.СтавкаНДС;
СтрокаБезналичных.ВидыЗапасов = СтрокаСуммНДС.ВидыЗапасов;
СтрокаБезналичных.СтатьяДвиженияДенежныхСредств = СтрокаСтатейДДС.СтатьяДвиженияДенежныхСредств;
СтрокаБезналичных.ТипДенежныхСредств =
ПредопределенноеЗначение("Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУЭквайера");
СтрокаБезналичных.Сумма = СтрокаСуммНДС.СуммаНДС *
ОписаниеКоэффициентаБезналичныхДС.КоэффициентОплатыБезналичными *
(СтрокаСтатейДДС.Сумма / ОписаниеКоэффициентаБезналичныхДС.СуммаБезналичных);
РаспределяемаяСуммаБезналичных = РаспределяемаяСуммаБезналичных - СтрокаБезналичных.Сумма;
СтрокаБезналичных.СуммаУпр = СтрокаСуммНДС.СуммаНДСУпр *
ОписаниеКоэффициентаБезналичныхДС.КоэффициентОплатыБезналичными *
(СтрокаСтатейДДС.Сумма / ОписаниеКоэффициентаБезналичныхДС.СуммаБезналичных);
РаспределяемаяСуммаБезналичныхУпр = РаспределяемаяСуммаБезналичныхУпр - СтрокаБезналичных.СуммаУпр;
СтрокаБезналичных.СуммаРегл = СтрокаСуммНДС.СуммаНДСРегл *
ОписаниеКоэффициентаБезналичныхДС.КоэффициентОплатыБезналичными *
(СтрокаСтатейДДС.Сумма / ОписаниеКоэффициентаБезналичныхДС.СуммаБезналичных);
РаспределяемаяСуммаБезналичныхРегл = РаспределяемаяСуммаБезналичныхРегл - СтрокаБезналичных.СуммаРегл;
Если СтрокаБезналичных.Сумма = 0 И
СтрокаБезналичных.СуммаУпр = 0 И
СтрокаБезналичных.СуммаРегл = 0 Тогда
СтрокиКУдалению.Добавить(СтрокаБезналичных);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если РаспределяемаяСуммаБезналичных <> 0 ИЛИ
РаспределяемаяСуммаБезналичныхУпр <> 0 ИЛИ
РаспределяемаяСуммаБезналичныхРегл <> 0 Тогда
Если ОписаниеКоэффициентаБезналичныхДС.КоэффициентОплатыБезналичными = 1 Тогда
СтрокаБезналичных = ТаблицаДляРаспределения.Добавить();
СтрокаБезналичных.СтавкаНДС = СтрокаСуммНДС.СтавкаНДС;
СтрокаБезналичных.ВидыЗапасов = СтрокаСуммНДС.ВидыЗапасов;
СтрокаБезналичных.СтатьяДвиженияДенежныхСредств = СтрокаСтатейДДС.СтатьяДвиженияДенежныхСредств;
СтрокаБезналичных.ТипДенежныхСредств =
ПредопределенноеЗначение("Перечисление.ТипыДенежныхСредств.ДенежныеСредстваУЭквайера");
СтрокаБезналичных.Сумма = РаспределяемаяСуммаБезналичных;
СтрокаБезналичных.СуммаУпр = РаспределяемаяСуммаБезналичныхУпр;
СтрокаБезналичных.СуммаРегл = РаспределяемаяСуммаБезналичныхРегл;
Если СтрокаБезналичных.Сумма = 0 И
СтрокаБезналичных.СуммаУпр = 0 И
СтрокаБезналичных.СуммаРегл = 0 Тогда
СтрокиКУдалению.Добавить(СтрокаБезналичных);
КонецЕсли;
Иначе
СтрокаНаличных = ТаблицаДляРаспределения.Добавить();
СтрокаНаличных.СтавкаНДС = СтрокаСуммНДС.СтавкаНДС;
СтрокаНаличных.ВидыЗапасов = СтрокаСуммНДС.ВидыЗапасов;
СтрокаНаличных.СтатьяДвиженияДенежныхСредств =
ПредопределенноеЗначение("Справочник.СтатьиДвиженияДенежныхСредств.ПоступлениеОплатыОтКлиента");
СтрокаНаличных.ТипДенежныхСредств =
ПредопределенноеЗначение("Перечисление.ТипыДенежныхСредств.Наличные");
СтрокаНаличных.Сумма = РаспределяемаяСуммаБезналичных;
СтрокаНаличных.СуммаУпр = РаспределяемаяСуммаБезналичныхУпр;
СтрокаНаличных.СуммаРегл = РаспределяемаяСуммаБезналичныхРегл;
Если СтрокаНаличных.Сумма = 0 И
СтрокаНаличных.СуммаУпр = 0 И
СтрокаНаличных.СуммаРегл = 0 Тогда
СтрокиКУдалению.Добавить(СтрокаНаличных);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
ТаблицаДляРаспределения.Удалить(СтрокаКУдалению);
КонецЦикла;
ТаблицаДляРаспределения.Свернуть("СтавкаНДС,СтатьяДвиженияДенежныхСредств,ВидыЗапасов,ТипДенежныхСредств",
"Сумма,СуммаУпр,СуммаРегл");
Запрос.УстановитьПараметр("ТаблицаДляРаспределения", ТаблицаДляРаспределения);
Запрос.Текст =
"ВЫБРАТЬ
| РаспределенныеДанные.ВидыЗапасов КАК ВидыЗапасов,
| РаспределенныеДанные.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| РаспределенныеДанные.ТипДенежныхСредств КАК ТипДенежныхСредств,
| РаспределенныеДанные.СтавкаНДС КАК СтавкаНДС,
| РаспределенныеДанные.Сумма КАК СуммаНДС,
| РаспределенныеДанные.СуммаУпр КАК СуммаНДСУпр,
| РаспределенныеДанные.СуммаРегл КАК СуммаНДСРегл
|ПОМЕСТИТЬ ВтСуммыНДСВРазрезеСтатейДДС
|ИЗ
| &ТаблицаДляРаспределения КАК РаспределенныеДанные";
Запрос.Выполнить();
КонецПроцедуры
Функция ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтВидыЗапасов";
УстановитьПараметрЗапросаТипыНалогообложенияНДСОблагаемые(Запрос);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ТаблицаВидыЗапасов.ВидЗапасов.РеализацияЗапасовДругойОрганизации КАК РеализацияЗапасовДругойОрганизации,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца КАК ВидЗапасовВладельца,
| ТаблицаВидыЗапасов.ВидЗапасов.Валюта КАК Валюта,
| ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаВидыЗапасов.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| АналитикаКомитента.КлючАналитики КАК АналитикаНоменклатурыКомитента,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаСНДС,
| ТаблицаВидыЗапасов.СуммаНДС КАК СуммаНДС,
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаСНДСУпр,
| ЕСТЬNULL(Суммы.СуммаБезНДСУпр, 0) КАК СуммаБезНДСУпр,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаСНДСРегл,
| ЕСТЬNULL(Суммы.СуммаБезНДСРегл, 0) КАК СуммаБезНДСРегл,
| ЕСТЬNULL(Суммы.СуммаНДСРегл, 0) КАК СуммаНДСРегл,
| ТаблицаВидыЗапасов.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| ТаблицаВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ТаблицаВидыЗапасов.Продавец КАК Продавец,
| ТаблицаВидыЗапасов.Партнер КАК Партнер,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.СкладскаяТерритория.ЦеховаяКладовая КАК ЦеховаяКладовая,
| (ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоМенеджерамПодразделения)
| ТОГДА &Ответственный
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоПодразделению)
| ТОГДА &Подразделение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК АналитикаФинансовогоУчета,
| (ВЫБОР
| КОГДА ТаблицаВидыЗапасов.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС В (&ТипыНалогообложенияНДСОблагаемые)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ) КАК ВидДеятельностиНДС,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПрослеживаемаяРабота
|
|ПОМЕСТИТЬ ВтВидыЗапасов
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.ВидыЗапасов КАК ВидыЗапасовКомитентов
| ПО
| ТаблицаВидыЗапасов.ВидЗапасов = ВидыЗапасовКомитентов.Ссылка
| И ВидыЗапасовКомитентов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.ВидыЗапасов КАК ВидыЗапасовВладельцев
| ПО
| ВидыЗапасовКомитентов.ВидЗапасовВладельца = ВидыЗапасовВладельцев.Ссылка
| И ВидыЗапасовВладельцев.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаКомитента
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаКомитента.Номенклатура
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика = АналитикаКомитента.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаКомитента.Назначение
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = АналитикаКомитента.Серия
| И ТаблицаВидыЗапасов.ВидЗапасов.ВладелецТовара = АналитикаКомитента.МестоХранения
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО ТаблицаВидыЗапасов.Ссылка = Суммы.Ссылка
| И ТаблицаВидыЗапасов.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтАгентскиеУслуги(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтАгентскиеУслуги";
ТекстЗапроса = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВЫБОР КОГДА НЕ Услуги.Ссылка ЕСТЬ NULL
| ТОГДА Услуги.Ссылка
| КОГДА НЕ Соглашение.Ссылка ЕСТЬ NULL
| ТОГДА Соглашение.Ссылка
| КОГДА НЕ УслугиСоглашениеЗакрытое.Ссылка ЕСТЬ NULL
| ТОГДА УслугиСоглашениеЗакрытое.Ссылка
| ИНАЧЕ ЕСТЬNULL(СоглашениеЗакрытое.Ссылка, НЕОПРЕДЕЛЕНО)
| КОНЕЦ КАК Соглашение,
| ВЫБОР КОГДА НЕ Услуги.Ссылка ЕСТЬ NULL
| ТОГДА Услуги.Ссылка.Валюта
| КОГДА НЕ Соглашение.Ссылка ЕСТЬ NULL
| ТОГДА Соглашение.Валюта
| КОГДА НЕ УслугиСоглашениеЗакрытое.Ссылка ЕСТЬ NULL
| ТОГДА УслугиСоглашениеЗакрытое.Ссылка.Валюта
| ИНАЧЕ ЕСТЬNULL(СоглашениеЗакрытое.Валюта, &Валюта)
| КОНЕЦ КАК Валюта,
| КОформлению.Номенклатура КАК Номенклатура,
| КОформлению.Характеристика КАК Характеристика,
| ЕСТЬNULL(КОформлению.Характеристика.Принципал, КОформлению.Номенклатура.Принципал) КАК Принципал
|ПОМЕСТИТЬ ВтАгентскиеУслуги
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК КОформлению
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками КАК Соглашение
| ПО Соглашение.Партнер = ЕСТЬNULL(КОформлению.Характеристика.Принципал, КОформлению.Номенклатура.Принципал)
| И Соглашение.Организация = &Организация
| И Соглашение.ХозяйственнаяОперация
| = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг)
| И Соглашение.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует)
| И (&Период >= Соглашение.ДатаНачалаДействия
| И (&Период <= Соглашение.ДатаОкончанияДействия
| ИЛИ Соглашение.ДатаОкончанияДействия = ДАТАВРЕМЯ(1,1,1))
| )
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками.АгентскиеУслуги КАК Услуги
| ПО Соглашение.Ссылка = Услуги.Ссылка
| И КОформлению.Номенклатура = Услуги.Номенклатура
| И КОформлению.Характеристика = Услуги.Характеристика
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками КАК СоглашениеЗакрытое
| ПО СоглашениеЗакрытое.Партнер = ЕСТЬNULL(КОформлению.Характеристика.Принципал, КОформлению.Номенклатура.Принципал)
| И СоглашениеЗакрытое.Организация = &Организация
| И СоглашениеЗакрытое.ХозяйственнаяОперация
| = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг)
| И СоглашениеЗакрытое.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Закрыто)
| И (&Период >= СоглашениеЗакрытое.ДатаНачалаДействия
| И (&Период <= СоглашениеЗакрытое.ДатаОкончанияДействия
| ИЛИ СоглашениеЗакрытое.ДатаОкончанияДействия = ДАТАВРЕМЯ(1,1,1))
| )
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками.АгентскиеУслуги КАК УслугиСоглашениеЗакрытое
| ПО СоглашениеЗакрытое.Ссылка = УслугиСоглашениеЗакрытое.Ссылка
| И КОформлению.Номенклатура = УслугиСоглашениеЗакрытое.Номенклатура
| И КОформлению.Характеристика = УслугиСоглашениеЗакрытое.Характеристика
|ГДЕ
| КОформлению.Ссылка = &Ссылка
| И КОформлению.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
| И ЕСТЬNULL(КОформлению.Характеристика.Принципал, КОформлению.Номенклатура.Принципал) <> &Организация
| И ЕСТЬNULL(КОформлению.Характеристика.Принципал, КОформлению.Номенклатура.Принципал) <> НЕОПРЕДЕЛЕНО
| И &ИспользоватьПродажуАгентскихУслуг
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтРаботыУслуги(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтРаботыУслуги";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтАгентскиеУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтАгентскиеУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос);
УстановитьПараметрЗапросаТипыНалогообложенияНДСОблагаемые(Запрос);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаТовары.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ТаблицаТовары.Продавец КАК Продавец,
| ТаблицаТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Партнер КАК Партнер,
| ТаблицаТовары.Количество КАК Количество,
| (ТаблицаТовары.Сумма
| + &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС) КАК СуммаСНДС,
| ТаблицаТовары.СуммаНДС КАК СуммаНДС,
| ТаблицаТовары.Сумма КАК Сумма,
| ТаблицаТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
|
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаСНДСУпр,
| ЕСТЬNULL(Суммы.СуммаБезНДСУпр, 0) КАК СуммаБезНДСУпр,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаСНДСРегл,
| ЕСТЬNULL(Суммы.СуммаБезНДСРегл, 0) КАК СуммаБезНДСРегл,
| ЕСТЬNULL(Суммы.СуммаНДСРегл, 0) КАК СуммаНДСРегл,
|
| АгентскиеУслуги.Соглашение КАК Соглашение,
| АгентскиеУслуги.Валюта КАК Валюта,
| ЕСТЬNULL(КлючиПринципала.КлючАналитики, НЕОПРЕДЕЛЕНО) КАК АналитикаНоменклатурыПринципала,
| ЕСТЬNULL(АгентскиеУслуги.Принципал, НЕОПРЕДЕЛЕНО) КАК Принципал,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| (ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоМенеджерамПодразделения)
| ТОГДА &Ответственный
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоПодразделению)
| ТОГДА &Подразделение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК АналитикаФинансовогоУчета,
| (ВЫБОР
| КОГДА ТаблицаТовары.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС В (&ТипыНалогообложенияНДСОблагаемые)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ) КАК ВидДеятельностиНДС,
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС,
|
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки
|
|ПОМЕСТИТЬ ВтРаботыУслуги
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ВтАгентскиеУслуги КАК АгентскиеУслуги
| ПО ТаблицаТовары.Номенклатура = АгентскиеУслуги.Номенклатура
| И ТаблицаТовары.Характеристика = АгентскиеУслуги.Характеристика
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиПринципала
| ПО КлючиПринципала.Номенклатура = АгентскиеУслуги.Номенклатура
| И КлючиПринципала.Характеристика = АгентскиеУслуги.Характеристика
| И КлючиПринципала.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И КлючиПринципала.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И КлючиПринципала.МестоХранения = АгентскиеУслуги.Принципал
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО ТаблицаТовары.Ссылка = Суммы.Ссылка
| И ТаблицаТовары.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| )
| И ТаблицаТовары.АналитикаУчетаНоменклатуры НЕ В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВидыЗапасов.АналитикаУчетаНоменклатуры
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ВидыЗапасов
| ГДЕ
| ВидыЗапасов.Ссылка = &Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаДокумента.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ТаблицаДокумента.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| ТаблицаДокумента.Продавец КАК Продавец,
| Аналитика.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Характеристика КАК Характеристика,
| ТаблицаДокумента.Партнер КАК Партнер,
|
| ТаблицаДокумента.Количество КАК Количество,
| ТаблицаДокумента.СуммаСНДС КАК СуммаСНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| (ТаблицаДокумента.СуммаСНДС - &ЦенаВключаетНДС * ТаблицаДокумента.СуммаНДС) КАК Сумма,
| ТаблицаДокумента.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
|
| ЕСТЬNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаСНДСУпр,
| ЕСТЬNULL(Суммы.СуммаБезНДСУпр, 0) КАК СуммаБезНДСУпр,
| ЕСТЬNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаСНДСРегл,
| ЕСТЬNULL(Суммы.СуммаБезНДСРегл, 0) КАК СуммаБезНДСРегл,
| ЕСТЬNULL(Суммы.СуммаНДСРегл, 0) КАК СуммаНДСРегл,
|
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| НЕОПРЕДЕЛЕНО КАК Валюта,
| НЕОПРЕДЕЛЕНО КАК АналитикаНоменклатурыПринципала,
| НЕОПРЕДЕЛЕНО КАК Принципал,
| ТаблицаДокумента.ВидЗапасов КАК ВидЗапасов,
| (ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоМенеджерамПодразделения)
| ТОГДА &Ответственный
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоПодразделению)
| ТОГДА &Подразделение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК АналитикаФинансовогоУчета,
| (ВЫБОР
| КОГДА ТаблицаДокумента.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И &НалогообложениеНДС В (&ТипыНалогообложенияНДСОблагаемые)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ &НалогообложениеНДС
| КОНЕЦ) КАК ВидДеятельностиНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
|
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаДокумента.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО ТаблицаДокумента.Ссылка = Суммы.Ссылка
| И ТаблицаДокумента.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
| И Аналитика.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура УстановитьПараметрЗапросаТипыНалогообложенияНДСОблагаемые(Запрос) Экспорт
Если Запрос.Параметры.Свойство("ТипыНалогообложенияНДСОблагаемые") Тогда
Возврат;
КонецЕсли;
Запрос.УстановитьПараметр("ТипыНалогообложенияНДСОблагаемые", УчетНДСУП.ВидыДеятельностиНДСПринимаетсяКВозмещению());
КонецПроцедуры
Функция ТекстЗапросаВтБонусныеБаллы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтБонусныеБаллы";
ТекстЗапроса = "ВЫБРАТЬ
| ТабличнаяЧасть.ДатаНачисления КАК Период,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(ТабличнаяЧасть.ДатаСписания,
| ДЕНЬ) >= НАЧАЛОПЕРИОДА(&ДатаНачалаРаботыМеханизмаБонусныхБаллов_2_5, ДЕНЬ)
| ТОГДА ТабличнаяЧасть.ДатаНачисления
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ КАК ДатаНачалаДействия,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(ТабличнаяЧасть.ДатаСписания,
| ДЕНЬ) >= НАЧАЛОПЕРИОДА(&ДатаНачалаРаботыМеханизмаБонусныхБаллов_2_5, ДЕНЬ)
| ТОГДА &ТекущаяДата
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ КАК ДатаКОбработке,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| КОНЕЦ КАК ВидДвижения,
| ТабличнаяЧасть.Партнер КАК Партнер,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ТабличнаяЧасть.СуммаБонусныхБаллов
| ИНАЧЕ -ТабличнаяЧасть.СуммаБонусныхБаллов
| КОНЕЦ КАК Начислено,
| 0 КАК КСписанию
|ПОМЕСТИТЬ ВтБонусныеБаллы
|ИЗ
| Документ.ОтчетОРозничныхПродажах.НачислениеБонусныхБаллов КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
| И &ПолноеПроведение
| И ТабличнаяЧасть.ДатаНачисления <> ДАТАВРЕМЯ(1, 1, 1)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТабличнаяЧасть.ДатаСписания,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(ТабличнаяЧасть.ДатаСписания,
| ДЕНЬ) >= НАЧАЛОПЕРИОДА(&ДатаНачалаРаботыМеханизмаБонусныхБаллов_2_5, ДЕНЬ)
| ТОГДА ТабличнаяЧасть.ДатаНачисления
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(ТабличнаяЧасть.ДатаСписания,
| ДЕНЬ) >= НАЧАЛОПЕРИОДА(&ДатаНачалаРаботыМеханизмаБонусныхБаллов_2_5, ДЕНЬ)
| ТОГДА &ТекущаяДата
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| КОНЕЦ,
| ТабличнаяЧасть.Партнер,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности,
| 0,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ТабличнаяЧасть.СуммаБонусныхБаллов
| ИНАЧЕ -ТабличнаяЧасть.СуммаБонусныхБаллов
| КОНЕЦ
|ИЗ
| Документ.ОтчетОРозничныхПродажах.НачислениеБонусныхБаллов КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
| И &ПолноеПроведение
| И ТабличнаяЧасть.ДатаСписания <> ДАТАВРЕМЯ(1, 1, 1)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТабличнаяЧасть.ДатаОплаты,
| ДатаВремя(1, 1, 1),
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(ТабличнаяЧасть.ДатаОплаты, ДЕНЬ) >= НАЧАЛОПЕРИОДА(&ДатаНачалаРаботыМеханизмаБонусныхБаллов_2_5,
| ДЕНЬ)
| ТОГДА &ТекущаяДата
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| КОНЕЦ,
| ТабличнаяЧасть.Партнер,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ТабличнаяЧасть.СуммаБонусныхБаллов
| ИНАЧЕ -ТабличнаяЧасть.СуммаБонусныхБаллов
| КОНЕЦ,
| ВЫБОР
| КОГДА НАЧАЛОПЕРИОДА(ТабличнаяЧасть.ДатаОплаты, ДЕНЬ) >= НАЧАЛОПЕРИОДА(&ДатаНачалаРаботыМеханизмаБонусныхБаллов_2_5,
| ДЕНЬ)
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ТабличнаяЧасть.СуммаБонусныхБаллов
| ИНАЧЕ -ТабличнаяЧасть.СуммаБонусныхБаллов
| КОНЕЦ
| КОНЕЦ
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаБонуснымиБаллами КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
| И &ПолноеПроведение";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтСуммаБонусныеБаллы(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтСуммаБонусныеБаллы";
ТекстЗапроса = "
|ВЫБРАТЬ
| СУММА(ТабличнаяЧасть.СуммаБонусныхБаллов) КАК Сумма
|ПОМЕСТИТЬ ВтСуммаБонусныеБаллы
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ОплатаБонуснымиБаллами КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры)
#Область КурсыВалютДокумента
ИмяРегистра = "ВременнаяТаблицаКурсыВалютДокумента";
ТекстЗапросаКурсыВалютДокумента =
"ВЫБРАТЬ
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ПодарочныеСертификаты КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
ТекстЗапросаКурсыВалютДокумента = ВзаиморасчетыСервер.ПолучитьТаблицуКурсовВалютНаправленийДеятельности(ТекстЗапросаКурсыВалютДокумента);
ТекстыЗапроса.Добавить(ТекстЗапросаКурсыВалютДокумента, ИмяРегистра);
#КонецОбласти
#Область Продажа
ТекстПродажа = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Ссылка.Организация КАК Организация,
| Таблица.ОбъектРасчетов.Партнер КАК Партнер,
|
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| Таблица.Ссылка.Дата КАК ДатаПлатежа,
| НЕОПРЕДЕЛЕНО КАК ЗаказПродажи,
| ЛОЖЬ КАК НакладнаяПоЗаказам,
|
| Таблица.Сумма КАК СуммаВзаиморасчетов,
| 0 КАК СуммаВзаиморасчетовПоТаре,
| Таблица.Сумма КАК Сумма,
|
| Таблица.Ссылка.ПорядокРасчетов КАК ПорядокРасчетов,
| Таблица.Ссылка.Дата КАК ДатаРегистратора,
| Таблица.Ссылка.Номер КАК НомерРегистратора,
| Таблица.Ссылка.Валюта КАК ВалютаВзаиморасчетов,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВРозницу) КАК ХозяйственнаяОперация,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| Таблица.Ссылка.Дата КАК ДатаКурса,
| Таблица.Ссылка.Валюта КАК ВалютаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыКлиентом.КредитПослеОтгрузки) КАК ВариантОплаты,
| ЛОЖЬ КАК СверхЗаказа,
| НЕОПРЕДЕЛЕНО КАК СвязанныйДокумент
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ПодарочныеСертификаты КАК Таблица
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
| И НЕ Таблица.ОбъектРасчетов = ЗНАЧЕНИЕ(Справочник.ОбъектыРасчетов.ПустаяСсылка)
| И &ПолноеПроведение";
#КонецОбласти
#Область УвеличениеПланаОплат
ТекстПланированиеОплат = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Ссылка.Организация КАК Организация,
| Таблица.ОбъектРасчетов.Партнер КАК Партнер,
|
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| Таблица.Ссылка.Дата КАК ДатаРегистратора,
| Таблица.Ссылка.Номер КАК НомерРегистратора,
| Таблица.Ссылка.ПорядокРасчетов КАК ПорядокРасчетов,
| Таблица.Ссылка.Валюта КАК ВалютаВзаиморасчетов,
| Таблица.Ссылка.Валюта КАК ВалютаДокумента,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВРозницу) КАК ХозяйственнаяОперация,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| Таблица.Ссылка.ФормаОплаты КАК ФормаОплаты,
|
| Таблица.Ссылка.Дата КАК ДатаПлатежа,
| ЗНАЧЕНИЕ(Перечисление.ВариантыКонтроляОплатыКлиентом.КредитПослеОтгрузки) КАК ВариантОплаты,
| Таблица.Сумма КАК КОплате,
|
| ИСТИНА КАК ИсключатьПриКонтроле,
| ЛОЖЬ КАК НакладнаяПоЗаказам,
| ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка) КАК ЗаказПродажи,
| ЛОЖЬ КАК СверхЗаказа,
| НЕОПРЕДЕЛЕНО КАК СвязанныйДокумент
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ПодарочныеСертификаты КАК Таблица
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
| И НЕ Таблица.ОбъектРасчетов = ЗНАЧЕНИЕ(Справочник.ОбъектыРасчетов.ПустаяСсылка)
| И &ПолноеПроведение";
#КонецОбласти
#Область ЗачетАванса
ТекстЗачетАванса = "";
#КонецОбласти
ВзаиморасчетыСервер.ПроведениеПродажи(Запрос, ТекстыЗапроса, Регистры, ТекстПродажа, ТекстПланированиеОплат, ТекстЗачетАванса);
КонецПроцедуры
Функция ТекстЗапросаВтСуммаКомиссионныхТоваровАгентскихУслуг(Запрос, ТекстыЗапроса) Экспорт
ИмяРегистра = "ВтСуммаКомиссионныхТоваровАгентскихУслуг";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтРаботыУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтРаботыУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| СУММА(ВложенныйЗапрос.СуммаСНДС) КАК Сумма,
| СУММА(ВложенныйЗапрос.СуммаНДС) КАК СуммаНДС
|ПОМЕСТИТЬ ВтСуммаКомиссионныхТоваровАгентскихУслуг
|ИЗ
| (
| ВЫБРАТЬ
| СУММА(ВтРаботыУслуги.СуммаСНДС) КАК СуммаСНДС,
| СУММА(ВтРаботыУслуги.СуммаНДС) КАК СуммаНДС
| ИЗ ВтРаботыУслуги КАК ВтРаботыУслуги
| ГДЕ ВтРаботыУслуги.Принципал <> НЕОПРЕДЕЛЕНО
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| СУММА(ВтВидыЗапасов.СуммаСНДС) КАК СуммаСНДС,
| СУММА(ВтВидыЗапасов.СуммаНДСРегл) КАК СуммаНДС
| ИЗ ВтВидыЗапасов КАК ВтВидыЗапасов
| ГДЕ ВтВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ) КАК ВложенныйЗапрос
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтКурсыВалют(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтКурсыВалют";
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтАгентскиеУслуги", ТекстыЗапроса) Тогда
ТекстЗапросаВтАгентскиеУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| КурсыВалют.Валюта КАК Валюта,
|
| (КурсВалютыДокумента.КурсЧислитель * КурсыВалют.КурсЗнаменатель)
| / (КурсВалютыДокумента.КурсЗнаменатель * КурсыВалют.КурсЧислитель) КАК КоэффициентПересчета
|
|ПОМЕСТИТЬ ВтКурсыВалют
|ИЗ
| РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период,
| Валюта В (
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаВидыЗапасов.ВидЗапасов.Валюта КАК Валюта
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца.Валюта КАК Валюта
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И ТаблицаВидыЗапасов.ВидЗапасов.ВидЗапасовВладельца.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| АгентскиеУслуги.Валюта КАК Валюта
| ИЗ
| ВтАгентскиеУслуги КАК АгентскиеУслуги
| ) И БазоваяВалюта = &ВалютаРегламентированногоУчета
| ) КАК КурсыВалют
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период, Валюта = &Валюта И БазоваяВалюта = &ВалютаРегламентированногоУчета) КАК КурсВалютыДокумента
| ПО
| ИСТИНА
|
|ГДЕ
| КурсВалютыДокумента.КурсЗнаменатель <> 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУпр")
И Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(Запрос.Параметры.Валюта,
Запрос.Параметры.Валюта,
Запрос.Параметры.Период,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр", Коэффициенты.КоэффициентПересчетаВВалютуУПР);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос)
Если Запрос.Параметры.Свойство("АналитикаУчетаПоПартнерам") Тогда
Возврат;
КонецЕсли;
Запрос.УстановитьПараметр("АналитикаУчетаПоПартнерам", РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(Запрос.Параметры));
КонецПроцедуры
Процедура ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаПоПартнерамИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| &Организация КАК Организация,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
| ТаблицаТовары.Партнер КАК Партнер,
| ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) КАК Договор,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности
|ИЗ (
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаВидыЗапасов.Партнер КАК Партнер
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Партнер КАК Партнер
| ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ТаблицаТовары
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
|
| ) КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаПоПартнерам КАК Аналитика
| ПО
| Аналитика.Организация = &Организация
| И Аналитика.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| И ТаблицаТовары.Партнер = Аналитика.Партнер
| И Аналитика.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| И Аналитика.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|ГДЕ
| Аналитика.КлючАналитики ЕСТЬ NULL
|");
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитик.УстановитьПараметр("Организация", Запрос.Параметры.Организация);
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьКлючАналитики(Выборка);
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаПоПартнерамИнициализированы", Истина);
КонецПроцедуры
Процедура ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Склад КАК Склад
|ИЗ
| (
| ВЫБРАТЬ
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ВидыЗапасовКомитентов.ВладелецТовара КАК Склад
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасовКомитентов
| ПО ТаблицаВидыЗапасов.ВидЗапасов = ВидыЗапасовКомитентов.Ссылка
| И ВидыЗапасовКомитентов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасовВладельцев
| ПО ВидыЗапасовКомитентов.ВидЗапасовВладельца = ВидыЗапасовВладельцев.Ссылка
| И ВидыЗапасовВладельцев.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ВидыЗапасовКомитентов.ВладелецТовара ЕСТЬ НЕ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ВидыЗапасовВладельцев.ВладелецТовара КАК Склад
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасовКомитентов
| ПО ТаблицаВидыЗапасов.ВидЗапасов = ВидыЗапасовКомитентов.Ссылка
| И ВидыЗапасовКомитентов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасовВладельцев
| ПО ВидыЗапасовКомитентов.ВидЗапасовВладельца = ВидыЗапасовВладельцев.Ссылка
| И ВидыЗапасовВладельцев.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ВидыЗапасовВладельцев.ВладелецТовара ЕСТЬ НЕ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Услуги.Номенклатура КАК Номенклатура,
| Услуги.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЕСТЬNULL(Услуги.Характеристика.Принципал, Услуги.Номенклатура.Принципал) КАК Склад
| ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК Услуги
| ГДЕ
| Услуги.Ссылка = &Ссылка
| И ЕСТЬNULL(Услуги.Характеристика.Принципал, Услуги.Номенклатура.Принципал) <> НЕОПРЕДЕЛЕНО
| И ЕСТЬNULL(Услуги.Характеристика.Принципал, Услуги.Номенклатура.Принципал) <> &Организация
| И Услуги.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
| ) КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаКомитента
| ПО ТаблицаТовары.Номенклатура = АналитикаКомитента.Номенклатура
| И ТаблицаТовары.Характеристика = АналитикаКомитента.Характеристика
| И ТаблицаТовары.Назначение = АналитикаКомитента.Назначение
| И ТаблицаТовары.Серия = АналитикаКомитента.Серия
| И ТаблицаТовары.Склад = АналитикаКомитента.МестоХранения
|ГДЕ
| АналитикаКомитента.КлючАналитики ЕСТЬ NULL
|");
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитик.УстановитьПараметр("Организация", Запрос.Параметры.Организация);
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка);
КонецЦикла;
ЗапросАналитик = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.НоменклатураНабора КАК НоменклатураНабора,
| ТаблицаТовары.ХарактеристикаНабора КАК ХарактеристикаНабора
|
|ИЗ
| (
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| Аналитика.НоменклатураНабора КАК НоменклатураНабора,
| Аналитика.ХарактеристикаНабора КАК ХарактеристикаНабора
| ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНаборов КАК Аналитика
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНаборов = Аналитика.КлючАналитики
|
| ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
|
| ) КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНаборов КАК АналитикаКомитента
| ПО
| ТаблицаТовары.НоменклатураНабора = АналитикаКомитента.НоменклатураНабора
| И ТаблицаТовары.ХарактеристикаНабора = АналитикаКомитента.ХарактеристикаНабора
|
|ГДЕ
| АналитикаКомитента.КлючАналитики ЕСТЬ NULL
|");
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНаборов.СоздатьКлючАналитики(Выборка);
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаНоменклатурыИнициализированы", Истина);
КонецПроцедуры
Процедура ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры)
Если Не УчетНДСУП.ТребуетсяПроведениеПоРегистрамНДС(Регистры) Тогда
Возврат;
КонецЕсли;
ТекстЦенности =
"ВЫБРАТЬ
| Услуги.Ссылка.Дата КАК Период,
| Услуги.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВРозницу) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.РозничныйПокупатель) КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Грузоотправитель,
| НЕОПРЕДЕЛЕНО КАК Грузополучатель,
| Услуги.Ссылка.Организация КАК Организация,
| Услуги.Ссылка.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК ПокупательКомиссионногоТовара,
| ЛОЖЬ КАК РеализацияЧерезКомиссионера,
| Услуги.Ссылка КАК ДокументРеализации,
| НЕОПРЕДЕЛЕНО КАК ДокументКорректировкиРеализации,
| ЛОЖЬ КАК ИсправлениеОшибок,
| ЛОЖЬ КАК КорректировкаПоСогласованиюСторон,
| ИСТИНА КАК РеализацияВРозницу,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| Услуги.Ссылка.НалогообложениеНДС КАК НалогообложениеНДС,
| Услуги.СтавкаНДС КАК СтавкаНДС,
| Услуги.Номенклатура КАК Номенклатура,
| Услуги.Характеристика КАК Характеристика,
| Услуги.Серия КАК Серия,
| ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
| Услуги.НоменклатураНабора КАК НоменклатураНабора,
| Услуги.ХарактеристикаНабора КАК ХарактеристикаНабора,
| """" КАК Содержание,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения ИЛИ Услуги.КоличествоУпаковок = 0
| ТОГДА Услуги.Количество
| ИНАЧЕ Услуги.КоличествоУпаковок
| КОНЕЦ КАК Количество,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА Услуги.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ &ТекстЗапросаЕдиницаИзмерения
| КОНЕЦ КАК ЕдиницаИзмерения,
| 0 КАК КоличествоПоРНПТ,
| ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК КодТНВЭД,
| ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка) КАК ВидЗапасов,
| 0 КАК НомерСтроки,
| Услуги.ИдентификаторСтроки КАК ИдентификаторСтроки,
| Услуги.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.РеализацияВРозницу) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК Услуги
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ВидыЗапасов
| ПО Услуги.Ссылка = ВидыЗапасов.Ссылка
| И Услуги.АналитикаУчетаНоменклатуры = ВидыЗапасов.АналитикаУчетаНоменклатуры
|ГДЕ
| Услуги.Ссылка В (&Ссылка)
| И Услуги.Номенклатура.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
| И ВидыЗапасов.Ссылка ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВидыЗапасов.Ссылка.Дата КАК Период,
| ВидыЗапасов.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВРозницу) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.РозничныйПокупатель) КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Грузоотправитель,
| НЕОПРЕДЕЛЕНО КАК Грузополучатель,
| ВидыЗапасов.Ссылка.Организация КАК Организация,
| ВидыЗапасов.Ссылка.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК ПокупательКомиссионногоТовара,
| ЛОЖЬ КАК РеализацияЧерезКомиссионера,
| ВидыЗапасов.Ссылка КАК ДокументРеализации,
| НЕОПРЕДЕЛЕНО КАК ДокументКорректировкиРеализации,
| ЛОЖЬ КАК ИсправлениеОшибок,
| ЛОЖЬ КАК КорректировкаПоСогласованиюСторон,
| ИСТИНА КАК РеализацияВРозницу,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ВидыЗапасов.Ссылка.НалогообложениеНДС КАК НалогообложениеНДС,
| ВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Серия КАК Серия,
| ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
| ВидыЗапасов.АналитикаУчетаНаборов.НоменклатураНабора КАК НоменклатураНабора,
| ВидыЗапасов.АналитикаУчетаНаборов.ХарактеристикаНабора КАК ХарактеристикаНабора,
| """" КАК Содержание,
| ВидыЗапасов.Количество КАК Количество,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК ЕдиницаИзмерения,
| ВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВидыЗапасов.НомерГТД КАК НомерГТД,
| НЕОПРЕДЕЛЕНО КАК КодТНВЭД,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| 0 КАК НомерСтроки,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.РеализацияВРозницу) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ОтчетОРозничныхПродажах.ВидыЗапасов КАК ВидыЗапасов
|ГДЕ
| ВидыЗапасов.Ссылка В (&Ссылка)
|";
ТекстЦенности = СтрЗаменить(
ТекстЦенности,
"&ТекстЗапросаЕдиницаИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Ссылка",
"Услуги.Упаковка",
"Услуги.Номенклатура"));
УчетНДСУП.ОтразитьРеализациюКлиенту(Запрос, ТекстыЗапроса, Регистры, ТекстЦенности);
КонецПроцедуры
Процедура ОформитьОтгрузкуВРозницу(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДанныхДокумента =
"ВЫБРАТЬ
| ТоварыДокумента.Ссылка КАК Ссылка,
| ТоварыДокумента.Ссылка.Дата КАК Период,
| ТоварыДокумента.Ссылка.Склад КАК Склад,
| ТоварыДокумента.Помещение КАК Помещение,
| ТоварыДокумента.Номенклатура КАК Номенклатура,
| ТоварыДокумента.Характеристика КАК Характеристика,
| ТоварыДокумента.Серия КАК Серия,
| ТоварыДокумента.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ВЫБОР
| КОГДА ТоварыДокумента.Количество < 0
| ТОГДА -ТоварыДокумента.Количество
| ИНАЧЕ ТоварыДокумента.Количество
| КОНЕЦ КАК Количество,
| (ТоварыДокумента.Количество < 0) КАК ВозвратТовара
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ТоварыДокумента
|ГДЕ
| ТоварыДокумента.Ссылка В(&Ссылка)
| И ТоварыДокумента.Количество <> 0
| И (НЕ (ЕСТЬNULL(ТоварыДокумента.Ссылка.КассаККМ.ТипКассы, НЕОПРЕДЕЛЕНО) = ЗНАЧЕНИЕ(Перечисление.ТипыКассККМ.ФискальныйРегистратор)
| И ТоварыДокумента.Ссылка.КассоваяСмена <> ЗНАЧЕНИЕ(Документ.КассоваяСмена.ПустаяСсылка))
| ИЛИ (ЕСТЬNULL(ТоварыДокумента.Ссылка.КассоваяСмена.Статус, НЕОПРЕДЕЛЕНО) = ЗНАЧЕНИЕ(Перечисление.СтатусыКассовойСмены.Закрыта)
| И ЕСТЬNULL(ТоварыДокумента.Ссылка.КассоваяСмена.СтатусРегламентныхОпераций, НЕОПРЕДЕЛЕНО) = ЗНАЧЕНИЕ(Перечисление.СтатусыРегламентныхОперацийКассовойСмены.СозданОтчетЧекиЗаархивированы)))";
ОбъектМетаданных = Метаданные.Документы.ОтчетОРозничныхПродажах;
ПараметрыМетода = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМетода.ИмяТЧСерии = "Серии";
ПараметрыМетода.СинонимТаблицыДокумента = "ТоварыДокумента";
СкладыСервер.ОформитьОтгрузкуВРозницу(Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДанныхДокумента,
ОбъектМетаданных,
ПараметрыМетода);
КонецПроцедуры
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ВЫБОР КОГДА ТабЧасть.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА
| ТабЧасть.Ссылка.Подразделение
| ИНАЧЕ
| ТабЧасть.Ссылка.Склад
| КОНЕЦ КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ЗапланированныйРасходРаспределенногоЗапаса,
| ИСТИНА КАК КонтрольСвободногоОстатка
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ТабЧасть
|ГДЕ
| НЕ (ЕСТЬNULL(ТабЧасть.Ссылка.КассаККМ.ТипКассы, НЕОПРЕДЕЛЕНО) = ЗНАЧЕНИЕ(Перечисление.ТипыКассККМ.ФискальныйРегистратор)
| И ТабЧасть.Ссылка.КассоваяСмена <> ЗНАЧЕНИЕ(Документ.КассоваяСмена.ПустаяСсылка))
| ИЛИ (ЕСТЬNULL(ТабЧасть.Ссылка.КассоваяСмена.Статус, НЕОПРЕДЕЛЕНО) = ЗНАЧЕНИЕ(Перечисление.СтатусыКассовойСмены.Закрыта)
| И ЕСТЬNULL(ТабЧасть.Ссылка.КассоваяСмена.СтатусРегламентныхОпераций, НЕОПРЕДЕЛЕНО) = ЗНАЧЕНИЕ(Перечисление.СтатусыРегламентныхОперацийКассовойСмены.СозданОтчетЧекиЗаархивированы))";
РаспределениеЗапасовДвижения.РасходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
КонецПроцедуры
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
ДополнительныеПараметры.Добавить("АналитикаУчетаПоПартнерам");
Если Запрос <> Неопределено Тогда
ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос);
УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос);
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтВидыЗапасов");
ДополнительныеТаблицы.Добавить("ВтРаботыУслуги");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[1], ТекстыЗапроса) Тогда
ТекстЗапросаВтРаботыУслуги(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область Реализация_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| РегистрАналитикаУчетаПоПартнерам.КлючАналитики КАК АналитикаУчетаПоПартнерам,
| НЕОПРЕДЕЛЕНО КАК ЗаказКлиента,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВРозницу) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
| ПО &Организация = РегистрАналитикаУчетаПоПартнерам.Организация
| И ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) = РегистрАналитикаУчетаПоПартнерам.Контрагент
| И ТаблицаВидыЗапасов.Партнер = РегистрАналитикаУчетаПоПартнерам.Партнер
| И РегистрАналитикаУчетаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| И РегистрАналитикаУчетаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.Номенклатура.ТипНоменклатуры В
| (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТаблицаВидыЗапасов.ТипЗапасов В
| (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
#КонецОбласти
#Область Реализация_Работа
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| &АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| НЕОПРЕДЕЛЕНО КАК ЗаказКлиента,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВРозницу) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтРаботыУслуги КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
Функция ОписаниеОперацийУчетаВыручки(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область Реализация
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| &АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР КОГДА &АктПоЗаказам ТОГДА
| ТаблицаВидыЗапасов.ЗаказКлиента
| ИНАЧЕ
| ТаблицаДокумента.Ссылка
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтРаботыУслуги КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
#Конецобласти
Возврат ОписаниеОпераций;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьТоварногоЧека";
КомандаПечати.Идентификатор = "ТоварныйЧек";
КомандаПечати.Представление = НСтр("ru = 'Отчет о розничных продажах'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
ОтчетОРозничныхПродажахЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ОтчетОРозничныхПродажахЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Функция ПолучитьДанныеДляПечатнойФормыТоварныйЧек(ПараметрыПечати, МассивОбъектов) Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ДокЧек.Номер КАК Номер,
| ДокЧек.Дата КАК Дата,
| ДокЧек.Ссылка КАК Ссылка,
| ДокЧек.КассаККМ КАК КассаККМ,
| ДокЧек.Валюта КАК Валюта,
| ДокЧек.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ДокЧек.КассаККМ.Представление КАК Покупатель,
| ДокЧек.Ответственный.ФизическоеЛицо КАК Ответственный,
| ДокЧек.Организация КАК Организация,
| ДокЧек.Организация.Префикс КАК Префикс,
| ДокЧек.Организация.Представление КАК Поставщик,
| ДокЧек.СуммаДокумента КАК СуммаДокумента,
| ВЫБОР
| КОГДА
| ДокЧек.Подразделение.СоответствуетСтруктуреЮридическихЛиц
| ТОГДА
| ДокЧек.Подразделение
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Подразделение
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДокЧек
|ГДЕ
| ДокЧек.Ссылка В (&МассивДокументов)
|УПОРЯДОЧИТЬ ПО
| ДокЧек.МоментВремени
|
|;
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ВариантыКомплектацииНоменклатуры.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.НомерСтроки КАК НомерСтроки,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.Упаковка КАК Упаковка,
| Таблица.Цена КАК Цена,
| Таблица.КоличествоУпаковок * Таблица.Цена - Таблица.Сумма КАК СуммаСкидки,
| Таблица.КоличествоУпаковок * Таблица.Цена КАК СуммаБезСкидки,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.Помещение КАК Помещение
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
| ПО (ВариантыКомплектацииНоменклатуры.Владелец = Таблица.НоменклатураНабора)
| И (ВариантыКомплектацииНоменклатуры.Характеристика = Таблица.ХарактеристикаНабора)
| И (ВариантыКомплектацииНоменклатуры.Основной)
|ГДЕ
| Таблица.Ссылка В(&МассивДокументов)
|;
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| МИНИМУМ(Таблица.НомерСтроки) КАК НомерСтроки,
| СУММА(Таблица.Сумма) КАК Сумма,
| СУММА(Таблица.СуммаНДС) КАК СуммаНДС,
| СУММА(Таблица.СуммаСкидки) КАК СуммаСкидки,
| СУММА(Таблица.Сумма - Таблица.СуммаСкидки) КАК СуммаБезСкидки
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыПодготовка
|ИЗ
| Товары КАК Таблица
|
|ГДЕ
| Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора,
| Товары.ХарактеристикаНабора,
| Товары.Номенклатура,
| Товары.Характеристика,
| ВЫБОР КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
| И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ОсновнаяКомплектующая,
| 0 КАК КоличествоПоУмолчанию,
| Товары.Количество КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьПервая
|ИЗ
| Товары КАК Товары
|
|ГДЕ
| Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОтчетОРозничныхПродажах.Ссылка КАК Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец КАК НоменклатураНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика КАК ХарактеристикаНабора,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
| ЛОЖЬ КАК ОсновнаяКомплектующая,
| СУММА(ВариантыКомплектацииНоменклатурыТовары.Количество) КАК КоличествоПоУмолчанию,
| 0 КАК Количество
|ИЗ
| Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах ПО ИСТИНА
|ГДЕ
| ОтчетОРозничныхПродажах.Ссылка В (&МассивДокументов) И ВариантыКомплектацииНоменклатурыТовары.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ Т.ВариантКомплектацииНоменклатуры ИЗ Товары КАК Т)
|СГРУППИРОВАТЬ ПО
| ОтчетОРозничныхПродажах.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Упаковка
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика,
| МАКСИМУМ(Таблица.ОсновнаяКомплектующая) КАК ОсновнаяКомплектующая,
| СУММА(Таблица.КоличествоПоУмолчанию) КАК КоличествоПоУмолчанию,
| СУММА(Таблица.Количество) КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьВторая
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьПервая КАК Таблица
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика
|;
|
|
|ВЫБРАТЬ
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора,
| ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0 И Результат.ОсновнаяКомплектующая
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ null
| КОНЕЦ) + 0.5 КАК Число(10,0)) - 1 КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительно
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьВторая КАК Результат
|СГРУППИРОВАТЬ ПО
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры,
| ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора,
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.НомерСтроки КАК НомерСтроки,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК КоличествоУпаковок,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК Количество,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.СуммаСкидки КАК СуммаСкидки,
| Таблица.СуммаБезСкидки КАК СуммаБезСкидки
|ПОМЕСТИТЬ ВременнаяТаблицаНаборы
|ИЗ
| ВременнаяТаблицаНаборыПодготовка КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборыДополнительно КАК ВременнаяТаблицаНаборыДополнительно
| ПО Таблица.НоменклатураНабора = ВременнаяТаблицаНаборыДополнительно.НоменклатураНабора
| И Таблица.ХарактеристикаНабора = ВременнаяТаблицаНаборыДополнительно.ХарактеристикаНабора
| И Таблица.Ссылка = ВременнаяТаблицаНаборыДополнительно.Ссылка
|;
|
|
|
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
|
| Таблица.Ссылка КАК ВариантКомплектацииНоменклатуры,
| Таблица.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Таблица.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.ЭтоКомплектующие КАК ЭтоКомплектующие,
| Таблица.ЭтоНабор КАК ЭтоНабор,
|
| Таблица.НомерСтроки КАК НомерСтроки,
| Таблица.Номенклатура.НаименованиеПолное КАК ПолноеНаименованиеНоменклатуры,
| Таблица.Номенклатура.Код КАК Код,
| Таблица.Номенклатура.Артикул КАК Артикул,
| Таблица.Характеристика.НаименованиеПолное КАК ПолноеНаименованиеХарактеристики,
| ВЫБОР КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ Таблица.Упаковка.Наименование
| КОНЕЦ КАК НаименованиеУпаковки,
| Таблица.КоличествоУпаковок КАК Количество,
| ВЫБОР
| КОГДА Таблица.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ПРЕДСТАВЛЕНИЕ(Таблица.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Таблица.Упаковка)
| КОНЕЦ КАК ЕдиницаИзмерения,
| Таблица.Упаковка КАК Упаковка,
| Таблица.Цена КАК Цена,
| Таблица.КоличествоУпаковок * Таблица.Цена - Таблица.Сумма КАК СуммаСкидки,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.Помещение КАК Помещение
|ИЗ
|(
| ВЫБРАТЬ
| Таблица.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Таблица.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.Ссылка,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоКомплектующие,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.НомерСтроки
| ИНАЧЕ
| Таблица.НомерСтроки
| КОНЕЦ КАК НомерСтроки,
| Таблица.Номенклатура,
| Таблица.Количество,
| Таблица.КоличествоУпаковок,
| Таблица.Цена,
| Таблица.Сумма,
| Таблица.СуммаНДС,
| Таблица.Характеристика,
| Таблица.Упаковка,
| Таблица.СуммаСкидки,
| Таблица.СуммаБезСкидки,
| Таблица.Помещение
| ИЗ
| Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ПО ВременнаяТаблицаНаборы.НоменклатураНабора = Таблица.НоменклатураНабора
| И ВременнаяТаблицаНаборы.ХарактеристикаНабора = Таблица.ХарактеристикаНабора
| И ВременнаяТаблицаНаборы.Ссылка = Таблица.Ссылка
|
| ГДЕ
| Таблица.НоменклатураНабора = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ (Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И Таблица.ВариантПредставленияНабораВПечатныхФормах В (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоКомплектующие),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВременнаяТаблицаНаборы.Ссылка,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЛОЖЬ КАК ЭтоКомплектующие,
| ИСТИНА КАК ЭтоНабор,
| ВременнаяТаблицаНаборы.НомерСтроки,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.Количество,
| ВременнаяТаблицаНаборы.КоличествоУпаковок,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.СуммаБезСкидки / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ
| 0
| КОНЕЦ КАК Цена,
| ВременнаяТаблицаНаборы.Сумма КАК Сумма,
| ВременнаяТаблицаНаборы.СуммаНДС,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
| ВременнаяТаблицаНаборы.СуммаСкидки,
| ВременнаяТаблицаНаборы.СуммаБезСкидки,
| Неопределено КАК Помещение
| ИЗ
| ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ГДЕ
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие))
|) КАК Таблица
|
|УПОРЯДОЧИТЬ ПО
| Таблица.НомерСтроки,
| ЭтоНабор УБЫВ
|");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Таблица.Упаковка",
"Таблица.Номенклатура"));
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
Запрос.УстановитьПараметр("ПредставлениеДокумента", НСтр("ru = 'Отчет о розничных продажах'", ОбщегоНазначения.КодОсновногоЯзыка()));
Запрос.УстановитьПараметр("ПредставлениеВОшибке", НСтр("ru = 'отчета о розничных продажах'", ОбщегоНазначения.КодОсновногоЯзыка()));
ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
СтруктураДанныхДляПечати = Новый Структура(
"РезультатПоШапке, РезультатПоТабличнойЧасти, ЗаголовокДокумента",
ПакетРезультатовЗапроса[0],
ПакетРезультатовЗапроса[ПакетРезультатовЗапроса.Количество() - 1],
НСтр("ru = 'Отчет о розничных продажах'", ОбщегоНазначения.КодОсновногоЯзыка()));
Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат СтруктураДанныхДляПечати;
КонецФункции
Функция ПолучитьДанныеДляПечатнойФормыКМ6(ПараметрыПечати, МассивОбъектов) Экспорт
Возврат РозничныеПродажиЛокализация.ПолучитьДанныеДляПечатнойФормыКМ6(ПараметрыПечати, МассивОбъектов);
КонецФункции
Функция ПолучитьДанныеДляПечатнойФормыКМ3(ПараметрыПечати, МассивОбъектов) Экспорт
Возврат РозничныеПродажиЛокализация.ПолучитьДанныеДляПечатнойФормыКМ3(ПараметрыПечати, МассивОбъектов);
КонецФункции
#КонецОбласти
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерийСПомещениями()
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Помещение,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Серия,
| Товары.Количество,
| Товары.СтатусУказанияСерий,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Помещение,
| Товары.Номенклатура,
| Товары.Характеристика,
| СУММА(Товары.Количество) КАК Количество,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Помещение,
| Товары.Номенклатура,
| Товары.Характеристика,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Серии.Помещение,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Помещение,
| Серии.Номенклатура,
| Серии.Характеристика,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|
|СГРУППИРОВАТЬ ПО
| Серии.Помещение,
| Серии.Номенклатура,
| Серии.Характеристика
|;
|
|
|ВЫБРАТЬ
| ПолитикиУчетаСерий.Ссылка КАК Ссылка,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий КАК ПолитикаУчетаСерий,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям КАК УчитыватьСебестоимостьПоСериям,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки КАК УказыватьПриПланированииОтгрузки,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора КАК УказыватьПриПланированииОтбора,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчетСерийПоFEFO КАК УчетСерийПоFEFO,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПоФактуОтбора КАК УказыватьПоФактуОтбора,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриОтгрузкеВРозницу КАК УказыватьПриОтгрузкеВРозницу,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьОстаткиСерий КАК УчитыватьОстаткиСерий
|ПОМЕСТИТЬ ПолитикиУчетаСерийДляЗапроса
|ИЗ
| Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ПО ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
|ГДЕ
| (ПолитикиУчетаСерий.Склад = &Склад)
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА &ТолькоСерииДляСебестоимости
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.УказыватьПриПланированииОтбора
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.УчетСерийПоFEFO
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 6
| ИНАЧЕ 5
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.УказыватьПоФактуОтбора
| И ПолитикиУчетаСерий.УказыватьПриОтгрузкеВРозницу
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерий
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| И Товары.Помещение = ТоварыДляЗапроса.Помещение
| ЛЕВОЕ СОЕДИНЕНИЕ СерииДляЗапроса КАК СерииДляЗапроса
| ПО Товары.Номенклатура = СерииДляЗапроса.Номенклатура
| И Товары.Характеристика = СерииДляЗапроса.Характеристика
| И Товары.Помещение = СерииДляЗапроса.Помещение
| ЛЕВОЕ СОЕДИНЕНИЕ ПолитикиУчетаСерийДляЗапроса КАК ПолитикиУчетаСерий
| ПО ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| Статусы.СтатусУказанияСерий КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| Статусы.СтатусУказанияСерий <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерийБезПомещений()
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Серия,
| Товары.Количество,
| Товары.СтатусУказанияСерий,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Номенклатура,
| Товары.Характеристика,
| СУММА(Товары.Количество) КАК Количество,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Номенклатура,
| Товары.Характеристика,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Номенклатура,
| Серии.Характеристика,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|
|СГРУППИРОВАТЬ ПО
| Серии.Номенклатура,
| Серии.Характеристика
|;
|
|
|ВЫБРАТЬ
| ПолитикиУчетаСерий.Ссылка КАК Ссылка,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий КАК ПолитикаУчетаСерий,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям КАК УчитыватьСебестоимостьПоСериям,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки КАК УказыватьПриПланированииОтгрузки,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора КАК УказыватьПриПланированииОтбора,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчетСерийПоFEFO КАК УчетСерийПоFEFO,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПоФактуОтбора КАК УказыватьПоФактуОтбора,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриОтгрузкеВРозницу КАК УказыватьПриОтгрузкеВРозницу,
| ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьОстаткиСерий КАК УчитыватьОстаткиСерий
|ПОМЕСТИТЬ ПолитикиУчетаСерийДляЗапроса
|ИЗ
| Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ПО ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
|ГДЕ
| (ПолитикиУчетаСерий.Склад = &Склад)
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА &ТолькоСерииДляСебестоимости
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.УказыватьПриПланированииОтбора
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.УчетСерийПоFEFO
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 6
| ИНАЧЕ 5
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.УказыватьПоФактуОтбора
| И ПолитикиУчетаСерий.УказыватьПриОтгрузкеВРозницу
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерий
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| ЛЕВОЕ СОЕДИНЕНИЕ СерииДляЗапроса КАК СерииДляЗапроса
| ПО Товары.Номенклатура = СерииДляЗапроса.Номенклатура
| И Товары.Характеристика = СерииДляЗапроса.Характеристика
| ЛЕВОЕ СОЕДИНЕНИЕ ПолитикиУчетаСерийДляЗапроса КАК ПолитикиУчетаСерий
| ПО ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| Статусы.СтатусУказанияСерий КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| Статусы.СтатусУказанияСерий <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#КонецЕсли