#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Взаиморасчеты");
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
МеханизмыДокумента.Добавить("ПриемНаОтветхранение");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("УчетИмпорта");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетДоходовРасходов");
МеханизмыДокумента.Добавить("ОформлениеОтчетовКомитентуОЗакупках");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
ВозвратТоваровПоставщикуЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ВозвратТоваровПоставщику") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПринятаяВозвратнаяТара(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаЗакупки(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыУслугиКОформлениюОтчетовКомитентуОЗакупках(Запрос, ТекстыЗапроса, Регистры);
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры);
ВозвратТоваровПоставщикуЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры);
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Функция ТекстЗапросаРеквизитыДоставки() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Шапка.Номер КАК Номер,
| Шапка.Проведен КАК Проведен,
| Шапка.Ссылка КАК Ссылка,
| Шапка.Дата КАК Дата,
| Шапка.Партнер КАК ПолучательОтправитель,
| Шапка.ПеревозчикПартнер КАК Перевозчик,
| Шапка.СпособДоставки КАК СпособДоставки,
| Шапка.ЗонаДоставки КАК Зона,
|
| ВЫБОР КОГДА СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаПоАдресу)
| ТОГДА Шапка.АдресДоставкиПеревозчика
| ИНАЧЕ Шапка.АдресДоставки
| КОНЕЦ КАК Адрес,
|
| ВЫБОР КОГДА СпособДоставки = ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.СиламиПеревозчикаПоАдресу)
| ТОГДА Шапка.АдресДоставкиПеревозчикаЗначенияПолей
| ИНАЧЕ Шапка.АдресДоставкиЗначенияПолей
| КОНЕЦ КАК АдресЗначенияПолей,
|
| Шапка.ВремяДоставкиС КАК ВремяС,
| Шапка.ВремяДоставкиПо КАК ВремяПо,
| Шапка.ДополнительнаяИнформацияПоДоставке
| КАК ДополнительнаяИнформация,
| Шапка.Склад КАК Склад,
| ИСТИНА КАК ДоставитьПолностью,
| Шапка.ОсобыеУсловияПеревозки КАК ОсобыеУсловияПеревозки,
| Шапка.ОсобыеУсловияПеревозкиОписание КАК ОсобыеУсловияПеревозкиОписание,
| ЛОЖЬ КАК РазбиватьРасходныеОрдераПоРаспоряжениям
|
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК Шапка
|ГДЕ
| Шапка.Ссылка В (&Ссылки)";
Возврат ТекстЗапроса;
КонецФункции
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
Если ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеОтгрузки") Тогда
КомандаСоздания = Документы.АктОРасхожденияхПослеОтгрузки.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Если КомандаСоздания <> Неопределено Тогда
КомандаСоздания.Представление = НСтр("ru = 'Акт о расхождениях после возврата поставщику'");
КонецЕсли;
КонецЕсли;
Документы.РасходныйОрдерНаТовары.ДобавитьКомандуСоздатьНаОснованииРасходныйОрдерНаТовары(КомандыСозданияНаОсновании);
Документы.ДоверенностьВыданная.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПоступлениеБезналичныхДенежныхСредств.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПриобретениеТоваровУслуг.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПриходныйКассовыйОрдер.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.ПоручениеЭкспедитору.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Справочники.Претензии.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.КорректировкаЗадолженности.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
СервисДоставкиПереопределяемый.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании, Параметры);
ВозвратТоваровПоставщикуЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.ВозвратТоваровПоставщику) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ВозвратТоваровПоставщику.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ВозвратТоваровПоставщику);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Отчеты.ОстаткиТоваровОрганизаций.ДобавитьКомандуОтчета(КомандыОтчетов);
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьПоставщикам_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСПоставщиком_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = Отчеты.КарточкаРасчетовПоПринятойВозвратнойТаре.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.ЗадолженностьПоставщикам_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Порядок = 1;
КонецЕсли;
КомандаОтчет = ВзаиморасчетыСервер.КарточкаРасчетовСПоставщиком_ДобавитьКомандуОтчетаПоДокументам(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Порядок = 2;
КонецЕсли;
КомандаОтчет = Отчеты.КарточкаРасчетовПоПринятойВозвратнойТаре.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаСпискаДокументов";
КомандаОтчет.Важность = "Важное";
КомандаОтчет.Порядок = 3;
КонецЕсли;
ВозвратТоваровПоставщикуЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
ИменаРеквизитов = "Склад,Дата,ХозяйственнаяОперация,Организация,Партнер";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерий = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерий.ПолноеИмяОбъекта = ПолноеИмяОбъекта();
ПараметрыСерийСклада = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Истина);
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПараметрыСерийСклада.ИспользоватьСерииНоменклатуры;
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ОтгрузкаПоВозвратуПоставщику);
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Склад");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерий.ЭтоНакладная = Истина;
ПараметрыУказанияСерий.ПланированиеОтгрузки = Ложь;
ПараметрыУказанияСерий.ПланированиеОтбора = Ложь;
ПараметрыУказанияСерий.ФактОтбора = Истина;
ПараметрыУказанияСерий.Дата = Объект.Дата;
ПараметрыУказанияСерий.РегистрироватьСерии = НоменклатураКлиентСервер.НеобходимоРегистрироватьСерии(ПараметрыУказанияСерий);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ПараметрыУказанияСерий.ОперацияДокумента = Объект.ХозяйственнаяОперация;
ПараметрыУказанияСерий.ПараметрыЗапроса.Вставить("Организация", Объект.Организация);
ПараметрыУказанияСерий.ПараметрыЗапроса.Вставить("Партнер", Объект.Партнер);
КонецЕсли;
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция ПараметрыВзаиморасчеты(ДанныеЗаполнения = Неопределено) Экспорт
ВлияющиеРеквизиты = "ХозяйственнаяОперация,СпособКомпенсации";
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ДанныеЗаполнения) Тогда
СтруктураДанныеЗаполнения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
ДанныеЗаполнения, ВлияющиеРеквизиты);
ХозяйственнаяОперация = СтруктураДанныеЗаполнения.ХозяйственнаяОперация;
СпособКомпенсации = СтруктураДанныеЗаполнения.СпособКомпенсации;
ИначеЕсли ДанныеЗаполнения = Неопределено Тогда
ХозяйственнаяОперация = Неопределено;
СпособКомпенсации = Неопределено;
Иначе
ХозяйственнаяОперация = ДанныеЗаполнения.ХозяйственнаяОперация;
СпособКомпенсации = ДанныеЗаполнения.СпособКомпенсации;
КонецЕсли;
СтруктураПараметров = ВзаиморасчетыСервер.ПараметрыМеханизма();
СтруктураПараметров.ВлияющиеРеквизиты = ВлияющиеРеквизиты;
СтруктураПараметров.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСПоставщиком;
СтруктураПараметров.ИзменяетРасчетыСтрокой =
"ИсточникДанных.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровПоставщику)";
СтруктураПараметров.ИзменяетПланОплаты = ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровПоставщику;
СтруктураПараметров.ИзменяетПланОтгрузкиПоставки = Ложь;
СтруктураПараметров.КурсЧислитель = "";
СтруктураПараметров.КурсЗнаменатель = "";
Если СпособКомпенсации = Перечисления.СпособыКомпенсацииВозвратовТоваров.ОставитьВКачествеАванса Тогда
СтруктураПараметров.ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоНакладным;
Иначе
СтруктураПараметров.ПорядокРасчетов = "Объект.Договор.ПорядокРасчетов";
КонецЕсли;
СтруктураПараметров.УсловныйПорядокРасчетов =
"ВЫБОР КОГДА ИсточникДанных.СпособКомпенсации = ЗНАЧЕНИЕ(Перечисление.СпособыКомпенсацииВозвратовТоваров.ОставитьВКачествеАванса) ТОГДА
| ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоНакладным)
|ИНАЧЕ
| ВЫБОР
| КОГДА
| ИсточникДанных.Договор В (ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Справочник.ДоговорыМеждуОрганизациями.ПустаяСсылка),
| НЕОПРЕДЕЛЕНО) ТОГДА
| НЕОПРЕДЕЛЕНО
| ИНАЧЕ
| ИсточникДанных.Договор.ПорядокРасчетов
| КОНЕЦ
|КОНЕЦ
|";
СтруктураПараметров.ФормаОплаты = "";
СтруктураПараметров.ПутьКДаннымТЧ = "Объект.Товары";
СтруктураПараметров.ПутьКДаннымТЧРасшифровкаПлатежа = "Объект.РасшифровкаПлатежа";
СтруктураПараметров.Касса = "";
СтруктураПараметров.ИдентификаторПлатежа = "";
СтруктураПараметров.Менеджер = "Объект.Менеджер";
СтруктураПараметров.СуммаДокументаФорма = "Форма.СуммаВсего";
СтруктураПараметров.СуммаЗалогаЗаТаруФорма = "Форма.СуммаЗалогаЗаТару";
СтруктураПараметров.ЭлементыФормы.ГиперссылкаРасшифровкаПлатежа = "УменьшенДолгСтрокой";
СтруктураПараметров.ОбъектРасчетов = "Объект.ОбъектРасчетов";
Возврат СтруктураПараметров;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Склад КАК Склад,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Назначение КАК Назначение,
| Товары.Серия КАК Серия,
| Товары.Количество КАК Количество,
| Товары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| Товары.НомерСтроки КАК НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Серия,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры,
| СУММА(Товары.Количество) КАК Количество
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Серия,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|
|СГРУППИРОВАТЬ ПО
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| КОГДА Склады.ИспользоватьОрдернуюСхемуПриОтгрузке
| И &Дата >= Склады.ДатаНачалаОрдернойСхемыПриОтгрузке
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчетСерийПоFEFO
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 6
| ИНАЧЕ 5
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПоФактуОтбора
| И &ФактОтбора
| И ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриОтгрузкеПоВозвратуПоставщику
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И ТоварыДляЗапроса.Количество > 0
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерий
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ЛЕВОЕ СОЕДИНЕНИЕ СерииДляЗапроса КАК СерииДляЗапроса
| ПО ТоварыДляЗапроса.Номенклатура = СерииДляЗапроса.Номенклатура
| И ТоварыДляЗапроса.Характеристика = СерииДляЗапроса.Характеристика
| И ТоварыДляЗапроса.Назначение = СерииДляЗапроса.Назначение
| И ТоварыДляЗапроса.Склад = СерииДляЗапроса.Склад
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО (Склады.Ссылка = ПолитикиУчетаСерий.Склад)
| ПО ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
| И ПолитикиУчетаСерий.Склад = ТоварыДляЗапроса.Склад
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| И Товары.Назначение = ТоварыДляЗапроса.Назначение
| И Товары.Склад = ТоварыДляЗапроса.Склад
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| Статусы.СтатусУказанияСерий КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| Статусы.СтатусУказанияСерий <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
Функция ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности(Форма) Экспорт
ПорядокОбработкиДокумента = НаправленияДеятельностиСервер.ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности();
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляОчисткиНекорректныхНазначений = "Товары";
ТаблицаУсловий = НаправленияДеятельностиСервер.УсловияОбработкиНазначенийВСтроках("ТипНоменклатуры");
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("Товары", ТаблицаУсловий);
Возврат ПорядокОбработкиДокумента;
КонецФункции
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы);
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ШаблонНазначения.УсловиеИспользования = "Объект.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровПоставщику)";
ШаблонНазначенияБезАгентскойЗакупки = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы);
ШаблонНазначенияБезАгентскойЗакупки.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ШаблонНазначенияБезАгентскойЗакупки.ТипыНазначений.Удалить(ШаблонНазначенияБезАгентскойЗакупки.ТипыНазначений.Найти(Перечисления.ТипыНазначений.ПоставкаПодПринципала));
ШаблонНазначенияБезАгентскойЗакупки.УсловиеИспользования = "Объект.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровПоставщику)";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказовПоВалюте", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("ВНаличии").Пометка = Истина;
ОписаниеКолонок.КолонкиПоУмолчанию.Добавить("ВНаличии");
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.Склад";
ОписаниеКолонок.ПутиКДанным.Валюта = "Объект.Валюта";
Возврат МакетФормы;
КонецФункции
#Область УчетНДС
Функция ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСЗакупки();
ПараметрыЗаполнения.Контрагент = Объект.Контрагент;
ПараметрыЗаполнения.Договор = Объект.Договор;
ПараметрыЗаполнения.Период = Объект.Дата;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровПоставщику Тогда
ПараметрыЗаполнения.ВозвратТоваровПоставщику = Истина;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ПараметрыЗаполнения.ВозвратТоваровКомитенту = Истина;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыРегистрацииСчетовФактурВыданных(Объект) Экспорт
ПараметрыРегистрации = УчетНДСУПКлиентСервер.ПараметрыРегистрацииСчетовФактурВыданных();
ПараметрыРегистрации.Ссылка = Объект.Ссылка;
ПараметрыРегистрации.Организация = Объект.Организация;
ПараметрыРегистрации.Контрагент = Объект.Контрагент;
ПараметрыРегистрации.НалогообложениеНДС = Объект.НалогообложениеНДС;
Если Не ЗначениеЗаполнено(Объект.Дата) Тогда
ПараметрыРегистрации.Дата = ТекущаяДатаСеанса();
Иначе
ПараметрыРегистрации.Дата = Объект.Дата;
КонецЕсли;
ПараметрыРегистрации.ВозвратТоваровПоставщику = (НЕ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПараметрыРегистрацииСчетовФактурПолученных(Объект) Экспорт
ПараметрыРегистрации = УчетНДСУПКлиентСервер.ПараметрыРегистрацииСчетовФактурПолученных();
ПараметрыРегистрации.Ссылка = Объект.Ссылка;
ПараметрыРегистрации.Организация = Объект.Организация;
ПараметрыРегистрации.Контрагент = Объект.Контрагент;
ПараметрыРегистрации.НалогообложениеНДС = Объект.НалогообложениеНДС;
Если Не ЗначениеЗаполнено(Объект.Дата) Тогда
ПараметрыРегистрации.Дата = ТекущаяДатаСеанса();
Иначе
ПараметрыРегистрации.Дата = Объект.Дата;
КонецЕсли;
ИмпортТоваров = Ложь;
ВвозИзЕАЭС = Ложь;
Если ЗначениеЗаполнено(Объект.ДокументПоступления) Тогда
Если Объект.ДокументПоступления.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту Тогда
ИмпортТоваров = Истина;
КонецЕсли;
ХозОперацииЗакупкаВСтранахЕАЭС = ЗакупкиВызовСервера.ХозяйственныеОперацииПоОсновной(
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС"));
Если ХозОперацииЗакупкаВСтранахЕАЭС.Найти(Объект.ДокументПоступления.ХозяйственнаяОперация) <> Неопределено Тогда
ВвозИзЕАЭС = Истина;
КонецЕсли;
КонецЕсли;
ПараметрыРегистрации.ВозвратТоваровОтПлательщикаНДС = (НЕ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту)
И Не ИмпортТоваров;
ПараметрыРегистрации.ВвозТоваровИзТаможенногоСоюза = ВвозИзЕАЭС;
ПараметрыРегистрации.КорректировкаПоСогласованиюСторон = ПараметрыРегистрации.ВозвратТоваровОтПлательщикаНДС;
Возврат ПараметрыРегистрации;
КонецФункции
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Партнер)
| И ЗначениеРазрешено(Склад)
| И ЗначениеРазрешено(Подразделение)";
КонецПроцедуры
#КонецОбласти
Функция КоллекцияТабличныхЧастейТоваров() Экспорт
ТаблицыДокумента = Новый Структура("Товары");
Возврат ТаблицыДокумента;
КонецФункции
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер, Соглашение";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"Организация, Склад", Параметры);
КонецПроцедуры
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаСписка" Тогда
Если Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.СостоянияПоОбъектамУчетаЭДО)
Или Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ДокументыСОшибкамиПроверкиКонтрагентов) Тогда
СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "ФормаСписка";
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
Функция ЗначениеРеквизитаОбъектаТипаБулево(Ссылка, ИмяРеквизита) Экспорт
УстановитьПривилегированныйРежим(Истина);
Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита);
Если ТипЗнч(Результат) <> Тип("Булево") Тогда
Результат = Ложь;
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
Возврат Результат
КонецФункции
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Если ИмяРегистра = "Закупки" Тогда
ИсточникиДанных.Вставить("ВидыЗапасов.АналитикаУчетаНоменклатуры");
КонецЕсли;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ВЫБОР
| КОГДА ДанныеДокумента.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке
| И ДанныеДокумента.Дата >= ДанныеДокумента.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ИспользоватьОрдернуюСхемуПриОтгрузке,
|
| ДанныеДокумента.ВозвратПринятойМногооборотнойТары КАК ВозвратПринятойМногооборотнойТары,
| ДанныеДокумента.ПредусмотренЗалогЗаТару КАК ПредусмотренЗалогЗаТару,
|
| ВЫБОР КОГДА ДанныеДокумента.СпособКомпенсации = ЗНАЧЕНИЕ(Перечисление.СпособыКомпенсацииВозвратовТоваров.ВернутьДенежныеСредства) ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ВернутьДенежныеСредства,
| ДанныеДокумента.Менеджер КАК Менеджер,
| ДанныеДокумента.Автор КАК Автор,
| ДанныеДокумента.Договор КАК Договор,
| ДанныеДокумента.ДокументПоступления КАК ДокументПоступления,
| ЕСТЬNULL(ДанныеДокумента.ДокументПоступления.ЗаказПоставщику,
| Значение(Документ.ЗаказПоставщику.ПустаяСсылка)) КАК ЗаказПоступления,
| ДанныеДокумента.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокумента.ОбъектРасчетов.УникальныйИдентификатор КАК ИдентификаторОбъектаРасчетов,
| ДанныеДокумента.Соглашение КАК Соглашение,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетЗатрат, ЛОЖЬ) КАК УчетЗатратПоНД,
| ЕСТЬNULL(ДанныеДокумента.НаправлениеДеятельности.УчетРасчетовСПоставщиками, ЛОЖЬ) КАК УчетРасчетовСПоставщикамиПоНД,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ПРЕДСТАВЛЕНИЕ(ДанныеДокумента.Договор) КАК ДоговорПредставление,
| НастройкиХозяйственныхОпераций.Ссылка КАК НастройкаХозяйственнойОперации
| ,
| ВЫБОР
| КОГДА ДанныеДокумента.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА ЛОЖЬ
| КОГДА НЕ ДанныеДокумента.Договор.ВариантОформленияЗакупок ЕСТЬ NULL
| И ДанныеДокумента.Договор.ВариантОформленияЗакупок <> ЗНАЧЕНИЕ(Перечисление.ВариантыОформленияЗакупок.НеРазделять)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ИспользуетсяДокументПоступлениеТоваров
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО ДанныеДокумента.ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
ПараметрыУчетаПоОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Реквизиты.Организация, Реквизиты.Период);
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Запрос.УстановитьПараметр("ЦенаВключаетНДС", ?(Реквизиты.ЦенаВключаетНДС, 0, 1));
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Реквизиты.ВалютаРегламентированногоУчета);
Запрос.УстановитьПараметр("ВалютаУправленческогоУчета", Константы.ВалютаУправленческогоУчета.Получить());
Запрос.УстановитьПараметр("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета", ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
Запрос.УстановитьПараметр("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
Запрос.УстановитьПараметр("НомерДляПечати", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипЗнч(ДокументСсылка)));
Запрос.УстановитьПараметр("НалогообложениеОрганизации", ПараметрыУчетаПоОрганизации.ОсновноеНалогообложениеНДСПродажи);
Запрос.УстановитьПараметр("ИдентификаторЗаявлениеОВвозеТоваров", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.ЗаявлениеОВвозеТоваров"));
Запрос.УстановитьПараметр("ХозОперацииЗакупкаВСтранахЕАЭС", ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС));
ИнформацияПоДоговору = Неопределено;
Если ЗначениеЗаполнено(Реквизиты.Договор) Тогда
ШаблонСтроки = "ru = 'По договору ""%1""'";
ИнформацияПоДоговору = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСтроки, Реквизиты.ДоговорПредставление);
КонецЕсли;
Запрос.УстановитьПараметр("ИнформацияПоДоговору", ИнформацияПоДоговору);
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Процедура ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос)
Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Ключи.Номенклатура КАК Номенклатура,
| Ключи.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| Ключи.Серия КАК Серия,
| Ключи.МестоХранения КАК Склад
|ИЗ
| Документ.ВозвратТоваровПоставщику.ВидыЗапасов КАК Товары
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Ключи
| ПО Товары.АналитикаУчетаНоменклатуры = Ключи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО Ключи.Номенклатура = Аналитика.Номенклатура
| И Ключи.Характеристика = Аналитика.Характеристика
| И Ключи.Серия = Аналитика.Серия
| И Ключи.МестоХранения = Аналитика.МестоХранения
| И &ПустоеНазначение = Аналитика.Назначение
|ГДЕ
| Товары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|");
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитик.УстановитьПараметр("ПустоеНазначение", Справочники.Назначения.ПустаяСсылка());
ЗапросАналитик.УстановитьПараметр("УчитыватьСебестоимостьТоваровПоНазначениям", Запрос.Параметры.УчитыватьСебестоимостьТоваровПоНазначениям);
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка);
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаНоменклатурыИнициализированы", Истина);
КонецПроцедуры
Процедура УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос)
Если Запрос.Параметры.Свойство("АналитикаУчетаПоПартнерам") Тогда
Возврат;
КонецЕсли;
ПараметрыАналитики = Новый Структура;
ПараметрыАналитики.Вставить("Организация", Запрос.Параметры.Организация);
ПараметрыАналитики.Вставить("Партнер", Запрос.Параметры.Партнер);
ПараметрыАналитики.Вставить("Контрагент", Запрос.Параметры.Контрагент);
ПараметрыАналитики.Вставить("Договор", Запрос.Параметры.Договор);
ПараметрыАналитики.Вставить("НаправлениеДеятельности", Запрос.Параметры.НаправлениеДеятельности);
Запрос.УстановитьПараметр("АналитикаУчетаПоПартнерам",
РегистрыСведений.АналитикаУчетаПоПартнерам.ЗначениеКлючаАналитики(ПараметрыАналитики));
КонецПроцедуры
Процедура УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУПР")
И Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Запрос.Параметры.Валюта, Неопределено, Запрос.Параметры.Период, Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУПР", Коэффициенты.КоэффициентПересчетаВВалютуУПР);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
КонецПроцедуры
Функция ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса) Экспорт
ИмяВременнойТаблицы = "ВтВидыЗапасов";
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Характеристика КАК Характеристика,
| Аналитика.СкладскаяТерритория.ЦеховаяКладовая КАК ЦеховаяКладовая,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| КлючиБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВидыЗапасов.ТипЗапасов КАК ТипЗапасов,
| ЕСТЬNULL(ГФУ.ВидЦенностиНДС, ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары)) КАК ВидЦенности,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.НомерГТД.ТипНомераГТД КАК НомерГТДТипНомераГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.СуммаСНДС КАК СуммаСНДС,
| ТаблицаВидыЗапасов.СуммаНДС КАК СуммаНДС,
| ТаблицаВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ЕстьNULL(Суммы.СуммаБезНДСРегл, ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС) КАК СуммаБезНДСРегл,
| ЕстьNULL(Суммы.СуммаНДСРегл, 0) КАК СуммаНДСРегл,
| ЕстьNULL(Суммы.СуммаНДСУпр, 0) КАК СуммаНДСУпр,
| ЕстьNULL(Суммы.СуммаБезНДСУпр, 0) КАК СуммаБезНДСУпр,
| ЕстьNULL(Суммы.БазаНДСРегл, 0) КАК БазаНДСРегл,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.ДокументПоступления КАК ДокументПоступления,
| (ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ДокументПоступления <> ЗНАЧЕНИЕ(Документ.ПриобретениеТоваровУслуг.ПустаяСсылка)
| ТОГДА ТаблицаВидыЗапасов.ДокументПоступления.ЗакупкаПодДеятельность
| ИНАЧЕ &НалогообложениеОрганизации КОНЕЦ) КАК ВидДеятельностиНДС,
| ВЫБОР
| КОГДА ВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ТаблицаВидыЗапасов.ИдентификаторСтроки
| КОГДА &ВозвратПринятойМногооборотнойТары И НЕ &ПредусмотренЗалогЗаТару
| И Аналитика.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ТаблицаВидыЗапасов.ИдентификаторСтроки
| ИНАЧЕ &ИдентификаторОбъектаРасчетов
| КОНЕЦ КАК ИдентификаторФинЗаписи
|ПОМЕСТИТЬ ВтВидыЗапасов
|ИЗ
| Документ.ВозвратТоваровПоставщику.ВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыЗапасов КАК ВидыЗапасов
| ПО ТаблицаВидыЗапасов.ВидЗапасов = ВидыЗапасов.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиБезНазначения
| ПО Аналитика.Номенклатура = КлючиБезНазначения.Номенклатура
| И Аналитика.Характеристика = КлючиБезНазначения.Характеристика
| И Аналитика.Серия = КлючиБезНазначения.Серия
| И Аналитика.МестоХранения = КлючиБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = КлючиБезНазначения.Назначение
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
| ПО
| ТаблицаВидыЗапасов.Ссылка = Суммы.Ссылка
| И ТаблицаВидыЗапасов.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГруппыФинансовогоУчетаНоменклатуры КАК ГФУ
| ПО ВидыЗапасов.ГруппаФинансовогоУчета = ГФУ.Ссылка
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
|
|ИНДЕКСИРОВАТЬ ПО
| НомерГТДТипНомераГТД";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяВременнойТаблицы);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДанныхДокумента =
"ВЫБРАТЬ
| ТоварыДокумента.Ссылка КАК Ссылка,
| ДанныеШапки.Дата КАК Период,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ТоварыДокумента.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ДанныеШапки.Партнер КАК Получатель,
| ТоварыДокумента.Склад КАК Склад,
| ТоварыДокумента.Номенклатура КАК Номенклатура,
| ТоварыДокумента.Характеристика КАК Характеристика,
| ТоварыДокумента.Назначение КАК Назначение,
| ТоварыДокумента.Серия КАК Серия,
| ТоварыДокумента.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТоварыДокумента.Количество КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
|ИЗ
| Документ.ВозвратТоваровПоставщику.Товары КАК ТоварыДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику КАК ДанныеШапки
| ПО ТоварыДокумента.Ссылка = ДанныеШапки.Ссылка
|
|ГДЕ
| ТоварыДокумента.Ссылка В(&Ссылка)
| И ДанныеШапки.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет)
| И ТоварыДокумента.Количество <> 0";
ОбъектМетаданных = Метаданные.Документы.ВозвратТоваровПоставщику;
ИмяТЧСерии = "Серии";
СкладыСервер.ОформитьОтгрузкуТоваров(Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДанныхДокумента,
ОбъектМетаданных,
ИмяТЧСерии);
КонецПроцедуры
Процедура ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДанныхДокумента =
"ВЫБРАТЬ
| ТоварыДокумента.Ссылка КАК Ссылка,
| ДанныеШапки.Дата КАК Период,
| НЕОПРЕДЕЛЕНО КАК Заказ,
| ТоварыДокумента.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ДанныеШапки.Партнер КАК Получатель,
| ТоварыДокумента.Склад КАК Склад,
| ТоварыДокумента.Номенклатура КАК Номенклатура,
| ТоварыДокумента.Характеристика КАК Характеристика,
| ТоварыДокумента.Назначение КАК Назначение,
| ТоварыДокумента.Серия КАК Серия,
| ТоварыДокумента.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТоварыДокумента.Количество КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
| ИЗ
| Документ.ВозвратТоваровПоставщику.Товары КАК ТоварыДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику КАК ДанныеШапки
| ПО ТоварыДокумента.Ссылка = ДанныеШапки.Ссылка
|
|ГДЕ
| ТоварыДокумента.Ссылка В(&Ссылка)
| И ТоварыДокумента.Количество <> 0";
СкладыСервер.ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанныхДокумента);
КонецПроцедуры
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияСерийТоваров";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ВЫБОР КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ) ТОГДА
| ТаблицаСерии.Назначение
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Количество КАК Количество,
| ТаблицаСерии.Склад КАК Отправитель,
| &Партнер КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтгрузкаПоВозвратуПоставщику) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| &Период КАК Период,
| &Ссылка КАК Регистратор,
| НЕ &ИспользоватьОрдернуюСхемуПриОтгрузке КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ВозвратТоваровПоставщику.Серии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Количество <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ВЫБОР КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ) ТОГДА
| ТаблицаСерии.Назначение
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Количество КАК Количество,
| ТаблицаСерии.Склад КАК Склад,
| &Партнер КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтгрузкаПоВозвратуПоставщику) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| &Период КАК Период,
| &Ссылка КАК Регистратор,
| НЕ &ИспользоватьОрдернуюСхемуПриОтгрузке КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ВозвратТоваровПоставщику.Товары КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПринятаяВозвратнаяТара(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПринятаяВозвратнаяТара";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| ВидыЗапасов.Номенклатура КАК Номенклатура,
| ВидыЗапасов.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ВидыЗапасов.Количество КАК Количество,
| ВЫБОР
| КОГДА ВидыЗапасов.ДокументПоступления = ЗНАЧЕНИЕ(Документ.ПриобретениеТоваровУслуг.ПустаяСсылка)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВидыЗапасов.ДокументПоступления
| КОНЕЦ КАК ДокументПоступления,
| ВидыЗапасов.СуммаСНДС КАК Сумма,
| &Партнер КАК Партнер,
| &ПредусмотренЗалогЗаТару КАК ПредусмотренЗалог,
|
| ВЫБОР
| КОГДА &ПредусмотренЗалогЗаТару
| ТОГДА &ИдентификаторНеиспользуемойФинЗаписи
| ИНАЧЕ ВидыЗапасов.ИдентификаторФинЗаписи
| КОНЕЦ КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|ИЗ
| ВтВидыЗапасов КАК ВидыЗапасов
|ГДЕ
| &ВозвратПринятойМногооборотнойТары
| И ВидыЗапасов.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизаций";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаВидыЗапасов.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Склад КАК Склад,
| &Организация КАК ОрганизацияОтгрузки,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| &НалогообложениеНДС КАК НалогообложениеНДС,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ДокументПоступления КАК ДокументРеализации,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено) Экспорт
ТекстЗапросаДанных = "
|ВЫБРАТЬ
| ""ВидыЗапасов"" КАК ИсточникДанных,
| ИСТИНА КАК РаспределятьОбщуюСумму,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| ТаблицаДокумента.Ссылка.Дата КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС КАК СуммаБезНДС,
| ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
| ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ИСТИНА КАК ОтражаетсяВРасчетах,
| ТаблицаДокумента.Ссылка.ОбъектРасчетов КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|ИЗ
| Документ.ВозвратТоваровПоставщику.ВидыЗапасов КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|";
РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(
Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных);
КонецПроцедуры
Функция ТекстЗапросаТаблицаЗакупки(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "Закупки";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ТекстЗапроса =
"// Возврат товаров поставщику.
|ВЫБРАТЬ
| &Период КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Менеджер,
|
| ВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад,
| ВидыЗапасов.ТипЗапасов КАК ТипЗапасов,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
|
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Соглашение КАК Соглашение,
| &Договор КАК Договор,
| ВЫБОР
| КОГДА &ЗаказПоступления <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
| ТОГДА &ЗаказПоступления
| ИНАЧЕ &ДокументПоступления
| КОНЕЦ КАК Заказ,
|
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельностиНоменклатуры,
| ВЫБОР КОГДА &УчетРасчетовСПоставщикамиПоНД ТОГДА
| &НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельностиКонтрагента,
|
| ВидыЗапасов.Количество КАК Количество,
|
| ВЫРАЗИТЬ(ВидыЗапасов.СуммаСНДС * &КоэффициентПересчетаВВалютуУПР КАК ЧИСЛО(31,2)) КАК Сумма,
| ВЫРАЗИТЬ((ВидыЗапасов.СуммаСНДС - ВидыЗапасов.СуммаНДС) * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаБезНДС,
| ВЫРАЗИТЬ(ВидыЗапасов.СуммаСНДС * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
| ВЫРАЗИТЬ((ВидыЗапасов.СуммаСНДС - ВидыЗапасов.СуммаНДС) * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРеглБезНДС,
| 0 КАК СуммаСкидки,
|
| ВЫРАЗИТЬ(ВидыЗапасов.СуммаСНДС * &КоэффициентПересчетаВВалютуУПР КАК ЧИСЛО(31,2)) КАК Стоимость,
| ВЫРАЗИТЬ((ВидыЗапасов.СуммаСНДС - ВидыЗапасов.СуммаНДС) * &КоэффициентПересчетаВВалютуУПР КАК ЧИСЛО(31,2)) КАК СтоимостьБезНДС,
| ВЫРАЗИТЬ((ВидыЗапасов.СуммаСНДС - ВидыЗапасов.СуммаНДС) * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СтоимостьРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
|
| &Валюта КАК ВалютаДокумента,
| ВидыЗапасов.СуммаСНДС КАК СуммаВВалютеДокумента,
| ВидыЗапасов.СуммаСНДС - ВидыЗапасов.СуммаНДС КАК СуммаБезНДСВВалютеДокумента,
|
| &Валюта КАК ВалютаВзаиморасчетов,
| ВидыЗапасов.СуммаСНДС КАК СуммаВВалютеВзаиморасчетов,
| ВидыЗапасов.СуммаСНДС - ВидыЗапасов.СуммаНДС КАК СуммаБезНДСВВалютеВзаиморасчетов,
|
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ВидыЗапасов.ВидЗапасов
| ИНАЧЕ ВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| &ОбъектРасчетов КАК ИсточникГФУРасчетов
|ИЗ
| ВтВидыЗапасов КАК ВидыЗапасов
|ГДЕ
| ВидыЗапасов.ТипЗапасов В (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар))
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Договор КАК Договор,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Склад КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Ответственный,
| &Автор КАК Автор,
| &Комментарий КАК Комментарий,
| &Валюта КАК Валюта,
| &СуммаДокумента КАК Сумма,
| НЕОПРЕДЕЛЕНО КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| &ИнформацияПоДоговору КАК Дополнительно,
| &Период КАК ДатаПервичногоДокумента,
| &НомерДляПечати КАК НомерПервичногоДокумента,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос();
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ВозвратТоваровПоставщику";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("ИспользоватьОрдернуюСхемуПриОтгрузке",
" ВЫБОР
| КОГДА ТаблицаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке
| И ТаблицаТовары.Ссылка.Дата >= ТаблицаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ");
ПереопределениеРасчетаПараметров.Вставить("НомерДляПечати", """""");
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоДоговору", """""");
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ВЗапросеЕстьИсточник = Ложь;
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров);
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
ДополнительныеПараметры.Добавить("АналитикаУчетаПоПартнерам");
ДополнительныеПараметры.Добавить("КоэффициентПересчетаВВалютуУпр");
ДополнительныеПараметры.Добавить("КоэффициентПересчетаВВалютуРегл");
Если Запрос <> Неопределено Тогда
УстановитьПараметрЗапросаАналитикаУчетаПоПартнерам(Запрос);
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтВидыЗапасов");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область Реализация_КомиссионныйТовар_ТоварНаХраненииСПравомПродажи
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаДокумента.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаДокумента.НалогообложениеНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| &АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
| НЕОПРЕДЕЛЕНО КАК ЗаказКлиента,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ТоварНаХраненииСПравомПродажи) ТОГДА
| ВЫБОР КОГДА &Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС
| ИНАЧЕ ВЫРАЗИТЬ((ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС) * &КоэффициентПересчетаВВалютуУПР КАК ЧИСЛО(31,2))
| КОНЕЦ
| +
| ВЫБОР КОГДА &Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТаблицаВидыЗапасов.СуммаНДС
| ИНАЧЕ ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаНДС * &КоэффициентПересчетаВВалютуУПР КАК ЧИСЛО(31,2))
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьЗабалансовая,
|
| ВЫБОР КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ТоварНаХраненииСПравомПродажи) ТОГДА
| ВЫБОР КОГДА &Валюта = &ВалютаРегламентированногоУчета
| ТОГДА ТаблицаВидыЗапасов.СуммаНДС
| ИНАЧЕ ВЫРАЗИТЬ(ТаблицаВидыЗапасов.СуммаНДС * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2))
| КОНЕЦ
| +
| ВЫБОР КОГДА ТаблицаВидыЗапасов.БазаНДСРегл = 0
| ТОГДА ВЫРАЗИТЬ((ТаблицаВидыЗапасов.СуммаСНДС - ТаблицаВидыЗапасов.СуммаНДС) * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2))
| ИНАЧЕ ТаблицаВидыЗапасов.БазаНДСРегл
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьЗабалансоваяРегл,
|
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссию)
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ТоварНаХраненииСПравомПродажи)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаХраненииСПравомПродажи)
| ИНАЧЕ ВЫБОР КОГДА ТаблицаВидыЗапасов.ЦеховаяКладовая
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПроизводственныеЗатраты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
| КОНЕЦ
| КОНЕЦ КАК РазделУчета,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.ТипЗапасов В
| (ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар),
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ТоварНаХраненииСПравомПродажи))";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Реализация,
ТекстЗапроса);
#КонецОбласти
#Область ВыбытиеПоФиксированнойСтоимости_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.РазницыСтоимостиВозвратаИФактическойСтоимостиТоваров) КАК СтатьяРасходовАктивов,
| ТаблицаДокумента.Партнер КАК АналитикаРасходовАктивов,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.РазницыСтоимостиВозвратаИФактическойСтоимостиТоваров) КАК СтатьяДоходов,
| ТаблицаДокумента.Партнер КАК АналитикаДоходов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| НЕОПРЕДЕЛЕНО КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВидыЗапасов.СуммаБезНДСУпр + ТаблицаВидыЗапасов.СуммаНДСУпр КАК Стоимость,
| ТаблицаВидыЗапасов.СуммаБезНДСУпр КАК СтоимостьБезНДС,
| (ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидДеятельностиНДС В (&ТипыНалогообложенияНДСУчитываетсяВСтоимости)
| И НЕ &СреднеСкользящая
| ТОГДА ТаблицаВидыЗапасов.СуммаБезНДСРегл + ТаблицаВидыЗапасов.СуммаНДСРегл
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСРегл КОНЕЦ) КАК СтоимостьРегл,
| (ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ВидДеятельностиНДС В (&ТипыНалогообложенияНДСУчитываетсяВСтоимости)
| И НЕ &СреднеСкользящая
| ТОГДА ТаблицаВидыЗапасов.СуммаБезНДСУпр + ТаблицаВидыЗапасов.СуммаНДСУпр
| ИНАЧЕ ТаблицаВидыЗапасов.СуммаБезНДСУпр КОНЕЦ) КАК СтоимостьУпр,
| 0 КАК КорСтоимость,
|
| ВЫБОР
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссию)
| КОГДА ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.ТоварНаХраненииСПравомПродажи)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаХраненииСПравомПродажи)
| ИНАЧЕ ВЫБОР КОГДА ТаблицаВидыЗапасов.ЦеховаяКладовая
| ТОГДА ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПроизводственныеЗатраты)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
| КОНЕЦ
| КОНЕЦ КАК РазделУчета,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВыбытиеПоФиксированнойСтоимости,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
#КонецОбласти
Процедура ОтразитьВУчетеНДС(Запрос, ТекстыЗапроса, Регистры)
Если Не УчетНДСУП.ТребуетсяПроведениеПоРегистрамНДС(Регистры) Тогда
Возврат;
КонецЕсли;
ТекстТовары =
"ВЫБРАТЬ
| ВидыЗапасов.Ссылка.Дата КАК Период,
| ВидыЗапасов.Ссылка КАК Ссылка,
| ВидыЗапасов.Ссылка.Организация КАК Организация,
| ВидыЗапасов.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВидыЗапасов.Ссылка.Подразделение КАК Подразделение,
| ВидыЗапасов.Ссылка.Контрагент КАК Контрагент,
| ВидыЗапасов.Ссылка.Договор КАК Договор,
| ВидыЗапасов.Ссылка.Грузополучатель КАК Грузополучатель,
| ВидыЗапасов.Ссылка.Грузоотправитель КАК Грузоотправитель,
| ЛОЖЬ КАК ПокупательНеПлательщикНДС,
| ВидыЗапасов.Ссылка КАК ДокументВозврата,
| ВидыЗапасов.Ссылка.НалогообложениеНДС КАК НалогообложениеНДС,
| ВидыЗапасов.СтавкаНДС КАК СтавкаНДС,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение КАК Назначение,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВЫБОР
| КОГДА ВидыЗапасов.ДокументПоступления = ЗНАЧЕНИЕ(Документ.ПриобретениеТоваровУслуг.ПустаяСсылка)
| ТОГДА NULL
| ИНАЧЕ ВидыЗапасов.ДокументПоступления
| КОНЕЦ КАК ДокументПоступления,
| ВидыЗапасов.ДокументПоступления.ЗакупкаПодДеятельность КАК ВидДеятельностиНДС,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| &ИдентификаторОбъектаРасчетов КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВходящийНДСПоПриобретению) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ВозвратТоваровПоставщику.ВидыЗапасов КАК ВидыЗапасов
|ГДЕ
| ВидыЗапасов.Ссылка В (&Ссылка)
| И ВидыЗапасов.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровПоставщику)
| И (ВЫБОР
| КОГДА ВидыЗапасов.Ссылка.ВозвратПринятойМногооборотнойТары
| ТОГДА ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ИНАЧЕ
| ИСТИНА
| КОНЕЦ)
|";
УчетНДСУП.ОтразитьВозвратТоваровПоставщику(Запрос, ТекстыЗапроса, Регистры, ТекстТовары);
ТекстТовары =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| ТаблицаВидыЗапасов.Ссылка КАК Ссылка,
| &Период КАК Период,
| &Организация КАК Организация,
| &Партнер КАК Поставщик,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ДокументПоступления КАК ДокументПриобретения,
| &ИдентификаторЗаявлениеОВвозеТоваров КАК ТипДокументаИмпорта,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| 0 КАК КоличествоПоРНПТ,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ЕСТЬNULL(СуммыДокументов.СуммаБезНДС, 0) КАК Сумма,
| ИСТИНА КАК Первичное,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки
|ИЗ
| Документ.ВозвратТоваровПоставщику.ВидыЗапасов КАК ТаблицаВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ ВтСуммыДокументовВВалютахУчета КАК СуммыДокументов
| ПО ТаблицаВидыЗапасов.Ссылка = СуммыДокументов.Ссылка
| И ТаблицаВидыЗапасов.ИдентификаторСтроки = СуммыДокументов.ИдентификаторСтроки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
| ПО ТаблицаВидыЗапасов.ДокументПоступления = ПриобретениеТоваровУслуг.Ссылка
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ПриобретениеТоваровУслуг.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС)
| И ПриобретениеТоваровУслуг.НоваяМеханикаСозданияЗаявленийОВвозе";
УчетИмпорта.ОтразитьВвозТоваровИзТаможенногоСоюзаНоваяМеханика(Запрос, ТекстыЗапроса, Регистры, ТекстТовары);
КонецПроцедуры
Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры)
#Область КурсыВалютДокумента
ИмяРегистра = "ВременнаяТаблицаКурсыВалютДокумента";
ТекстЗапросаКурсыВалютДокумента =
"ВЫБРАТЬ
| ДанныеДокументаШапка.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| ДанныеДокументаШапка.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| ДанныеДокументаШапка.Валюта КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК ДанныеДокументаШапка
|ГДЕ
| ДанныеДокументаШапка.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| ДанныеДокументаШапка.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ВозвратТоваровПоставщику.РасшифровкаПлатежа КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| ДанныеДокументаШапка.Организация КАК Организация,
| ДанныеДокументаШапка.Дата КАК ДатаКурса,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| ДанныеДокументаШапка.Валюта КАК ВалютаДокумента,
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов
|ИЗ
| Документ.ВозвратТоваровПоставщику.РасшифровкаПлатежа КАК Таблица
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику КАК ДанныеДокументаШапка
| ПО Таблица.Ссылка = ДанныеДокументаШапка.Ссылка
|ГДЕ
| Таблица.Ссылка В (&Ссылка)";
ТекстЗапросаКурсыВалютДокумента = ВзаиморасчетыСервер.ПолучитьТаблицуКурсовВалютНаправленийДеятельности(ТекстЗапросаКурсыВалютДокумента);
ТекстыЗапроса.Добавить(ТекстЗапросаКурсыВалютДокумента, ИмяРегистра);
#КонецОбласти
ТекстВозврат = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Организация КАК Организация,
| Таблица.Партнер КАК Партнер,
|
| Таблица.ОбъектРасчетов КАК ОбъектРасчетов,
| Таблица.Валюта КАК ВалютаВзаиморасчетов,
| Таблица.Валюта КАК ВалютаДокумента,
| Таблица.СуммаДокумента КАК СуммаВзаиморасчетов,
| Таблица.СуммаДокумента КАК Сумма,
| Таблица.Дата КАК ДатаРегистратора,
| Таблица.Номер КАК НомерРегистратора,
| Таблица.Дата КАК ДатаКурса,
| Таблица.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК СтатьяДвиженияДенежныхСредств,
|
| Таблица.ОбъектРасчетов.УникальныйИдентификатор КАК ИдентификаторФинЗаписи,
| НЕОПРЕДЕЛЕНО КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК Таблица
|ГДЕ
| Таблица.Ссылка В (&Ссылка)
| И Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровПоставщику)";
ТекстРасшифровкаПлатежа = "
|ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка,
| Таблица.Ссылка.Организация КАК Организация,
| Таблица.Ссылка.Партнер КАК Партнер,
|
| Таблица.Ссылка.ОбъектРасчетов КАК ОбъектРасчетовИсточник,
| Таблица.ОбъектРасчетов КАК ОбъектРасчетовПриемник,
|
| Таблица.Сумма КАК Сумма,
| Таблица.Ссылка.Валюта КАК ВалютаДокумента,
| Таблица.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
| Таблица.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| Таблица.Ссылка.Дата КАК ДатаРегистратора,
| Таблица.Ссылка.Номер КАК НомерРегистратора,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВзаимозачетЗадолженности) КАК ХозяйственнаяОперация,
| Таблица.Ссылка.Дата КАК ДатаКурса
|ИЗ
| Документ.ВозвратТоваровПоставщику.РасшифровкаПлатежа КАК Таблица
|ГДЕ
| Таблица.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровПоставщику)
| И Таблица.ОбъектРасчетов <> Таблица.Ссылка.ОбъектРасчетов
| И Таблица.Ссылка В (&Ссылка)";
ВзаиморасчетыСервер.ПроведениеВозвратаТоваровПоставщику(Запрос, ТекстыЗапроса, Регистры, ТекстВозврат, ТекстРасшифровкаПлатежа);
КонецПроцедуры
#Область Печать
Функция ПолучитьДанныеДляПечатнойФормыСчетаНаОплату(ПараметрыПечати, МассивОбъектов, КодЯзыка = Неопределено) Экспорт
Возврат ДанныеДляПечатныхФормСчетаНаОплатуИзвещения(ПараметрыПечати, МассивОбъектов, КодЯзыка);
КонецФункции
Функция ДанныеДляПечатныхФормСчетаНаОплатуИзвещения(ПараметрыПечати, МассивОбъектов, КодЯзыка = Неопределено) Экспорт
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц);
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| Документы.Ссылка КАК Ссылка,
| Документы.Номер КАК Номер,
| Документы.Дата КАК Дата,
| НЕОПРЕДЕЛЕНО КАК ДокументОснование,
| ЕСТЬNULL(Документы.БанковскийСчетОрганизации.Владелец, Документы.Организация) КАК Организация,
| Документы.Организация КАК ОрганизацияПоставщик,
| ТаблицаОтветственныеЛица.РуководительНаименование КАК Руководитель,
| ТаблицаОтветственныеЛица.РуководительДолжность КАК ДолжностьРуководителя,
| ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
| ВЫБОР
| КОГДА Документы.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УчитыватьНДС,
| ЛОЖЬ КАК ОперацияОблагаетсяНДСУПокупателя,
| Документы.Контрагент КАК Контрагент,
| Документы.Контрагент.ЮрФизЛицо КАК КонтрагентЮрФизЛицо,
| Документы.БанковскийСчетОрганизации КАК БанковскийСчет,
|
| ВЫБОР КОГДА Документы.БанковскийСчетОрганизации.ИностранныйБанк
| ИЛИ Документы.БанковскийСчетОрганизации.ВалютаДенежныхСредств <> Документы.Организация.ВалютаРегламентированногоУчета
| ИЛИ Документы.БанковскийСчетКонтрагента.ИностранныйБанк ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ПлатежЗаРубеж,
| Документы.БанковскийСчетОрганизации.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств,
| Документы.БанковскийСчетОрганизации.СчетВБанкеДляРасчетов КАК СчетВБанкеДляРасчетов,
| ЕСТЬNULL(Документы.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ) КАК ЭтоСчетЦифровогоРубля,
| ВЫБОР
| КОГДА ЕСТЬNULL(Документы.БанковскийСчетОрганизации.СчетЦифровогоРубля, ЛОЖЬ)
| ТОГДА Документы.БанковскийСчетОрганизации.ИдентификаторСчетаЦифровогоРубля
| ИНАЧЕ Документы.БанковскийСчетОрганизации.НомерСчета
| КОНЕЦ КАК НомерБанковскогоСчета,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА Документы.БанковскийСчетОрганизации.БИКБанка
| ИНАЧЕ КлассификаторБанков.Код
| КОНЕЦ КАК БИКБанк,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА Документы.БанковскийСчетОрганизации.НаименованиеБанка
| ИНАЧЕ КлассификаторБанков.Наименование
| КОНЕЦ КАК НаименованиеБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА Документы.БанковскийСчетОрганизации.КоррСчетБанка
| ИНАЧЕ КлассификаторБанков.КоррСчет
| КОНЕЦ КАК КоррСчетБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА Документы.БанковскийСчетОрганизации.ГородБанка
| ИНАЧЕ КлассификаторБанков.Город
| КОНЕЦ КАК ГородБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.БИКБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Код
| КОНЕЦ КАК БИКБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.НаименованиеБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Наименование
| КОНЕЦ КАК НаименованиеБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.КоррСчетБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.КоррСчет
| КОНЕЦ КАК КоррСчетБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.ГородБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Город
| КОНЕЦ КАК ГородБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.НаименованиеБанкаМеждународное
| ИНАЧЕ КлассификаторБанков.МеждународноеНаименование
| КОНЕЦ КАК НаименованиеБанкаМеждународное,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.СВИФТБанка
| ИНАЧЕ КлассификаторБанков.СВИФТБИК
| КОНЕЦ КАК СВИФТБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.ГородБанкаМеждународный
| ИНАЧЕ КлассификаторБанков.ГородМеждународный
| КОНЕЦ КАК ГородБанкаМеждународный,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.АдресБанка
| ИНАЧЕ КлассификаторБанков.Адрес
| КОНЕЦ КАК АдресБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.АдресБанкаМеждународный
| ИНАЧЕ КлассификаторБанков.АдресМеждународный
| КОНЕЦ КАК АдресБанкаМеждународный,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.СтранаБанка
| ИНАЧЕ СтраныБанков.Ссылка
| КОНЕЦ КАК СтранаБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.НаименованиеБанкаДляРасчетовМеждународное
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.МеждународноеНаименование
| КОНЕЦ КАК НаименованиеБанкаДляРасчетовМеждународное,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.СВИФТБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.СВИФТБИК
| КОНЕЦ КАК СВИФТБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.ГородБанкаДляРасчетовМеждународный
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.ГородМеждународный
| КОНЕЦ КАК ГородБанкаДляРасчетовМеждународный,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.АдресБанкаДляРасчетовМеждународный
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.АдресМеждународный
| КОНЕЦ КАК АдресБанкаДляРасчетовМеждународный,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.АдресБанкаДляРасчетов
| ИНАЧЕ КлассификаторБанковКорреспондентовРФ.Адрес
| КОНЕЦ КАК АдресБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА Документы.БанковскийСчетОрганизации.СтранаБанкаДляРасчетов
| ИНАЧЕ СтраныБанковКорреспондентовРФ.Ссылка
| КОНЕЦ КАК СтранаБанкаДляРасчетов,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанка
| ТОГДА """"
| ИНАЧЕ ЕСТЬNULL(КлассификаторБанков.БИКРКЦ.Наименование, """")
| КОНЕЦ КАК НаименованиеРКЦБанка,
| ВЫБОР
| КОГДА Документы.БанковскийСчетОрганизации.РучноеИзменениеРеквизитовБанкаДляРасчетов
| ТОГДА """"
| ИНАЧЕ ЕСТЬNULL(КлассификаторБанковКорреспондентовРФ.БИКРКЦ.Наименование, """")
| КОНЕЦ КАК НаименованиеРКЦБанкаДляРасчетов,
| Документы.БанковскийСчетОрганизации.ТекстКорреспондента КАК БанковскийСчетТекстКорреспондента,
| Документы.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| Документы.Валюта КАК Валюта,
| Документы.Менеджер.ФизическоеЛицо КАК Менеджер,
| Документы.СуммаДокумента КАК СуммаКВозврату,
| ЛОЖЬ КАК ЧастичнаяОплата,
| """" КАК НазначениеПлатежа,
| 100 КАК ПроцентОплаты,
| """" КАК ДополнительнаяИнформация,
| Документы.СуммаДокумента КАК СуммаДокумента,
| Документы.Грузоотправитель КАК Грузоотправитель,
| Документы.Грузополучатель КАК Грузополучатель,
| Документы.ИдентификаторПлатежа КАК ИдентификаторПлатежа,
| ЛОЖЬ КАК СчетКВозврату
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК Документы
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
| ПО Документы.Ссылка = ТаблицаОтветственныеЛица.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанков
| ПО Документы.БанковскийСчетОрганизации.Банк = КлассификаторБанков.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтраныМира КАК СтраныБанков
| ПО КлассификаторБанков.КодСтраны = СтраныБанков.Код
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанковКорреспондентовРФ
| ПО Документы.БанковскийСчетОрганизации.БанкДляРасчетов = КлассификаторБанковКорреспондентовРФ.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтраныМира КАК СтраныБанковКорреспондентовРФ
| ПО КлассификаторБанковКорреспондентовРФ.КодСтраны = СтраныБанковКорреспондентовРФ.Код
| ЛЕВОЕ СОЕДИНЕНИЕ Константы
| ПО ИСТИНА
|ГДЕ
| Документы.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Документы.МоментВремени
|;
|
|
|ВЫБРАТЬ
| НЕОПРЕДЕЛЕНО КАК Ссылка,
| 0 КАК НомерСтроки,
| НЕОПРЕДЕЛЕНО КАК ДатаПлатежа,
| 0 КАК ПроцентПлатежа,
| 0 КАК СуммаПлатежа,
| ЛОЖЬ КАК ЭтоЗалогЗаТару
|ГДЕ
| ЛОЖЬ
|;
|
|
|ВЫБРАТЬ
|
| Товары.Ссылка КАК Ссылка,
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Номенклатура.Код КАК Код,
| Товары.Номенклатура.Артикул КАК Артикул,
| ЕСТЬNULL(НоменклатураПредставления.НаименованиеПолное, Товары.Номенклатура.НаименованиеПолное) КАК НаименованиеПолное,
| &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ЕдиницаИзмерения,
| Товары.КоличествоУпаковок КАК Количество,
| Товары.Цена КАК Цена,
| Товары.Сумма КАК Сумма,
| Товары.СтавкаНДС КАК СтавкаНДС,
| Товары.СуммаНДС КАК СуммаНДС,
| НЕОПРЕДЕЛЕНО КАК ВидЦеныИсполнителя,
| ЕСТЬNULL(ХарактеристикиНоменклатурыПредставления.НаименованиеПолное, ЕСТЬNULL(Товары.Характеристика.НаименованиеПолное, """")) КАК Характеристика,
| ВЫБОР КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1 ТОГДА
| НЕОПРЕДЕЛЕНО
| ИНАЧЕ
| Товары.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| 0 КАК СуммаСкидки,
| Товары.Сумма КАК СуммаБезСкидки,
| ВЫБОР
| КОГДА
| Товары.Ссылка.ВозвратПринятойМногооборотнойТары
| И Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ИЗ
| Документ.ВозвратТоваровПоставщику.Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Представления КАК НоменклатураПредставления
| ПО (Товары.Номенклатура = НоменклатураПредставления.Ссылка
| И НоменклатураПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.Представления КАК ХарактеристикиНоменклатурыПредставления
| ПО (Товары.Характеристика = ХарактеристикиНоменклатурыПредставления.Ссылка
| И ХарактеристикиНоменклатурыПредставления.КодЯзыка = &КодЯзыка)
|ГДЕ
| Товары.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Товары.НомерСтроки
|";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"Товары.Упаковка",
"Товары.Номенклатура"));
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка);
ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
СтруктураДанныхДляПечати = Новый Структура;
СтруктураДанныхДляПечати.Вставить("РезультатПоШапке", ПакетРезультатовЗапроса[0]);
СтруктураДанныхДляПечати.Вставить("РезультатПоЭтапамОплаты", ПакетРезультатовЗапроса[1]);
СтруктураДанныхДляПечати.Вставить("РезультатПоТабличнойЧасти", ПакетРезультатовЗапроса[ПакетРезультатовЗапроса.Количество() - 1]);
Возврат СтруктураДанныхДляПечати;
КонецФункции
Функция ПравилаПечатиЗаданияНаОтборРазмещение() Экспорт
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
Возврат ПравилаПечатиЗадания;
КонецФункции
Функция СформироватьПечатнуюФормуВозвратПоставщику(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов();
ИмяКолонкиКодов = КолонкаКодов.ИмяКолонки;
ПредставлениеКолонкиКодов = КолонкаКодов.ПредставлениеКолонки;
ВыводитьКоды = ЗначениеЗаполнено(ИмяКолонкиКодов);
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ВозвратТоваровПоставщику.Ссылка КАК Ссылка,
| ВозвратТоваровПоставщику.Номер КАК Номер,
| ВозвратТоваровПоставщику.Дата КАК Дата,
| ВозвратТоваровПоставщику.Партнер КАК Партнер,
| ВозвратТоваровПоставщику.Контрагент КАК Получатель,
| ВозвратТоваровПоставщику.Организация КАК Организация,
| ВозвратТоваровПоставщику.Организация.Префикс КАК Префикс,
| ВозвратТоваровПоставщику.Валюта КАК Валюта,
| ВозвратТоваровПоставщику.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ВозвратТоваровПоставщику.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВЫБОР
| КОГДА ВозвратТоваровПоставщику.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УчитыватьНДС,
| ВозвратТоваровПоставщику.Склад.ТекущийОтветственный КАК ОтпускПроизвел
|ИЗ
| Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику
|ГДЕ
| ВозвратТоваровПоставщику.Ссылка В(&МассивДокументов)
| И ВозвратТоваровПоставщику.Проведен
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка КАК Ссылка,
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК ТоварНаименованиеПолное,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.ЕдиницаИзмерения.Наименование КАК ЕдиницаЦены,
| ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВложенныйЗапрос.Характеристика.НаименованиеПолное КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ВложенныйЗапрос.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ВложенныйЗапрос.СтавкаНДС КАК СтавкаНДС,
| ВложенныйЗапрос.Цена КАК Цена,
| ВложенныйЗапрос.Количество КАК Количество,
| ВложенныйЗапрос.Номенклатура.ЕдиницаИзмеренияТНВЭД КАК ЕдиницаИзмеренияТНВЭД,
| ВложенныйЗапрос.НомерГТД КАК НомерГТД,
| ВложенныйЗапрос.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВложенныйЗапрос.Сумма КАК Сумма,
| ВложенныйЗапрос.СуммаНДС КАК СуммаНДС,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА
| ВложенныйЗапрос.Ссылка.ВозвратПринятойМногооборотнойТары
| И ВложенныйЗапрос.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ИЗ
| (ВЫБРАТЬ
| ВозвратТоваровПоставщику.Ссылка КАК Ссылка,
| ВозвратТоваровПоставщику.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ВЫБОР
| КОГДА ВозвратТоваровПоставщику.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки2
| КОНЕЦ КАК Коэффициент,
| ВозвратТоваровПоставщику.Упаковка КАК Упаковка,
| ВЫБОР
| КОГДА ВозвратТоваровПоставщику.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ВозвратТоваровПоставщику.АналитикаУчетаНоменклатуры.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ ВозвратТоваровПоставщику.Упаковка
| КОНЕЦ КАК ЕдиницаИзмерения,
| ВозвратТоваровПоставщику.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ВозвратТоваровПоставщику.СтавкаНДС КАК СтавкаНДС,
| ВозвратТоваровПоставщику.Цена КАК Цена,
| ВозвратТоваровПоставщику.КоличествоУпаковок КАК Количество,
| ВЫБОР КОГДА ВозвратТоваровПоставщику.Ссылка.ЦенаВключаетНДС ТОГДА
| ВозвратТоваровПоставщику.СуммаСНДС
| ИНАЧЕ
| ВозвратТоваровПоставщику.СуммаСНДС - ВозвратТоваровПоставщику.СуммаНДС
| КОНЕЦ КАК Сумма,
| ВозвратТоваровПоставщику.СуммаНДС КАК СуммаНДС,
| ВозвратТоваровПоставщику.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| ВозвратТоваровПоставщику.НомерГТД КАК НомерГТД,
| ВозвратТоваровПоставщику.НомерСтроки КАК НомерСтроки
| ИЗ
| Документ.ВозвратТоваровПоставщику.ВидыЗапасов КАК ВозвратТоваровПоставщику
| ГДЕ
| ВозвратТоваровПоставщику.Ссылка В(&МассивДокументов)
| И ВозвратТоваровПоставщику.Ссылка.Проведен) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Ссылка,
| НомерСтроки
|ИТОГИ
| СУММА(Сумма)
|ПО
| Ссылка");
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки1",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ВложенныйЗапрос.Упаковка",
"ВложенныйЗапрос.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки2",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ВозвратТоваровПоставщику.Упаковка",
"ВозвратТоваровПоставщику.АналитикаУчетаНоменклатуры.Номенклатура"));
Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВозвратТоваровПоставщику_Накладная";
МассивРезультатов = Запрос.ВыполнитьПакет();
РезультатДанныеПечати = МассивРезультатов[0];
РезультатВыборкаПоДокументам = МассивРезультатов[1];
ДанныеПечати = РезультатДанныеПечати.Выбрать();
ВыборкаПоДокументам = РезультатВыборкаПоДокументам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПервыйДокумент = Истина;
ЕстьРНПТ = Ложь;
Пока ДанныеПечати.Следующий() Цикл
СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
НайденСледующий = ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ВозвратТоваровПоставщику.ПФ_MXL_ВозвратПоставщику");
ВыборкаПоТоварам = ВыборкаПоДокументам.Выбрать();
ЕстьРНПТ = УчетПрослеживаемыхТоваровЛокализация.ЕстьПрослеживаемыйТоварВДокументе(ДанныеПечати.Ссылка);
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьКолонкаТовар = Макет.Область("Товар");
Если Не ЕстьРНПТ Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.35;
КонецЕсли;
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.2;
КонецЕсли;
Иначе
ОбластьКолонкаТовар = Макет.Область("ТоварБезСумм");
Если Не ЕстьРНПТ Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.25;
КонецЕсли;
Если ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 0.975;
ОбластьКолонкаКоличество = Макет.Область("ДанныеБезСуммКоличество");
ОбластьКолонкаКоличество.ШиринаКолонки = ОбластьКолонкаКоличество.ШиринаКолонки * 0.95;
Иначе
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки * 1.125;
КонецЕсли;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
СтруктураДанныхШапки = Новый Структура;
СтруктураДанныхШапки.Вставить("ТекстЗаголовка", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(ДанныеПечати, НСтр("ru='Возврат поставщику'")));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхШапки);
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
СтруктураДанныхПоставщик = Новый Структура;
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата), "ПолноеНаименование");
СтруктураДанныхПоставщик.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
СтруктураДанныхПоставщик.Вставить("Поставщик", ДанныеПечати.Организация);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
СтруктураДанныхПокупатель = Новый Структура;
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Получатель, ДанныеПечати.Дата), "ПолноеНаименование");
СтруктураДанныхПокупатель.Вставить("ПредставлениеПолучателя", ПредставлениеПолучателя);
СтруктураДанныхПокупатель.Вставить("Получатель", ДанныеПечати.Получатель);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПокупатель);
ТабличныйДокумент.Вывести(ОбластьМакета);
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар");
ОбластьДанныеКоличество = Макет.ПолучитьОбласть("ШапкаТаблицы|ДанныеКоличество");
ОбластьДанныеКоличествоПоРНПТ = Макет.ПолучитьОбласть("ШапкаТаблицы|ДанныеКоличествоПоРНПТ");
ОбластьДанныеЦенаСумма = Макет.ПолучитьОбласть("ШапкаТаблицы|ДанныеЦенаСумма");
Иначе
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|НомерСтрокиБезСумм");
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|КолонкаКодовБезСумм");
ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|ТоварБезСумм");
ОбластьДанныеБезСуммКоличество = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|ДанныеБезСуммКоличество");
ОбластьДанныеБезСуммКоличествоПоРНПТ = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|ДанныеБезСуммКоличествоПоРНПТ");
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ИмяКолонкиКодов", ПредставлениеКолонкиКодов);
ОбластьКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ТабличныйДокумент.Присоединить(ОбластьТовар);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличество);
Если ЕстьРНПТ Тогда
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличествоПоРНПТ);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьДанныеЦенаСумма);
Иначе
ТабличныйДокумент.Присоединить(ОбластьТовар);
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммКоличество);
Если ЕстьРНПТ Тогда
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммКоличествоПоРНПТ);
Иначе
ОбластьДанныеБезСуммГраница = Макет.ПолучитьОбласть("ШапкаТаблицыБезСумм|ДанныеБезСуммГраница");
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммГраница);
КонецЕсли;
КонецЕсли;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьНомера = Макет.ПолучитьОбласть("СтрокаТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("СтрокаТаблицы|Товар");
ОбластьДанныеКоличество = Макет.ПолучитьОбласть("СтрокаТаблицы|ДанныеКоличество");
ОбластьДанныеКоличествоПоРНПТ = Макет.ПолучитьОбласть("СтрокаТаблицы|ДанныеКоличествоПоРНПТ");
ОбластьДанныеЦенаСумма = Макет.ПолучитьОбласть("СтрокаТаблицы|ДанныеЦенаСумма");
Иначе
ОбластьНомера = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|НомерСтрокиБезСумм");
ОбластьКодов = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|КолонкаКодовБезСумм");
ОбластьТовар = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|ТоварБезСумм");
ОбластьДанныеБезСуммКоличество = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|ДанныеБезСуммКоличество");
ОбластьДанныеБезСуммКоличествоПоРНПТ = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|ДанныеБезСуммКоличествоПоРНПТ");
КонецЕсли;
Сумма = 0;
СуммаНДС = 0;
НомерСтроки = 0;
Пока ВыборкаПоТоварам.Следующий() Цикл
НомерСтроки = НомерСтроки + 1;
СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", НомерСтроки);
ОбластьНомера.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("Артикул", ВыборкаПоТоварам[ИмяКолонкиКодов]);
ОбластьКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ОбластьТовар.Параметры.Заполнить(ВыборкаПоТоварам);
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоТоварам.ЭтоВозвратнаяТара;
ДополнительныеПараметрыПолученияНаименованияДляПечати.КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
ТоварНаименованиеБезГТД = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоТоварам.ТоварНаименованиеПолное,
ВыборкаПоТоварам.Характеристика,
,
,
ДополнительныеПараметрыПолученияНаименованияДляПечати);
Товар = ТоварНаименованиеБезГТД;
Если ЗначениеЗаполнено(ВыборкаПоТоварам.НомерГТД) Тогда
НомерГТДКод = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВыборкаПоТоварам.НомерГТД,"Код");
Товар = ТоварНаименованиеБезГТД + ", " + НомерГТДКод;
КонецЕсли;
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьТовар.Параметры.Заполнить(СтруктураДанныхТовар);
ТабличныйДокумент.Присоединить(ОбластьТовар);
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьНомера = Макет.ПолучитьОбласть("СтрокаТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("СтрокаТаблицы|Товар");
ОбластьДанныеКоличество = Макет.ПолучитьОбласть("СтрокаТаблицы|ДанныеКоличество");
ОбластьДанныеКоличествоПоРНПТ = Макет.ПолучитьОбласть("СтрокаТаблицы|ДанныеКоличествоПоРНПТ");
ОбластьДанныеЦенаСумма = Макет.ПолучитьОбласть("СтрокаТаблицы|ДанныеЦенаСумма");
Иначе
ОбластьНомера = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|НомерСтрокиБезСумм");
ОбластьКодов = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|КолонкаКодовБезСумм");
ОбластьТовар = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|ТоварБезСумм");
ОбластьДанныеБезСуммКоличество = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|ДанныеБезСуммКоличество");
ОбластьДанныеБезСуммКоличествоПоРНПТ = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|ДанныеБезСуммКоличествоПоРНПТ");
КонецЕсли;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьДанныеКоличество.Параметры.Заполнить(ВыборкаПоТоварам);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличество);
Если ЕстьРНПТ Тогда
ОбластьДанныеКоличествоПоРНПТ.Параметры.Заполнить(ВыборкаПоТоварам);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличествоПоРНПТ);
КонецЕсли;
ОбластьДанныеЦенаСумма.Параметры.Заполнить(ВыборкаПоТоварам);
ТабличныйДокумент.Присоединить(ОбластьДанныеЦенаСумма);
Иначе
ОбластьДанныеБезСуммКоличество.Параметры.Заполнить(ВыборкаПоТоварам);
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммКоличество);
Если ЕстьРНПТ Тогда
ОбластьДанныеБезСуммКоличествоПоРНПТ.Параметры.Заполнить(ВыборкаПоТоварам);
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммКоличествоПоРНПТ);
Иначе
ОбластьДанныеБезСуммГраница = Макет.ПолучитьОбласть("СтрокаТаблицыБезСумм|ДанныеБезСуммГраница");
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммГраница);
КонецЕсли;
КонецЕсли;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
Сумма = Сумма + ВыборкаПоТоварам.Сумма;
СуммаНДС = СуммаНДС + ВыборкаПоТоварам.СуммаНДС;
КонецЕсли;
КонецЦикла;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьНомера = Макет.ПолучитьОбласть("ПодвалТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("ПодвалТаблицы|Товар");
ОбластьДанныеКоличество = Макет.ПолучитьОбласть("ПодвалТаблицы|ДанныеКоличество");
ОбластьДанныеКоличествоПоРНПТ = Макет.ПолучитьОбласть("ПодвалТаблицы|ДанныеКоличествоПоРНПТ");
ОбластьДанныеЦенаСумма = Макет.ПолучитьОбласть("ПодвалТаблицы|ДанныеЦенаСумма");
Иначе
ОбластьНомера = Макет.ПолучитьОбласть("ПодвалТаблицы|НомерСтрокиБезСумм");
ОбластьКодов = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодовБезСумм");
ОбластьТовар = Макет.ПолучитьОбласть("ПодвалТаблицы|ТоварБезСумм");
ОбластьДанныеБезСуммКоличество = Макет.ПолучитьОбласть("ПодвалТаблицы|ДанныеБезСуммКоличество");
ОбластьДанныеБезСуммКоличествоПоРНПТ = Макет.ПолучитьОбласть("ПодвалТаблицы|ДанныеБезСуммКоличествоПоРНПТ");
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТовар);
СтруктураДанныхВсего = Новый Структура("Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма));
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьДанныеКоличество.Параметры.Заполнить(СтруктураДанныхВсего);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличество);
Если ЕстьРНПТ Тогда
ОбластьДанныеКоличествоПоРНПТ.Параметры.Заполнить(СтруктураДанныхВсего);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличествоПоРНПТ);
КонецЕсли;
ОбластьДанныеЦенаСумма.Параметры.Заполнить(СтруктураДанныхВсего);
ТабличныйДокумент.Присоединить(ОбластьДанныеЦенаСумма);
Иначе
ОбластьДанныеБезСуммКоличество.Параметры.Заполнить(СтруктураДанныхВсего);
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммКоличество);
Если ЕстьРНПТ Тогда
ОбластьДанныеБезСуммКоличествоПоРНПТ.Параметры.Заполнить(СтруктураДанныхВсего);
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммКоличествоПоРНПТ);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ДанныеПечати.УчитыватьНДС И ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьНомера = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|КолонкаКодов");
ОбластьТовар = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|Товар");
ОбластьДанныеКоличество = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|ДанныеКоличество");
ОбластьДанныеКоличествоПоРНПТ = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|ДанныеКоличествоПоРНПТ");
ОбластьДанныеЦенаСумма = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|ДанныеЦенаСумма");
Иначе
ОбластьНомера = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|НомерСтрокиБезСумм");
ОбластьКодов = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|КолонкаКодовБезСумм");
ОбластьТовар = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|ТоварБезСумм");
ОбластьДанныеБезСуммКоличество = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|ДанныеБезСуммКоличество");
ОбластьДанныеБезСуммКоличествоПоРНПТ = Макет.ПолучитьОбласть("ПодвалТаблицыНДС|ДанныеБезСуммКоличествоПоРНПТ");
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьТовар);
СтруктураДанныхНДС = Новый Структура;
СтруктураДанныхНДС.Вставить("НДС", ?(ДанныеПечати.ЦенаВключаетНДС,
НСтр("ru = 'В том числе НДС:'", ОбщегоНазначения.КодОсновногоЯзыка()),
НСтр("ru = 'Сумма НДС:'", ОбщегоНазначения.КодОсновногоЯзыка())));
СтруктураДанныхНДС.Вставить("ВсегоНДС", ФормированиеПечатныхФорм.ФорматСумм(СуммаНДС));
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьДанныеКоличество.Параметры.Заполнить(СтруктураДанныхНДС);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличество);
Если ЕстьРНПТ Тогда
ОбластьДанныеКоличествоПоРНПТ.Параметры.Заполнить(СтруктураДанныхНДС);
ТабличныйДокумент.Присоединить(ОбластьДанныеКоличествоПоРНПТ);
КонецЕсли;
ОбластьДанныеЦенаСумма.Параметры.Заполнить(СтруктураДанныхНДС);
ТабличныйДокумент.Присоединить(ОбластьДанныеЦенаСумма);
Иначе
ОбластьДанныеБезСуммКоличество.Параметры.Заполнить(СтруктураДанныхНДС);
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммКоличество);
Если ЕстьРНПТ Тогда
ОбластьДанныеБезСуммКоличествоПоРНПТ.Параметры.Заполнить(СтруктураДанныхНДС);
ТабличныйДокумент.Присоединить(ОбластьДанныеБезСуммКоличествоПоРНПТ);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ДанныеПечати.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
СуммаКПрописи = Сумма + ?(ДанныеПечати.ЦенаВключаетНДС, 0, СуммаНДС);
ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Всего наименований %1, на сумму %2'", ОбщегоНазначения.КодОсновногоЯзыка()),
ВыборкаПоТоварам.Количество(),
ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, ДанныеПечати.Валюта));
СтруктураДанныхИтоговаяСтрока = Новый Структура;
СтруктураДанныхИтоговаяСтрока.Вставить("ИтоговаяСтрока", ИтоговаяСтрока);
СтруктураДанныхИтоговаяСтрока.Вставить("СуммаПрописью", РаботаСКурсамиВалютУТ.СформироватьСуммуПрописью(СуммаКПрописи, ДанныеПечати.Валюта));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхИтоговаяСтрока);
ТабличныйДокумент.Вывести(ОбластьМакета);
Иначе
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалТаблицыБезСумм");
ИтоговаяСтрока = НСтр("ru = 'Всего наименований %КоличествоНаименований%'", ОбщегоНазначения.КодОсновногоЯзыка());
ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%КоличествоНаименований%", ВыборкаПоТоварам.Количество());
СтруктураДанныхИтоговаяСтрока = Новый Структура;
СтруктураДанныхИтоговаяСтрока.Вставить("ИтоговаяСтрока", ИтоговаяСтрока);
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхИтоговаяСтрока);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
Если ЗначениеЗаполнено(ДанныеПечати.ОтпускПроизвел) Тогда
СтруктураДанныхОтпускПроизвел = Новый Структура;
СтруктураДанныхОтпускПроизвел.Вставить("ОтпускПроизвел", ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ДанныеПечати.ОтпускПроизвел, ДанныеПечати.Дата));
ОбластьМакета.Параметры.Заполнить(СтруктураДанныхОтпускПроизвел);
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакета);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат ТабличныйДокумент;
КонецФункции
Функция СформироватьКомплектПечатныхФорм(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати) Экспорт
ТекстСообщения = НСтр("ru = 'Печать комплектов для документов ""%Документ%"" не поддерживается.'");
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Документ%", Метаданные.Документы.ВозвратТоваровПоставщику.Синоним);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
Возврат Неопределено;
КонецФункции
#Область ОснованиеДляПечати
Функция СтруктураОснованияДляПечати(Объект) Экспорт
СтруктураОснование = Новый Структура;
СтруктураОснование.Вставить("Основание");
СтруктураОснование.Вставить("ОснованиеНомер");
СтруктураОснование.Вставить("ОснованиеДата");
ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоЗаказам;
Если ЗначениеЗаполнено(Объект.Договор) Тогда
ПорядокРасчетов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, "ПорядокРасчетов");
КонецЕсли;
Если ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов
И ЗначениеЗаполнено(Объект.Договор) Тогда
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ДоговорыКонтрагентов.НаименованиеДляПечати КАК Основание,
| ДоговорыКонтрагентов.Дата КАК ОснованиеДата,
| ДоговорыКонтрагентов.Номер КАК ОснованиеНомер
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", Объект.Договор);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
СтруктураОснование.Основание = СокрЛП(Выборка.Основание);
СтруктураОснование.ОснованиеДата = Выборка.ОснованиеДата;
СтруктураОснование.ОснованиеНомер = СокрЛП(Выборка.ОснованиеНомер);
КонецЕсли;
КонецЕсли;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту Тогда
Если ЗначениеЗаполнено(СтруктураОснование.Основание) Тогда
СтруктураОснование.Основание = СтруктураОснование.Основание + ", " + НСтр("ru='передача на комиссию'");
Иначе
СтруктураОснование.Основание = НСтр("ru='Передача на комиссию'");
КонецЕсли;
КонецЕсли;
Возврат СтруктураОснование;
КонецФункции
Функция ТаблицаОснованийДляПечати(Объект) Экспорт
ТаблицаОснований = Новый ТаблицаЗначений;
ТаблицаОснований.Колонки.Добавить("Основание", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(300)));
ТаблицаОснований.Колонки.Добавить("ОснованиеДата", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
ТаблицаОснований.Колонки.Добавить("ОснованиеНомер", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(128)));
СтруктураОснования = СтруктураОснованияДляПечати(Объект);
Если ЗначениеЗаполнено(СтруктураОснования.Основание) Тогда
ДобавленнаяСтрока = ТаблицаОснований.Добавить();
ЗаполнитьЗначенияСвойств(ДобавленнаяСтрока, СтруктураОснования);
КонецЕсли;
Возврат ТаблицаОснований;
КонецФункции
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ВозвратПоставщику";
КомандаПечати.Представление = НСтр("ru = 'Возврат поставщику'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'Возврат поставщику'");
Если НЕ ПраваПользователяПовтИсп.ЭтоПартнер() Тогда
Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(КомандыПечати, "ЗаданиеНаОтбор");
Если Константы.ИспользоватьМеждународныеПечатныеФормы.Получить() Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "InvoiceInt";
КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
КомандаПечати.Представление = НСтр("ru = 'Commercial invoice'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецЕсли;
КонецЕсли;
ВозвратТоваровПоставщикуЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ВозвратПоставщику") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ВозвратПоставщику", НСтр("ru = 'Возврат поставщику'"), СформироватьПечатнуюФормуВозвратПоставщику(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
ВозвратТоваровПоставщикуЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
КонецПроцедуры
Процедура ЗаполнитьСтруктуруПолучателейПечатныхФорм(СтруктураДанныхОбъектаПечати) Экспорт
СтруктураДанныхОбъектаПечати.ОсновнойПолучатель = "Партнер";
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Партнер");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов") Тогда
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Контрагент");
КонецЕсли;
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("КонтактноеЛицо");
КонецПроцедуры
#КонецОбласти
#Область Прочее
Функция ВыполнитьПроверкиРаспоряжения(Распоряжение, Склад) Экспорт
СтруктураВозврата = Новый Структура;
СтруктураВозврата.Вставить("Операция", "");
СтруктураВозврата.Вставить("ТекстОшибки", "");
СтруктураВозврата.Вставить("ГруппаСкладовВРаспоряжении", Ложь);
СтруктураВозврата.Вставить("ДатаОтгрузки");
СтруктураВозврата.Вставить("ИспользоватьОрдернуюСхему");
Реквизиты = Новый Структура("ДатаОтгрузки, Склад, ИспользоватьОрдернуюСхему", "Дата");
Реквизиты.Склад = "Склад";
Реквизиты.ИспользоватьОрдернуюСхему ="
|ВЫБОР
| КОГДА ЕстьNULL(Склад.ИспользоватьОрдернуюСхемуПриОтгрузке, Ложь)
| И Дата >= ЕстьNULL(Склад.ДатаНачалаОрдернойСхемыПриОтгрузке, ДАТАВРЕМЯ(1,1,1))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
|КОНЕЦ";
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Распоряжение, Реквизиты);
ИспользоватьОрдернуюСхему = ЗначенияРеквизитов.ИспользоватьОрдернуюСхему;
СтруктураВозврата.ИспользоватьОрдернуюСхему = ИспользоватьОрдернуюСхему;
Если ИспользоватьОрдернуюСхему Тогда
Склад = ЗначенияРеквизитов.Склад;
ЗаполнитьЗначенияСвойств(СтруктураВозврата, ЗначенияРеквизитов, "ДатаОтгрузки");
Иначе
ТекстОшибки = НСтр("ru = 'Для склада ""%Склад%"" оформление расходных ордеров не требуется.
|Заполнение документа не выполнено.'");
СтруктураВозврата.ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Склад%", Строка(ЗначенияРеквизитов.Склад));
СтруктураВозврата.Операция = "Отказ";
Возврат СтруктураВозврата;
КонецЕсли;
Возврат СтруктураВозврата
КонецФункции
Функция ПолноеИмяОбъекта()
Возврат "Документ.ВозвратТоваровПоставщику";
КонецФункции
#КонецОбласти
#КонецОбласти
#Область ШаблоныСообщений
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
КонецПроцедуры
#КонецОбласти
#Область Проведение
#КонецОбласти
Функция ТекстЗапросаТаблицаТоварыУслугиКОформлениюОтчетовКомитентуОЗакупках(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыУслугиКОформлениюОтчетовКомитентуОЗакупках";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса);
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| КлючиАналитики.Номенклатура КАК Номенклатура,
| КлючиАналитики.Характеристика КАК Характеристика,
| &Ссылка КАК ДокументПриобретения,
| КлючиАналитики.Назначение КАК Назначение,
| -ВозвратТоваровПоставщикуВидыЗапасов.Количество КАК Количество,
| -ВозвратТоваровПоставщикуВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| &Валюта КАК Валюта,
| ВозвратТоваровПоставщикуВидыЗапасов.НомерГТД КАК НомерГТД,
| -ВозвратТоваровПоставщикуВидыЗапасов.СуммаСНДС КАК СуммаСНДС,
| -ВозвратТоваровПоставщикуВидыЗапасов.СуммаНДС КАК СуммаНДС,
| -ВЫБОР
| КОГДА ЕСТЬNULL(Назначения.Договор.ПереоцениватьТоварыУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА Суммы.СуммаСНДСРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаРегл,
| -ВЫБОР
| КОГДА ЕСТЬNULL(Назначения.Договор.ПереоцениватьТоварыУслугиКОтчетуКомитенту, ЛОЖЬ)
| ТОГДА Суммы.СуммаСНДСУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаУпр,
| ИСТИНА КАК Первичное,
| &ИдентификаторОбъектаРасчетов КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,
| ВозвратТоваровПоставщикуВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР
| КОГДА ЕСТЬNULL(Назначения.УчитыватьСтавкиНДС, ЛОЖЬ)
| ТОГДА ВозвратТоваровПоставщикуВидыЗапасов.СтавкаНДС
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СтавкиНДС.ПустаяСсылка)
| КОНЕЦ КАК СтавкаНДС
|ИЗ
| Документ.ВозвратТоваровПоставщику.ВидыЗапасов КАК ВозвратТоваровПоставщикуВидыЗапасов
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВтСуммыДокументовВВалютахУчета КАК Суммы
|ПО
| ВозвратТоваровПоставщикуВидыЗапасов.Ссылка = Суммы.Ссылка
| И ВозвратТоваровПоставщикуВидыЗапасов.ИдентификаторСтроки = Суммы.ИдентификаторСтроки
|ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.КлючиАналитикиУчетаНоменклатуры КАК КлючиАналитики
|ПО
| ВозвратТоваровПоставщикуВидыЗапасов.АналитикаУчетаНоменклатуры = КлючиАналитики.Ссылка
|ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.Назначения КАК Назначения
|ПО
| КлючиАналитики.Назначение = Назначения.Ссылка
|ГДЕ
| ВозвратТоваровПоставщикуВидыЗапасов.Ссылка = &Ссылка
| И ВЫБОР КлючиАналитики.Номенклатура.ТипНоменклатуры
| КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
| ТОГДА ИСТИНА
| КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| И Назначения.ТипНазначения = ЗНАЧЕНИЕ(Перечисление.ТипыНазначений.ПоставкаПодПринципала)
| И НЕ &ИспользуетсяДокументПоступлениеТоваров
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ЗапланированныйРасходРаспределенногоЗапаса,
| ИСТИНА КАК КонтрольСвободногоОстатка
|ИЗ
| Документ.ВозвратТоваровПоставщику.Товары КАК ТабЧасть";
РаспределениеЗапасовДвижения.РасходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
КонецПроцедуры
#КонецОбласти
#КонецЕсли