#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Взаиморасчеты");
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
МеханизмыДокумента.Добавить("ПередачаНаОтветхранение");
МеханизмыДокумента.Добавить("ПриемНаОтветхранение");
МеханизмыДокумента.Добавить("Продажи");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("ЦеныИСкидки");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
ВозвратТоваровОтКлиентаЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ВозвратТоваровОтКлиента") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРаспоряженияНаОтгрузку(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПереданнаяВозвратнаяТара(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыПереданныеНаКомиссию(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизацийКПередаче(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыКОформлениюОтчетовКомитенту(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаВыручкаИСебестоимостьПродаж(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаБонусныеБаллы(Запрос, ТекстыЗапроса, Регистры, ДокументСсылка);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры, ДокументСсылка);
ВозвратТоваровОтКлиентаЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры);
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Если ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеПриемки")
И ПравоДоступа("Изменение", Метаданные.Документы.ВозвратТоваровОтКлиента) Тогда
КомандаСоздания = Документы.АктОРасхожденияхПослеПриемки.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если КомандаСоздания <> Неопределено Тогда
КомандаСоздания.Представление = НСтр("ru = 'Акт о расхождениях после возврата от клиента'");
КонецЕсли;
КонецЕсли;
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.РасходныйКассовыйОрдер.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ОтгрузкаТоваровКлиенту.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.РеализацияТоваровУслуг.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.СписаниеБезналичныхДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.Претензии.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Обработки.СправочноеРазмещениеНоменклатуры.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПоручениеЭкспедитору.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ОперацияПоПлатежнойКарте.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ВозвратТоваровОтКлиентаЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ВозвратТоваровОтКлиента) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ВозвратТоваровОтКлиента.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ВозвратТоваровОтКлиента);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьКлиентов_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСКлиентом_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = Отчеты.КарточкаРасчетовПоПереданнойВозвратнойТаре.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьКлиентов_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Порядок = 1;
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСКлиентом_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Порядок = 2;
КонецЕсли;
КомандаОтчет = Отчеты.КарточкаРасчетовПоПереданнойВозвратнойТаре.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Важность = "Важное";
КомандаОтчет.Порядок = 3;
КонецЕсли;
ВозвратТоваровОтКлиентаЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
#Область Серии
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
ИменаРеквизитов = "Склад,Дата,ХозяйственнаяОперация";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерий = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерий.ПолноеИмяОбъекта = "Документ.ВозвратТоваровОтКлиента";
ВозвратТоваровЧерезКомиссионера = КомиссионнаяТорговляСервер.ВозвратТоваровЧерезКомиссионера(Объект.ХозяйственнаяОперация);
Если ВозвратТоваровЧерезКомиссионера Тогда
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПолучитьФункциональнуюОпцию("УчитыватьСебестоимостьПоСериямСклад",
Новый Структура());
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатурыСклад",
Новый Структура());
Иначе
ПараметрыСерийСклада = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Истина);
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПараметрыСерийСклада.ИспользоватьСерииНоменклатуры;
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
КонецЕсли;
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента);
ПараметрыУказанияСерий.СерииПриПланированииОтгрузкиУказываютсяВТЧСерии = Истина;
ПараметрыУказанияСерий.ПоляСвязи.Добавить("НоменклатураОприходование");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("ХарактеристикаОприходование");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Склад");
ПараметрыУказанияСерий.ЭтоНакладная = Истина;
ПараметрыУказанияСерий.Дата = Объект.Дата;
ПараметрыУказанияСерий.ОперацияДокумента = Объект.ХозяйственнаяОперация;
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.НоменклатураОприходование,
| Товары.ХарактеристикаОприходование,
| Товары.Назначение,
| Товары.Серия,
| Товары.Количество,
| Товары.СтатусУказанияСерий,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.НоменклатураОприходование,
| Товары.ХарактеристикаОприходование,
| Товары.Назначение,
| СУММА(Товары.Количество) КАК Количество,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.НоменклатураОприходование,
| Товары.ХарактеристикаОприходование,
| Товары.Назначение,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.НоменклатураОприходование,
| Серии.ХарактеристикаОприходование,
| Серии.Назначение,
| Серии.Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.НоменклатураОприходование,
| Серии.ХарактеристикаОприходование,
| Серии.Назначение,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|
|СГРУППИРОВАТЬ ПО
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.НоменклатураОприходование,
| Серии.ХарактеристикаОприходование,
| Серии.Назначение
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора
| ТОГДА ВЫБОР
| КОГДА НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПриемке
| И (НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении)
| И ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПриемкеПоВозвратуОтКлиента
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК СтатусУказанияСерий,
| ВЫБОР
| КОГДА ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ
| ВЫБОР
| КОГДА ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА
| ВЫБОР
| КОГДА &ОперацияДокумента = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера)
| И ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчетСерийВПереданныхНаКомиссиюТоваров
| ТОГДА
| ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 18
| ИНАЧЕ 17
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК СтатусУказанияСерийПереданныхТоваров
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| И Товары.НоменклатураОприходование = ТоварыДляЗапроса.НоменклатураОприходование
| И Товары.ХарактеристикаОприходование = ТоварыДляЗапроса.ХарактеристикаОприходование
| И Товары.Назначение = ТоварыДляЗапроса.Назначение
| И Товары.Склад = ТоварыДляЗапроса.Склад
| ЛЕВОЕ СОЕДИНЕНИЕ СерииДляЗапроса КАК СерииДляЗапроса
| ПО ТоварыДляЗапроса.Номенклатура = СерииДляЗапроса.Номенклатура
| И ТоварыДляЗапроса.Характеристика = СерииДляЗапроса.Характеристика
| И ТоварыДляЗапроса.НоменклатураОприходование = СерииДляЗапроса.НоменклатураОприходование
| И ТоварыДляЗапроса.ХарактеристикаОприходование = СерииДляЗапроса.ХарактеристикаОприходование
| И ТоварыДляЗапроса.Назначение = СерииДляЗапроса.Назначение
| И ТоварыДляЗапроса.Склад = СерииДляЗапроса.Склад
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ПО (ПолитикиУчетаСерий.Склад = ТоварыДляЗапроса.Склад)
| И ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО ПолитикиУчетаСерий.Склад = Склады.Ссылка
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА Статусы.СтатусУказанияСерий = 0
| ТОГДА Статусы.СтатусУказанияСерийПереданныхТоваров
| ИНАЧЕ Статусы.СтатусУказанияСерий
| КОНЕЦ КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| ВЫБОР
| КОГДА Статусы.СтатусУказанияСерий = 0
| ТОГДА Статусы.СтатусУказанияСерийПереданныхТоваров
| ИНАЧЕ Статусы.СтатусУказанияСерий
| КОНЕЦ <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область ШаблоныСообщений
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
КонецПроцедуры
#КонецОбласти
#Область Прочее
Процедура ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации) Экспорт
МассивВсехРеквизитов = Новый Массив;
МассивВсехРеквизитов.Добавить("Договор");
МассивВсехРеквизитов.Добавить("ВозвратПереданнойМногооборотнойТары");
МассивВсехРеквизитов.Добавить("ПредусмотренЗалогЗаТару");
МассивВсехРеквизитов.Добавить("СпособКомпенсации");
МассивВсехРеквизитов.Добавить("Склад");
МассивВсехРеквизитов.Добавить("КлиентКонтрагент");
МассивВсехРеквизитов.Добавить("КлиентПартнер");
МассивВсехРеквизитов.Добавить("КлиентДоговор");
МассивРеквизитовОперации = Новый Массив;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента Тогда
МассивРеквизитовОперации.Добавить("Договор");
МассивРеквизитовОперации.Добавить("ВозвратПереданнойМногооборотнойТары");
МассивРеквизитовОперации.Добавить("ПредусмотренЗалогЗаТару");
МассивРеквизитовОперации.Добавить("СпособКомпенсации");
МассивРеквизитовОперации.Добавить("Склад");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
МассивРеквизитовОперации.Добавить("Договор");
МассивРеквизитовОперации.Добавить("ВозвратПереданнойМногооборотнойТары");
МассивРеквизитовОперации.Добавить("Склад");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера Тогда
МассивРеквизитовОперации.Добавить("Договор");
МассивРеквизитовОперации.Добавить("ВозвратПереданнойМногооборотнойТары");
МассивРеквизитовОперации.Добавить("ПредусмотренЗалогЗаТару");
МассивРеквизитовОперации.Добавить("КлиентКонтрагент");
МассивРеквизитовОперации.Добавить("КлиентПартнер");
МассивРеквизитовОперации.Добавить("КлиентДоговор");
ИначеЕсли ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя Тогда
МассивРеквизитовОперации.Добавить("СпособКомпенсации");
МассивРеквизитовОперации.Добавить("Склад");
КонецЕсли;
КонецПроцедуры
Функция ПолучитьРезультатЗапросаПоОстаткамЗаявкиНаВозврат(ЗаявкаНаВозвратТоваров, ВозвратТоваровОтКлиента) Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ЗаявкаНаВозвратТоваров", ЗаявкаНаВозвратТоваров);
Запрос.УстановитьПараметр("Регистратор", ВозвратТоваровОтКлиента);
Запрос.Текст =
"
|ВЫБРАТЬ
| ТаблицаЗаказы.Номенклатура КАК Номенклатура,
| ТаблицаЗаказы.Характеристика КАК Характеристика,
| ТаблицаЗаказы.КодСтроки КАК КодСтроки,
| СУММА(ТаблицаЗаказы.КОформлению) КАК Количество
|
|ПОМЕСТИТЬ ТаблицаОстатки
|
|ИЗ
| (ВЫБРАТЬ
| ЗаказыОстатки.Номенклатура КАК Номенклатура,
| ЗаказыОстатки.Характеристика КАК Характеристика,
| ЗаказыОстатки.КодСтроки КАК КодСтроки,
| ЗаказыОстатки.КОформлениюПоВозвратамКоличествоОборот -
| ЗаказыОстатки.ОформленоПоВозвратамКоличествоОборот КАК КОформлению
| ИЗ
| #ЗаявкиНаВозвратОборотыРазвернутая КАК ЗаказыОстатки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗаказыДвижения.Номенклатура,
| ЗаказыДвижения.Характеристика,
| ЗаказыДвижения.КодСтроки,
| -ЗаказыДвижения.Количество
| ИЗ
| РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат КАК ЗаказыДвижения
| ГДЕ
| ЗаказыДвижения.Регистратор = &Регистратор
| И ЗаказыДвижения.Распоряжение = &ЗаявкаНаВозвратТоваров
| И Показатель В (ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОформлениюПоВозвратам),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоПоВозвратам))
| И ЗаказыДвижения.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗаявкаТовары.Номенклатура,
| ЗаявкаТовары.Характеристика,
| ЗаявкаТовары.КодСтроки,
| ЗаявкаТовары.Количество
| ИЗ
| Документ.ЗаявкаНаВозвратТоваровОтКлиента.ВозвращаемыеТовары КАК ЗаявкаТовары
| ГДЕ
| ЗаявкаТовары.Ссылка = &ЗаявкаНаВозвратТоваров
| И ЗаявкаТовары.Ссылка.ЭтоЗаказКакСчет
| ) КАК ТаблицаЗаказы
|
| СГРУППИРОВАТЬ ПО
| ТаблицаЗаказы.Номенклатура,
| ТаблицаЗаказы.Характеристика,
| ТаблицаЗаказы.КодСтроки
|
| ИМЕЮЩИЕ
| СУММА(ТаблицаЗаказы.КОформлению) > 0
|;
|
|ВЫБРАТЬ
| Товары.НоменклатураНабора КАК НоменклатураНабора,
| Товары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫБОР КОГДА Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ИндексНабора,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Серия КАК Серия,
| Товары.Назначение КАК Назначение,
| Товары.ДокументРеализации КАК ДокументРеализации,
| ТаблицаОстатки.КодСтроки КАК КодСтроки,
| ТаблицаОстатки.Количество КАК Количество,
| ТаблицаОстатки.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Товары.ДатаПоступления КАК ДатаПоступления,
| Товары.Количество КАК КоличествоВЗаявке,
| ВЫБОР КОГДА Товары.Порча
| ТОГДА ТаблицаОстатки.Номенклатура
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| КОНЕЦ КАК НоменклатураОприходование,
| ВЫБОР КОГДА Товары.Порча
| ТОГДА ТаблицаОстатки.Характеристика
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
| КОНЕЦ КАК ХарактеристикаОприходование,
| Товары.Порча КАК Порча,
| Товары.ВидЦены КАК ВидЦены,
| Товары.Упаковка КАК Упаковка,
| Товары.Цена КАК Цена,
| Товары.Сумма КАК Сумма,
| Товары.СтавкаНДС КАК СтавкаНДС,
| Товары.НомерСтроки КАК НомерСтроки,
| ВЫБОР КОГДА Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки
| КОНЕЦ КАК Коэффициент
|
|ПОМЕСТИТЬ ТаблицаОстаткиЗаказа
|
|ИЗ
| ТаблицаОстатки КАК ТаблицаОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента.ВозвращаемыеТовары КАК Товары
| ПО ВЫБОР КОГДА Товары.Порча ТОГДА
| ТаблицаОстатки.Номенклатура = Товары.НоменклатураОприходование
| ИНАЧЕ
| ТаблицаОстатки.Номенклатура = Товары.Номенклатура
| КОНЕЦ
| И ВЫБОР КОГДА Товары.Порча ТОГДА
| ТаблицаОстатки.Характеристика = Товары.ХарактеристикаОприходование
| ИНАЧЕ
| ТаблицаОстатки.Характеристика = Товары.Характеристика
| КОНЕЦ
| И ТаблицаОстатки.КодСтроки = Товары.КодСтроки
| И Товары.Ссылка = &ЗаявкаНаВозвратТоваров
|;
|
|ВЫБРАТЬ
| *
|ИЗ
| ТаблицаОстаткиЗаказа КАК Таблица
|
|УПОРЯДОЧИТЬ ПО Таблица.НомерСтроки
|";
ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
ПараметрыФормированияТаблицы.ТекстУсловия =
"Распоряжение = &ЗаявкаНаВозвратТоваров";
ПараметрыФормированияТаблицы.Группировка = "Номенклатура, Характеристика, КодСтроки";
ПараметрыФормированияТаблицы.Показатели = "КОформлениюПоВозвратам, ОформленоПоВозвратам";
ПараметрыФормированияТаблицы.Ресурсы = "Количество";
ЗаявкиНаВозвратОборотыРазвернутая =
РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
ПараметрыФормированияТаблицы);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"#ЗаявкиНаВозвратОборотыРазвернутая",
ЗаявкиНаВозвратОборотыРазвернутая);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Товары.Упаковка",
"Товары.Номенклатура"));
Возврат Запрос.Выполнить();
КонецФункции
Функция НаименованияВходящихДокументов() Экспорт
МассивНаименований = Новый Массив();
МассивНаименований.Добавить(НСтр("ru='Возврат товаров'"));
ВозвратТоваровОтКлиентаЛокализация.ДополнитьНаименованияВходящихДокументов(МассивНаименований);
Возврат МассивНаименований
КонецФункции
Функция КоллекцияТабличныхЧастейТоваров() Экспорт
ТаблицыДокумента = Новый Структура("Товары");
Возврат ТаблицыДокумента;
КонецФункции
Функция ЕстьВозвратТоваровОтКлиентаПоЧекуККМ(ЧекККМ) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВозвратТоваровОтКлиента.Ссылка КАК Ссылка
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
|ГДЕ
| ВозвратТоваровОтКлиента.Проведен
| И ВозвратТоваровОтКлиента.ЧекККМ = &ЧекККМ";
Запрос.УстановитьПараметр("ЧекККМ", ЧекККМ);
Возврат НЕ Запрос.Выполнить().Пустой();
КонецФункции
#КонецОбласти
#Область УчетНДС
Функция ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСПродажи();
ПараметрыЗаполнения.Организация = Объект.Организация;
ПараметрыЗаполнения.Дата = Объект.Дата;
ПараметрыЗаполнения.Склад = Объект.Склад;
ПараметрыЗаполнения.Договор = Объект.Договор;
ПараметрыЗаполнения.НаправлениеДеятельности = Объект.НаправлениеДеятельности;
ПараметрыЗаполнения.Подразделение = Объект.Подразделение;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера Тогда
ПараметрыЗаполнения.ВозвратТоваровОтКлиента = Истина;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ПараметрыЗаполнения.ВозвратТоваровОтКомиссионера = Истина;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыРегистрацииСчетовФактурПолученных(Объект) Экспорт
ПараметрыРегистрации = УчетНДСУПКлиентСервер.ПараметрыРегистрацииСчетовФактурПолученных();
ПараметрыРегистрации.Ссылка = Объект.Ссылка;
ПараметрыРегистрации.Организация = Объект.Организация;
ПараметрыРегистрации.Контрагент = Объект.Контрагент;
ПараметрыРегистрации.НалогообложениеНДС = Объект.НалогообложениеНДС;
Если Не ЗначениеЗаполнено(Объект.Дата) Тогда
ПараметрыРегистрации.Дата = ТекущаяДатаСеанса();
Иначе
ПараметрыРегистрации.Дата = Объект.Дата;
КонецЕсли;
ПараметрыРегистрации.ВозвратТоваровОтПлательщикаНДС =
НЕ Объект.ПокупательНеПлательщикНДС И Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента;
ПараметрыРегистрации.ВозвратТоваровОтНеплательщикаНДС =
Объект.ПокупательНеПлательщикНДС ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя;
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПараметрыРегистрацииСчетовФактурВыданных(Объект) Экспорт
ПараметрыРегистрации = УчетНДСУПКлиентСервер.ПараметрыРегистрацииСчетовФактурВыданных();
ПараметрыРегистрации.Ссылка = Объект.Ссылка;
ПараметрыРегистрации.Организация = Объект.Организация;
ПараметрыРегистрации.Контрагент = Объект.Контрагент;
ПараметрыРегистрации.НалогообложениеНДС = Объект.НалогообложениеНДС;
Если Не ЗначениеЗаполнено(Объект.Дата) Тогда
ПараметрыРегистрации.Дата = ТекущаяДатаСеанса();
Иначе
ПараметрыРегистрации.Дата = Объект.Дата;
КонецЕсли;
ПараметрыРегистрации.ВозвратТоваровПоставщику =
НЕ Объект.ПокупательНеПлательщикНДС
И (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера);
ПараметрыРегистрации.КорректировкаПоСогласованиюСторон = ПараметрыРегистрации.ВозвратТоваровПоставщику;
ПараметрыРегистрации.РеализацияЧерезКомиссионера = КомиссионнаяТорговляСервер.ВозвратТоваровЧерезКомиссионера(Объект.ХозяйственнаяОперация);
Возврат ПараметрыРегистрации;
КонецФункции
#КонецОбласти
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
Результат = Новый Массив;
Результат.Добавить("Организация");
Результат.Добавить("Партнер");
Результат.Добавить("Контрагент");
Результат.Добавить("Соглашение");
Результат.Добавить("Валюта");
Результат.Добавить("Склад");
Результат.Добавить("ЦенаВключаетНДС");
Результат.Добавить("ДокументРеализации");
Результат.Добавить("НалогообложениеНДС");
Результат.Добавить("ХозяйственнаяОперация");
Результат.Добавить("ЧекККМ");
Результат.Добавить("ЗаявкаНаВозвратТоваровОтКлиента");
Результат.Добавить("Товары");
Результат.Добавить("АкцизныеМарки");
Возврат Результат;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Подразделение)
| И ЗначениеРазрешено(Партнер)
| И ЗначениеРазрешено(Склад)";
Ограничение.ТекстДляВнешнихПользователей =
"ПрисоединитьДополнительныеТаблицы
|ЭтотСписок КАК ЭтотСписок
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиПартнеры
| ПО ВнешниеПользователиПартнеры.ОбъектАвторизации = ЭтотСписок.Партнер
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
| ПО КонтактныеЛицаПартнеров.Владелец = ЭтотСписок.Партнер
|
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователиКонтактныеЛица
| ПО ВнешниеПользователиКонтактныеЛица.ОбъектАвторизации = КонтактныеЛицаПартнеров.Ссылка
|;
|РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(ВнешниеПользователиПартнеры.Ссылка)
| ИЛИ ЗначениеРазрешено(ВнешниеПользователиКонтактныеЛица.Ссылка)";
КонецПроцедуры
#КонецОбласти
Функция ПараметрыВзаиморасчеты(ДанныеЗаполнения = Неопределено) Экспорт
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ДанныеЗаполнения) Тогда
СтруктураДанныеЗаполнения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
ДанныеЗаполнения,
"ХозяйственнаяОперация,
|СпособКомпенсации,
|Договор");
ХозяйственнаяОперация = СтруктураДанныеЗаполнения.ХозяйственнаяОперация;
СпособКомпенсации = СтруктураДанныеЗаполнения.СпособКомпенсации;
Договор = СтруктураДанныеЗаполнения.Договор;
ИначеЕсли ДанныеЗаполнения = Неопределено Тогда
ХозяйственнаяОперация = Неопределено;
СпособКомпенсации = Неопределено;
Договор = Неопределено;
Иначе
ХозяйственнаяОперация = ДанныеЗаполнения.ХозяйственнаяОперация;
СпособКомпенсации = ДанныеЗаполнения.СпособКомпенсации;
Договор = ДанныеЗаполнения.Договор;
КонецЕсли;
СтруктураПараметров = ВзаиморасчетыСервер.ПараметрыМеханизма();
СтруктураПараметров.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСКлиентом;
СтруктураПараметров.ИзменяетРасчетыСтрокой =
"ИсточникДанных.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровОтКлиента)
|ИЛИ ИсточникДанных.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя)
|ИЛИ ИсточникДанных.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера)";
СтруктураПараметров.ИзменяетПланОплаты = ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера;
СтруктураПараметров.ИзменяетПланОтгрузкиПоставки = Ложь;
СтруктураПараметров.КурсЧислитель = "";
СтруктураПараметров.КурсЗнаменатель = "";
СтруктураПараметров.ФормаОплаты = "";
СтруктураПараметров.ПутьКДаннымТЧ = "Объект.Товары";
СтруктураПараметров.ПутьКДаннымТЧРасшифровкаПлатежа = "Объект.РасшифровкаПлатежа";
Если СпособКомпенсации = Перечисления.СпособыКомпенсацииВозвратовТоваров.ОставитьВКачествеАванса Тогда
СтруктураПараметров.ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоНакладным;
Иначе
СтруктураПараметров.ПорядокРасчетов = "Объект.ПорядокРасчетов";
КонецЕсли;
СтруктураПараметров.УсловныйПорядокРасчетов =
"ВЫБОР КОГДА ИсточникДанных.СпособКомпенсации = ЗНАЧЕНИЕ(Перечисление.СпособыКомпенсацииВозвратовТоваров.ОставитьВКачествеАванса) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоНакладным)
|ИНАЧЕ
| ИсточникДанных.ПорядокРасчетов
|КОНЕЦ
|";
СтруктураПараметров.БанковскийСчетОрганизации = "";
СтруктураПараметров.БанковскийСчетКонтрагента = "";
СтруктураПараметров.Касса = "";
СтруктураПараметров.ИдентификаторПлатежа = "";
СтруктураПараметров.Менеджер = "Объект.Менеджер";
СтруктураПараметров.НомерВходящегоДокумента = "Объект.НомерВходящегоДокумента";
СтруктураПараметров.ДатаВходящегоДокумента = "Объект.ДатаВходящегоДокумента";
СтруктураПараметров.НаименованиеПервичногоДокумента = "Объект.НаименованиеВходящегоДокумента";
СтруктураПараметров.ЗаказОснование = "Объект.ЗаявкаНаВозвратТоваровОтКлиента";
ВозвратТоваровЧерезКомиссионера = КомиссионнаяТорговляСервер.ВозвратТоваровЧерезКомиссионера(ХозяйственнаяОперация);
ВестиРасчетыЧерезКонечныхПокупателей = Ложь;
Если ВозвратТоваровЧерезКомиссионера Тогда
СтруктураПараметров.Договор = "Объект.КлиентДоговор";
Если ЗначениеЗаполнено(Договор) Тогда
ВестиРасчетыЧерезКонечныхПокупателей = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Договор, "ВестиРасчетыЧерезКонечныхПокупателей");
КонецЕсли;
Если ВестиРасчетыЧерезКонечныхПокупателей Тогда
СтруктураПараметров.Партнер = "Объект.КлиентПартнер";
СтруктураПараметров.Контрагент = "Объект.КлиентКонтрагент";
КонецЕсли;
СтруктураПараметров.ДоговорКомиссионера = "Объект.Договор";
КонецЕсли;
СтруктураПараметров.ЭлементыФормы.ГиперссылкаРасшифровкаПлатежа = "УменьшенДолгСтрокой";
СтруктураПараметров.СуммаДокументаФорма = "Форма.СуммаВсего";
СтруктураПараметров.СуммаЗалогаЗаТаруФорма = "Форма.СуммаЗалогаЗаТару";
СтруктураПараметров.ПодборДебиторскойЗадолженности = Истина;
СтруктураПараметров.ОбъектРасчетов = "Объект.ОбъектРасчетов";
Возврат СтруктураПараметров;
КонецФункции
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
ОбщегоНазначенияУТКлиентСервер.ОбработкаПолученияПредставленияВходящегоДокумента(
Данные, Представление, СтандартнаяОбработка, "ВозвратТоваровОтКлиента");
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Поля.Очистить();
Поля.Добавить("НаименованиеВходящегоДокумента");
Поля.Добавить("НомерВходящегоДокумента");
Поля.Добавить("ДатаВходящегоДокумента");
Поля.Добавить("Дата");
Поля.Добавить("Номер");
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ИнициализироватьКлючиАналитикиНоменклатуры(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос("
|ВЫБРАТЬ
| АналитикаОтгрузки.МестоХранения КАК Склад,
| АналитикаОтгрузки.Номенклатура КАК Номенклатура,
| АналитикаОтгрузки.Характеристика КАК Характеристика,
| АналитикаОтгрузки.Серия КАК Серия,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение
|ПОМЕСТИТЬ ТаблицаТовары
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК АналитикаОтгрузки
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатурыОтгрузки = АналитикаОтгрузки.Ссылка
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И АналитикаОтгрузки.МестоХранения <> &Склад
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Аналитика.МестоХранения КАК Склад,
| ТаблицаВидыЗапасов.НоменклатураОприходование КАК Номенклатура,
| ТаблицаВидыЗапасов.ХарактеристикаОприходование КАК Характеристика,
| Аналитика.Серия КАК Серия,
| Аналитика.Назначение КАК Назначение
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И НЕ &ВозвратЧерезКомиссионера
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Партнер КАК Склад,
| ТаблицаТовары.НоменклатураОприходование КАК Номенклатура,
| ТаблицаТовары.ХарактеристикаОприходование КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И &ЭтоВозвратОтКомиссионера
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Партнер КАК Склад,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.НоменклатураОприходование = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И &ЭтоВозвратОтКомиссионера
|
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.ВидЗапасов.ВладелецТовара КАК Склад,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И НЕ &ЭтоВозвратОтКомиссионера
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Аналитика.МестоХранения КАК Склад,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Характеристика КАК Характеристика,
| Аналитика.Серия КАК Серия,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Договор КАК Склад,
| ТаблицаТовары.НоменклатураОприходование КАК Номенклатура,
| ТаблицаТовары.ХарактеристикаОприходование КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И &ВозвратЧерезКомиссионера
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Назначение КАК Назначение
|ИЗ
| ТаблицаТовары КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО
| ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И ТаблицаТовары.Серия = Аналитика.Серия
| И ТаблицаТовары.Склад = Аналитика.МестоХранения
| И ТаблицаТовары.Назначение = Аналитика.Назначение
|ГДЕ
| Аналитика.КлючАналитики ЕСТЬ 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 КАК НДСРегл,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.СебестоимостьПР
| ИНАЧЕ 0
| КОНЕЦ КАК ПостояннаяРазница,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.СебестоимостьВР
| ИНАЧЕ 0
| КОНЕЦ КАК ВременнаяРазница,
|
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК НалогообложениеНДС,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИСТИНА КАК Первичное,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.НоменклатураОприходование = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ТаблицаВидыЗапасов.СпособОпределенияСебестоимости <> ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровОтКлиента),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя))
| И &ПартионныйУчетВерсии21
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаОприходования КАК АналитикаУчетаНоменклатуры,
| &Ссылка КАК ДокументПоступления,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| И НЕ ТаблицаВидыЗапасов.ВидЗапасов.РеализацияЗапасовДругойОрганизации
| ТОГДА ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки = ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТаблицаВидыЗапасов.РеализацияЗапасовДругойОрганизации
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовВладельца
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ
| КОНЕЦ КАК ВидЗапасов,
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
|
| -ТаблицаВидыЗапасов.Количество КАК Количество,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.Себестоимость
| ИНАЧЕ -ТаблицаВидыЗапасов.СуммаСНДСУпр
| КОНЕЦ КАК Стоимость,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.СебестоимостьБезНДС
| ИНАЧЕ -ТаблицаВидыЗапасов.СуммаБезНДСУпр
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.СебестоимостьРегл
| ИНАЧЕ -ТаблицаВидыЗапасов.СуммаБезНДСРегл
| КОНЕЦ КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.СебестоимостьПР
| ИНАЧЕ 0
| КОНЕЦ КАК ПостояннаяРазница,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.СебестоимостьВР
| ИНАЧЕ 0
| КОНЕЦ КАК ВременнаяРазница,
|
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаВозврата КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК НалогообложениеНДС,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИСТИНА КАК Первичное,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|
|ГДЕ
| ТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ТаблицаВидыЗапасов.СпособОпределенияСебестоимости <> ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровОтКлиента),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя))
| И &ПартионныйУчетВерсии21
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияНоменклатураНоменклатура";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"
|ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
|
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ВЫБОР КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры.Назначение.НаправлениеДеятельности
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК НаправлениеДеятельности,
| &Партнер КАК Склад,
| ТаблицаВидыЗапасов.ТипЗапасов КАК ТипЗапасов,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка) ТОГДА
| ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| ИНАЧЕ
| ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
|
| ТаблицаВидыЗапасов.АналитикаВозврата КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаВозврата.Назначение.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ТаблицаВидыЗапасов.СкладВозврата КАК КорСклад,
| ТаблицаВидыЗапасов.ТипЗапасов КАК КорТипЗапасов,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.Количество КАК КорКоличество,
|
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
|
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК КорИсточникГФУНоменклатуры
|
|ИЗ
| ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| &ЭтоВозвратОтКомиссионера
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ВозвратТоваровОтКлиента";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИспользоватьРасширенныеВозможностиЗаказаКлиента",
ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента"));
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("ВозвратПоЗаявке",
" ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента = ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ");
ПереопределениеРасчетаПараметров.Вставить("ИспользоватьОрдернуюСхемуПриПоступлении",
" ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.Дата >= ТаблицаТовары.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| И ТаблицаТовары.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ");
ПереопределениеРасчетаПараметров.Вставить("ИспользоватьРасширенныеВозможностиЗаказаКлиента",
" ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента = ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| ТОГДА &ИспользоватьРасширенныеВозможностиЗаказаКлиента
| ИНАЧЕ НЕ ТаблицаТовары.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента.ЭтоЗаказКакСчет
| КОНЕЦ");
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоДоговору", """""");
ПереопределениеРасчетаПараметров.Вставить("НомерВходящегоДокумента", """""");
Если ИмяРегистра = "РаспоряженияНаОтгрузкуИВозврат" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРаспоряженияНаОтгрузку(Запрос, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ТаблицаТовары";
ИначеЕсли ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ВЗапросеЕстьИсточник = Ложь;
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст = "
|ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ЕСТЬNULL(ДанныеДокумента.Контрагент.ЮрФизЛицо, ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ПустаяСсылка)) КАК КонтрагентЮрФизЛицо,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.КлиентПартнер КАК КлиентПартнер,
| ДанныеДокумента.КлиентКонтрагент КАК КлиентКонтрагент,
| ДанныеДокумента.КлиентДоговор КАК КлиентДоговор,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Соглашение КАК Соглашение,
| ДанныеДокумента.Договор КАК Договор,
| ЕСТЬNULL(ДанныеДокумента.Договор.ВестиРасчетыЧерезКонечныхПокупателей, ЛОЖЬ) КАК ВестиРасчетыЧерезКонечныхПокупателей,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ДанныеДокумента.ЗаявкаНаВозвратТоваровОтКлиента КАК ЗаявкаНаВозвратТоваровОтКлиента,
| ДанныеДокумента.ВозвратПорчи КАК ВозвратПорчи,
| ДанныеДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
| ДанныеДокумента.ВозвратПереданнойМногооборотнойТары КАК ВозвратПереданнойМногооборотнойТары,
| ДанныеДокумента.ПредусмотренЗалогЗаТару КАК ПредусмотренЗалогЗаТару,
| ДанныеДокумента.ВыданыДенежныеСредства КАК ВыданыДенежныеСредства,
| ДанныеДокумента.Менеджер КАК Менеджер,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
| ДанныеДокумента.НаименованиеВходящегоДокумента КАК НаименованиеВходящегоДокумента,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ДанныеДокумента.Сделка КАК Сделка,
| ЕСТЬNULL(ДанныеДокумента.Сделка.ОбособленныйУчетТоваровПоСделке, ЛОЖЬ) КАК ОбособленныйУчетТоваровПоСделке,
| ЕСТЬNULL(ДанныеДокумента.Подразделение.ВариантОбособленногоУчетаТоваров,
| ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПустаяСсылка)) КАК ВариантОбособленногоУчетаТоваров,
|
| ВЫБОР
| КОГДА ДанныеДокумента.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ДанныеДокумента.Дата >= ДанныеДокумента.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ИспользоватьОрдернуюСхемуПриПоступлении,
|
| ВЫБОР КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера) ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратОтКомиссионера,
|
| ВЫБОР КОГДА ДанныеДокумента.СпособКомпенсации = ЗНАЧЕНИЕ(Перечисление.СпособыКомпенсацииВозвратовТоваров.ВернутьДенежныеСредства) ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ВернутьДенежныеСредства,
|
| ДанныеДокумента.ПокупательНеПлательщикНДС КАК ПокупательНеПлательщикНДС,
| ДанныеДокумента.ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ПРЕДСТАВЛЕНИЕ(ДанныеДокумента.Договор) КАК ДоговорПредставление,
| ДанныеДокумента.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокумента.ОбъектРасчетов.УникальныйИдентификатор КАК ИдентификаторОбъектаРасчетов,
| ДанныеДокумента.Автор КАК Автор,
| НастройкиХозяйственныхОпераций.Ссылка КАК НастройкаХозяйственнойОперации,
| ЕСТЬNULL(ДанныеДокумента.ЗаявкаНаВозвратТоваровОтКлиента.ЭтоЗаказКакСчет, НЕОПРЕДЕЛЕНО) КАК ЭтоЗаказКакСчет
|
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО ДанныеДокумента.ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
ПараметрыУчетаПоОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Реквизиты.Организация, Реквизиты.Период);
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Запрос.УстановитьПараметр("НачалоМесяцаПериода", НачалоМесяца(Реквизиты.Период));
Запрос.УстановитьПараметр("ЦенаВключаетНДС", ?(Реквизиты.ЦенаВключаетНДС, 0, 1));
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Реквизиты.ВалютаРегламентированногоУчета);
Запрос.УстановитьПараметр("ВалютаУправленческогоУчета", Константы.ВалютаУправленческогоУчета.Получить());
Запрос.УстановитьПараметр("ВозвратПоЗаявке", ЗначениеЗаполнено(Реквизиты.ЗаявкаНаВозвратТоваровОтКлиента));
Запрос.УстановитьПараметр("СкладВозврата", Реквизиты.Склад);
Запрос.УстановитьПараметр("НалогообложениеОрганизации", ПараметрыУчетаПоОрганизации.ОсновноеНалогообложениеНДСПродажи);
Запрос.УстановитьПараметр("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета", ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипЗнч(ДокументСсылка)));
Запрос.УстановитьПараметр("ВыводитьБазовыеЕдиницыИзмерения", Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить());
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяУниверсальнаяДата());
Запрос.УстановитьПараметр("ВозвратЧерезКомиссионера", КомиссионнаяТорговляСервер.ВозвратТоваровЧерезКомиссионера(Реквизиты.ХозяйственнаяОперация));
Если Реквизиты.ЭтоЗаказКакСчет = Неопределено Тогда
Запрос.УстановитьПараметр("ИспользоватьРасширенныеВозможностиЗаказаКлиента",
ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента"));
Иначе
Запрос.УстановитьПараметр("ИспользоватьРасширенныеВозможностиЗаказаКлиента", Не Реквизиты.ЭтоЗаказКакСчет);
КонецЕсли;
ИнформацияПоДоговору = Неопределено;
Если ЗначениеЗаполнено(Реквизиты.Договор) Тогда
ШаблонСтроки = "ru = 'По договору ""%1""'";
ИнформацияПоДоговору = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСтроки, Реквизиты.ДоговорПредставление);
КонецЕсли;
Запрос.УстановитьПараметр("ИнформацияПоДоговору", ИнформацияПоДоговору);
УчетНДСУП.УстановитьПараметрыЗапросаСтавкиНДС(Запрос.Параметры, Запрос.Параметры.Организация, Запрос.Параметры.Период);
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Процедура ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента КАК Заказ,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| ИсточникДанных.Ссылка.Соглашение КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
|
| ВЫБОР КОГДА ИсточникДанных.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ИсточникДанных.Ссылка.ДатаПоступления
| ИНАЧЕ
| ИсточникДанных.Ссылка.Дата
| КОНЕЦ КАК Дата,
|
| ВЫБОР
| КОГДА ИсточникДанных.Порча
| ТОГДА ИсточникДанных.НоменклатураОприходование
| ИНАЧЕ ИсточникДанных.Номенклатура
| КОНЕЦ КАК Номенклатура,
| ВЫБОР
| КОГДА ИсточникДанных.Порча
| ТОГДА ИсточникДанных.ХарактеристикаОприходование
| ИНАЧЕ ИсточникДанных.Характеристика
| КОНЕЦ КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИсточникДанных.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| И ИсточникДанных.КодСтроки = 0 КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка) КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И НЕ ИсточникДанных.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера)";
СкладыСервер.ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента);
КонецПроцедуры
Процедура ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента КАК Заказ,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| ИсточникДанных.Ссылка.Соглашение КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ВЫБОР
| КОГДА ИсточникДанных.Порча
| ТОГДА ИсточникДанных.НоменклатураОприходование
| ИНАЧЕ ИсточникДанных.Номенклатура
| КОНЕЦ КАК Номенклатура,
| ИсточникДанных.Номенклатура КАК НоменклатураДляСоединения,
| ВЫБОР
| КОГДА ИсточникДанных.Порча
| ТОГДА ИсточникДанных.ХарактеристикаОприходование
| ИНАЧЕ ИсточникДанных.Характеристика
| КОНЕЦ КАК Характеристика,
| ИсточникДанных.Характеристика КАК ХарактеристикаДляСоединения,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИсточникДанных.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| И ИсточникДанных.КодСтроки = 0 КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка) КАК ПоступлениеПоЗаказам,
| ЛОЖЬ КАК ЭтоКорректировкаВнутриНакладной
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И НЕ ИсточникДанных.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера)";
ТекущийОбъектМетаданных = Метаданные.Документы.ВозвратТоваровОтКлиента;
ДополнительныеПоляСоединенияССериями = Новый Массив;
ДополнительныеПоляСоединенияССериями.Добавить("НоменклатураОприходование");
ДополнительныеПоляСоединенияССериями.Добавить("ХарактеристикаОприходование");
ПереопределяемыеПоляСоединенияССериями = Новый Соответствие;
ПереопределяемыеПоляСоединенияССериями.Вставить("Номенклатура", "НоменклатураДляСоединения");
ПереопределяемыеПоляСоединенияССериями.Вставить("Характеристика", "ХарактеристикаДляСоединения");
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.ИмяТЧСерии = "Серии";
ПараметрыМодульногоПроведения.ДополнительныеПоляСоединенияССериями = ДополнительныеПоляСоединенияССериями;
ПараметрыМодульногоПроведения.ПереопределяемыеПоляСоединенияССериями = ПереопределяемыеПоляСоединенияССериями;
СкладыСервер.ОформитьПоступлениеТоваровПоОдноходовкеСНастройкойСоединенияСерий(Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДокумента,
ТекущийОбъектМетаданных,
ПараметрыМодульногоПроведения);
КонецПроцедуры
Процедура ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры, ДокументСсылка)
Если Не УчетНДСУП.ТребуетсяПроведениеПоРегистрамНДС(Регистры) Тогда
Возврат;
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЦенности =
"ВЫБРАТЬ
| ВидыЗапасов.Ссылка.Дата КАК Период,
| ВидыЗапасов.Ссылка КАК Ссылка,
| ВидыЗапасов.Ссылка.Организация КАК Организация,
| ВидыЗапасов.Ссылка.Подразделение КАК Подразделение,
| ВидыЗапасов.Ссылка.Контрагент КАК Контрагент,
| ВидыЗапасов.Ссылка.Договор КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Грузоотправитель,
| ВидыЗапасов.Ссылка.ПокупательНеПлательщикНДС КАК ПокупательНеПлательщикНДС,
| ВЫБОР
| КОГДА ВидыЗапасов.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК РозничныйПокупатель,
| ВидыЗапасов.Ссылка.КлиентКонтрагент КАК ПокупательКомиссионногоТовара,
| ВЫБОР
| КОГДА ВидыЗапасов.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ВозвратТоваровЧерезКомиссионера,
| ВидыЗапасов.Ссылка.ВыданыДенежныеСредства КАК ДенежныеСредстваРозничномуПокупателюВозвращены,
| ВидыЗапасов.Ссылка.НомерРасходногоКассовогоОрдера КАК НомерДокументаВозвратаДСРозничномуПокупателю,
| ВидыЗапасов.Ссылка.ДатаРасходногоКассовогоОрдера КАК ДатаДокументаВозвратаДСРозничномуПокупателю,
| ВидыЗапасов.Ссылка КАК ДокументВозврата,
| ВидыЗапасов.ДокументРеализации КАК ДокументРеализации,
| ВидыЗапасов.Ссылка.ОбъектРасчетов КАК ОбъектРасчетов,
| ВидыЗапасов.Ссылка.НалогообложениеНДС КАК НалогообложениеНДС,
| ВидыЗапасов.Ссылка.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ВидыЗапасов.Номенклатура КАК Номенклатура,
| ВидыЗапасов.Характеристика КАК Характеристика,
| ВидыЗапасов.Серия КАК Серия,
| ВидыЗапасов.НоменклатураНабора КАК НоменклатураНабора,
| ВидыЗапасов.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ИЛИ ВидыЗапасов.КоличествоУпаковок = 0
| ТОГДА ВидыЗапасов.Количество
| ИНАЧЕ ВидыЗапасов.КоличествоУпаковок
| КОНЕЦ КАК Количество,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ВидыЗапасов.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ &ТекстЗапросаЕдиницаИзмерения
| КОНЕЦ КАК ЕдиницаИзмерения,
| ВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВидыЗапасов.Номенклатура.КодТНВЭД КАК КодТНВЭД,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВидыЗапасов.НомерГТД КАК НомерГТД,
| ВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВидыЗапасов.Ссылка.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВидыЗапасов.Назначение КАК Назначение,
| ВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И ВидыЗапасов.ПериодПродажи >= &НачалоМесяцаПериода
| И ВидыЗапасов.ТипЗапасов В (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И (ВидыЗапасов.СкладОтгрузки <> ВидыЗапасов.СкладВозврата
| ИЛИ ВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ ВидыЗапасов.ВидЗапасовОтгрузки <> ВидыЗапасов.ВидЗапасов
| ИЛИ ВидыЗапасов.Назначение <> ВидыЗапасов.НазначениеОтгрузки И &УчитыватьСебестоимостьТоваровПоНазначениям)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноРеализацииВозвратНаДругойСклад)
| ИНАЧЕ ВидыЗапасов.НастройкаХозяйственнойОперации
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтТаблицаВидыЗапасов КАК ВидыЗапасов
|ГДЕ
| ВидыЗапасов.Ссылка.ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровОтКлиента),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера))
| И (ВЫБОР КОГДА ВидыЗапасов.Ссылка.ВозвратПереданнойМногооборотнойТары ТОГДА
| ВидыЗапасов.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИНАЧЕ
| ИСТИНА
| КОНЕЦ)
|";
ТекстЦенности = СтрЗаменить(
ТекстЦенности,
"&ТекстЗапросаЕдиницаИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Ссылка",
"ВидыЗапасов.Упаковка",
"ВидыЗапасов.Номенклатура"));
УчетНДСУП.ОтразитьВозвратТоваровОтПокупателя(Запрос, ТекстыЗапроса, Регистры, ТекстЦенности);
КонецПроцедуры
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Договор КАК Договор,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Склад КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Ответственный,
| &Автор КАК Автор,
| &Комментарий КАК Комментарий,
| &Валюта КАК Валюта,
| &СуммаДокумента КАК Сумма,
| НЕОПРЕДЕЛЕНО КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| &ИнформацияПоДоговору КАК Дополнительно,
| &ДатаВходящегоДокумента КАК ДатаПервичногоДокумента,
| &НомерВходящегоДокумента КАК НомерПервичногоДокумента,
| &НаименованиеВходящегоДокумента КАК НаименованиеПервичногоДокумента,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры)
#Область КурсыВалютДокумента
ИмяРегистра = "ВременнаяТаблицаКурсыВалютДокумента";
ТекстЗапросаКурсыВалютДокумента =
"ВЫБРАТЬ
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| ДанныеДокументаШапка.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ДанныеДокументаШапка
|ГДЕ
| ДанныеДокументаШапка.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| ДанныеДокументаШапка.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ВозвратТоваровОтКлиента.РасшифровкаПлатежа КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ВозвратТоваровОтКлиента.РасшифровкаПлатежа КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
ТекстЗапросаКурсыВалютДокумента = ВзаиморасчетыСервер.ПолучитьТаблицуКурсовВалютНаправленийДеятельности(ТекстЗапросаКурсыВалютДокумента);
ТекстыЗапроса.Добавить(ТекстЗапросаКурсыВалютДокумента, ИмяРегистра);
#КонецОбласти
ТекстВозврат = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Организация КАК Организация,
| ВЫБОР КОГДА &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионераПрошлыхПериодов))
| И &ВестиРасчетыЧерезКонечныхПокупателей
| ТОГДА Таблица.КлиентПартнер
| ИНАЧЕ Таблица.Партнер
| КОНЕЦ КАК Партнер,
|
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| Таблица.Валюта КАК ВалютаВзаиморасчетов,
| Таблица.Валюта КАК ВалютаДокумента,
| Таблица.СуммаДокумента КАК СуммаВзаиморасчетов,
| Таблица.СуммаДокумента КАК Сумма,
| ВЫБОР
| КОГДА Таблица.ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| И Таблица.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоНакладным)
| И Таблица.ЗаявкаНаВозвратТоваровОтКлиента.СпособКомпенсации = ЗНАЧЕНИЕ(Перечисление.СпособыКомпенсацииВозвратовТоваров.ВернутьДенежныеСредства)
| ТОГДА 0
| ИНАЧЕ Таблица.СуммаДокумента
| КОНЕЦ КАК КОплате,
|
| Таблица.Дата КАК ДатаРегистратора,
| Таблица.Номер КАК НомерРегистратора,
| Таблица.Дата КАК ДатаКурса,
| Таблица.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК СтатьяДвиженияДенежныхСредств
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК Таблица
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
| И Таблица.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)";
ТекстРасшифровкаПлатежа = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Ссылка.Организация КАК Организация,
| ВЫБОР КОГДА &ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионераПрошлыхПериодов))
| И &ВестиРасчетыЧерезКонечныхПокупателей
| ТОГДА Таблица.Ссылка.КлиентПартнер
| ИНАЧЕ Таблица.Ссылка.Партнер
| КОНЕЦ КАК Партнер,
|
| Таблица.Ссылка.ОбъектРасчетов КАК ОбъектРасчетовИсточник,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетовПриемник,
|
| Таблица.Сумма КАК Сумма,
| Таблица.Ссылка.Валюта КАК ВалютаДокумента,
| Таблица.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| Таблица.Ссылка.Дата КАК ДатаРегистратора,
| Таблица.Ссылка.Дата КАК ДатаКурса,
| Таблица.Ссылка.Номер КАК НомерРегистратора,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВзаимозачетЗадолженности) КАК ХозяйственнаяОперация
|ИЗ
| Документ.ВозвратТоваровОтКлиента.РасшифровкаПлатежа КАК Таблица
|ГДЕ
| Таблица.ОбъектРасчетов <> Таблица.Ссылка.ОбъектРасчетов
| И Таблица.Ссылка В (&Ссылка)";
ВзаиморасчетыСервер.ПроведениеВозвратаТоваровОтКлиента(Запрос, ТекстыЗапроса, Регистры, ТекстВозврат, ТекстРасшифровкаПлатежа);
КонецПроцедуры
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
ДополнительныеПараметры.Добавить("АналитикаУчетаПоПартнерам");
ДополнительныеПараметры.Добавить("КорВидЗапасов");
Если Запрос <> Неопределено Тогда
УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос);
УстановитьПараметрЗапросаКорВидЗапасов(Запрос);
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтТаблицаВидыЗапасов");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область ВнешнееПоступление_Товар_СтоимостьВручную
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) ТОГДА
| ТаблицаВидыЗапасов.АналитикаОприходования
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаВозврата
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаДокумента.Ссылка КАК Партия,
| &НалогообложениеОрганизации КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаВидыЗапасов.АналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
| ТаблицаДокумента.Партнер КАК Поставщик,
| ТаблицаДокумента.Контрагент КАК Контрагент,
| ТаблицаВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК Менеджер,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.Себестоимость
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаСНДСУпр
| КОНЕЦ КАК Стоимость,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьБезНДС
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСУпр
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьРегл
| ИНАЧЕ ВЫБОР
| КОГДА ТаблицаВидыЗапасов.НалогообложениеНДС В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД))
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДСРегл
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСРегл
| КОНЕЦ
| КОНЕЦ КАК СтоимостьРегл,
| ТаблицаВидыЗапасов.СуммаНДСРегл КАК НДСРегл,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьБезНДС
| ИНАЧЕ ВЫБОР
| КОГДА ТаблицаВидыЗапасов.НалогообложениеНДС В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС),
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД))
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДСУпр
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСУпр
| КОНЕЦ
| КОНЕЦ КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьПР
| ИНАЧЕ 0
| КОНЕЦ КАК ПостояннаяРазница,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьВР
| ИНАЧЕ 0
| КОНЕЦ КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОприходованиеПоВозврату) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ОприходованиеПоВозврату) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.СпособОпределенияСебестоимости <> ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И ТаблицаВидыЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И ТаблицаДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнешнееПоступление,
ТекстЗапроса);
#КонецОбласти
#Область Реализация_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| ТОГДА ТаблицаВидыЗапасов.ДокументРеализации
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ДокументИсточник,
| ТаблицаВидыЗапасов.ПериодПродажи КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.АналитикаОприходования
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаВозврата
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| ТаблицаВидыЗапасов.АналитикаРеализации КАК КорАналитикаУчетаНоменклатуры,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| &АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ЗаказРеализации <> НЕОПРЕДЕЛЕНО
| ТОГДА ТаблицаВидыЗапасов.ЗаказРеализации
| ИНАЧЕ ТаблицаВидыЗапасов.ДокументРеализации
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ВЫБОР
| КОГДА &ВозвратЧерезКомиссионера И ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионераПрошлыхПериодов)
| КОГДА ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровОтКлиентаПрошлыхПериодов)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноРеализацииВозвратНаДругойСклад)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ТОГДА ТаблицаВидыЗапасов.НастройкаХозяйственнойОперации
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноРеализацииВозвратНаДругойСклад)
| КОНЕЦ КАК НастройкаХозяйственнойОперации,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.ВозвратПрошлыхПериодов)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.ВозвратНаДругойСклад)
| КОНЕЦ КАК ТипЗаписи
|
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И (ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ИЛИ ТаблицаВидыЗапасов.СкладОтгрузки <> ТаблицаВидыЗапасов.СкладВозврата
| ИЛИ ТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ТаблицаВидыЗапасов.ВидЗапасов
| ИЛИ ТаблицаВидыЗапасов.Назначение <> ТаблицаВидыЗапасов.НазначениеОтгрузки
| И &УчитыватьСебестоимостьТоваровПоНазначениям)
| И ТаблицаВидыЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И ТаблицаДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
| И НЕ ТаблицаВидыЗапасов.ПереданнаяМногооборотнаяТара";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
#КонецОбласти
#Область Реализация_Товар_Сторно
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| ТОГДА ТаблицаВидыЗапасов.ДокументРеализации
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ДокументИсточник,
| ТаблицаВидыЗапасов.ПериодПродажи КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаРеализации КАК АналитикаУчетаНоменклатуры,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| ТаблицаВидыЗапасов.АналитикаРеализации КАК КорАналитикаУчетаНоменклатуры,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| &АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ЗаказРеализации <> НЕОПРЕДЕЛЕНО
| ТОГДА ТаблицаВидыЗапасов.ЗаказРеализации
| ИНАЧЕ ТаблицаВидыЗапасов.ДокументРеализации
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаВидыЗапасов.ПодразделениеРеализации КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| -ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ВЫБОР
| КОГДА &ВозвратЧерезКомиссионера
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноРеализации)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ТаблицаВидыЗапасов.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.Сторно) КАК ТипЗаписи
|
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И ТаблицаВидыЗапасов.ПериодПродажи >= &НачалоМесяцаПериода
| И ТаблицаВидыЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И ТаблицаДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
| И НЕ ТаблицаВидыЗапасов.ПереданнаяМногооборотнаяТара
| И ТаблицаВидыЗапасов.СкладОтгрузки = ТаблицаВидыЗапасов.СкладВозврата
| И ТаблицаВидыЗапасов.НоменклатураОприходование = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ТаблицаВидыЗапасов.ВидЗапасовОтгрузки = ТаблицаВидыЗапасов.ВидЗапасов
| И (ТаблицаВидыЗапасов.Назначение = ТаблицаВидыЗапасов.НазначениеОтгрузки
| ИЛИ НЕ &УчитыватьСебестоимостьТоваровПоНазначениям)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
#КонецОбласти
#Область ВыбытиеПоФиксированнойСтоимости_Тара
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| ТОГДА ТаблицаВидыЗапасов.ДокументРеализации
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ДокументИсточник,
| ТаблицаВидыЗапасов.ПериодПродажи КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.АналитикаОприходования
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаВозврата
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаРеализации КАК КорАналитикаУчетаНоменклатуры,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК КорВидЗапасов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.РазницыСтоимостиВозвратаИФактическойСтоимостиТоваров) КАК СтатьяРасходовАктивов,
| ТаблицаДокумента.Партнер КАК АналитикаРасходовАктивов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.РазницыСтоимостиВозвратаИФактическойСтоимостиТоваров) КАК СтатьяДоходов,
| ТаблицаДокумента.Партнер КАК АналитикаДоходов,
| &АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.Себестоимость
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаСНДСУпр
| КОНЕЦ КАК Стоимость,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьБезНДС
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСУпр
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьРегл
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСРегл
| КОНЕЦ КАК СтоимостьРегл,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьБезНДС
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСУпр
| КОНЕЦ КАК СтоимостьУпр,
| 0 КАК КорСтоимость,
|
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТарыОтКлиентаПрошлыхПериодов)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноПереданнойТарыВозвратНаДругойСклад)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА &ПредусмотренЗалогЗаТару
| ТОГДА &ИдентификаторОбъектаРасчетов
| ИНАЧЕ ТаблицаВидыЗапасов.ИдентификаторСтроки
| КОНЕЦ КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВозвратТарыОтКлиентаПрошлыхПериодов)
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноПереданнойТарыВозвратНаДругойСклад)
| КОНЕЦ КАК НастройкаХозяйственнойОперации,
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.ВозвратПрошлыхПериодов)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.ВозвратНаДругойСклад)
| КОНЕЦ КАК ТипЗаписи
|
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И (ТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ИЛИ ТаблицаВидыЗапасов.СкладОтгрузки <> ТаблицаВидыЗапасов.СкладВозврата
| ИЛИ ТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ТаблицаВидыЗапасов.ВидЗапасов
| ИЛИ ТаблицаВидыЗапасов.Назначение <> ТаблицаВидыЗапасов.НазначениеОтгрузки
| И &УчитыватьСебестоимостьТоваровПоНазначениям)
| И ТаблицаВидыЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И ТаблицаДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
| И ТаблицаВидыЗапасов.ПереданнаяМногооборотнаяТара";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВыбытиеПоФиксированнойСтоимости,
ТекстЗапроса);
#КонецОбласти
#Область ВыбытиеПоФиксированнойСтоимости_Тара_Сторно
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| ТОГДА ТаблицаВидыЗапасов.ДокументРеализации
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ДокументИсточник,
| ТаблицаВидыЗапасов.ПериодПродажи КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаРеализации КАК АналитикаУчетаНоменклатуры,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| ТаблицаВидыЗапасов.АналитикаРеализации КАК КорАналитикаУчетаНоменклатуры,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК КорВидЗапасов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.РазницыСтоимостиВозвратаИФактическойСтоимостиТоваров) КАК СтатьяРасходовАктивов,
| ТаблицаДокумента.Партнер КАК АналитикаРасходовАктивов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.РазницыСтоимостиВозвратаИФактическойСтоимостиТоваров) КАК СтатьяДоходов,
| ТаблицаДокумента.Партнер КАК АналитикаДоходов,
| &АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| -ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.Себестоимость
| ИНАЧЕ -ТаблицаВидыЗапасов.СуммаСНДСУпр
| КОНЕЦ КАК Стоимость,
| -ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА ТаблицаВидыЗапасов.СебестоимостьБезНДС
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСУпр
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.СебестоимостьРегл
| ИНАЧЕ -ТаблицаВидыЗапасов.СуммаБезНДСРегл
| КОНЕЦ КАК СтоимостьРегл,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ТОГДА -ТаблицаВидыЗапасов.СебестоимостьБезНДС
| ИНАЧЕ -ТаблицаВидыЗапасов.СуммаБезНДСУпр
| КОНЕЦ КАК СтоимостьУпр,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СторноПереданнойТары) КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА &ПредусмотренЗалогЗаТару
| ТОГДА &ИдентификаторОбъектаРасчетов
| ИНАЧЕ ТаблицаВидыЗапасов.ИдентификаторСтроки
| КОНЕЦ КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноПереданнойТары) КАК НастройкаХозяйственнойОперации,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.Сторно) КАК ТипЗаписи
|
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И ТаблицаВидыЗапасов.ПериодПродажи >= &НачалоМесяцаПериода
| И ТаблицаВидыЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И ТаблицаДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
| И ТаблицаВидыЗапасов.ПереданнаяМногооборотнаяТара
| И ТаблицаВидыЗапасов.СкладОтгрузки = ТаблицаВидыЗапасов.СкладВозврата
| И ТаблицаВидыЗапасов.НоменклатураОприходование = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ТаблицаВидыЗапасов.ВидЗапасовОтгрузки = ТаблицаВидыЗапасов.ВидЗапасов
| И (ТаблицаВидыЗапасов.Назначение = ТаблицаВидыЗапасов.НазначениеОтгрузки
| ИЛИ НЕ &УчитыватьСебестоимостьТоваровПоНазначениям)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВыбытиеПоФиксированнойСтоимости,
ТекстЗапроса);
#КонецОбласти
#Область Перемещение_Товар_Комиссия
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаПереданнойНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| ИНАЧЕ ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.АналитикаОприходования
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаВозврата
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.ТипЗапасов В (
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
| И ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
| И НЕ ТаблицаВидыЗапасов.ПереданнаяМногооборотнаяТара
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
Функция ОписаниеОперацийУчетаВыручки(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область Реализация
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| &АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| ВЫБОР КОГДА &АктПоЗаказам ТОГДА
| ТаблицаВидыЗапасов.ЗаказКлиента
| ИНАЧЕ
| ТаблицаДокумента.Ссылка
| КОНЕЦ КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиенту) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтРаботыУслуги КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
#Конецобласти
КонецФункции
#КонецОбласти
#КонецОбласти
#Область Печать
Функция ПравилаПечатиЗаданияНаОтборРазмещение() Экспорт
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.ОперацияПоступления = Истина;
Возврат ПравилаПечатиЗадания;
КонецФункции
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
Если ПравоДоступа("Просмотр", Метаданные.Документы.ВозвратТоваровОтКлиента) Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ВозвратОтКлиента";
КомандаПечати.Представление = НСтр("ru = 'Возврат от клиента'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'Возврат от клиента'");
КонецЕсли;
Если НЕ ПраваПользователяПовтИсп.ЭтоПартнер() И Константы.ИспользоватьМеждународныеПечатныеФормы.Получить() Тогда
УсловиеВидимости = Новый Структура;
УсловиеВидимости.Вставить("Реквизит", Метаданные.Документы.ВозвратТоваровОтКлиента.Реквизиты.ХозяйственнаяОперация.Имя);
УсловиеВидимости.Вставить("ВидСравнения", ВидСравнения.НеРавно);
УсловиеВидимости.Вставить("Значение", Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя);
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "CreditNote";
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Представление = НСтр("ru = 'Credit Note'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Порядок = 3;
КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимости);
КонецЕсли;
Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(КомандыПечати, "ЗаданиеНаРазмещение");
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьЗаявленияНаВозвратТоваровОтКлиента";
КомандаПечати.Идентификатор = "ЗаявлениеНаВозвратТоваровОтКлиента";
КомандаПечати.Представление = НСтр("ru = 'Заявление на возврат товаров'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
ВозвратТоваровОтКлиентаЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ВозвратОтКлиента") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ВозвратОтКлиента", НСтр("ru = 'Возврат от клиента'"), СформироватьПечатнуюФормуВозвратОтКлиента(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
ВозвратТоваровОтКлиентаЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
КонецПроцедуры
Процедура ЗаполнитьСтруктуруПолучателейПечатныхФорм(СтруктураДанныхОбъектаПечати) Экспорт
СтруктураДанныхОбъектаПечати.ОсновнойПолучатель = "Партнер";
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Партнер");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов") Тогда
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Контрагент");
КонецЕсли;
КонецПроцедуры
Процедура УстановитьПараметр(ОбластьМакета, ИмяПараметра, ЗначениеПараметра)
ОбластьМакета.Параметры.Заполнить(Новый Структура(ИмяПараметра, ЗначениеПараметра));
КонецПроцедуры
Функция СформироватьПечатнуюФормуВозвратОтКлиента(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов();
ИмяКолонкиКодов = КолонкаКодов.ИмяКолонки;
ПредставлениеКолонкиКодов = КолонкаКодов.ПредставлениеКолонки;
ВыводитьКоды = ЗначениеЗаполнено(ИмяКолонкиКодов);
Запрос = Новый Запрос("ВЫБРАТЬ
| ВозвратТоваровОтКлиента.Ссылка КАК Ссылка,
| ВозвратТоваровОтКлиента.Номер КАК Номер,
| ВозвратТоваровОтКлиента.Дата КАК Дата,
| ВозвратТоваровОтКлиента.Партнер КАК Партнер,
| ВозвратТоваровОтКлиента.Контрагент КАК Получатель,
| ВозвратТоваровОтКлиента.Организация КАК Организация,
| ВозвратТоваровОтКлиента.Организация.Префикс КАК Префикс,
| ВозвратТоваровОтКлиента.Валюта КАК Валюта,
| ВозвратТоваровОтКлиента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ВозвратТоваровОтКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА ВозвратТоваровОтКлиента.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УчитыватьНДС,
| ВозвратТоваровОтКлиента.Склад.ТекущийОтветственный КАК ПолучениеПроизвел
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
|ГДЕ
| ВозвратТоваровОтКлиента.Ссылка В(&МассивДокументов)
| И ВозвратТоваровОтКлиента.Проведен
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ВариантыКомплектацииНоменклатуры.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫБОР
| КОГДА Таблица.Порча
| ТОГДА Таблица.НоменклатураОприходование
| ИНАЧЕ Таблица.Номенклатура
| КОНЕЦ КАК Номенклатура,
| ВЫБОР
| КОГДА Таблица.Порча
| ТОГДА Таблица.ХарактеристикаОприходование
| ИНАЧЕ Таблица.Характеристика
| КОНЕЦ КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.Цена КАК Цена,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.Количество КАК Количество,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА Таблица.Ссылка.ВозвратПереданнойМногооборотнойТары
| И Таблица.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
| ПО (ВариантыКомплектацииНоменклатуры.Владелец = Таблица.НоменклатураНабора)
| И (ВариантыКомплектацииНоменклатуры.Характеристика = Таблица.ХарактеристикаНабора)
| И (ВариантыКомплектацииНоменклатуры.Основной)
|ГДЕ
| Таблица.Ссылка В(&МассивДокументов)
| И Таблица.Ссылка.Проведен
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ТоварыРазличные
|ИЗ
| Товары КАК ТаблицаТоваров
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| МИНИМУМ(Таблица.НомерСтроки) КАК НомерСтроки,
| СУММА(Таблица.Сумма) КАК Сумма,
| СУММА(Таблица.СуммаНДС) КАК СуммаНДС
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыПодготовка
|ИЗ
| Товары КАК Таблица
|ГДЕ
| Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора КАК НоменклатураНабора,
| Товары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
| И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОсновнаяКомплектующая,
| Товары.СтавкаНДС КАК СтавкаНДС,
| 0 КАК КоличествоПоУмолчанию,
| Товары.Количество КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьПервая
|ИЗ
| Товары КАК Товары
|ГДЕ
| Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТоварыРазличные.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ЛОЖЬ,
| NULL,
| СУММА(ВариантыКомплектацииНоменклатурыТовары.Количество),
| 0
|ИЗ
| Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыРазличные КАК ТоварыРазличные
| ПО (ИСТИНА)
|ГДЕ
| ВариантыКомплектацииНоменклатурыТовары.Ссылка В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| Т.ВариантКомплектацииНоменклатуры
| ИЗ
| Товары КАК Т)
|
|СГРУППИРОВАТЬ ПО
| ТоварыРазличные.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Упаковка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| МАКСИМУМ(Таблица.СтавкаНДС) КАК СтавкаНДС,
| МАКСИМУМ(Таблица.ОсновнаяКомплектующая) КАК ОсновнаяКомплектующая,
| СУММА(Таблица.КоличествоПоУмолчанию) КАК КоличествоПоУмолчанию,
| СУММА(Таблица.Количество) КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьВторая
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьПервая КАК Таблица
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика
|;
|
|
|ВЫБРАТЬ
| Результат.Ссылка КАК Ссылка,
| Результат.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора КАК НоменклатураНабора,
| Результат.ХарактеристикаНабора КАК ХарактеристикаНабора,
| МАКСИМУМ(ВЫБОР
| КОГДА Результат.ОсновнаяКомплектующая
| ТОГДА Результат.СтавкаНДС
| ИНАЧЕ NULL
| КОНЕЦ) КАК СтавкаНДС,
| (ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0
| И Результат.ОсновнаяКомплектующая
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ NULL
| КОНЕЦ) + 0.5 КАК ЧИСЛО(10, 0))) - 1 КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительно
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьВторая КАК Результат
|
|СГРУППИРОВАТЬ ПО
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| ВЫБОР
| КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ВЫБОР
| КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
| ВЫБОР
| КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ВЫБОР
| КОГДА ВЫБОР
| КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| И ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора В
| (ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоЦенам),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоДолям))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.РассчитываетсяИзЦенКомплектующих)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.НомерСтроки КАК НомерСтроки,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК КоличествоУпаковок,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК Количество,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| ВременнаяТаблицаНаборыДополнительно.СтавкаНДС КАК СтавкаНДС
|ПОМЕСТИТЬ ВременнаяТаблицаНаборы
|ИЗ
| ВременнаяТаблицаНаборыПодготовка КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборыДополнительно КАК ВременнаяТаблицаНаборыДополнительно
| ПО Таблица.НоменклатураНабора = ВременнаяТаблицаНаборыДополнительно.НоменклатураНабора
| И Таблица.ХарактеристикаНабора = ВременнаяТаблицаНаборыДополнительно.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Таблица.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.ЭтоКомплектующие КАК ЭтоКомплектующие,
| Таблица.ЭтоНабор КАК ЭтоНабор,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Номенклатура.НаименованиеПолное КАК ТоварНаименованиеПолное,
| Таблица.Номенклатура.Код КАК Код,
| Таблица.Номенклатура.Артикул КАК Артикул,
| ВЫБОР
| КОГДА Таблица.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки
| КОНЕЦ КАК Коэффициент,
| ВЫБОР
| КОГДА Таблица.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА Таблица.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ Таблица.Упаковка
| КОНЕЦ КАК ЕдиницаИзмерения,
| ВЫБОР
| КОГДА Таблица.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА Таблица.Номенклатура.ЕдиницаИзмерения.Наименование
| ИНАЧЕ Таблица.Упаковка.Наименование
| КОНЕЦ КАК ЕдиницаЦены,
| Таблица.Характеристика.НаименованиеПолное КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ Таблица.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.Цена КАК Цена,
| Таблица.КоличествоУпаковок КАК Количество,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.НомерСтроки КАК НомерСтроки,
| Таблица.ЭтоВозвратнаяТара КАК ЭтоВозвратнаяТара
|ИЗ
| (ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка)
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоКомплектующие,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.НомерСтроки
| ИНАЧЕ Таблица.НомерСтроки
| КОНЕЦ КАК НомерСтроки,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.Цена КАК Цена,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| Таблица.ЭтоВозвратнаяТара КАК ЭтоВозвратнаяТара
| ИЗ
| Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ПО (ВременнаяТаблицаНаборы.НоменклатураНабора = Таблица.НоменклатураНабора)
| И (ВременнаяТаблицаНаборы.ХарактеристикаНабора = Таблица.ХарактеристикаНабора)
| И (ВременнаяТаблицаНаборы.Ссылка = Таблица.Ссылка)
| ГДЕ
| (Таблица.НоменклатураНабора = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В
| (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоКомплектующие),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВременнаяТаблицаНаборы.Ссылка,
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЛОЖЬ,
| ИСТИНА,
| ВременнаяТаблицаНаборы.НомерСтроки,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.Количество,
| ВременнаяТаблицаНаборы.КоличествоУпаковок,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0
| ТОГДА ВременнаяТаблицаНаборы.Сумма / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ 0
| КОНЕЦ,
| ВременнаяТаблицаНаборы.Сумма,
| ВременнаяТаблицаНаборы.СуммаНДС,
| ВременнаяТаблицаНаборы.СтавкаНДС,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка),
| ЛОЖЬ
| ИЗ
| ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ГДЕ
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В
| (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие))) КАК Таблица
|
|УПОРЯДОЧИТЬ ПО
| Таблица.Ссылка,
| ЭтоНабор УБЫВ");
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Таблица.Упаковка",
"Таблица.Номенклатура"));
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВозвратТоваровОтКлиента_Накладная";
ТабличныйДокумент = Новый ТабличныйДокумент;
МассивРезультатов = Запрос.ВыполнитьПакет();
ДанныеПечати = МассивРезультатов[0].Выбрать();
Товары = МассивРезультатов[МассивРезультатов.Количество() - 1].Выгрузить();
ПервыйДокумент = Истина;
Пока ДанныеПечати.Следующий() Цикл
СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
ТаблицаТовары = Товары.НайтиСтроки(СтруктураПоиска);
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ВозвратТоваровОтКлиента.ПФ_MXL_ВозвратОтКлиента");
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ОбластьКолонкаТовар = Макет.Область("Товар");
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.2;
КонецЕсли;
Иначе
ОбластьКолонкаТовар = Макет.Область("ТоварБезСумм");
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.125;
КонецЕсли;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
СтруктураДанныхШапки = Новый Структура;
СтруктураДанныхШапки.Вставить("ТекстЗаголовка", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(
ДанныеПечати,
НСтр("ru = 'Возврат от клиента'", ОбщегоНазначения.КодОсновногоЯзыка())));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхШапки);
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
СтруктураДанныхПоставщик = Новый Структура;
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата), "ПолноеНаименование");
СтруктураДанныхПоставщик.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
СтруктураДанныхПоставщик.Вставить("Поставщик", ДанныеПечати.Организация);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
СтруктураДанныхПокупатель = Новый Структура;
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Получатель, ДанныеПечати.Дата), "ПолноеНаименование");
СтруктураДанныхПокупатель.Вставить("ПредставлениеПолучателя", ПредставлениеПолучателя);
СтруктураДанныхПокупатель.Вставить("Получатель", ДанныеПечати.Получатель);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПокупатель);
ТабличныйДокумент.Вывести(ОбластьМакета);
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар");
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
Иначе
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|НомерСтрокиБезСумм");
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|КолонкаКодовБезСумм");
ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|ТоварБезСумм");
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|ДанныеБезСумм");
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ИмяКолонкиКодов", ПредставлениеКолонкиКодов);
ОбластьКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТовар);
ТабличныйДокумент.Присоединить(ОбластьДанных);
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ИмяОбласти = "СтрокаТаблицы";
ИмяОбластиНабор = "СтрокаТаблицыНабор";
ИмяОбластиКомплектующие = "СтрокаТаблицыКомплектующие";
Иначе
ИмяОбласти = "СтрокаТаблицыБезСумм";
ИмяОбластиНабор = "СтрокаТаблицыБезСуммНабор";
ИмяОбластиКомплектующие = "СтрокаТаблицыБезСуммКомплектующие";
КонецЕсли;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ОбластьНомераСтандарт = Макет.ПолучитьОбласть(ИмяОбласти+"|НомерСтроки");
ОбластьКодовСтандарт = Макет.ПолучитьОбласть(ИмяОбласти+"|КолонкаКодов");
ОбластьТоварСтандарт = Макет.ПолучитьОбласть(ИмяОбласти+"|Товар");
ОбластьДанныхСтандарт = Макет.ПолучитьОбласть(ИмяОбласти+"|Данные");
Иначе
ОбластьНомераСтандарт = Макет.ПолучитьОбласть(ИмяОбласти+"|НомерСтрокиБезСумм");
ОбластьКодовСтандарт = Макет.ПолучитьОбласть(ИмяОбласти+"|КолонкаКодовБезСумм");
ОбластьТоварСтандарт = Макет.ПолучитьОбласть(ИмяОбласти+"|ТоварБезСумм");
ОбластьДанныхСтандарт = Макет.ПолучитьОбласть(ИмяОбласти+"|ДанныеБезСумм");
КонецЕсли;
ИспользоватьНаборы = Ложь;
Если Товары.Колонки.Найти("ЭтоНабор") <> Неопределено Тогда
ИспользоватьНаборы = Истина;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ОбластьНомераНабор = Макет.ПолучитьОбласть(ИмяОбластиНабор+"|НомерСтроки");
ОбластьКодовНабор = Макет.ПолучитьОбласть(ИмяОбластиНабор+"|КолонкаКодов");
ОбластьТоварНабор = Макет.ПолучитьОбласть(ИмяОбластиНабор+"|Товар");
ОбластьДанныхНабор = Макет.ПолучитьОбласть(ИмяОбластиНабор+"|Данные");
ОбластьНомераКомплектующие = Макет.ПолучитьОбласть(ИмяОбластиКомплектующие+"|НомерСтроки");
ОбластьКодовКомплектующие = Макет.ПолучитьОбласть(ИмяОбластиКомплектующие+"|КолонкаКодов");
ОбластьТоварКомплектующие = Макет.ПолучитьОбласть(ИмяОбластиКомплектующие+"|Товар");
ОбластьДанныхКомплектующие = Макет.ПолучитьОбласть(ИмяОбластиКомплектующие+"|Данные");
Иначе
ОбластьНомераНабор = Макет.ПолучитьОбласть(ИмяОбластиНабор+"|НомерСтрокиБезСумм");
ОбластьКодовНабор = Макет.ПолучитьОбласть(ИмяОбластиНабор+"|КолонкаКодовБезСумм");
ОбластьТоварНабор = Макет.ПолучитьОбласть(ИмяОбластиНабор+"|ТоварБезСумм");
ОбластьДанныхНабор = Макет.ПолучитьОбласть(ИмяОбластиНабор+"|ДанныеБезСумм");
ОбластьНомераКомплектующие = Макет.ПолучитьОбласть(ИмяОбластиКомплектующие+"|НомерСтрокиБезСумм");
ОбластьКодовКомплектующие = Макет.ПолучитьОбласть(ИмяОбластиКомплектующие+"|КолонкаКодовБезСумм");
ОбластьТоварКомплектующие = Макет.ПолучитьОбласть(ИмяОбластиКомплектующие+"|ТоварБезСумм");
ОбластьДанныхКомплектующие = Макет.ПолучитьОбласть(ИмяОбластиКомплектующие+"|ДанныеБезСумм");
КонецЕсли;
КонецЕсли;
ПустыеДанные = НаборыСервер.ПустыеДанные();
Сумма = 0;
СуммаНДС = 0;
НомерСтроки = 0;
Для Каждого ВыборкаПоТоварам Из ТаблицаТовары Цикл
Если НаборыСервер.ИспользоватьОбластьНабор(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьНомера = ОбластьНомераНабор;
ОбластьКодов = ОбластьКодовНабор;
ОбластьТовар = ОбластьТоварНабор;
ОбластьДанных = ОбластьДанныхНабор;
ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьНомера = ОбластьНомераКомплектующие;
ОбластьКодов = ОбластьКодовКомплектующие;
ОбластьТовар = ОбластьТоварКомплектующие;
ОбластьДанных = ОбластьДанныхКомплектующие;
Иначе
ОбластьНомера = ОбластьНомераСтандарт;
ОбластьКодов = ОбластьКодовСтандарт;
ОбластьТовар = ОбластьТоварСтандарт;
ОбластьДанных = ОбластьДанныхСтандарт;
КонецЕсли;
Если НаборыСервер.ВыводитьТолькоЗаголовок(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
УстановитьПараметр(ОбластьНомера, "НомерСтроки", Неопределено);
Иначе
НомерСтроки = НомерСтроки + 1;
УстановитьПараметр(ОбластьНомера, "НомерСтроки", НомерСтроки);
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("Артикул", ВыборкаПоТоварам[ИмяКолонкиКодов]);
ОбластьКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ОбластьТовар.Параметры.Заполнить(ВыборкаПоТоварам);
ПрефиксИПостфикс = НаборыСервер.ПолучитьПрефиксИПостфикс(ВыборкаПоТоварам, ИспользоватьНаборы);
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоТоварам.ЭтоВозвратнаяТара;
ДополнительныеПараметрыПолученияНаименованияДляПечати.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Товар = ПрефиксИПостфикс.Префикс + НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоТоварам.ТоварНаименованиеПолное,
ВыборкаПоТоварам.Характеристика,
,
,
ДополнительныеПараметрыПолученияНаименованияДляПечати) + ПрефиксИПостфикс.Постфикс;
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьТовар.Параметры.Заполнить(СтруктураДанныхТовар);
ТабличныйДокумент.Присоединить(ОбластьТовар);
Если НаборыСервер.ВыводитьТолькоЗаголовок(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
ОбластьДанных.Параметры.Заполнить(ПустыеДанные);
Иначе
ОбластьДанных.Параметры.Заполнить(ВыборкаПоТоварам);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьДанных);
Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(ВыборкаПоТоварам, ИспользоватьНаборы) Тогда
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
Сумма = Сумма + ВыборкаПоТоварам.Сумма;
СуммаНДС = СуммаНДС + ВыборкаПоТоварам.СуммаНДС;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ОбластьНомера = Макет.ПолучитьОбласть("ПодвалТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("ПодвалТаблицы|Товар");
ОбластьДанных = Макет.ПолучитьОбласть("ПодвалТаблицы|Данные");
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТовар);
СтруктураДанныхВсего = Новый Структура;
СтруктураДанныхВсего.Вставить("Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма));
ОбластьДанных.Параметры.Заполнить(СтруктураДанныхВсего);
ТабличныйДокумент.Присоединить(ОбластьДанных);
КонецЕсли;
Если ДанныеПечати.УчитыватьНДС И ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ОбластьНомера = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Товар");
ОбластьДанных = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Данные");
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТовар);
СтруктураДанныхНДС = Новый Структура;
СтруктураДанныхНДС.Вставить("НДС", ?(ДанныеПечати.ЦенаВключаетНДС,
НСтр("ru = 'В том числе НДС:'", ОбщегоНазначения.КодОсновногоЯзыка()),
НСтр("ru = 'Сумма НДС:'", ОбщегоНазначения.КодОсновногоЯзыка())));
СтруктураДанныхНДС.Вставить("ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(СуммаНДС));
ОбластьДанных.Параметры.Заполнить(СтруктураДанныхНДС);
ТабличныйДокумент.Присоединить(ОбластьДанных);
КонецЕсли;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС);
ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Всего наименований %1, на сумму %2'", ОбщегоНазначения.КодОсновногоЯзыка()),
НомерСтроки,
ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта));
СтруктураДанныхИтоговаяСтрока = Новый Структура;
СтруктураДанныхИтоговаяСтрока.Вставить("ИтоговаяСтрока", ИтоговаяСтрока);
СтруктураДанныхИтоговаяСтрока.Вставить("СуммаПрописью", РаботаСКурсамиВалютУТ.СформироватьСуммуПрописью(СуммаКПрописи, ДанныеПечати.Валюта));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхИтоговаяСтрока);
ТабличныйДокумент.Вывести(ОбластьМакета);
Иначе
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалТаблицыБезСумм");
ИтоговаяСтрока = НСтр("ru = 'Всего наименований %КоличествоНаименований%'", ОбщегоНазначения.КодОсновногоЯзыка());
ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%КоличествоНаименований%", НомерСтроки);
СтруктураДанныхИтоговаяСтрока = Новый Структура("ИтоговаяСтрока", ИтоговаяСтрока);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхИтоговаяСтрока);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
Если ЗначениеЗаполнено(ДанныеПечати.ПолучениеПроизвел) Тогда
СтруктураДанныхПолучениеПроизвел =
Новый Структура("ПолучениеПроизвел", ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ДанныеПечати.ПолучениеПроизвел, ДанныеПечати.Дата));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПолучениеПроизвел);
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакета);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат ТабличныйДокумент;
КонецФункции
Функция ПолучитьДанныеДляПечатнойФормыЗаявлениеНаВозвратТоваровОтКлиента(МассивОбъектов) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ВариантыКомплектацииНоменклатуры.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.НомерСтроки КАК НомерСтроки,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.СуммаСНДС КАК Сумма,
| ВЫБОР
| КОГДА Таблица.Ссылка.ВозвратПереданнойМногооборотнойТары
| И Таблица.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
| ПО (ВариантыКомплектацииНоменклатуры.Владелец = Таблица.НоменклатураНабора)
| И (ВариантыКомплектацииНоменклатуры.Характеристика = Таблица.ХарактеристикаНабора)
| И (ВариантыКомплектацииНоменклатуры.Основной)
|ГДЕ
| Таблица.Ссылка В(&МассивОбъектов)
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ТоварыРазличные
|ИЗ
| Товары КАК ТаблицаТоваров
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| МИНИМУМ(Таблица.НомерСтроки) КАК НомерСтроки,
| СУММА(Таблица.Сумма) КАК Сумма
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыПодготовка
|ИЗ
| Товары КАК Таблица
|ГДЕ
| Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора КАК НоменклатураНабора,
| Товары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
| И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОсновнаяКомплектующая,
| 0 КАК КоличествоПоУмолчанию,
| Товары.Количество КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьПервая
|ИЗ
| Товары КАК Товары
|ГДЕ
| Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТоварыРазличные.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ЛОЖЬ,
| СУММА(ВариантыКомплектацииНоменклатурыТовары.Количество),
| 0
|ИЗ
| Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыРазличные КАК ТоварыРазличные
| ПО (ИСТИНА)
|ГДЕ
| ВариантыКомплектацииНоменклатурыТовары.Ссылка В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| Т.ВариантКомплектацииНоменклатуры
| ИЗ
| Товары КАК Т)
|
|СГРУППИРОВАТЬ ПО
| ТоварыРазличные.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Упаковка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| МАКСИМУМ(Таблица.ОсновнаяКомплектующая) КАК ОсновнаяКомплектующая,
| СУММА(Таблица.КоличествоПоУмолчанию) КАК КоличествоПоУмолчанию,
| СУММА(Таблица.Количество) КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьВторая
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьПервая КАК Таблица
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика
|;
|
|
|ВЫБРАТЬ
| Результат.Ссылка КАК Ссылка,
| Результат.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора КАК НоменклатураНабора,
| Результат.ХарактеристикаНабора КАК ХарактеристикаНабора,
| (ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0
| И Результат.ОсновнаяКомплектующая
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ NULL
| КОНЕЦ) + 0.5 КАК ЧИСЛО(10, 0))) - 1 КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительно
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьВторая КАК Результат
|
|СГРУППИРОВАТЬ ПО
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| ВЫБОР
| КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ВЫБОР
| КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
| ВЫБОР
| КОГДА Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
| ТОГДА ВЫБОР
| КОГДА ВЫБОР
| КОГДА ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах
| КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)
| И ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора В
| (ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоЦенам),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ЦенаЗадаетсяЗаНаборРаспределяетсяПоДолям))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.РассчитываетсяИзЦенКомплектующих)
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ
| ИНАЧЕ ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.НомерСтроки КАК НомерСтроки,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК КоличествоУпаковок,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК Количество,
| Таблица.Сумма КАК Сумма
|ПОМЕСТИТЬ ВременнаяТаблицаНаборы
|ИЗ
| ВременнаяТаблицаНаборыПодготовка КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборыДополнительно КАК ВременнаяТаблицаНаборыДополнительно
| ПО Таблица.НоменклатураНабора = ВременнаяТаблицаНаборыДополнительно.НоменклатураНабора
| И Таблица.ХарактеристикаНабора = ВременнаяТаблицаНаборыДополнительно.ХарактеристикаНабора
| И Таблица.Ссылка = ВременнаяТаблицаНаборыДополнительно.Ссылка
|;
|
|
|ВЫБРАТЬ
| ВозвратТоваровОтКлиента.Ссылка КАК Ссылка,
| ВозвратТоваровОтКлиента.Дата КАК Дата,
| ВозвратТоваровОтКлиента.СуммаДокумента КАК Сумма,
| ВозвратТоваровОтКлиента.Валюта КАК Валюта,
| ВозвратТоваровОтКлиента.Организация КАК Организация,
| ВозвратТоваровОтКлиента.ПричинаВозврата КАК ПричинаВозврата,
| ВозвратТоваровОтКлиента.Покупатель КАК Покупатель,
| ВозвратТоваровОтКлиента.ЧекККМ.Номер КАК ЧекККМНомер,
| ВозвратТоваровОтКлиента.ЧекККМ.Дата КАК ЧекККМДата,
| ВозвратТоваровОтКлиента.ДатаРожденияПокупателя КАК ДатаРождения,
| ВозвратТоваровОтКлиента.ВидДокументаПокупателя КАК ВидДокумента,
| ВозвратТоваровОтКлиента.СерияДокументаПокупателя КАК Серия,
| ВозвратТоваровОтКлиента.НомерДокументаПокупателя КАК Номер,
| ВозвратТоваровОтКлиента.ДатаВыдачиДокументаПокупателя КАК ДатаВыдачи,
| ВозвратТоваровОтКлиента.СрокДействияДокументаПокупателя КАК СрокДействия,
| ВозвратТоваровОтКлиента.КемВыданДокументПокупателя КАК КемВыдан,
| ВозвратТоваровОтКлиента.КодПодразделенияДокументаПокупателя КАК КодПодразделения
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
|ГДЕ
| ВозвратТоваровОтКлиента.Ссылка В(&МассивОбъектов)
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора КАК НоменклатураНабора,
| Товары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Товары.ЭтоНабор КАК ЭтоНабор,
| Товары.ЭтоКомплектующие КАК ЭтоКомплектующие,
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.Номенклатура.НаименованиеПолное КАК ПолноеНаименованиеНоменклатуры,
| Товары.Характеристика.НаименованиеПолное КАК ПолноеНаименованиеХарактеристики,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ Товары.Упаковка
| КОНЕЦ КАК НаименованиеУпаковки,
| Товары.Номенклатура.Код КАК Код,
| Товары.Номенклатура.Артикул КАК Артикул,
| ВЫБОР
| КОГДА Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ПРЕДСТАВЛЕНИЕ(Товары.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Товары.Упаковка)
| КОНЕЦ КАК ЕдиницаИзмерения,
| Товары.КоличествоУпаковок КАК Количество,
| Товары.Сумма КАК Сумма,
| Товары.ЭтоВозвратнаяТара КАК ЭтоВозвратнаяТара
|ИЗ
| (ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка)
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоКомплектующие,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0
| ТОГДА ВременнаяТаблицаНаборы.НомерСтроки
| ИНАЧЕ Таблица.НомерСтроки
| КОНЕЦ КАК НомерСтроки,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.Сумма КАК Сумма,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| Таблица.ЭтоВозвратнаяТара КАК ЭтоВозвратнаяТара
| ИЗ
| Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ПО (ВременнаяТаблицаНаборы.НоменклатураНабора = Таблица.НоменклатураНабора)
| И (ВременнаяТаблицаНаборы.ХарактеристикаНабора = Таблица.ХарактеристикаНабора)
| И (ВременнаяТаблицаНаборы.Ссылка = Таблица.Ссылка)
| ГДЕ
| (Таблица.НоменклатураНабора = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В
| (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоКомплектующие),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВременнаяТаблицаНаборы.Ссылка,
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЛОЖЬ,
| ИСТИНА,
| ВременнаяТаблицаНаборы.НомерСтроки,
| ВременнаяТаблицаНаборы.НоменклатураНабора,
| ВременнаяТаблицаНаборы.Количество,
| ВременнаяТаблицаНаборы.КоличествоУпаковок,
| ВременнаяТаблицаНаборы.Сумма,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка),
| ЛОЖЬ
| ИЗ
| ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ГДЕ
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В
| (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие))) КАК Товары
|
|УПОРЯДОЧИТЬ ПО
| Товары.НомерСтроки,
| ЭтоНабор УБЫВ";
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
УстановитьПривилегированныйРежим(Истина);
ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
СтруктураДанныхДляПечати = Новый Структура;
СтруктураДанныхДляПечати.Вставить("РезультатПоШапке", ПакетРезультатовЗапроса[7]);
СтруктураДанныхДляПечати.Вставить("РезультатПоТабличнойЧасти", ПакетРезультатовЗапроса[ПакетРезультатовЗапроса.Количество() - 1]);
Возврат СтруктураДанныхДляПечати;
КонецФункции
Функция ТекстЗапросаТоварыДокументаДляПечатиЗаданияНаОтборРазмещениеТоваров() Экспорт
ТекстаЗапроса =
"ВЫБРАТЬ
| ТоварыДокумента.Ссылка КАК Ссылка,
| ТоварыДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Склад КАК Склад,
| &Помещение КАК Помещение,
| ВЫБОР
| КОГДА ТоварыДокумента.Порча
| ТОГДА ТоварыДокумента.НоменклатураОприходование
| ИНАЧЕ ТоварыДокумента.Номенклатура
| КОНЕЦ КАК Номенклатура,
| ВЫБОР
| КОГДА ТоварыДокумента.Порча
| ТОГДА ТоварыДокумента.ХарактеристикаОприходование
| ИНАЧЕ ТоварыДокумента.Характеристика
| КОНЕЦ КАК Характеристика,
| ТоварыДокумента.Серия КАК Серия
|ПОМЕСТИТЬ ТоварыДокумента
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ТоварыДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ДанныеДокумента
| ПО ТоварыДокумента.Ссылка = ДанныеДокумента.Ссылка
|
|ГДЕ
| ТоварыДокумента.Ссылка В(&МассивОбъектов)
| И НЕ ТоварыДокумента.СтатусУказанияСерий В (2, 4, 6, 8, 10)
| И (НЕ ДанныеДокумента.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ ДанныеДокумента.Дата < ДанныеДокумента.Склад.ДатаНачалаОрдернойСхемыПриПоступлении)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СерииТоваров.Ссылка КАК Ссылка,
| МИНИМУМ(СерииТоваров.НомерСтроки) КАК НомерСтроки,
| ДанныеДокумента.Склад КАК Склад,
| &Помещение КАК Помещение,
| ВЫБОР
| КОГДА СерииТоваров.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА СерииТоваров.НоменклатураОприходование
| ИНАЧЕ СерииТоваров.Номенклатура
| КОНЕЦ КАК Номенклатура,
| ВЫБОР
| КОГДА СерииТоваров.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА СерииТоваров.ХарактеристикаОприходование
| ИНАЧЕ СерииТоваров.Характеристика
| КОНЕЦ КАК Характеристика,
| СерииТоваров.Серия КАК Серия
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Серии КАК СерииТоваров
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента.Товары КАК ТоварыДокумента
| ПО СерииТоваров.Ссылка = ТоварыДокумента.Ссылка
| И СерииТоваров.Номенклатура = ТоварыДокумента.Номенклатура
| И СерииТоваров.Характеристика = ТоварыДокумента.Характеристика
| И СерииТоваров.НоменклатураОприходование = ТоварыДокумента.НоменклатураОприходование
| И СерииТоваров.ХарактеристикаОприходование = ТоварыДокумента.ХарактеристикаОприходование
| И СерииТоваров.Назначение = ТоварыДокумента.Назначение
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ДанныеДокумента
| ПО СерииТоваров.Ссылка = ДанныеДокумента.Ссылка
|
|ГДЕ
| СерииТоваров.Ссылка В(&МассивОбъектов)
| И (НЕ ДанныеДокумента.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ ДанныеДокумента.Дата < ДанныеДокумента.Склад.ДатаНачалаОрдернойСхемыПриПоступлении)
|
|СГРУППИРОВАТЬ ПО
| СерииТоваров.Ссылка,
| ДанныеДокумента.Склад,
| &Помещение,
| СерииТоваров.Номенклатура,
| СерииТоваров.Характеристика,
| СерииТоваров.Серия,
| СерииТоваров.НоменклатураОприходование,
| СерииТоваров.ХарактеристикаОприходование
|
|ИМЕЮЩИЕ
| МАКСИМУМ(ТоварыДокумента.СтатусУказанияСерий) В (2, 4, 6, 8, 10)";
ТекстаЗапроса = СтрЗаменить(ТекстаЗапроса, "&Помещение", "ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка)");
Возврат ТекстаЗапроса;
КонецФункции
Функция ДанныеДляПечатиДебетКредитНота(ПараметрыПечати, МассивОбъектов, ДебетКредитНота, КодЯзыка) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(РеализацияТоваровУслуг.Ссылка, ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)) КАК Ссылка
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ПО (ВозвратТоваровОтКлиента.ДокументРеализации = РеализацияТоваровУслуг.Ссылка)
|ГДЕ
| ВозвратТоваровОтКлиента.Ссылка В (&МассивОбъектов)";
Запрос.УстановитьПараметр("МассивОбъектов", Массивобъектов);
МассивРеализаций = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Если МассивРеализаций.Количество() = 0 Тогда
МассивРеализаций.Добавить(Документы.РеализацияТоваровУслуг.ПустаяСсылка());
КонецЕсли;
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивРеализаций, МенеджерВременныхТаблиц);
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| ВозвратТоваровОтКлиента.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.БанковскийСчетОрганизации КАК БанковскийСчетОрганизации,
| РеализацияТоваровУслуг.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента
|ПОМЕСТИТЬ ВТ_РеквизитыДокументаПродажи
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ПО (ВозвратТоваровОтКлиента.ДокументРеализации = РеализацияТоваровУслуг.Ссылка)
|ГДЕ
| ВозвратТоваровОтКлиента.Ссылка В (&МассивОбъектов)
|;
|
|
|ВЫБРАТЬ
| Документы.Ссылка КАК Ссылка,
| Документы.Номер КАК Номер,
| Документы.Дата КАК Дата,
| Документы.ДокументРеализации КАК ДокументОснование,
| Документы.Организация КАК Организация,
| Документы.Организация КАК ОрганизацияПоставщик,
| ТаблицаОтветственныеЛица.РуководительНаименование КАК Руководитель,
| ТаблицаОтветственныеЛица.РуководительДолжность КАК ДолжностьРуководителя,
| ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
| ВЫБОР
| КОГДА Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИЛИ Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК УчитыватьНДС,
| Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ОблагаетсяНДСУПокупателя) КАК ОперацияОблагаетсяНДСУПокупателя,
| Документы.Контрагент КАК Контрагент,
| Документы.Контрагент.ЮрФизЛицо КАК КонтрагентЮрФизЛицо,
| ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации КАК БанковскийСчет,
|
| ВЫБОР КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ИностранныйБанк
| ИЛИ ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ВалютаДенежныхСредств <> Документы.Организация.ВалютаРегламентированногоУчета
| ИЛИ ВТ_РеквизитыДокументаПродажи.БанковскийСчетКонтрагента.ИностранныйБанк ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ПлатежЗаРубеж,
| ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств,
| ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СчетВБанкеДляРасчетов КАК СчетВБанкеДляРасчетов,
| ЕСТЬNULL(ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ) КАК ЭтоСчетЦифровогоРубля,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ)
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ИдентификаторСчетаЦифровогоРубля
| ИНАЧЕ ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.НомерСчета
| КОНЕЦ КАК НомерБанковскогоСчета,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ)
| ТОГДА """"
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.БИКБанка
| ИНАЧЕ КлассификаторБанков.Код
| КОНЕЦ КАК БИКБанк,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ)
| ТОГДА """"
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.НаименованиеБанка
| ИНАЧЕ КлассификаторБанков.Наименование
| КОНЕЦ КАК НаименованиеБанка,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ)
| ТОГДА """"
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.КоррСчетБанка
| ИНАЧЕ КлассификаторБанков.КоррСчет
| КОНЕЦ КАК КоррСчетБанка,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ГородБанка
| ИНАЧЕ КлассификаторБанков.Город
| КОНЕЦ КАК ГородБанка,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.БИКБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Код
| КОНЕЦ КАК БИКБанкаДляРасчетов,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.НаименованиеБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Наименование
| КОНЕЦ КАК НаименованиеБанкаДляРасчетов,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.КоррСчетБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.КоррСчет
| КОНЕЦ КАК КоррСчетБанкаДляРасчетов,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ГородБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Город
| КОНЕЦ КАК ГородБанкаДляРасчетов,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.НаименованиеБанкаМеждународное
| ИНАЧЕ КлассификаторБанков.МеждународноеНаименование
| КОНЕЦ КАК НаименованиеБанкаМеждународное,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СВИФТБанка
| ИНАЧЕ КлассификаторБанков.СВИФТБИК
| КОНЕЦ КАК СВИФТБанка,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ГородБанкаМеждународный
| ИНАЧЕ КлассификаторБанков.ГородМеждународный
| КОНЕЦ КАК ГородБанкаМеждународный,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.АдресБанка
| ИНАЧЕ КлассификаторБанков.Адрес
| КОНЕЦ КАК АдресБанка,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.АдресБанкаМеждународный
| ИНАЧЕ КлассификаторБанков.АдресМеждународный
| КОНЕЦ КАК АдресБанкаМеждународный,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СтранаБанка
| ИНАЧЕ СтраныБанков.Ссылка
| КОНЕЦ КАК СтранаБанка,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.НаименованиеБанкаДляРасчетовМеждународное
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.МеждународноеНаименование
| КОНЕЦ КАК НаименованиеБанкаДляРасчетовМеждународное,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СВИФТБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.СВИФТБИК
| КОНЕЦ КАК СВИФТБанкаДляРасчетов,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ГородБанкаДляРасчетовМеждународный
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.ГородМеждународный
| КОНЕЦ КАК ГородБанкаДляРасчетовМеждународный,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.АдресБанкаДляРасчетовМеждународный
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.АдресМеждународный
| КОНЕЦ КАК АдресБанкаДляРасчетовМеждународный,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.АдресБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Адрес
| КОНЕЦ КАК АдресБанкаДляРасчетов,
| ВЫБОР
| КОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.СтранаБанкаДляРасчетов
| ИНАЧЕ СтраныБанковКорреспондентовРФ.Ссылка
| КОНЕЦ КАК СтранаБанкаДляРасчетов,
| ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.ТекстКорреспондента КАК БанковскийСчетТекстКорреспондента,
| Документы.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| Документы.Валюта КАК Валюта,
| Документы.Менеджер.ФизическоеЛицо КАК Менеджер,
| Документы.СуммаДокумента КАК СуммаДокумента
|ИЗ
| Документ.ВозвратТоваровОтКлиента КАК Документы
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
| ПО Документы.Ссылка = ТаблицаОтветственныеЛица.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_РеквизитыДокументаПродажи КАК ВТ_РеквизитыДокументаПродажи
| ПО Документы.Ссылка = ВТ_РеквизитыДокументаПродажи.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанков
| ПО ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.Банк = КлассификаторБанков.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтраныМира КАК СтраныБанков
| ПО КлассификаторБанков.КодСтраны = СтраныБанков.Код
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанковКорреспондентовРФ
| ПО ВТ_РеквизитыДокументаПродажи.БанковскийСчетОрганизации.БанкДляРасчетов = КлассификаторБанковКорреспондентовРФ.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтраныМира КАК СтраныБанковКорреспондентовРФ
| ПО КлассификаторБанковКорреспондентовРФ.КодСтраны = СтраныБанковКорреспондентовРФ.Код
| ЛЕВОЕ СОЕДИНЕНИЕ Константы
| ПО ИСТИНА
|ГДЕ
| Документы.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Документы.МоментВремени
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
|
| ВариантыКомплектацииНоменклатуры.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
|
| Таблица.НомерСтроки КАК НомерСтроки,
| Таблица.Номенклатура КАК Номенклатура,
| """" КАК Содержание,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| ВЫБОР
| КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ВЫБОР КОГДА Таблица.КоличествоУпаковок <> 0 ТОГДА Таблица.Сумма / Таблица.КоличествоУпаковок ИНАЧЕ 0 КОНЕЦ
| ИНАЧЕ ВЫБОР КОГДА Таблица.Количество <> 0 ТОГДА Таблица.Сумма / Таблица.Количество ИНАЧЕ 0 КОНЕЦ
| КОНЕЦ КАК Цена,
| Таблица.Сумма КАК Сумма,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.СуммаНДС КАК СуммаНДС
|
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК Таблица
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
| ПО ВариантыКомплектацииНоменклатуры.Владелец = Таблица.НоменклатураНабора
| И ВариантыКомплектацииНоменклатуры.Характеристика = Таблица.ХарактеристикаНабора
| И ВариантыКомплектацииНоменклатуры.Основной
|
|ГДЕ
| Таблица.Ссылка В (&МассивОбъектов)
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| МИНИМУМ(Таблица.НомерСтроки) КАК НомерСтроки,
| СУММА(Таблица.Сумма) КАК Сумма,
| СУММА(Таблица.СуммаНДС) КАК СуммаНДС
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыПодготовка
|ИЗ
| Товары КАК Таблица
|ГДЕ
| Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ТоварыРазличные
|ИЗ
| Товары КАК ТаблицаТоваров
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантКомплектацииНоменклатуры КАК ВариантКомплектацииНоменклатуры,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора,
| Товары.ХарактеристикаНабора,
| Товары.Номенклатура,
| Товары.Характеристика,
| ВЫБОР КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
| И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ОсновнаяКомплектующая,
| 0 КАК КоличествоПоУмолчанию,
| Товары.Количество КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьПервая
|ИЗ
| Товары КАК Товары
|ГДЕ
| Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТоварыРазличные.Ссылка КАК Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка КАК ВариантКомплектацииНоменклатуры,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец КАК НоменклатураНабора,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика КАК ХарактеристикаНабора,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
| ЛОЖЬ КАК ОсновнаяКомплектующая,
| СУММА(ВариантыКомплектацииНоменклатурыТовары.Количество) КАК КоличествоПоУмолчанию,
| 0 КАК Количество
|ИЗ
| Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыРазличные КАК ТоварыРазличные
| ПО ИСТИНА
|ГДЕ
| ВариантыКомплектацииНоменклатурыТовары.Ссылка В (ВЫБРАТЬ Т.ВариантКомплектацииНоменклатуры ИЗ Товары КАК Т)
|
|СГРУППИРОВАТЬ ПО
| ТоварыРазличные.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
| ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
| ВариантыКомплектацииНоменклатурыТовары.Характеристика,
| ВариантыКомплектацииНоменклатурыТовары.Упаковка
|;
|
|
|ВЫБРАТЬ
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика,
| МАКСИМУМ(Таблица.ОсновнаяКомплектующая) КАК ОсновнаяКомплектующая,
| СУММА(Таблица.КоличествоПоУмолчанию) КАК КоличествоПоУмолчанию,
| СУММА(Таблица.Количество) КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьВторая
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьПервая КАК Таблица
|
|СГРУППИРОВАТЬ ПО
| Таблица.Ссылка,
| Таблица.ВариантКомплектацииНоменклатуры,
| Таблица.ВариантРасчетаЦеныНабора,
| Таблица.ВариантПредставленияНабораВПечатныхФормах,
| Таблица.НоменклатураНабора,
| Таблица.ХарактеристикаНабора,
| Таблица.Номенклатура,
| Таблица.Характеристика
|;
|
|
|ВЫБРАТЬ
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора,
| ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
| КОГДА Результат.КоличествоПоУмолчанию <> 0 И Результат.ОсновнаяКомплектующая
| ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
| ИНАЧЕ NULL
| КОНЕЦ) + 0.5 КАК Число(10,0)) - 1 КАК Количество
|ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительно
|ИЗ
| ВременнаяТаблицаНаборыДополнительноЧастьВторая КАК Результат
|СГРУППИРОВАТЬ ПО
| Результат.Ссылка,
| Результат.ВариантКомплектацииНоменклатуры,
| Результат.ВариантРасчетаЦеныНабора,
| Результат.ВариантПредставленияНабораВПечатныхФормах,
| Результат.НоменклатураНабора,
| Результат.ХарактеристикаНабора
|;
|
|
|ВЫБРАТЬ
| ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры,
| ВременнаяТаблицаНаборыДополнительно.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборыДополнительно.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Таблица.Ссылка КАК Ссылка,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| Таблица.НомерСтроки КАК НомерСтроки,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК КоличествоУпаковок,
| ЕСТЬNULL(ВременнаяТаблицаНаборыДополнительно.Количество, 1) КАК Количество,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС
|ПОМЕСТИТЬ ВременнаяТаблицаНаборы
|ИЗ
| ВременнаяТаблицаНаборыПодготовка КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборыДополнительно КАК ВременнаяТаблицаНаборыДополнительно
| ПО Таблица.НоменклатураНабора = ВременнаяТаблицаНаборыДополнительно.НоменклатураНабора
| И Таблица.ХарактеристикаНабора = ВременнаяТаблицаНаборыДополнительно.ХарактеристикаНабора
| И Таблица.Ссылка = ВременнаяТаблицаНаборыДополнительно.Ссылка
|;
|
|
|ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| Товары.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| Товары.НоменклатураНабора КАК НоменклатураНабора,
| ЕСТЬNULL(НоменклатураНабораПредставления.НаименованиеПолное, Товары.НоменклатураНабора.НаименованиеПолное) КАК НоменклатураНабораНаименованиеПолное,
| Товары.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ЕСТЬNULL(ХарактеристикиНоменклатурыНабораПредставления.НаименованиеПолное, ЕСТЬNULL(Товары.ХарактеристикаНабора.НаименованиеПолное, """")) КАК ХарактеристикаНабораНаименованиеПолное,
| Товары.ЭтоНабор КАК ЭтоНабор,
| Товары.ЭтоКомплектующие КАК ЭтоКомплектующие,
|
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Номенклатура.Код КАК Код,
| Товары.Номенклатура.Артикул КАК Артикул,
| ЕСТЬNULL(НоменклатураПредставления.НаименованиеПолное, ЕСТЬNULL(Товары.Номенклатура.НаименованиеПолное, Товары.Содержание)) КАК НаименованиеПолное,
| &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ЕдиницаИзмерения,
| Товары.КоличествоУпаковок КАК Количество,
| Товары.Цена КАК Цена,
| Товары.Сумма КАК Сумма,
| Товары.СтавкаНДС КАК СтавкаНДС,
| Товары.СуммаНДС КАК СуммаНДС,
| НЕОПРЕДЕЛЕНО КАК ВидЦеныИсполнителя,
| ЕСТЬNULL(ХарактеристикиНоменклатурыПредставления.НаименованиеПолное, ЕСТЬNULL(Товары.Характеристика.НаименованиеПолное, """")) КАК Характеристика,
| ВЫБОР КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1 ТОГДА
| НЕОПРЕДЕЛЕНО
| ИНАЧЕ
| Товары.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| Товары.Содержание КАК Содержание
|
|ИЗ (
| ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка)
| КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
|
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)
| КОНЕЦ КАК ВариантРасчетаЦеныНабора,
| Таблица.НоменклатураНабора КАК НоменклатураНабора,
| Таблица.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоКомплектующие,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
| ВременнаяТаблицаНаборы.НомерСтроки
| ИНАЧЕ
| Таблица.НомерСтроки
| КОНЕЦ КАК НомерСтроки,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Количество КАК Количество,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.Цена КАК Цена,
| Таблица.Сумма КАК Сумма,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Упаковка КАК Упаковка,
| """" КАК Содержание
| ИЗ
| Товары КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ПО ВременнаяТаблицаНаборы.НоменклатураНабора = Таблица.НоменклатураНабора
| И ВременнаяТаблицаНаборы.ХарактеристикаНабора = Таблица.ХарактеристикаНабора
| И ВременнаяТаблицаНаборы.Ссылка = Таблица.Ссылка
|
| ГДЕ
| Таблица.НоменклатураНабора = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ (Таблица.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоКомплектующие),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие)))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВременнаяТаблицаНаборы.Ссылка КАК Ссылка,
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ВременнаяТаблицаНаборы.НоменклатураНабора КАК НоменклатураНабора,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ЛОЖЬ КАК ЭтоКомплектующие,
| ИСТИНА КАК ЭтоНабор,
| ВременнаяТаблицаНаборы.НомерСтроки КАК НомерСтроки,
| ВременнаяТаблицаНаборы.НоменклатураНабора КАК Номенклатура,
| ВременнаяТаблицаНаборы.Количество КАК Количество,
| ВременнаяТаблицаНаборы.КоличествоУпаковок КАК КоличествоУпаковок,
| ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1) <> 0 ТОГДА
| (ВременнаяТаблицаНаборы.Сумма) / ЕСТЬNULL(ВременнаяТаблицаНаборы.КоличествоУпаковок, 1)
| ИНАЧЕ
| 0
| КОНЕЦ КАК Цена,
| ВременнаяТаблицаНаборы.Сумма КАК Сумма,
| ВременнаяТаблицаНаборы.НоменклатураНабора.СтавкаНДС КАК СтавкаНДС,
| ВременнаяТаблицаНаборы.СуммаНДС КАК СуммаНДС,
| ВременнаяТаблицаНаборы.ХарактеристикаНабора КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
| """" КАК Содержание
| ИЗ
| ВременнаяТаблицаНаборы КАК ВременнаяТаблицаНаборы
| ГДЕ
| ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах В (ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ТолькоНабор),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка) КАК ВариантПредставленияНабораВПечатныхФормах,
| ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка) КАК ВариантРасчетаЦеныНабора,
| НЕОПРЕДЕЛЕНО КАК НоменклатураНабора,
| НЕОПРЕДЕЛЕНО КАК ХарактеристикаНабора,
| ЛОЖЬ КАК ЭтоКомплектующие,
| ЛОЖЬ КАК ЭтоНабор,
| Таблица.НомерСтроки КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК Номенклатура,
| 0 КАК Количество,
| 0 КАК КоличествоУпаковок,
| 0 КАК Цена,
| Таблица.СуммаКорректировки КАК Сумма,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.СуммаНДСКорректировки КАК СуммаНДС,
| НЕОПРЕДЕЛЕНО КАК Характеристика,
| НЕОПРЕДЕЛЕНО КАК Упаковка,
| Таблица.ПричинаКорректировки КАК Содержание
| ИЗ
| Документ.КорректировкаРеализации.КорректировкаЗадолженности КАК Таблица
| ГДЕ
| Таблица.Ссылка В(&МассивОбъектов)
|
|) КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Представления КАК НоменклатураПредставления
| ПО (Товары.Номенклатура = НоменклатураПредставления.Ссылка
| И НоменклатураПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.Представления КАК ХарактеристикиНоменклатурыПредставления
| ПО (Товары.Характеристика = ХарактеристикиНоменклатурыПредставления.Ссылка
| И ХарактеристикиНоменклатурыПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Представления КАК НоменклатураНабораПредставления
| ПО (Товары.НоменклатураНабора = НоменклатураНабораПредставления.Ссылка
| И НоменклатураНабораПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.Представления КАК ХарактеристикиНоменклатурыНабораПредставления
| ПО (Товары.ХарактеристикаНабора = ХарактеристикиНоменклатурыНабораПредставления.Ссылка
| И ХарактеристикиНоменклатурыНабораПредставления.КодЯзыка = &КодЯзыка)
|
|УПОРЯДОЧИТЬ ПО
| Товары.НомерСтроки,
| ЭтоНабор УБЫВ
|";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.УстановитьПараметр("ВыводитьБазовыеЕдиницыИзмерения", Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить());
Запрос.УстановитьПараметр("ДебетНота", ДебетКредитНота = "ДебетНота");
Запрос.УстановитьПараметр("КредитНота", ДебетКредитНота = "КредитНота");
Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка);
ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
СтруктураДанныхДляПечати = Новый Структура;
СтруктураДанныхДляПечати.Вставить("РезультатПоШапке", ПакетРезультатовЗапроса[1]);
СтруктураДанныхДляПечати.Вставить("РезультатПоТабличнойЧасти", ПакетРезультатовЗапроса[ПакетРезультатовЗапроса.Количество() - 1]);
Возврат СтруктураДанныхДляПечати;
КонецФункции
#КонецОбласти
#Область Прочее
Процедура УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос)
Если Запрос.Параметры.Свойство("АналитикаУчетаПоПартнерам") Тогда
Возврат;
КонецЕсли;
Если Запрос.Параметры.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера Тогда
СтруктураАналитики = Новый Структура();
СтруктураАналитики.Вставить("Организация", Запрос.Параметры.Организация);
СтруктураАналитики.Вставить("Договор", Запрос.Параметры.КлиентДоговор);
СтруктураАналитики.Вставить("НаправлениеДеятельности", Запрос.Параметры.НаправлениеДеятельности);
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Запрос.Параметры.Договор, "ВестиРасчетыЧерезКонечныхПокупателей") Тогда
СтруктураАналитики.Вставить("Партнер", Запрос.Параметры.КлиентПартнер);
СтруктураАналитики.Вставить("Контрагент", Запрос.Параметры.КлиентКонтрагент);
Иначе
СтруктураАналитики.Вставить("Партнер", Запрос.Параметры.Партнер);
СтруктураАналитики.Вставить("Контрагент", Запрос.Параметры.Контрагент);
КонецЕсли;
АналитикаУчетаПоПартнерам = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(СтруктураАналитики);
Иначе
АналитикаУчетаПоПартнерам = РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(Запрос.Параметры);
КонецЕсли;
Запрос.УстановитьПараметр("АналитикаУчетаПоПартнерам", АналитикаУчетаПоПартнерам);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаКорВидЗапасов(Запрос)
Если Запрос.Параметры.Свойство("КорВидЗапасов") Тогда
Возврат;
КонецЕсли;
Запрос.УстановитьПараметр("КорВидЗапасов",
Справочники.ВидыЗапасов.ВидЗапасовДокумента(Запрос.Параметры.Организация, Запрос.Параметры.ХозяйственнаяОперация,
Неопределено));
КонецПроцедуры
Функция ТекстЗапросаТаблицаРаспоряженияНаОтгрузку(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РаспоряженияНаОтгрузкуИВозврат";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| &Период КАК Период,
| &ЗаявкаНаВозвратТоваровОтКлиента КАК Распоряжение,
| ВЫБОР
| КОГДА ТаблицаТовары.Порча
| ТОГДА ТаблицаТовары.НоменклатураОприходование
| ИНАЧЕ ТаблицаТовары.Номенклатура
| КОНЕЦ КАК Номенклатура,
| ВЫБОР
| КОГДА ТаблицаТовары.Порча
| ТОГДА ТаблицаТовары.ХарактеристикаОприходование
| ИНАЧЕ ТаблицаТовары.Характеристика
| КОНЕЦ КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ВЫБОР
| КОГДА ТаблицаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ТаблицаТовары.Склад
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| КОНЕЦ КАК Склад,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ТаблицаПоказателей.Ссылка КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаСНДС КАК Сумма
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат КАК ТаблицаПоказателей
| ПО ТаблицаПоказателей.Ссылка В (ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоПоВозвратам),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ПринятоПоВозвратам))
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И &ВозвратПоЗаявке
| И &ИспользоватьРасширенныеВозможностиЗаказаКлиента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| &Период КАК Период,
| &ЗаявкаНаВозвратТоваровОтКлиента КАК Распоряжение,
| ВЫБОР
| КОГДА ТаблицаТовары.Порча
| ТОГДА ТаблицаТовары.НоменклатураОприходование
| ИНАЧЕ ТаблицаТовары.Номенклатура
| КОНЕЦ КАК Номенклатура,
| ВЫБОР
| КОГДА ТаблицаТовары.Порча
| ТОГДА ТаблицаТовары.ХарактеристикаОприходование
| ИНАЧЕ ТаблицаТовары.Характеристика
| КОНЕЦ КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ВЫБОР
| КОГДА ТаблицаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ТаблицаТовары.Склад
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| КОНЕЦ КАК Склад,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ТаблицаПоказателей.Ссылка КАК Показатель,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.СуммаСНДС КАК Сумма
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат КАК ТаблицаПоказателей
| ПО ТаблицаПоказателей.Ссылка В (ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ЗаявленоНаВозврат),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОформлениюПоВозвратам),
| ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КПриемке))
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И &ВозвратПоЗаявке
| И ТаблицаТовары.КодСтроки = 0
| И &ИспользоватьРасширенныеВозможностиЗаказаКлиента
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки,
| Показатель";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияСерийТоваров";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Количество КАК Количество,
| &Партнер КАК Отправитель,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка) КАК ПомещениеОтправителя,
| ТаблицаСерии.Склад КАК Получатель,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка) КАК ПомещениеПолучателя,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| &Период КАК Период,
| &Ссылка КАК Регистратор,
| НЕ &ИспользоватьОрдернуюСхемуПриПоступлении КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Серии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Количество <> 0
| И ТаблицаСерии.НоменклатураОприходование = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.НоменклатураОприходование,
| ТаблицаСерии.ХарактеристикаОприходование,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Количество,
| &Партнер,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка),
| ТаблицаСерии.Склад,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента) КАК СкладскаяОперация,
| &Ссылка,
| &Период,
| &Ссылка,
| НЕ &ИспользоватьОрдернуюСхемуПриПоступлении
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Серии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ТаблицаСерии.Количество <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаТовары.Серия,
| ТаблицаТовары.Количество,
| &Партнер,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка),
| ТаблицаТовары.Склад,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента),
| &Ссылка,
| &Период,
| &Ссылка,
| НЕ &ИспользоватьОрдернуюСхемуПриПоступлении
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.Количество <> 0
| И ТаблицаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И ТаблицаТовары.НоменклатураОприходование = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НоменклатураОприходование,
| ТаблицаТовары.ХарактеристикаОприходование,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаТовары.Серия,
| ТаблицаТовары.Количество,
| &Партнер,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка),
| ТаблицаТовары.Склад,
| ЗНАЧЕНИЕ(Справочник.СкладскиеПомещения.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента) КАК СкладскаяОперация,
| &Ссылка,
| &Период,
| &Ссылка,
| НЕ &ИспользоватьОрдернуюСхемуПриПоступлении
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ТаблицаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И ТаблицаТовары.Количество <> 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса)
ТекстНомераСтрок = РасчетСебестоимостиПроведениеДокументов.ТекстЗапросаКодыСтрокДляАналитикиУчетаПартий(
Метаданные.Документы.ВозвратТоваровОтКлиента.Имя,
"ВидыЗапасов");
ТекстВыборкаПоляАналитик = ТекстНомераСтрок + "
|ВЫБРАТЬ
| ""ВидыЗапасов"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Партнер КАК Поставщик,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ВЫБОР
| КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| КОГДА ДанныеДокумента.ВозвратПереданнойМногооборотнойТары
| И СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| КОГДА ТаблицаДокумента.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС)
| И ДанныеДокумента.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ ДанныеДокумента.НалогообложениеНДС
| КОНЕЦ КАК НалогообложениеНДС,
| ЕСТЬNULL(ГФУ.ВидЦенностиНДС, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)) КАК ВидЦенности,
| КодыСтрок.КодСтроки КАК КодСтроки
|ПОМЕСТИТЬ ВТПоляАналитикУчетаПартий
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаДокумента.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКодыСтрокДляАналитикиУчетаПартий КАК КодыСтрок
| ПО ТаблицаДокумента.НомерСтроки = КодыСтрок.НомерСтроки
| И КодыСтрок.ИмяТабличнойЧасти = ""ВидыЗапасов""
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК АналитикаНоменклатуры
| ПО ТаблицаДокумента.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО СпрНоменклатура.Ссылка = АналитикаНоменклатуры.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГруппыФинансовогоУчетаНоменклатуры КАК ГФУ
| ПО СпрНоменклатура.ГруппаФинансовогоУчета = ГФУ.Ссылка
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
|";
ТекстЗапроса = Справочники.КлючиАналитикиУчетаПартий.ТекстЗапросаВтТаблицаАналитикУчетаПартий(ТекстВыборкаПоляАналитик, Запрос, ТекстыЗапроса);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтТаблицаВидыЗапасов";
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаАналитикУчетаПартий", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ВидыЗапасов.Ссылка КАК Ссылка,
|
| ВЫБОР КОГДА Аналитика.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И &ВозвратПереданнойМногооборотнойТары ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ПереданнаяМногооборотнаяТара,
|
| ВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаВозврата,
| КлючиБезНазначения.КлючАналитики КАК АналитикаВозвратаБезНазначения,
| КлючиПереданнойНоменклатуры.КлючАналитики КАК АналитикаПереданнойНоменклатуры,
| КлючиПереданнойНоменклатуры.КлючАналитики КАК АналитикаПереданнойНоменклатурыБезНазначения,
| ВидыЗапасов.АналитикаУчетаНоменклатурыОтгрузки КАК АналитикаРеализации,
| ЕСТЬNULL(КлючиОтгрузкиБезНазначения.КлючАналитики,
| КлючиБезНазначения.КлючАналитики) КАК АналитикаРеализацииБезНазначения,
| КлючиОтгрузкиКомитенту.КлючАналитики КАК АналитикаРеализацииКомитенту,
| ВЫБОР
| КОГДА &ВозвратЧерезКомиссионера ТОГДА КлючиОприходованияЧерезКомиссионера.КлючАналитики
| ИНАЧЕ КлючиОприходования.КлючАналитики
| КОНЕЦ КАК АналитикаОприходования,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Аналитика.Характеристика КАК Характеристика,
| Аналитика.Серия КАК Серия,
| Аналитика.Назначение КАК Назначение,
| ВЫБОР
| КОГДА &ВозвратЧерезКомиссионера ТОГДА ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ Аналитика.МестоХранения
| КОНЕЦ КАК СкладВозврата,
| Аналитика.СкладскаяТерритория.ЦеховаяКладовая КАК ЦеховаяКладовая,
| ВидыЗапасов.НоменклатураОприходование КАК НоменклатураОприходование,
| ВидыЗапасов.ХарактеристикаОприходование КАК ХарактеристикаОприходование,
| ВидыЗапасов.АналитикаУчетаНаборов.НоменклатураНабора КАК НоменклатураНабора,
| ВидыЗапасов.АналитикаУчетаНаборов.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВидыЗапасов.Количество КАК Количество,
| ВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВидыЗапасов.КоличествоУпаковок КАК КоличествоУпаковок,
| ВидыЗапасов.Упаковка КАК Упаковка,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВидыЗапасов.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ВидыЗапасов.ВидЗапасов.РеализацияЗапасовДругойОрганизации КАК ВидЗапасовРеализацияЗапасовДругойОрганизации,
| Справочник.РеализацияЗапасовДругойОрганизации КАК РеализацияЗапасовДругойОрганизации,
| Справочник.ВидЗапасовВладельца КАК ВидЗапасовВладельца,
| Справочник.ВидЗапасовВладельца.ТипЗапасов КАК ВидЗапасовВладельцаТипЗапасов,
| Справочник.Валюта КАК Валюта,
| АналитикаОтгрузки.Назначение КАК НазначениеОтгрузки,
| ВЫБОР
| КОГДА &ВозвратЧерезКомиссионера ТОГДА ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| ИНАЧЕ АналитикаОтгрузки.МестоХранения
| КОНЕЦ КАК СкладОтгрузки,
| АналитикаОтгрузки.МестоХранения.ЦеховаяКладовая КАК ЦеховаяКладоваяОтгрузки,
| ВидыЗапасов.ВидЗапасовОтгрузки КАК ВидЗапасовОтгрузки,
| ВидыЗапасов.ВидЗапасовОтгрузки.ТипЗапасов КАК ВидЗапасовОтгрузкиТипЗапасов,
| (ВЫБОР
| КОГДА ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ИЛИ ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзТекущегоДокумента)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВидыЗапасов.ДокументРеализации КОНЕЦ) КАК ДокументРеализации,
| (ВЫБОР
| КОГДА ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ИЛИ ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзТекущегоДокумента)
| ТОГДА ДАТАВРЕМЯ(1,1,1)
| ИНАЧЕ ВидыЗапасов.ДокументРеализации.Дата КОНЕЦ) КАК ПериодПродажи,
| (ВЫБОР
| КОГДА ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.Вручную)
| ИЛИ ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзТекущегоДокумента)
| ТОГДА ВидыЗапасов.СпособОпределенияСебестоимости
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи) КОНЕЦ) КАК СпособОпределенияСебестоимости,
| ВидыЗапасов.НомерГТД КАК НомерГТД,
| ВидыЗапасов.НомерГТД.ТипНомераГТД КАК НомерГТДТипНомераГТД,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ВЫБОР
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт) ТОГДА
| ВЫБОР ВидыЗапасов.СтавкаНДС
| КОГДА &СтавкаНДСНаЭкспорт ТОГДА
| ВЫБОР КОГДА ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура.КодТНВЭД.СырьевойТовар
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров)
| КОНЕЦ
| КОГДА ЗНАЧЕНИЕ(Справочник.СтавкиНДС.БезНДС) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| КОНЕЦ
| ИНАЧЕ ТаблицаАналитикУчетаПартий.НалогообложениеНДС
| КОНЕЦ КАК НалогообложениеНДС,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| (ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоСделкам И &ОбособленныйУчетТоваровПоСделке
| ТОГДА &Сделка
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоМенеджерамПодразделения)
| И &Менеджер <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &Менеджер
| КОГДА &ФормироватьВидыЗапасовПоПодразделениямМенеджерам
| И &ВариантОбособленногоУчетаТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПоПодразделению)
| ТОГДА &Подразделение
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ) КАК АналитикаФинансовогоУчета,
| ВЫБОР КОГДА ЕСТЬNULL(ВидыЗапасов.ДокументРеализации.РеализацияПоЗаказам, ЛОЖЬ) ТОГДА
| ЕСТЬNULL(ВидыЗапасов.ДокументРеализации.ЗаказКлиента, НЕОПРЕДЕЛЕНО)
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ЗаказРеализации,
|
| ЕСТЬNULL(
| ВидыЗапасов.ДокументРеализации.Подразделение,
| &Подразделение
| ) КАК ПодразделениеРеализации,
|
| ЕстьNULL(Суммы.СуммаСНДСУпр, 0) КАК СуммаСНДСУпр,
| ЕстьNULL(Суммы.СуммаБезНДСУпр, 0) КАК СуммаБезНДСУпр,
| ЕстьNULL(Суммы.СуммаБезНДСРегл, 0) КАК СуммаБезНДСРегл,
| ЕстьNULL(Суммы.СуммаСНДСРегл, 0) КАК СуммаСНДСРегл,
| ЕстьNULL(Суммы.БазаНДСРегл, 0) КАК БазаНДСРегл,
| ЕстьNULL(Суммы.СуммаНДСРегл, 0) КАК СуммаНДСРегл,
|
| ВидыЗапасов.СуммаСНДС КАК СуммаСНДС,
| ВидыЗапасов.СуммаНДС КАК СуммаНДС,
| ВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ВидыЗапасов.Себестоимость КАК Себестоимость,
| (ВЫБОР
| КОГДА &НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
| ТОГДА ВидыЗапасов.Себестоимость
| ИНАЧЕ ВидыЗапасов.СебестоимостьБезНДС КОНЕЦ) КАК СебестоимостьБезНДС,
| ВидыЗапасов.СебестоимостьРегл КАК СебестоимостьРегл,
| ВидыЗапасов.СебестоимостьПР КАК СебестоимостьПР,
| ВидыЗапасов.СебестоимостьВР КАК СебестоимостьВР,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ВЫБОР КОГДА ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И ВидыЗапасов.ДокументРеализации.Дата < &НачалоМесяцаПериода
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВозвратТоваровЧерезКомиссионераПрошлыхПериодов)
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВозвратТоваровЧерезКомиссионера)
| КОГДА ВидыЗапасов.СпособОпределенияСебестоимости = ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| И ВидыЗапасов.ДокументРеализации.Дата < &НачалоМесяцаПериода
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВозвратТоваровОтКлиентаПрошлыхПериодов)
| КОГДА ВидыЗапасов.СпособОпределенияСебестоимости <> ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ОприходованиеПоВозврату)
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноРеализации)
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|ПОМЕСТИТЬ ВтТаблицаВидыЗапасов
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ВидыЗапасов
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО
| ВидыЗапасов.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиБезНазначения
| ПО
| Аналитика.Номенклатура = КлючиБезНазначения.Номенклатура
| И Аналитика.Характеристика = КлючиБезНазначения.Характеристика
| И Аналитика.Серия = КлючиБезНазначения.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиБезНазначения.Назначение
| И Аналитика.МестоХранения = КлючиБезНазначения.МестоХранения
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиПереданнойНоменклатуры
| ПО
| &ЭтоВозвратОтКомиссионера
| И Аналитика.Номенклатура = КлючиПереданнойНоменклатуры.Номенклатура
| И Аналитика.Характеристика = КлючиПереданнойНоменклатуры.Характеристика
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = КлючиПереданнойНоменклатуры.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиПереданнойНоменклатуры.Назначение
| И &Партнер = КлючиПереданнойНоменклатуры.МестоХранения
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК АналитикаОтгрузки
| ПО
| ВидыЗапасов.АналитикаУчетаНоменклатурыОтгрузки = АналитикаОтгрузки.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиОтгрузкиБезНазначения
| ПО
| АналитикаОтгрузки.Номенклатура = КлючиОтгрузкиБезНазначения.Номенклатура
| И АналитикаОтгрузки.Характеристика = КлючиОтгрузкиБезНазначения.Характеристика
| И АналитикаОтгрузки.Серия = КлючиОтгрузкиБезНазначения.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиОтгрузкиБезНазначения.Назначение
| И АналитикаОтгрузки.МестоХранения = КлючиОтгрузкиБезНазначения.МестоХранения
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиОтгрузкиКомитенту
| ПО
| Аналитика.Номенклатура = КлючиОтгрузкиКомитенту.Номенклатура
| И Аналитика.Характеристика = КлючиОтгрузкиКомитенту.Характеристика
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = КлючиОтгрузкиКомитенту.Серия
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиОтгрузкиКомитенту.Назначение
| И ВидыЗапасов.ВидЗапасов.ВладелецТовара = КлючиОтгрузкиКомитенту.МестоХранения
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиОприходования
| ПО
| ВидыЗапасов.НоменклатураОприходование = КлючиОприходования.Номенклатура
| И ВидыЗапасов.ХарактеристикаОприходование = КлючиОприходования.Характеристика
| И Аналитика.Назначение = КлючиОприходования.Назначение
| И Аналитика.Серия = КлючиОприходования.Серия
| И Аналитика.МестоХранения = КлючиОприходования.МестоХранения
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиОприходованияЧерезКомиссионера
| ПО
| ВидыЗапасов.НоменклатураОприходование = КлючиОприходованияЧерезКомиссионера.Номенклатура
| И ВидыЗапасов.ХарактеристикаОприходование = КлючиОприходованияЧерезКомиссионера.Характеристика
| И Аналитика.Назначение = КлючиОприходованияЧерезКомиссионера.Назначение
| И Аналитика.Серия = КлючиОприходованияЧерезКомиссионера.Серия
| И &Договор = КлючиОприходованияЧерезКомиссионера.МестоХранения
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Справочник.ВидыЗапасов КАК Справочник
| ПО
| ВидыЗапасов.ВидЗапасов = Справочник.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ВидыЗапасов.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""ВидыЗапасов""
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| ВидыЗапасов.Ссылка = Суммы.Ссылка
| И ВидыЗапасов.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|
|ГДЕ
| ВидыЗапасов.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПереданнаяВозвратнаяТара(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПереданнаяВозвратнаяТара";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ВтТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| ВтТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ВтТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ВтТаблицаВидыЗапасов.Количество КАК Количество,
| ВтТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВтТаблицаВидыЗапасов.СуммаСНДС КАК Сумма,
| ВтТаблицаВидыЗапасов.ДокументРеализации КАК ДокументПередачи,
| ВЫБОР КОГДА ВтТаблицаВидыЗапасов.ВидЗапасовОтгрузки = ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка) ТОГДА
| ВтТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ
| ВтТаблицаВидыЗапасов.ВидЗапасовОтгрузки
| КОНЕЦ КАК ВидЗапасов,
| ВтТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| &Партнер КАК Партнер,
| &ПредусмотренЗалогЗаТару КАК ПредусмотренЗалог,
| ВЫБОР
| КОГДА &ПредусмотренЗалогЗаТару
| ТОГДА &ИдентификаторНеиспользуемойФинзаписи
| ИНАЧЕ ВтТаблицаВидыЗапасов.ИдентификаторСтроки
| КОНЕЦ КАК ИдентификаторФинЗаписи,
| ВЫБОР
| КОГДА ВтТаблицаВидыЗапасов.СпособОпределенияСебестоимости <> ЗНАЧЕНИЕ(Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи)
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ОприходованиеПоВозврату)
| КОГДА ВтТаблицаВидыЗапасов.ПериодПродажи < &НачалоМесяцаПериода
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВозвратТарыОтКлиентаПрошлыхПериодов)
| КОГДА (ВтТаблицаВидыЗапасов.СкладОтгрузки <> ВтТаблицаВидыЗапасов.СкладВозврата
| ИЛИ ВтТаблицаВидыЗапасов.НоменклатураОприходование <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИЛИ (ВтТаблицаВидыЗапасов.ВидЗапасовОтгрузки <> ВтТаблицаВидыЗапасов.ВидЗапасов
| И &УчитыватьСебестоимостьТоваровПоНазначениям)
| ИЛИ (ВтТаблицаВидыЗапасов.Назначение <> ВтТаблицаВидыЗапасов.НазначениеОтгрузки
| И &УчитыватьСебестоимостьТоваровПоНазначениям))
| ТОГДА ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноПереданнойТарыВозвратНаДругойСклад)
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.СторноПереданнойТары)
| КОНЕЦ КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтТаблицаВидыЗапасов КАК ВтТаблицаВидыЗапасов
|ГДЕ
| ВтТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ВтТаблицаВидыЗапасов.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| И &ВозвратПереданнойМногооборотнойТары
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаКурсыВалют(Запрос, ТекстыЗапроса)
ИмяРегистра = "КурсыВалют";
ТекстЗапроса = "
|ВЫБРАТЬ
| КурсыВалют.Валюта КАК Валюта,
|
| (КурсВалютыДокумента.КурсЧислитель * КурсыВалют.КурсЗнаменатель)
| / (КурсВалютыДокумента.КурсЗнаменатель * КурсыВалют.КурсЧислитель) КАК КоэффициентПересчета
|
|ПОМЕСТИТЬ КурсыВалют
|ИЗ
| РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период,
| Валюта В (
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаВидыЗапасов.ВидЗапасов.Валюта КАК Валюта
| ИЗ
| Документ.ВозвратТоваровОтКлиента.ВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ТаблицаВидыЗапасов.ВидЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ) И БазоваяВалюта = &ВалютаРегламентированногоУчета
| ) КАК КурсыВалют
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&Период, Валюта = &Валюта И БазоваяВалюта = &ВалютаРегламентированногоУчета) КАК КурсВалютыДокумента
| ПО
| ИСТИНА
|
|ГДЕ
| КурсВалютыДокумента.КурсЗнаменатель <> 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтБонусныеБаллы(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтБонусныеБаллы";
ТекстЗапроса =
"ВЫБРАТЬ
| ТабличнаяЧасть.ДатаНачисления КАК Период,
| ВЫБОР
| КОГДА ТабличнаяЧасть.ДатаСписания <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ТабличнаяЧасть.ДатаНачисления
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ КАК ДатаНачалаДействия,
| ВЫБОР
| КОГДА ТабличнаяЧасть.ДатаСписания <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА &ТекущаяДата
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
| КОНЕЦ КАК ДатаКОбработке,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| КОНЕЦ КАК ВидДвижения,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| &Партнер КАК Партнер,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА -ТабличнаяЧасть.СуммаБонусныхБаллов
| ИНАЧЕ ТабличнаяЧасть.СуммаБонусныхБаллов
| КОНЕЦ КАК Начислено,
| 0 КАК КСписанию
|ПОМЕСТИТЬ ВтБонусныеБаллы
|ИЗ
| Документ.ВозвратТоваровОтКлиента.НачислениеБонусныхБаллов КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
| И ТабличнаяЧасть.ДатаНачисления <> ДатаВремя(1,1,1)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТабличнаяЧасть.ДатаСписания КАК Период,
| ТабличнаяЧасть.ДатаНачисления КАК ДатаНачалаДействия,
| &ТекущаяДата КАК ДатаКОбработке,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| КОНЕЦ КАК ВидДвижения,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| &Партнер КАК Партнер,
| 0 КАК Начислено,
| ВЫБОР
| КОГДА ТабличнаяЧасть.СуммаБонусныхБаллов > 0
| ТОГДА -ТабличнаяЧасть.СуммаБонусныхБаллов
| ИНАЧЕ ТабличнаяЧасть.СуммаБонусныхБаллов
| КОНЕЦ КАК КСписанию
|ИЗ
| Документ.ВозвратТоваровОтКлиента.НачислениеБонусныхБаллов КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
| И ТабличнаяЧасть.ДатаСписания <> ДатаВремя(1,1,1)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТабличнаяЧасть.ДатаОплаты КАК Период,
| ДатаВремя(1, 1, 1),
| &ТекущаяДата,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| ТабличнаяЧасть.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| &Партнер КАК Партнер,
| ТабличнаяЧасть.СуммаБонусныхБаллов КАК Начислено,
| 0 КАК КСписанию
|ИЗ
| Документ.ВозвратТоваровОтКлиента.ОплатаБонуснымиБаллами КАК ТабличнаяЧасть
|ГДЕ
| ТабличнаяЧасть.Ссылка = &Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаБонусныеБаллы(Запрос, ТекстыЗапроса, Регистры, Документ)
ИмяРегистра = "БонусныеБаллы";
Если НЕ БонусныеБаллыСервер.ТребуетсяДобавитьДвиженияПоРегиструБонусныеБаллы(Документ) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтБонусныеБаллы", ТекстыЗапроса) Тогда
ТекстЗапросаВтБонусныеБаллы(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| БонусныеБаллы.Период КАК Период,
| БонусныеБаллы.ДатаНачалаДействия КАК ДатаНачалаДействия,
| БонусныеБаллы.ДатаКОбработке КАК ДатаКОбработке,
| БонусныеБаллы.ВидДвижения КАК ВидДвижения,
| БонусныеБаллы.БонуснаяПрограммаЛояльности КАК БонуснаяПрограммаЛояльности,
| БонусныеБаллы.Партнер КАК Партнер,
| СУММА(БонусныеБаллы.Начислено) КАК Начислено,
| СУММА(БонусныеБаллы.КСписанию) КАК КСписанию
|ИЗ
| ВтБонусныеБаллы КАК БонусныеБаллы
|
|СГРУППИРОВАТЬ ПО
| БонусныеБаллы.БонуснаяПрограммаЛояльности,
| БонусныеБаллы.Партнер,
| БонусныеБаллы.Период,
| БонусныеБаллы.ДатаНачалаДействия,
| БонусныеБаллы.ДатаКОбработке,
| БонусныеБаллы.ВидДвижения
|ИМЕЮЩИЕ
| СУММА(БонусныеБаллы.Начислено) <> 0 ИЛИ
| СУММА(БонусныеБаллы.КСписанию) <> 0
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности(Форма) Экспорт
ПорядокОбработкиДокумента = НаправленияДеятельностиСервер.ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности();
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляОчисткиНекорректныхНазначений = "Товары";
ТаблицаУсловий = НаправленияДеятельностиСервер.УсловияОбработкиНазначенийВСтроках("ТипНоменклатуры,КодСтроки");
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("Товары", ТаблицаУсловий);
Возврат ПорядокОбработкиДокумента;
КонецФункции
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы);
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ДанныеРеализации",, "Объект.Товары.Назначение");
ОписаниеКолонок.УсловиеИспользования = "Объект.Товары.ДокументРеализации <> НЕОПРЕДЕЛЕНО
| И Объект.Товары.ДокументРеализации <> ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)
| И Объект.Товары.ДокументРеализации <> ЗНАЧЕНИЕ(Документ.ОтчетОРозничныхПродажах.ПустаяСсылка)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.ДокументРеализации = "Объект.Товары.ДокументРеализации";
Возврат МакетФормы;
КонецФункции
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
|
| ВЫБОР КОГДА ТабЧасть.Порча ТОГДА
| ТабЧасть.НоменклатураОприходование
| ИНАЧЕ
| ТабЧасть.Номенклатура
| КОНЕЦ КАК Номенклатура,
|
| ВЫБОР КОГДА ТабЧасть.Порча ТОГДА
| ТабЧасть.ХарактеристикаОприходование
| ИНАЧЕ
| ТабЧасть.Характеристика
| КОНЕЦ КАК Характеристика,
|
| ТабЧасть.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| ТабЧасть.КодСтроки <> 0
| И ТабЧасть.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента
| <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка) КАК ПоГрафику,
| ТабЧасть.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ТабЧасть
|ГДЕ
| НЕ ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении > ТабЧасть.Ссылка.Дата
| ИЛИ ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
|
| ВЫБОР КОГДА ТабЧасть.Порча ТОГДА
| ТабЧасть.НоменклатураОприходование
| ИНАЧЕ
| ТабЧасть.Номенклатура
| КОНЕЦ КАК Номенклатура,
|
| ВЫБОР КОГДА ТабЧасть.Порча ТОГДА
| ТабЧасть.ХарактеристикаОприходование
| ИНАЧЕ
| ТабЧасть.Характеристика
| КОНЕЦ КАК Характеристика,
|
| ТабЧасть.Склад КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| -ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
|
| ВЫБОР КОГДА ТабЧасть.Порча ТОГДА
| ТабЧасть.НоменклатураОприходование
| ИНАЧЕ
| ТабЧасть.Номенклатура
| КОНЕЦ КАК Номенклатура,
|
| ВЫБОР КОГДА ТабЧасть.Порча ТОГДА
| ТабЧасть.ХарактеристикаОприходование
| ИНАЧЕ
| ТабЧасть.Характеристика
| КОНЕЦ КАК Характеристика,
|
| ТабЧасть.Склад КАК Склад,
|
| ВЫБОР КОГДА ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ ТОГДА
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ИНАЧЕ
| ТабЧасть.Назначение
| КОНЕЦ КАК Назначение,
|
| ТабЧасть.Количество КАК Количество,
| ВЫБОР КОГДА ТабЧасть.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента
| <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| И ТабЧасть.Ссылка.ВариантПриемкиТоваров
| <> ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным) ТОГДА
| ТабЧасть.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента
| ИНАЧЕ
| ТабЧасть.Ссылка
| КОНЕЦ КАК Заказ,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ТабЧасть.Ссылка.ДатаПоступления
| ИНАЧЕ
| ТабЧасть.Ссылка.Дата
| КОНЕЦ КАК ДатаПоступления,
|
| ИСТИНА КАК ДоступенДляРасхода,
| ТабЧасть.КодСтроки <> 0
| И ТабЧасть.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента
| <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка) КАК ПоГрафику,
| ТабЧасть.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента КАК РаспоряжениеВГрафике,
| ТабЧасть.Количество КАК КоличествоВГрафике
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата
| И (ТабЧасть.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ИЛИ ТабЧасть.КодСтроки = 0
| ИЛИ ТабЧасть.Ссылка.ЗаявкаНаВозвратТоваровОтКлиента
| = ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))";
РаспределениеЗапасовДвижения.ЗапланироватьПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
КонецПроцедуры
Функция ЭтоВозвратПослеПереходаПраваСобственности(ДокументВозврата) Экспорт
ДокументРеализации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументВозврата, "ДокументРеализации");
Возврат ТипЗнч(ДокументРеализации) = Тип("ДокументСсылка.РеализацияТоваровУслуг")
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументРеализации, "ХозяйственнаяОперация") = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область Заполнение
Функция ПараметрыЗаполненияДокумента() Экспорт
ПараметрыЗаполнения = Новый Структура();
ПараметрыЗаполнения.Вставить("МассивЗаказов", Неопределено);
ПараметрыЗаполнения.Вставить("ФормаОткрыта", Ложь);
ПараметрыЗаполнения.Вставить("ЗаполнятьПоОрдеру", Ложь);
ПараметрыЗаполнения.Вставить("РеквизитыШапки", Неопределено);
ПараметрыЗаполнения.Вставить("Склад", Справочники.Склады.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("Организация", Справочники.Организации.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("Подразделение", Справочники.СтруктураПредприятия.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("ИмяДокумента", "ВозвратТоваровОтКлиента");
ПараметрыЗаполнения.Вставить("ИмяРегистраЗаказ", "ТоварыКПоступлению");
ПараметрыЗаполнения.Вставить("ИмяПоляЗаказ", "Распоряжение");
ПараметрыЗаполнения.Вставить("КлючевыеПоля", "Номенклатура, Характеристика, Серия, Назначение");
Возврат ПараметрыЗаполнения;
КонецФункции
Процедура ИнициализироватьПараметрыЗаполнения(ПараметрыЗаполнения, РеквизитыШапки, МассивЗаказов) Экспорт
ПараметрыЗаполнения.МассивЗаказов = МассивЗаказов;
ПараметрыЗаполнения.РеквизитыШапки = РеквизитыШапки;
ПараметрыЗаполнения.Склад = РеквизитыШапки.Склад;
ПараметрыЗаполнения.Организация = РеквизитыШапки.Организация;
ПараметрыЗаполнения.Подразделение = РеквизитыШапки.Подразделение;
ПараметрыЗаполнения.ХозяйственнаяОперация = РеквизитыШапки.ХозяйственнаяОперация;
КонецПроцедуры
Функция ДанныеТаблицыТоварыДокумента(Накладная) Экспорт
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| Таблица.НомерСтроки КАК НомерСтроки,
| Таблица.Номенклатура КАК Номенклатура,
| Таблица.Характеристика КАК Характеристика,
| Таблица.Серия КАК Серия,
| Таблица.Упаковка КАК Упаковка,
| Таблица.Назначение КАК Назначение,
| Таблица.Склад КАК Склад,
| Таблица.КодСтроки КАК КодСтроки,
| Таблица.КоличествоУпаковок КАК КоличествоУпаковок,
| Таблица.Количество КАК Количество,
| Таблица.Цена КАК Цена,
| Таблица.СтавкаНДС КАК СтавкаНДС,
| Таблица.СтатусУказанияСерий КАК СтатусУказанияСерий,
| Таблица.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| Таблица.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
| Таблица.Штрихкод КАК Штрихкод,
| Таблица.ДокументРеализации КАК ДокументРеализации,
| Таблица.НоменклатураОприходование КАК НоменклатураОприходование,
| Таблица.ХарактеристикаОприходование КАК ХарактеристикаОприходование,
| Таблица.Порча КАК Порча,
| Таблица.Сумма КАК Сумма,
| Таблица.СуммаНДС КАК СуммаНДС,
| Таблица.СуммаСНДС КАК СуммаСНДС
|ИЗ
| Документ.ВозвратТоваровОтКлиента.Товары КАК Таблица
|ГДЕ
| Таблица.Ссылка = &Накладная";
Запрос.УстановитьПараметр("Накладная", Накладная);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат;
КонецФункции
Процедура ЗаполнитьПоЗаказамОрдерам(Товары, Регистратор, ПараметрыЗаполнения, ШтрихкодыУпаковок = Неопределено) Экспорт
ТекстРазделителя = НакладныеСервер.ТекстРазделителяЗапросов();
ОтборПоСкладу = ЗначениеЗаполнено(ПараметрыЗаполнения.Склад);
Если ПараметрыЗаполнения.ЗаполнятьПоОрдеру Тогда
РаспоряженияДляОрдеров = ПараметрыЗаполнения.МассивЗаказов;
РегистраторДляОрдеров = Регистратор;
Иначе
РаспоряженияДляОрдеров = Неопределено;
РегистраторДляОрдеров = Неопределено;
КонецЕсли;
Отбор = Новый Структура();
Отбор.Вставить("Распоряжение", "Распоряжения");
ТекстЗапросаРегистраЗаказы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаОстаткиПоВозвратам(
"ВтДанныеУчета",
Отбор,
"КОформлению <> 0");
Отбор = Новый Структура();
Отбор.Вставить("Ссылка", "Распоряжения");
Если ОтборПоСкладу Тогда
ОбщегоНазначенияУТ.ДобавитьЭлементОтбораВКоллекцию(
Отбор,
"ИСТИНА",
"Склад = &Склад ИЛИ Склад В ИЕРАРХИИ (&Склад)",
"=");
КонецЕсли;
ТекстЗапросаЗаказ = Документы.ЗаявкаНаВозвратТоваровОтКлиента.ТекстЗапросаТоварыДокумента(Отбор);
ТекстЗапроса = ТекстЗапросаРегистраЗаказы
+ ТекстРазделителя
+ ТекстЗапросаЗаказ;
Запрос = Новый Запрос();
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Распоряжения", ПараметрыЗаполнения.МассивЗаказов);
Запрос.УстановитьПараметр("Регистратор", Регистратор);
Если ОтборПоСкладу Тогда
Запрос.УстановитьПараметр("Склад", ПараметрыЗаполнения.Склад);
КонецЕсли;
УстановитьПривилегированныйРежим(ИСТИНА);
ТаблицаЗаказы = Запрос.Выполнить().Выгрузить();
ТаблицаЗаказыКолонкиКОформлению = ТаблицаЗаказы.Колонки.КОформлению;
ТаблицаЗаказыКолонкиЗаказПоставщику = ТаблицаЗаказы.Колонки.ЗаказПоставщику;
ТаблицаЗаказыКолонкиКОформлению.Имя = "КоличествоВЗаказе";
ТаблицаЗаказыКолонкиЗаказПоставщику.Имя = "Распоряжение";
Запрос = Новый Запрос();
Отбор = Новый Соответствие;
Если ОтборПоСкладу Тогда
ОбщегоНазначенияУТ.ДобавитьЭлементОтбораВКоллекцию(
Отбор,
"ИСТИНА",
"Склад = &Склад ИЛИ Склад В ИЕРАРХИИ (&Склад)",
"=");
КонецЕсли;
ТекстЗапросаОсталосьОформить = РегистрыНакопления.ТоварыКПоступлению.ТекстЗапросаОсталосьОформитьПоОрдерам(Ложь, Отбор);
Запрос.Текст = ТекстЗапросаОсталосьОформить;
Запрос.УстановитьПараметр("Распоряжения", РаспоряженияДляОрдеров);
Запрос.УстановитьПараметр("Регистратор", РегистраторДляОрдеров);
Если ОтборПоСкладу Тогда
Запрос.УстановитьПараметр("Склад", ПараметрыЗаполнения.Склад);
КонецЕсли;
ТаблицаОрдера = Запрос.Выполнить().Выгрузить();
ТаблицаОрдераКолонкиКоличество = ТаблицаОрдера.Колонки.Количество;
ТаблицаОрдераКолонкиКоличество.Имя = "КоличествоВОрдере";
Товары.Индексы.Добавить(ПараметрыЗаполнения.КлючевыеПоля);
Ключ = "КодСтроки";
Условие = "ПО [Количество]";
НакладныеСервер.РаспределитьКоличество(ТаблицаЗаказы, Товары, "КоличествоВЗаказе", Ключ, Условие, Истина);
НакладныеСервер.ДополнитьТаблицу(ТаблицаЗаказы, Товары, "КоличествоВЗаказе");
Ключ = ПараметрыЗаполнения.КлючевыеПоля;
Условие = "[Количество], [КоличествоВЗаказе], ПО [КоличествоВЗаказе]";
НакладныеСервер.РаспределитьКоличество(ТаблицаОрдера, Товары, "КоличествоВОрдере", Ключ, Условие, Истина);
Условие = "НЕ [Количество], [КоличествоВЗаказе], ПО [КоличествоВЗаказе]";
НакладныеСервер.РаспределитьКоличество(ТаблицаОрдера, Товары, "КоличествоВОрдере", Ключ, Условие, Истина);
Условие = "[Количество], НЕ [КоличествоВЗаказе]";
НакладныеСервер.РаспределитьКоличество(ТаблицаОрдера, Товары, "КоличествоВОрдере", Ключ, Условие, Истина);
НакладныеСервер.ДополнитьТаблицу(ТаблицаОрдера, Товары, "КоличествоВОрдере");
Если РаспоряженияДляОрдеров <> Неопределено Тогда
ТаблицаШтрихкодыУпаковок = Новый ТаблицаЗначений;
ВозвратТоваровОтКлиентаЛокализация.СформироватьШтрихКодыУпаковок(РаспоряженияДляОрдеров, ТаблицаШтрихкодыУпаковок);
Если ТаблицаШтрихкодыУпаковок.Количество() > 0 Тогда
ЗаполнитьШтрихкодыУпаковок(Товары, ТаблицаШтрихкодыУпаковок, ШтрихкодыУпаковок);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьШапкуДокументаПоЗаказу(Объект, ПараметрыЗаполнения, МассивЗаказов) Экспорт
ЗаполнитьЗначенияСвойств(Объект, ПараметрыЗаполнения.РеквизитыШапки);
ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(Объект, Документы.ВозвратТоваровОтКлиента);
НоменклатураСервер.ЗаполнитьСерииПоFEFO(Объект, ПараметрыУказанияСерий, Ложь);
Объект.ЗаявкаНаВозвратТоваровОтКлиента = МассивЗаказов[0];
Если ЗначениеЗаполнено(Объект.ЗаявкаНаВозвратТоваровОтКлиента) Тогда
Объект.Склад = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ЗаявкаНаВозвратТоваровОтКлиента, "Склад");
КонецЕсли;
КонецПроцедуры
Процедура ОбновитьЗависимыеРеквизитыТабличнойЧасти(Товары, ПараметрыЗаполнения, ПересчитыватьСумму = Истина) Экспорт
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(ПараметрыЗаполнения.РеквизитыШапки);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьКоличествоУпаковок");
Если ПересчитыватьСумму Тогда
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Товары, СтруктураДействий);
Для Каждого Строка Из Товары Цикл
Если НЕ ЗначениеЗаполнено(Строка.СпособОпределенияСебестоимости) Тогда
Строка.СпособОпределенияСебестоимости = ?(ЗначениеЗаполнено(Строка.ДокументРеализации),
Перечисления.СпособыОпределенияСебестоимостиВозврата.ИзДокументаПродажи,
Перечисления.СпособыОпределенияСебестоимостиВозврата.ИзТекущегоДокумента);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьШтрихкодыУпаковок(Товары, ТаблицаШтрихкодыУпаковок, ШтрихкодыУпаковок)
Для Каждого Строка Из Товары Цикл
Если Строка.КоличествоВОрдере = 0 Тогда
Продолжить;
КонецЕсли;
ПараметрыПоиска = Новый Структура;
ПараметрыПоиска.Вставить("Номенклатура", Строка.Номенклатура);
ПараметрыПоиска.Вставить("Характеристика", Строка.Характеристика);
ПараметрыПоиска.Вставить("Серия", Строка.Серия);
НайденныеОтгруженныеМарки = Неопределено;
НайденныеОтгруженныеМарки = ТаблицаШтрихкодыУпаковок.НайтиСтроки(ПараметрыПоиска);
Если НайденныеОтгруженныеМарки = Неопределено Тогда
Продолжить;
КонецЕсли;
ОсталосьРаспределитьМарок = Строка.КоличествоВОрдере;
Для каждого Марка Из НайденныеОтгруженныеМарки Цикл
Если ОсталосьРаспределитьМарок = 0 Тогда
Прервать;
КонецЕсли;
СтрокаТабМарки = ШтрихкодыУпаковок.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТабМарки, Строка);
СтрокаТабМарки.ШтрихкодУпаковки = Марка.ШтрихкодУпаковки;
СтрокаТабМарки.ИзОрдера = Истина;
ОсталосьРаспределитьМарок = ОсталосьРаспределитьМарок - 1;
ТаблицаШтрихкодыУпаковок.Удалить(Марка);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецЕсли