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