#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Организация", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер, Организация";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Менеджер", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор, ЗаказПереработчику, Менеджер";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Подразделение", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Автор";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Партнер";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Автор";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "Склад", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Организация";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Договор, Валюта";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Организация";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "БанковскийСчетОрганизации", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Контрагент";
Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Договор, Валюта";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Контрагент";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов, "БанковскийСчетКонтрагента", Параметры);
Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
Параметры.РазрезыСбораСтатистики.ИспользоватьВсегда = "Контрагент";
Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Контрагент";
ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
"НаименованиеВходящегоДокумента", Параметры);
КонецПроцедуры
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Закупки");
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
МеханизмыДокумента.Добавить("ПередачаНаОтветхранение");
МеханизмыДокумента.Добавить("Производство");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
МеханизмыДокумента.Добавить("АдресныйСклад");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетРабот");
МеханизмыДокумента.Добавить("УчетНДС");
ПоступлениеОтПереработчикаЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ПоступлениеОтПереработчика") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаЗаказыПоставщикам(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаДатыПоступленияТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыПолученныеОтПереработчика(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаПартииПроизводственныхЗатрат(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаВыпускПродукции(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
ПоступлениеОтПереработчикаЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
#Область Заполнение
Функция ПараметрыЗаполненияДокумента() Экспорт
ПараметрыЗаполнения = Новый Структура();
ПараметрыЗаполнения.Вставить("МассивЗаказов", Неопределено);
ПараметрыЗаполнения.Вставить("ФормаОткрыта", Ложь);
ПараметрыЗаполнения.Вставить("ЗаполнятьПоОрдеру", Ложь);
Ресурсы = Новый Массив(2);
Ресурсы[0] = "Продукция";
Ресурсы[1] = "ВозвратныеОтходы";
ПараметрыЗаполнения.Вставить("Ресурсы", Ресурсы);
ПараметрыЗаполнения.Вставить("РеквизитыШапки", Неопределено);
ПараметрыЗаполнения.Вставить("Склад", Справочники.Склады.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("Валюта", Справочники.Валюты.ПустаяСсылка());
ПараметрыЗаполнения.Вставить("ИмяДокумента", "ПоступлениеОтПереработчика");
ПараметрыЗаполнения.Вставить("ИмяРегистраЗаказ", "ЗаказыПоставщикам");
ПараметрыЗаполнения.Вставить("ИмяПоляЗаказ", "ЗаказПереработчику");
ПараметрыЗаполнения.Вставить("КлючевыеПоля", "Номенклатура, Характеристика, Назначение, Склад");
Возврат ПараметрыЗаполнения;
КонецФункции
Процедура ИнициализироватьПараметрыЗаполнения(ПараметрыЗаполнения, РеквизитыШапки, МассивЗаказов) Экспорт
ПараметрыЗаполнения.МассивЗаказов = МассивЗаказов;
ПараметрыЗаполнения.РеквизитыШапки = РеквизитыШапки;
Если НЕ ЗначениеЗаполнено(ПараметрыЗаполнения.Склад) Тогда
ПараметрыЗаполнения.Склад = РеквизитыШапки.Склад
КонецЕсли;
ПараметрыЗаполнения.Валюта = РеквизитыШапки.Валюта;
КонецПроцедуры
Функция ДанныеТаблицыТоварыДокумента(Накладная, Ресурс = "Продукция") Экспорт
Если Ресурс = "Продукция" Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ТаблицаТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаТовары.Количество КАК Количество,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ТаблицаТовары.Склад КАК Склад,
| ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.ПоступлениеПоЗаказам
| ТОГДА ТаблицаТовары.ЗаказПереработчику
| ИНАЧЕ ТаблицаТовары.Ссылка
| КОНЕЦ КАК ЗаказПереработчику,
| ТаблицаТовары.НомерПаспорта КАК НомерПаспорта,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.Сделка КАК Сделка,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Цена КАК Цена,
| ТаблицаТовары.Сумма КАК Сумма,
| ТаблицаТовары.ДокументПередачи КАК ДокументПередачи,
| ТаблицаТовары.Распоряжение КАК Распоряжение,
| ИСТИНА КАК ЭтоПродукция
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Накладная";
Иначе
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаВозвратныеОтходы.НомерСтроки КАК НомерСтроки,
| ТаблицаВозвратныеОтходы.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВозвратныеОтходы.Номенклатура КАК Номенклатура,
| ТаблицаВозвратныеОтходы.Характеристика КАК Характеристика,
| ТаблицаВозвратныеОтходы.Назначение КАК Назначение,
| ТаблицаВозвратныеОтходы.Упаковка КАК Упаковка,
| ТаблицаВозвратныеОтходы.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаВозвратныеОтходы.Количество КАК Количество,
| ТаблицаВозвратныеОтходы.КодСтроки КАК КодСтроки,
| ТаблицаВозвратныеОтходы.Склад КАК Склад,
| ВЫБОР
| КОГДА ТаблицаВозвратныеОтходы.Ссылка.ПоступлениеПоЗаказам
| ТОГДА ТаблицаВозвратныеОтходы.ЗаказПереработчику
| ИНАЧЕ ТаблицаВозвратныеОтходы.Ссылка
| КОНЕЦ КАК ЗаказПереработчику,
| ТаблицаВозвратныеОтходы.НомерПаспорта КАК НомерПаспорта,
| ТаблицаВозвратныеОтходы.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаВозвратныеОтходы.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаВозвратныеОтходы.Сделка КАК Сделка,
| ТаблицаВозвратныеОтходы.Серия КАК Серия,
| ТаблицаВозвратныеОтходы.Цена КАК Цена,
| ТаблицаВозвратныеОтходы.Сумма КАК Сумма,
| ТаблицаВозвратныеОтходы.ДокументПередачи КАК ДокументПередачи,
| ТаблицаВозвратныеОтходы.Распоряжение КАК Распоряжение,
| ЛОЖЬ КАК ЭтоПродукция
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТаблицаВозвратныеОтходы
|ГДЕ
| ТаблицаВозвратныеОтходы.Ссылка = &Накладная";
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Накладная", Накладная);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат;
КонецФункции
Процедура ЗаполнитьПоЗаказам(Объект, МассивЗаказов = Неопределено, СписокПродукции = Неопределено) Экспорт
Если МассивЗаказов = Неопределено Тогда
МассивЗаказов = Новый Массив;
Если ЗначениеЗаполнено(Объект.ЗаказПереработчику) Тогда
МассивЗаказов.Добавить(Объект.ЗаказПереработчику);
КонецЕсли;
КонецЕсли;
Если МассивЗаказов.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивЗаказов", МассивЗаказов);
Запрос.УстановитьПараметр("Партнер", Объект.Партнер);
Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
Запрос.УстановитьПараметр("Договор", Объект.Договор);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("Регистратор", Объект.Ссылка);
Запрос.УстановитьПараметр("Валюта", Объект.Валюта);
Запрос.УстановитьПараметр("Склад", Объект.Склад);
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаЗаказы.ЗаказПереработчику КАК ЗаказПереработчику,
| ТаблицаЗаказы.Номенклатура КАК Номенклатура,
| ТаблицаЗаказы.Характеристика КАК Характеристика,
| ТаблицаЗаказы.КодСтроки КАК КодСтроки,
| ТаблицаЗаказы.Склад КАК Склад,
| СУММА(ТаблицаЗаказы.КОформлению) КАК Количество
|
|ПОМЕСТИТЬ ТаблицаОстатки
|
|ИЗ
| (ВЫБРАТЬ
| ЗаказыОстатки.ЗаказПоставщику КАК ЗаказПереработчику,
| ЗаказыОстатки.Номенклатура КАК Номенклатура,
| ЗаказыОстатки.Характеристика КАК Характеристика,
| ЗаказыОстатки.КодСтроки КАК КодСтроки,
| ЗаказыОстатки.Склад КАК Склад,
| ЗаказыОстатки.КОформлениюОстаток КАК КОформлению
| ИЗ
| РегистрНакопления.ЗаказыПоставщикам.Остатки(,
| ЗаказПоставщику В (&МассивЗаказов)
| И Склад = &Склад
| И &ОтборПоСпискуПродукции
| ) КАК ЗаказыОстатки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗаказыДвижения.ЗаказПоставщику,
| ЗаказыДвижения.Номенклатура,
| ЗаказыДвижения.Характеристика,
| ЗаказыДвижения.КодСтроки,
| ЗаказыДвижения.Склад,
| ВЫБОР КОГДА ЗаказыДвижения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА
| -ЗаказыДвижения.КОформлению
| ИНАЧЕ
| ЗаказыДвижения.КОформлению
| КОНЕЦ
| ИЗ
| РегистрНакопления.ЗаказыПоставщикам КАК ЗаказыДвижения
| ГДЕ
| ЗаказыДвижения.Регистратор = &Регистратор
| И ЗаказыДвижения.ЗаказПоставщику В (&МассивЗаказов)
| И ЗаказыДвижения.Активность
| И ЗаказыДвижения.Склад = &Склад
| И &ОтборДвиженийПоСпискуПродукции
| ) КАК ТаблицаЗаказы
|
| СГРУППИРОВАТЬ ПО
| ТаблицаЗаказы.ЗаказПереработчику,
| ТаблицаЗаказы.Номенклатура,
| ТаблицаЗаказы.Характеристика,
| ТаблицаЗаказы.КодСтроки,
| ТаблицаЗаказы.Склад
|
| ИМЕЮЩИЕ
| СУММА(ТаблицаЗаказы.КОформлению) > 0
|;
|
|
|ВЫБРАТЬ
| ТаблицаОстатки.ЗаказПереработчику КАК ЗаказПереработчику,
| ТаблицаОстатки.Номенклатура КАК Номенклатура,
| ТаблицаОстатки.Характеристика КАК Характеристика,
| ТаблицаОстатки.КодСтроки КАК КодСтроки,
| ВЫБОР
| КОГДА Заказ.ПереработкаПоЗаказу
| ТОГДА ЗаказУслуги.Распоряжение
| ИНАЧЕ ТаблицаОстатки.ЗаказПереработчику
| КОНЕЦ КАК Распоряжение,
| ТаблицаОстатки.Количество КАК Количество,
| ТаблицаОстатки.Количество / ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) КАК КоличествоУпаковок,
| ТаблицаОстатки.Склад КАК Склад,
| Заказ.Сделка КАК Сделка,
| Заказ.Валюта КАК ВалютаЗаказа,
| ЗаказТовары.НомерСтроки КАК НомерСтроки,
| ЗаказТовары.ДатаПоступления КАК ДатаПоступления,
| ЗаказТовары.Упаковка КАК Упаковка,
| ЗаказТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ЗаказТовары.Назначение КАК Назначение
|ИЗ
| ТаблицаОстатки КАК ТаблицаОстатки
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику.Продукция КАК ЗаказТовары
| ПО ТаблицаОстатки.КодСтроки = ЗаказТовары.КодСтроки
| И ТаблицаОстатки.ЗаказПереработчику = ЗаказТовары.Ссылка
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику.Услуги КАК ЗаказУслуги
| ПО ЗаказУслуги.Ссылка = ЗаказТовары.Ссылка
| И ЗаказУслуги.НомерГруппыЗатрат = ЗаказТовары.НомерГруппыЗатрат
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику КАК Заказ
| ПО ТаблицаОстатки.ЗаказПереработчику = Заказ.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ЗаказПереработчику,
| НомерСтроки
|
|;
|
|
|ВЫБРАТЬ
| ТаблицаОстатки.ЗаказПереработчику КАК ЗаказПереработчику,
| ТаблицаОстатки.Номенклатура КАК Номенклатура,
| ТаблицаОстатки.Характеристика КАК Характеристика,
| ТаблицаОстатки.КодСтроки КАК КодСтроки,
| ВЫБОР
| КОГДА Заказ.ПереработкаПоЗаказу
| ТОГДА ЗаказУслуги.Распоряжение
| ИНАЧЕ ТаблицаОстатки.ЗаказПереработчику
| КОНЕЦ КАК Распоряжение,
| ТаблицаОстатки.Количество КАК Количество,
| ТаблицаОстатки.Количество / ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) КАК КоличествоУпаковок,
| ТаблицаОстатки.Склад КАК Склад,
| Заказ.Сделка КАК Сделка,
| Заказ.Валюта КАК ВалютаЗаказа,
| ЗаказТовары.НомерСтроки КАК НомерСтроки,
| ЗаказТовары.Количество КАК КоличествоПоЗаказу,
| ЗаказТовары.Цена КАК Цена,
| ЗаказТовары.Сумма КАК СуммаПоЗаказу,
| ЗаказТовары.ДатаПоступления КАК ДатаПоступления,
| ЗаказТовары.Упаковка КАК Упаковка,
| ЗаказТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ЗаказТовары.Назначение КАК Назначение
|ИЗ
| ТаблицаОстатки КАК ТаблицаОстатки
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику.ВозвратныеОтходы КАК ЗаказТовары
| ПО ТаблицаОстатки.КодСтроки = ЗаказТовары.КодСтроки
| И ТаблицаОстатки.ЗаказПереработчику = ЗаказТовары.Ссылка
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику.Услуги КАК ЗаказУслуги
| ПО ЗаказУслуги.Ссылка = ЗаказТовары.Ссылка
| И ЗаказУслуги.НомерГруппыЗатрат = ЗаказТовары.НомерГруппыЗатрат
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику КАК Заказ
| ПО ТаблицаОстатки.ЗаказПереработчику = Заказ.Ссылка
|
|
|УПОРЯДОЧИТЬ ПО
| ЗаказПереработчику,
| НомерСтроки
|";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ЗаказТовары.Упаковка",
"ЗаказТовары.Номенклатура"));
ОтборПоСпискуПродукции = "ИСТИНА";
ОтборДвиженийПоСпискуПродукции = "ИСТИНА";
Смещение = 0;
Если СписокПродукции <> Неопределено Тогда
Смещение = 1;
ТаблицаПродукции = Новый ТаблицаЗначений;
ТаблицаПродукции.Колонки.Добавить("Распоряжение", Новый ОписаниеТипов("ДокументСсылка.ЗаказПереработчику"));
ТаблицаПродукции.Колонки.Добавить("КодСтроки", Новый ОписаниеТипов("Число"));
Для каждого ДанныеПродукции Из СписокПродукции Цикл
ЗаполнитьЗначенияСвойств(ТаблицаПродукции.Добавить(), ДанныеПродукции);
КонецЦикла;
Запрос.УстановитьПараметр("СписокПродукции", ТаблицаПродукции);
МассивТекстов = Новый Массив();
МассивТекстов.Добавить(
"ВЫБРАТЬ
| СписокПродукции.Распоряжение КАК ЗаказПоставщику,
| СписокПродукции.КодСтроки КАК КодСтроки
|ПОМЕСТИТЬ СписокПродукции
|ИЗ
| &СписокПродукции КАК СписокПродукции
|ИНДЕКСИРОВАТЬ ПО
| ЗаказПоставщику, КодСтроки");
МассивТекстов.Добавить(Запрос.Текст);
Запрос.Текст = СтрСоединить(МассивТекстов, ОбщегоНазначения.РазделительПакетаЗапросов());
ОтборПоСпискуПродукции = "(ЗаказПоставщику, КодСтроки) В(
| ВЫБРАТЬ
| СписокПродукции.ЗаказПоставщику КАК ЗаказПоставщику,
| СписокПродукции.КодСтроки КАК КодСтроки
| ИЗ
| СписокПродукции КАК СписокПродукции)";
ОтборДвиженийПоСпискуПродукции = "(ЗаказыДвижения.ЗаказПоставщику, ЗаказыДвижения.КодСтроки) В(
| ВЫБРАТЬ
| СписокПродукции.ЗаказПоставщику КАК ЗаказПоставщику,
| СписокПродукции.КодСтроки КАК КодСтроки
| ИЗ
| СписокПродукции КАК СписокПродукции)";
КонецЕсли;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОтборПоСпискуПродукции", ОтборПоСпискуПродукции);
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОтборДвиженийПоСпискуПродукции", ОтборДвиженийПоСпискуПродукции);
МассивВезультатов = Запрос.ВыполнитьПакет();
ВыборкаТовары = МассивВезультатов[1 + Смещение].Выбрать();
ВыборкаОтходы = МассивВезультатов[2 + Смещение].Выбрать();
НоваяВалюта = Объект.Валюта;
НоваяВалютаЗаполнена = ЗначениеЗаполнено(Объект.Валюта);
ДатаДокумента = Объект.Дата;
ДатаДокумента = ?(ЗначениеЗаполнено(ДатаДокумента), ДатаДокумента, ТекущаяДатаСеанса());
КэшКурсовВалют = Новый Соответствие;
КурсНовойВалютыПолучен = Ложь;
Пока ВыборкаТовары.Следующий() Цикл
СтрокаТаб = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаб, ВыборкаТовары);
КонецЦикла;
Если ПродукцияИОтходыВОднойТЧ(Объект) Тогда
Пока ВыборкаОтходы.Следующий() Цикл
СтрокаТаб = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаб, ВыборкаОтходы);
КонецЦикла;
Иначе
Пока ВыборкаОтходы.Следующий() Цикл
СтрокаТаб = Объект.ВозвратныеОтходы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаб, ВыборкаОтходы);
СтараяВалюта = ВыборкаОтходы.ВалютаЗаказа;
Если НоваяВалютаЗаполнена
И ЗначениеЗаполнено(Объект.Валюта)
И (Не НоваяВалюта = СтараяВалюта) Тогда
Если Не КурсНовойВалютыПолучен Тогда
СтруктураКурсовНовойВалюты = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(НоваяВалюта, ДатаДокумента,
ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация));
КурсНовойВалютыПолучен = Истина;
КонецЕсли;
СтруктураКурсовСтаройВалюты = КэшКурсовВалют.Получить(СтараяВалюта);
Если СтруктураКурсовСтаройВалюты = Неопределено Тогда
СтруктураКурсовСтаройВалюты = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(СтараяВалюта, ДатаДокумента,
ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация));
КэшКурсовВалют.Вставить(СтараяВалюта, СтруктураКурсовСтаройВалюты);
КонецЕсли;
СуммаПоЗаказу = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
ВыборкаОтходы.СуммаПоЗаказу,
СтруктураКурсовСтаройВалюты,
СтруктураКурсовНовойВалюты);
СтрокаТаб.Цена = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
СтрокаТаб.Цена,
СтруктураКурсовСтаройВалюты,
СтруктураКурсовНовойВалюты);
Иначе
СуммаПоЗаказу = ВыборкаОтходы.СуммаПоЗаказу;
КонецЕсли;
Если ВыборкаОтходы.КоличествоПоЗаказу = ВыборкаОтходы.Количество Тогда
СтрокаТаб.Сумма = СуммаПоЗаказу;
Иначе
СтрокаТаб.Сумма = ВыборкаОтходы.КоличествоУпаковок * СтрокаТаб.Цена;
КонецЕсли;
КонецЦикла;
Документы.ПоступлениеОтПереработчика.ОбновитьЗависимыеРеквизитыТабличнойЧасти(Объект.ВозвратныеОтходы, Неопределено);
КонецЕсли;
Документы.ПоступлениеОтПереработчика.ОбновитьЗависимыеРеквизитыТабличнойЧасти(Объект.Товары, Неопределено);
КонецПроцедуры
Процедура ЗаполнитьШапкуДокументаПоЗаказу(Объект, ПараметрыЗаполнения, МассивЗаказов) Экспорт
ЗаполнитьЗначенияСвойств(Объект, ПараметрыЗаполнения.РеквизитыШапки);
Объект.ПоступлениеПоЗаказам = Истина;
СоответствиеРеквизитов = Новый Соответствие;
СоответствиеРеквизитов.Вставить("ЗаказПереработчику","ЗаказПереработчику");
СоответствиеРеквизитов.Вставить("Распоряжение","Распоряжение");
ЗаказыСервер.ЗаполнитьРеквизитыШапкиПоТабличнымЧастям(СоответствиеРеквизитов, "Товары,ВозвратныеОтходы", Объект);
Склады = Объект.Товары.Выгрузить(,"Склад");
Склады.Свернуть("Склад");
СкладыВО = Объект.ВозвратныеОтходы.Выгрузить(,"Склад");
СкладыВО.Свернуть("Склад");
Если Склады.Количество() = 1 И СкладыВО.Количество() = 0
ИЛИ Склады.Количество() = 1 И СкладыВО.Количество() = 1 И Склады[0] = СкладыВО[0] Тогда
Объект.Склад = Склады[0].Склад;
ИначеЕсли Склады.Количество() = 0 И СкладыВО.Количество() = 1 Тогда
Объект.Склад = СкладыВО[0].Склад;
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("ИспользоватьПоступлениеПоНесколькимЗаказам") Тогда
Объект.Сделка = Справочники.СделкиСКлиентами.ПустаяСсылка();
КонецЕсли;
КонецПроцедуры
Процедура ОбновитьЗависимыеРеквизитыТабличнойЧасти(Товары, ПараметрыЗаполнения) Экспорт
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьКоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСумму");
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Товары, СтруктураДействий);
КонецПроцедуры
Функция ДанныеЗаполненияНакладной(МассивСсылок, СвойстваЗаказов = Неопределено) Экспорт
РеквизитыШапки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(МассивСсылок[0],
"Партнер, Контрагент, Договор, Организация, Сделка, НаправлениеДеятельности, Валюта,
|ЗакупкаПодДеятельность, Подразделение, ВариантПриемкиТоваров, УчетСырьяПоНазначениям");
РеквизитыШапки.Вставить("Склад");
РеквизитыШапки.Вставить("ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ПоступлениеОтПереработчика);
Если ТипЗнч(СвойстваЗаказов) = Тип("Структура") Тогда
СвойстваЗаказов.Свойство("Склад", РеквизитыШапки.Склад);
КонецЕсли;
Возврат РеквизитыШапки;
КонецФункции
Функция ДанныеДляПроверкиВводаНаОсновании(Распоряжения, ХозяйственнаяОперация = Неопределено) Экспорт
ДанныеДляВвода = Новый Структура("Основание, Статус, ЕстьОтгрузить, РаспоряженияКОформлению, МожноСгруппировать");
ДанныеДляВвода.ЕстьОтгрузить = Ложь;
ДанныеДляВвода.МожноСгруппировать = Ложь;
ДанныеДляВвода.Вставить("Склад");
ТекстыЗапросов = Новый Массив;
ТекстыЗапросов.Добавить(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВложенныйЗапрос.Основание КАК Основание,
| ВложенныйЗапрос.Статус КАК Статус,
| ВложенныйЗапрос.Склад КАК Склад
|ИЗ
| (ВЫБРАТЬ
| ТоварыЗаказа.Ссылка КАК Основание,
| ТоварыЗаказа.Ссылка.Статус КАК Статус,
| ТоварыЗаказа.Получатель КАК Склад
| ИЗ
| Документ.ЗаказПереработчику.Продукция КАК ТоварыЗаказа
| ГДЕ
| ТоварыЗаказа.Ссылка В(&Распоряжения)
| И НЕ ТоварыЗаказа.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТоварыЗаказа.Отменено
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТоварыЗаказа.Ссылка,
| ТоварыЗаказа.Ссылка.Статус,
| ТоварыЗаказа.Получатель
| ИЗ
| Документ.ЗаказПереработчику.ВозвратныеОтходы КАК ТоварыЗаказа
| ГДЕ
| ТоварыЗаказа.Ссылка В(&Распоряжения)
| И НЕ ТоварыЗаказа.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И НЕ ТоварыЗаказа.Отменено) КАК ВложенныйЗапрос");
ТекстыЗапросов.Добавить(РегистрыНакопления.ЗаказыПоставщикам.ТекстЗапросаОстатки("ВтОстаткиКОформлению",
Новый Структура("ЗаказПоставщику", "Распоряжения"), "КОформлению <> 0"));
ТекстыЗапросов.Добавить(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ОстаткиКОформлению.ЗаказПоставщику КАК РаспоряженияКОформлению
|ИЗ
| ВтОстаткиКОформлению КАК ОстаткиКОформлению");
ТекстыЗапросов.Добавить(
"ВЫБРАТЬ
| МАКСИМУМ(ОстаткиКОформлению.Склад) КАК Склад,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОстаткиКОформлению.Склад) > 1 КАК РазныеСклады
|ИЗ
| ВтОстаткиКОформлению КАК ОстаткиКОформлению");
Запрос = Новый Запрос(СтрСоединить(ТекстыЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов()));
Запрос.УстановитьПараметр("Распоряжения", Распоряжения);
Запрос.УстановитьПараметр("Регистратор", Неопределено);
Результат = Запрос.ВыполнитьПакет();
Выборка = Результат[0].Выбрать();
Если Выборка.Количество() = 1 И Выборка.Следующий() Тогда
ДанныеДляВвода.Основание = Выборка.Основание;
ДанныеДляВвода.Статус = Выборка.Статус;
ДанныеДляВвода.ЕстьОтгрузить = Истина;
КонецЕсли;
Если Не Результат[Результат.ВГраница() - 1].Пустой() Тогда
ДанныеДляВвода.РаспоряженияКОформлению = Результат[Результат.ВГраница() - 1].Выгрузить().ВыгрузитьКолонку("РаспоряженияКОформлению");
Выборка = Результат[Результат.ВГраница()].Выбрать();
Если Выборка.Следующий() Тогда
ДанныеДляВвода.МожноСгруппировать = Не Выборка.РазныеСклады;
ДанныеДляВвода.Склад = Выборка.Склад;
КонецЕсли;
КонецЕсли;
Возврат ДанныеДляВвода;
КонецФункции
Функция ПараметрыОткрытияФормыРабочегоМеста(ХозяйственнаяОперация = Неопределено) Экспорт
ПараметрыОткрытия = Новый Структура("ИмяФормы, ПараметрыФормы");
ПараметрыОткрытия.ИмяФормы = "Обработка.ЖурналДокументовПереработки.Форма.СписокДокументыПередачиКОформлению";
ПараметрыОткрытия.ПараметрыФормы = Новый Структура;
ПараметрыОткрытия.ПараметрыФормы.Вставить("КлючНазначенияФормы", "ДокументыПередачиВПереработку");
ПараметрыОткрытия.ПараметрыФормы.Вставить("ИмяТекущейСтраницы", "СтраницаПоступления");
Возврат ПараметрыОткрытия;
КонецФункции
Процедура ЗаполнитьПоЗаказамОрдерам(Товары, Регистратор, ПараметрыЗаполнения, ШтрихкодыУпаковок = Неопределено) Экспорт
НакладнаяЯвляетсяРаспоряжением = ЗакупкиСервер.РаспоряжениеНаПриемкуТовараНакладная(ПараметрыЗаполнения.РеквизитыШапки.ВариантПриемкиТоваров);
ОтборПоСкладу = ЗначениеЗаполнено(ПараметрыЗаполнения.Склад);
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Распоряжения" , ПараметрыЗаполнения.МассивЗаказов);
Запрос.УстановитьПараметр("Регистратор" , Регистратор);
Запрос.УстановитьПараметр("Склад" , ПараметрыЗаполнения.Склад);
Запрос.УстановитьПараметр("ТипыНоменклатуры" , НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТаре(Ложь));
Если ОтборПоСкладу Тогда
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Склады.Ссылка КАК Склад
|ПОМЕСТИТЬ ВтСклады
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| НЕ Склады.ЭтоГруппа
| И Склады.Ссылка В ИЕРАРХИИ(&Склад)";
Запрос.Выполнить();
КонецЕсли;
Товары.Индексы.Добавить("ЗаказПереработчику, " + ПараметрыЗаполнения.КлючевыеПоля);
Отбор = Новый Структура();
Отбор.Вставить("ЗаказПоставщику" , "Распоряжения");
Отбор.Вставить("Склад" , "Склад");
ТекстЗапросаРегистраЗаказы = РегистрыНакопления.ЗаказыПоставщикам.ТекстЗапросаОстатки(
"ВтДанныеУчета",
Отбор,
"КОформлению <> 0");
Отбор = Новый Структура();
Отбор.Вставить("Ссылка" , "Распоряжения");
Отбор.Вставить("ТипНоменклатуры" , "ТипыНоменклатуры");
ТекстЗапросаЗаказ = Документы.ЗаказПереработчику.ТекстЗапросаТоварыДокумента(Отбор, "Продукция")
+ ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении()
+ Документы.ЗаказПереработчику.ТекстЗапросаТоварыДокумента(Отбор, "ВозвратныеОтходы");
Запрос.Текст = ТекстЗапросаРегистраЗаказы + ОбщегоНазначения.РазделительПакетаЗапросов() + ТекстЗапросаЗаказ;
Если ОтборПоСкладу Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "Склад В(&Склад)", "Склад В (ВЫБРАТЬ Склад ИЗ ВтСклады)");
КонецЕсли;
ТаблицаЗаказы = Запрос.Выполнить().Выгрузить();
ВидЦены = Справочники.ВидыЦен.ВидЦеныПлановойСтоимостиТМЦ();
Если ЗначениеЗаполнено(ВидЦены) Тогда
ТаблицаЗаказы.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число"));
ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(ТаблицаЗаказы, Новый Структура("ЭтоПродукция", Истина),
Новый Структура("Дата, Валюта, ВидЦены, Организация",
ТекущаяДатаСеанса(),
ПараметрыЗаполнения.Валюта,
ВидЦены,
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Регистратор, "Организация")),
Новый Структура("ПересчитатьСумму", "Количество"));
КонецЕсли;
КолонкаТаблицы = ТаблицаЗаказы.Колонки.КОформлению;
КолонкаТаблицы.Имя = "КоличествоВЗаказе";
Ключ = "ЗаказПереработчику, КодСтроки, " + ПараметрыЗаполнения.КлючевыеПоля;
Условие = "ПО [Количество]";
НакладныеСервер.РаспределитьКоличество(ТаблицаЗаказы, Товары, "КоличествоВЗаказе", Ключ, Условие, Истина);
НакладныеСервер.ДополнитьТаблицу(ТаблицаЗаказы, Товары, "КоличествоВЗаказе");
Если ПараметрыЗаполнения.ЗаполнятьПоОрдеру Тогда
Отбор = Новый Соответствие;
ОбщегоНазначенияУТ.ДобавитьЭлементОтбораВКоллекцию(
Отбор, "Склад", ?(ОтборПоСкладу, "ВЫБРАТЬ Склад ИЗ ВтСклады", "&Склад"));
Запрос.Текст = РегистрыНакопления.ТоварыКПоступлению.ТекстЗапросаОсталосьОформитьПоОрдерам(,Отбор);
ТаблицаОрдера = Запрос.Выполнить().Выгрузить();
КолонкаТаблицы = ТаблицаОрдера.Колонки.Количество;
КолонкаТаблицы.Имя = "КоличествоВОрдере";
КолонкаТаблицы = ТаблицаОрдера.Колонки.Распоряжение;
КолонкаТаблицы.Имя = "ЗаказПереработчику";
Ключ = ?(НакладнаяЯвляетсяРаспоряжением, "", "ЗаказПереработчику, ") + ПараметрыЗаполнения.КлючевыеПоля;
ЗаполняемыеПоля = "Серия";
Условие = "[Количество], [КоличествоВЗаказе], ПО [КоличествоВЗаказе]";
НакладныеСервер.РаспределитьКоличествоИЗаполнить(ТаблицаОрдера, Товары, "КоличествоВОрдере", Ключ, Условие, Ложь, ЗаполняемыеПоля);
Условие = "НЕ [Количество], [КоличествоВЗаказе], ПО [КоличествоВЗаказе]";
НакладныеСервер.РаспределитьКоличествоИЗаполнить(ТаблицаОрдера, Товары, "КоличествоВОрдере", Ключ, Условие, Ложь, ЗаполняемыеПоля);
Условие = "[Количество], НЕ [КоличествоВЗаказе]";
НакладныеСервер.РаспределитьКоличествоИЗаполнить(ТаблицаОрдера, Товары, "КоличествоВОрдере", Ключ, Условие, Истина, ЗаполняемыеПоля);
НакладныеСервер.РаспределитьОтклонениеМерныхТоваров(ТаблицаОрдера, Товары, "КоличествоВЗаказе", "КоличествоВОрдере", Ключ);
ТаблицаОрдера.Колонки.Добавить("Распоряжение");
ТаблицаОрдера.Колонки.Добавить("ЭтоПродукция");
ТаблицаОрдера.ЗагрузитьКолонку(ТаблицаОрдера.ВыгрузитьКолонку("ЗаказПереработчику"), "Распоряжение");
ТаблицаОрдера.ЗаполнитьЗначения(Истина, "ЭтоПродукция");
НакладныеСервер.ДополнитьТаблицу(ТаблицаОрдера, Товары, "КоличествоВОрдере");
КонецЕсли;
Если ПараметрыЗаполнения.Ресурсы.Найти("Продукция") = Неопределено Тогда
Продукция = Товары.НайтиСтроки(Новый Структура("ЭтоПродукция", Истина));
Для каждого СтрокаПродукции Из Продукция Цикл
Товары.Удалить(СтрокаПродукции);
КонецЦикла;
КонецЕсли;
Если ПараметрыЗаполнения.Ресурсы.Найти("ВозвратныеОтходы") = Неопределено Тогда
ВозвратныеОтходы = Товары.НайтиСтроки(Новый Структура("ЭтоПродукция", Ложь));
Для каждого СтрокаОтхода Из ВозвратныеОтходы Цикл
Товары.Удалить(СтрокаОтхода);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Функция РаспоряженияНакладной(Накладная, РеквизитыШапки) Экспорт
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Регистратор", Накладная);
Запрос.УстановитьПараметр("Организация", РеквизитыШапки.Организация);
Запрос.УстановитьПараметр("Партнер", РеквизитыШапки.Партнер);
Запрос.УстановитьПараметр("Контрагент", РеквизитыШапки.Контрагент);
Запрос.УстановитьПараметр("Договор", РеквизитыШапки.Договор);
Запрос.УстановитьПараметр("Валюта", РеквизитыШапки.Валюта);
Запрос.УстановитьПараметр("НаправлениеДеятельности", РеквизитыШапки.НаправлениеДеятельности);
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПереработчику.Ссылка КАК Заказ
|ИЗ
| Документ.ЗаказПереработчику КАК ЗаказПереработчику
|ГДЕ
| ЗаказПереработчику.Партнер = &Партнер
| И ЗаказПереработчику.Контрагент = &Контрагент
| И ЗаказПереработчику.Договор = &Договор
| И ЗаказПереработчику.Организация = &Организация
| И ЗаказПереработчику.Валюта = &Валюта
| И &НаправлениеДеятельности В
| (ЗаказПереработчику.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка))
| И ЗаказПереработчику.Проведен
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Регистратор КАК Заказ";
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Заказ");
КонецФункции
Функция КлючевыеПоляШапкиРаспоряжения() Экспорт
Если ПолучитьФункциональнуюОпцию("ИспользоватьПоступлениеПоНесколькимЗаказам") Тогда
Возврат "Партнер, Контрагент, Договор, Организация, Валюта,
|НаправлениеДеятельности, Подразделение, ВариантПриемкиТоваров, УчетСырьяПоНазначениям"
Иначе
Возврат "Ссылка";
КонецЕсли;
КонецФункции
#КонецОбласти
#Область Серии
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
Возврат "Склад,Дата";
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ТоварыСерии = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ТоварыСерии.ПолноеИмяОбъекта = "Документ.ПоступлениеОтПереработчика";
ПараметрыСерийСклада = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Истина);
ТоварыСерии.ИспользоватьСерииНоменклатуры =
(ПараметрыСерийСклада.ИспользоватьСерииНоменклатуры И Не СкладыСервер.ИспользоватьОрдернуюСхемуПриПоступлении(Объект.Склад, Объект.Дата, Истина))
Или ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ТоварыСерии.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ТоварыСерии.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПриемкаОтПоставщика);
ТоварыСерии.СерииПриПланированииОтгрузкиУказываютсяВТЧСерии = Истина;
ТоварыСерии.ПоляСвязи.Добавить("Склад");
ТоварыСерии.ПоляСвязи.Добавить("Назначение");
ТоварыСерии.ЭтоНакладная = Истина;
ТоварыСерии.Дата = Объект.Дата;
ТоварыСерии.ИмяТЧТовары = "Товары";
ТоварыСерии.ИмяТЧСерии = "ТоварыСерии";
ТоварыСерии.ИменаПолейДляОпределенияРаспоряжения.Добавить("Ссылка");
ТоварыСерии.ИменаПолейДляОпределенияРаспоряжения.Добавить("ПоступлениеПоЗаказам");
ТоварыСерии.ИменаПолейДляОпределенияРаспоряжения.Добавить("Товары_ЗаказПереработчику");
ВозвратныеОтходыСерии = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ВозвратныеОтходыСерии.ПолноеИмяОбъекта = "Документ.ПоступлениеОтПереработчика";
ПараметрыСерийСклада = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Истина);
ВозвратныеОтходыСерии.ИспользоватьСерииНоменклатуры =
(ПараметрыСерийСклада.ИспользоватьСерииНоменклатуры И Не СкладыСервер.ИспользоватьОрдернуюСхемуПриПоступлении(Объект.Склад, Объект.Дата, Истина))
Или ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ВозвратныеОтходыСерии.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ВозвратныеОтходыСерии.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПриемкаОтПоставщика);
ВозвратныеОтходыСерии.СерииПриПланированииОтгрузкиУказываютсяВТЧСерии = Истина;
ВозвратныеОтходыСерии.ПоляСвязи.Добавить("Склад");
ВозвратныеОтходыСерии.ПоляСвязи.Добавить("Назначение");
ВозвратныеОтходыСерии.ЭтоНакладная = Истина;
ВозвратныеОтходыСерии.Дата = Объект.Дата;
ВозвратныеОтходыСерии.ИмяТЧТовары = "ВозвратныеОтходы";
ВозвратныеОтходыСерии.ИмяТЧСерии = "ВозвратныеОтходыСерии";
ВозвратныеОтходыСерии.ИменаПолейДляОпределенияРаспоряжения.Добавить("Ссылка");
ВозвратныеОтходыСерии.ИменаПолейДляОпределенияРаспоряжения.Добавить("ПоступлениеПоЗаказам");
ВозвратныеОтходыСерии.ИменаПолейДляОпределенияРаспоряжения.Добавить("Товары_ЗаказПереработчику");
ПараметрыУказанияСерий = Новый Структура;
ПараметрыУказанияСерий.Вставить("Товары", Новый ФиксированнаяСтруктура(ТоварыСерии));
ПараметрыУказанияСерий.Вставить("ВозвратныеОтходы", Новый ФиксированнаяСтруктура(ВозвратныеОтходыСерии));
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Серия,
| Товары.Количество,
| Товары.СтатусУказанияСерий,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| СУММА(Товары.Количество) КАК Количество,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Склад,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|
|СГРУППИРОВАТЬ ПО
| Серии.Склад,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ 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
И РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(ДатаДокумента);
Возврат ПродукцияИОтходыПриПоступленииВОднойТЧ;
КонецФункции
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы);
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказов", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.Товары.Склад";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказов", Истина, "Объект.ВозвратныеОтходы.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.ВозвратныеОтходы.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.ВозвратныеОтходы.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.ВозвратныеОтходы.Склад";
Возврат МакетФормы;
КонецФункции
Функция НаименованияВходящихДокументов() Экспорт
МассивНаименований = Новый Массив();
МассивНаименований.Добавить(НСтр("ru='Накладная на передачу готовой продукции'"));
ПоступлениеОтПереработчикаЛокализация.ДополнитьНаименованияВходящихДокументов(МассивНаименований);
Возврат МассивНаименований
КонецФункции
#КонецОбласти
#Область УчетНДС
Функция ПараметрыЗаполненияВидаДеятельностиНДС(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияВидаДеятельностиНДС();
ПараметрыЗаполнения.Организация = Объект.Организация;
ПараметрыЗаполнения.Дата = Объект.Дата;
ПараметрыЗаполнения.Склад = Объект.Склад;
ПараметрыЗаполнения.Договор = Объект.Договор;
ПараметрыЗаполнения.НаправлениеДеятельности = Объект.НаправлениеДеятельности;
ПараметрыЗаполнения.ДвижениеТоваровНаСкладах = Истина;
Возврат ПараметрыЗаполнения;
КонецФункции
#КонецОбласти
#Область ПроводкиРеглУчета
Функция ТекстОтраженияВРеглУчете() Экспорт
Возврат ПоступлениеОтПереработчикаЛокализация.ТекстОтраженияВРеглУчете();
КонецФункции
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
Возврат ПоступлениеОтПереработчикаЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();
КонецФункции
#КонецОбласти
Функция ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности(Форма) Экспорт
ПорядокОбработкиДокумента = НаправленияДеятельностиСервер.ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности();
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляОчисткиНекорректныхНазначений = "Товары,ВозвратныеОтходы";
ТаблицаУсловий = НаправленияДеятельностиСервер.УсловияОбработкиНазначенийВСтроках("ТипНоменклатуры,КодСтроки");
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("Товары", ТаблицаУсловий);
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("ВозвратныеОтходы", ТаблицаУсловий);
Возврат ПорядокОбработкиДокумента;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Партнер)
| И ЗначениеРазрешено(Склад)
| И ЗначениеРазрешено(Подразделение)";
КонецПроцедуры
#КонецОбласти
#Область Печать
Функция ПравилаПечатиЗаданияНаОтборРазмещение() Экспорт
ПравилаПечати = Новый Массив;
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.ОперацияПоступления = Истина;
ПравилаПечатиЗадания.СкладыВТЧ = Истина;
ПравилаПечати.Добавить(ПравилаПечатиЗадания);
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.ОперацияПоступления = Истина;
ПравилаПечатиЗадания.СкладыВТЧ = Истина;
ПравилаПечатиЗадания.ИмяТЧТовары = "ВозвратныеОтходы";
ПравилаПечати.Добавить(ПравилаПечатиЗадания);
Возврат ПравилаПечати;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
ОбщегоНазначенияУТКлиентСервер.ОбработкаПолученияПредставленияВходящегоДокумента(
Данные, Представление, СтандартнаяОбработка, "ПоступлениеОтПереработчика");
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Поля.Очистить();
Поля.Добавить("НаименованиеВходящегоДокумента");
Поля.Добавить("НомерВходящегоДокумента");
Поля.Добавить("ДатаВходящегоДокумента");
Поля.Добавить("Дата");
Поля.Добавить("Номер");
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Если ИмяРегистра = "ДвижениеТоваров" Тогда
ИсточникиДанных.Вставить("Товары.Распоряжение");
КонецЕсли;
Если ИмяРегистра = "ТоварыКПоступлению" Тогда
ИсточникиДанных.Вставить("Товары.Распоряжение");
КонецЕсли;
Возврат ИсточникиДанных;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.ПоступлениеОтПереработчика";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("Период", "ТаблицаТовары.Ссылка.Дата");
ПереопределениеРасчетаПараметров.Вставить("Организация", "ТаблицаТовары.Ссылка.Организация");
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоДоговору", """""");
ПереопределениеРасчетаПараметров.Вставить("НакладнаяЯвляетсяРаспоряжением",
"ТаблицаТовары.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)");
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
Если ИмяРегистра = "ВыпускПродукции" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаВыпускПродукции(Неопределено, ТекстыЗапроса, Неопределено);
СинонимТаблицыДокумента = "ТаблицаТовары";
ИначеЕсли ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Неопределено, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если СинонимТаблицыДокумента <> "ТаблицаТовары" Тогда
Для Каждого ПараметрРасчета Из ПереопределениеРасчетаПараметров Цикл
ПереопределениеРасчетаПараметров[ПараметрРасчета.Ключ] = СтрЗаменить(
ПараметрРасчета.Значение, "ТаблицаТовары", СинонимТаблицыДокумента);
КонецЦикла;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
| ДанныеДокумента.Валюта КАК Валюта,
| ДанныеДокумента.Партнер КАК Партнер,
| ДанныеДокумента.Партнер КАК Поставщик,
| ДанныеДокумента.Контрагент КАК Контрагент,
| ДанныеДокумента.ЗаказПереработчику КАК ЗаказПереработчику,
| ДанныеДокумента.ПоступлениеПоЗаказам КАК ПоступлениеПоЗаказам,
| ДанныеДокумента.Склад КАК Склад,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокумента.Менеджер КАК Менеджер,
| ДанныеДокумента.Автор КАК Автор,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ЕСТЬNULL(ДанныеДокумента.Подразделение.ВариантОбособленногоУчетаТоваров, ЗНАЧЕНИЕ(Перечисление.ВариантыОбособленногоУчетаТоваров.ПустаяСсылка)) КАК ВариантОбособленногоУчетаТоваров,
| ДанныеДокумента.Сделка КАК Сделка,
| ЕСТЬNULL(ДанныеДокумента.Сделка.ОбособленныйУчетТоваровПоСделке, ЛОЖЬ) КАК ОбособленныйУчетТоваровПоСделке,
| ДанныеДокумента.Договор КАК Договор,
| ПРЕДСТАВЛЕНИЕ(ДанныеДокумента.Договор) КАК ДоговорПредставление,
| ДанныеДокумента.ЗакупкаПодДеятельность КАК ЗакупкаПодДеятельность,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,
| ДанныеДокумента.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
| ДанныеДокумента.НаименованиеВходящегоДокумента КАК НаименованиеВходящегоДокумента,
| ДанныеДокумента.СуммаДокумента КАК СуммаДокумента,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.УчетСырьяПоНазначениям КАК УчетСырьяПоНазначениям,
| ДанныеДокумента.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ЕСТЬNULL(НастройкиХозяйственныхОпераций.Ссылка,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеОтПереработчика)) КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.ПоступлениеОтПереработчика КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО ДанныеДокумента.ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
НакладнаяЯвляетсяРаспоряжением = ЗакупкиСервер.РаспоряжениеНаПриемкуТовараНакладная(Реквизиты.ВариантПриемкиТоваров);
Запрос.УстановитьПараметр("ВалютаРеглУчета", Реквизиты.ВалютаРегламентированногоУчета);
Запрос.УстановитьПараметр("Фиксированная", Перечисления.ТипыСтоимостиВыходныхИзделий.Фиксированная);
Запрос.УстановитьПараметр("Рассчитывается", Перечисления.ТипыСтоимостиВыходныхИзделий.Рассчитывается);
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипЗнч(ДокументСсылка)));
Запрос.УстановитьПараметр("НакладнаяЯвляетсяРаспоряжением", НакладнаяЯвляетсяРаспоряжением);
ИнформацияПоДоговору = Неопределено;
Если ЗначениеЗаполнено(Реквизиты.Договор) Тогда
ШаблонСтроки = "ru = 'По договору ""%1""'";
ИнформацияПоДоговору = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСтроки, Реквизиты.ДоговорПредставление);
КонецЕсли;
Запрос.УстановитьПараметр("ИнформацияПоДоговору", ИнформацияПоДоговору);
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Процедура ИнициализироватьКлючиАналитикиНоменклатуры(Запрос)
Если Запрос = Неопределено Или Запрос.Параметры.Свойство("КлючиАналитикиУчетаНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитик = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВложенныйЗапрос.Характеристика КАК Характеристика,
| ВложенныйЗапрос.Назначение КАК Назначение,
| ВложенныйЗапрос.Серия КАК Серия,
| ВложенныйЗапрос.Склад КАК Склад
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| &Серия КАК Серия,
| &Партнер КАК Склад
| ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И (&Серия = Аналитика.Серия)
| И (&Партнер = Аналитика.МестоХранения)
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| &Серия КАК Серия,
| &Партнер КАК Склад
| ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И ТаблицаТовары.Назначение = Аналитика.Назначение
| И (&Серия = Аналитика.Серия)
| И (&Партнер = Аналитика.МестоХранения)
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| &ПустоеНазначение КАК Назначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия КАК Серия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения КАК Склад
| ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия = Аналитика.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| &Серия КАК Серия,
| &Партнер КАК Склад
| ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И ТаблицаТовары.Назначение = Аналитика.Назначение
| И &Серия = Аналитика.Серия
| И (&Партнер = Аналитика.МестоХранения)
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| &ПустоеНазначение,
| &Серия,
| &Партнер
| ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И &Серия = Аналитика.Серия
| И &Партнер = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика,
| &ПустоеНазначение,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия,
| ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения
| ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия = Аналитика.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| &ПустоеНазначение,
| &Серия,
| &Партнер
| ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И &Серия = Аналитика.Серия
| И &Партнер = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| &ПустоеНазначение,
| &Серия,
| &Партнер
| ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И &ПустоеНазначение = Аналитика.Назначение
| И &Серия = Аналитика.Серия
| И &Партнер = Аналитика.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = Аналитика.СтатьяКалькуляции
| ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И Аналитика.Номенклатура ЕСТЬ NULL
| И НЕ &УчитыватьСебестоимостьТоваровПоНазначениям
| ) КАК ВложенныйЗапрос
|");
ЗапросАналитик.УстановитьПараметр("Серия", Запрос.Параметры.Серия);
ЗапросАналитик.УстановитьПараметр("ПустоеНазначение", Справочники.Назначения.ПустаяСсылка());
ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитик.УстановитьПараметр("Партнер", Запрос.Параметры.Партнер);
ЗапросАналитик.УстановитьПараметр("УчитыватьСебестоимостьТоваровПоНазначениям", Запрос.Параметры.УчитыватьСебестоимостьТоваровПоНазначениям);
Выборка = ЗапросАналитик.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка)
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиУчетаНоменклатурыИнициализированы", Истина);
КонецПроцедуры
Процедура УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос)
Если Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуУпр")
И Запрос.Параметры.Свойство("КоэффициентПересчетаВВалютуРегл") Тогда
Возврат;
КонецЕсли;
Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Запрос.Параметры.Валюта,
Неопределено,
Запрос.Параметры.Период,
Запрос.Параметры.Организация);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр", Коэффициенты.КоэффициентПересчетаВВалютуУпр);
КонецПроцедуры
Процедура УстановитьПараметрыУчетнойПолитики(Запрос)
Если Запрос = Неопределено Или Запрос.Параметры.Свойство("УчетГотовойПродукцииПоПлановойСтоимости") Тогда
Возврат;
КонецЕсли;
ПараметрыУчетнойПолитики = НастройкиНалоговУчетныхПолитик.ДействующиеПараметрыНалоговУчетныхПолитикНаДату("УчетнаяПолитикаФинансовогоУчета",
Запрос.Параметры.Организация,
Запрос.Параметры.Период);
УчетГотовойПродукцииПоПлановойСтоимости = ?(ПараметрыУчетнойПолитики <> Неопределено,
ПараметрыУчетнойПолитики["УчетГотовойПродукцииПоПлановойСтоимости"],
Ложь);
Запрос.УстановитьПараметр("УчетГотовойПродукцииПоПлановойСтоимости", УчетГотовойПродукцииПоПлановойСтоимости);
КонецПроцедуры
Функция ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса)
ТекстВыборкаПоляАналитик =
"ВЫБРАТЬ
| ""Товары"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Партнер КАК Поставщик,
| ДанныеДокумента.Контрагент КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаДокумента.Назначение.ВидДеятельностиНДС,ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА ТаблицаДокумента.Назначение.ВидДеятельностиНДС
| ИНАЧЕ ДанныеДокумента.ЗакупкаПодДеятельность
| КОНЕЦ КАК НалогообложениеНДС,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары) КАК ВидЦенности,
| 0 КАК КодСтроки
|ПОМЕСТИТЬ ВТПоляАналитикУчетаПартий
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеОтПереработчика КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаДокумента.Ссылка
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""ВозвратныеОтходы"" КАК ИмяТабличнойЧасти,
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ДанныеДокумента.Партнер КАК Поставщик,
| ДанныеДокумента.Контрагент КАК Контрагент,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаДокумента.Назначение.ВидДеятельностиНДС,ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА ТаблицаДокумента.Назначение.ВидДеятельностиНДС
| ИНАЧЕ ДанныеДокумента.ЗакупкаПодДеятельность
| КОНЕЦ КАК НалогообложениеНДС,
| ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.Товары) КАК ВидЦенности,
| 0 КАК КодСтроки
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеОтПереработчика КАК ДанныеДокумента
| ПО ДанныеДокумента.Ссылка = ТаблицаДокумента.Ссылка
|ГДЕ
| ТаблицаДокумента.Ссылка = &Ссылка
|";
ТекстЗапроса = Справочники.КлючиАналитикиУчетаПартий.ТекстЗапросаВтТаблицаАналитикУчетаПартий(ТекстВыборкаПоляАналитик, Запрос, ТекстыЗапроса);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтТаблицаТовары";
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
УстановитьПараметрыУчетнойПолитики(Запрос);
Если Запрос <> Неопределено
И Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаАналитикУчетаПартий", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаАналитикУчетаПартий(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ТаблицаТовары.ЗаказПереработчику КАК ЗаказПереработчику,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаТовары.Количество КАК Количество,
| &Рассчитывается КАК ТипСтоимости,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Склад.ЦеховаяКладовая КАК ЦеховаяКладовая,
|
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ЛОЖЬ
| КОНЕЦ КАК ПереработкаПоЗаказу,
|
| ТаблицаТовары.Распоряжение КАК Распоряжение,
| ТаблицаТовары.Назначение КАК Назначение,
|
| ВЫБОР
| КОГДА ТаблицаТовары.Назначение <> ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Количество
| ИНАЧЕ 0
| КОНЕЦ КАК КоличествоОбособленное,
|
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ТаблицаТовары.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
|
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Сумма * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаУпр,
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Сумма * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2))
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаРегл,
|
| ЛОЖЬ КАК ФиксированнаяСтоимость,
|
| ВЫБОР КОГДА ТаблицаТовары.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И &Период >= ТаблицаТовары.Склад.ДатаНачалаОрдернойСхемыПриПоступлении ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ИспользоватьОрдернуюСхемуПриПоступлении,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| ЕСТЬNULL(АналитикаПоПартнеру.КлючАналитики, АналитикаПоПартнеруУчетСырьяПоНазначениям.КлючАналитики) КАК АналитикаУчетаПоПартнеру,
| АналитикаПоПартнеруБезНазначения.КлючАналитики КАК АналитикаУчетаПоПартнеруБезНазначения
|
|ПОМЕСТИТЬ ВтТаблицаТовары
|
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаБезНазначения.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = АналитикаБезНазначения.Характеристика
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия = АналитикаБезНазначения.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаБезНазначения.СтатьяКалькуляции
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПоПартнеру
| ПО ТаблицаТовары.Номенклатура = АналитикаПоПартнеру.Номенклатура
| И ТаблицаТовары.Характеристика = АналитикаПоПартнеру.Характеристика
| И НЕ &УчетСырьяПоНазначениям
| И &Назначение = АналитикаПоПартнеру.Назначение
| И &Серия = АналитикаПоПартнеру.Серия
| И &Партнер = АналитикаПоПартнеру.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПоПартнеру.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПоПартнеруУчетСырьяПоНазначениям
| ПО ТаблицаТовары.Номенклатура = АналитикаПоПартнеруУчетСырьяПоНазначениям.Номенклатура
| И ТаблицаТовары.Характеристика = АналитикаПоПартнеруУчетСырьяПоНазначениям.Характеристика
| И &УчетСырьяПоНазначениям
| И ТаблицаТовары.Назначение = АналитикаПоПартнеруУчетСырьяПоНазначениям.Назначение
| И &Серия = АналитикаПоПартнеруУчетСырьяПоНазначениям.Серия
| И &Партнер = АналитикаПоПартнеруУчетСырьяПоНазначениям.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПоПартнеруУчетСырьяПоНазначениям.СтатьяКалькуляции
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПоПартнеруБезНазначения
| ПО ТаблицаТовары.Номенклатура = АналитикаПоПартнеруБезНазначения.Номенклатура
| И ТаблицаТовары.Характеристика = АналитикаПоПартнеруБезНазначения.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаПоПартнеруБезНазначения.Назначение
| И &Серия = АналитикаПоПартнеруБезНазначения.Серия
| И &Партнер = АналитикаПоПартнеруБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПоПартнеруБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ТаблицаТовары.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""Товары""
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ТаблицаТовары.ЗаказПереработчику КАК ЗаказПереработчику,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.ВидЗапасов.ТипЗапасов КАК ТипЗапасов,
| ТаблицаТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаАналитикУчетаПартий.ВидЦенности КАК ВидЦенности,
| ТаблицаАналитикУчетаПартий.НалогообложениеНДС КАК ВидДеятельностиНДС,
| ТаблицаАналитикУчетаПартий.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаТовары.Количество КАК Количество,
| &Фиксированная КАК ТипСтоимости,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Склад.ЦеховаяКладовая КАК ЦеховаяКладовая,
|
| ВЫБОР
| КОГДА ИСТИНА
| ТОГДА ЛОЖЬ
| КОНЕЦ КАК ПереработкаПоЗаказу,
|
| ТаблицаТовары.Распоряжение КАК Распоряжение,
| ТаблицаТовары.Назначение КАК Назначение,
|
| ВЫБОР
| КОГДА ТаблицаТовары.Назначение <> ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ТОГДА ТаблицаТовары.Количество
| ИНАЧЕ 0
| КОНЕЦ КАК КоличествоОбособленное,
|
| ТаблицаТовары.Сумма КАК Сумма,
|
| ВЫРАЗИТЬ(ТаблицаТовары.Сумма * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2)) КАК СуммаУпр,
| ВЫРАЗИТЬ(ТаблицаТовары.Сумма * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2)) КАК СуммаРегл,
|
| ВЫБОР КОГДА НЕ &ПартионныйУчетВерсии22 ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ФиксированнаяСтоимость,
|
| ВЫБОР КОГДА ТаблицаТовары.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И &Период >= ТаблицаТовары.Склад.ДатаНачалаОрдернойСхемыПриПоступлении ТОГДА
| ИСТИНА
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ КАК ИспользоватьОрдернуюСхемуПриПоступлении,
|
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| АналитикаБезНазначения.КлючАналитики КАК АналитикаУчетаНоменклатурыБезНазначения,
| АналитикаПоПартнеру.КлючАналитики КАК АналитикаУчетаПоПартнеру,
| АналитикаПоПартнеруБезНазначения.КлючАналитики КАК АналитикаУчетаПоПартнеруБезНазначения
|
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаБезНазначения
| ПО ТаблицаТовары.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаБезНазначения.Номенклатура
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Характеристика = АналитикаБезНазначения.Характеристика
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.Серия = АналитикаБезНазначения.Серия
| И ТаблицаТовары.АналитикаУчетаНоменклатуры.МестоХранения = АналитикаБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаБезНазначения.Назначение
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПоПартнеру
| ПО
| ТаблицаТовары.Номенклатура = АналитикаПоПартнеру.Номенклатура
| И ТаблицаТовары.Характеристика = АналитикаПоПартнеру.Характеристика
| И &Назначение = АналитикаПоПартнеру.Назначение
| И &Партнер = АналитикаПоПартнеру.МестоХранения
| И &Серия = АналитикаПоПартнеру.Серия
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПоПартнеру.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПоПартнеруБезНазначения
| ПО АналитикаПоПартнеру.Номенклатура = АналитикаПоПартнеруБезНазначения.Номенклатура
| И АналитикаПоПартнеру.Характеристика = АналитикаПоПартнеруБезНазначения.Характеристика
| И ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) = АналитикаПоПартнеруБезНазначения.Назначение
| И АналитикаПоПартнеру.Серия = АналитикаПоПартнеруБезНазначения.Серия
| И АналитикаПоПартнеру.МестоХранения = АналитикаПоПартнеруБезНазначения.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПоПартнеруБезНазначения.СтатьяКалькуляции
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаАналитикУчетаПартий КАК ТаблицаАналитикУчетаПартий
| ПО ТаблицаАналитикУчетаПартий.НомерСтроки = ТаблицаТовары.НомерСтроки
| И ТаблицаАналитикУчетаПартий.ИмяТабличнойЧасти = ""ВозвратныеОтходы""
|
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаЗаказыПоставщикам(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ЗаказыПоставщикам";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| 1 КАК Порядок,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.ЗаказПереработчику КАК ЗаказПоставщику,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Количество КАК Заказано,
| ТаблицаТовары.Количество КАК КОформлению
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.КодСтроки <> 0
| И &ПоступлениеПоЗаказам
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 2 КАК Порядок,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.ЗаказПереработчику КАК ЗаказПоставщику,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ТаблицаТовары.Склад КАК Склад,
| 0 КАК Заказано,
| ТаблицаТовары.Количество КАК КОформлению
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.КодСтроки = 0
| И &ПоступлениеПоЗаказам
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 3 КАК Порядок,
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.ЗаказПереработчику КАК ЗаказПоставщику,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ТаблицаТовары.Склад КАК Склад,
| 0 КАК Заказано,
| ТаблицаТовары.Количество КАК КОформлению
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|
|ГДЕ
| ТаблицаТовары.КодСтроки = 0
| И &ПоступлениеПоЗаказам
|
|УПОРЯДОЧИТЬ ПО
| Порядок,
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.ЗаказПереработчику КАК Заказ,
| ИсточникДанных.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
|
| ВЫБОР КОГДА ИсточникДанных.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ИсточникДанных.Ссылка.ДатаПоступления
| ИНАЧЕ
| ИсточникДанных.Ссылка.Дата
| КОНЕЦ КАК Дата,
|
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИсточникДанных.КодСтроки = 0
| И ИсточникДанных.Ссылка.ПоступлениеПоЗаказам КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.Ссылка.ПоступлениеПоЗаказам КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.ЗаказПереработчику КАК Заказ,
| ИсточникДанных.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
|
| ВЫБОР КОГДА ИсточникДанных.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ИсточникДанных.Ссылка.ДатаПоступления
| ИНАЧЕ
| ИсточникДанных.Ссылка.Дата
| КОНЕЦ КАК Дата,
|
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИсточникДанных.КодСтроки = 0
| И ИсточникДанных.Ссылка.ПоступлениеПоЗаказам КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.Ссылка.ПоступлениеПоЗаказам КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
|";
СкладыСервер.ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента);
КонецПроцедуры
Процедура ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры)
ОформитьПоступлениеТоваровПоОдноходовкеТовары(Запрос, ТекстыЗапроса, Регистры);
ОформитьПоступлениеТоваровПоОдноходовкеВозвратныеОтходы(Запрос, ТекстыЗапроса, Регистры);
КонецПроцедуры
Процедура ОформитьПоступлениеТоваровПоОдноходовкеТовары(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.ЗаказПереработчику КАК Заказ,
| ИсточникДанных.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИсточникДанных.КодСтроки = 0
| И ИсточникДанных.Ссылка.ПоступлениеПоЗаказам КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.Ссылка.ПоступлениеПоЗаказам КАК ПоступлениеПоЗаказам,
| ЛОЖЬ КАК ЭтоКорректировкаВнутриНакладной
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
|";
ТекущийОбъектМетаданных = Метаданные.Документы.ПоступлениеОтПереработчика;
СкладыСервер.ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента, ТекущийОбъектМетаданных, "ТоварыСерии", "ИсточникДанных");
КонецПроцедуры
Процедура ОформитьПоступлениеТоваровПоОдноходовкеВозвратныеОтходы(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.ЗаказПереработчику КАК Заказ,
| ИсточникДанных.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИсточникДанных.КодСтроки = 0
| И ИсточникДанных.Ссылка.ПоступлениеПоЗаказам КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.Ссылка.ПоступлениеПоЗаказам КАК ПоступлениеПоЗаказам,
| ЛОЖЬ КАК ЭтоКорректировкаВнутриНакладной
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
|";
ТекущийОбъектМетаданных = Метаданные.Документы.ПоступлениеОтПереработчика;
СкладыСервер.ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента, ТекущийОбъектМетаданных, "ВозвратныеОтходыСерии", "ИсточникДанных");
КонецПроцедуры
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияСерийТоваров";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Количество КАК Количество,
| &Партнер КАК Отправитель,
| ТаблицаСерии.Склад КАК Получатель,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика) КАК СкладскаяОперация,
| &Ссылка КАК Документ,
| &Период КАК Период,
| &Ссылка КАК Регистратор,
| ТаблицаСерии.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА НЕ ТаблицаСерии.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Период < ТаблицаСерии.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПоступлениеОтПереработчика.ТоварыСерии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Количество <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Количество,
| &Партнер,
| ТаблицаСерии.Склад,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика),
| &Ссылка,
| &Период,
| &Ссылка,
| ТаблицаСерии.НомерСтроки,
| ВЫБОР
| КОГДА НЕ ТаблицаСерии.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Период < ТаблицаСерии.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Количество,
| &Партнер,
| ТаблицаСерии.Склад,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика),
| &Ссылка,
| &Период,
| &Ссылка,
| ТаблицаСерии.НомерСтроки,
| ВЫБОР
| КОГДА НЕ ТаблицаСерии.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Период < ТаблицаСерии.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходыСерии КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Количество <> 0
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаСерии.Номенклатура,
| ТаблицаСерии.Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаСерии.Серия,
| ТаблицаСерии.Количество,
| &Партнер,
| ТаблицаСерии.Склад,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика),
| &Ссылка,
| &Период,
| &Ссылка,
| ТаблицаСерии.НомерСтроки,
| ВЫБОР
| КОГДА НЕ ТаблицаСерии.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Период < ТаблицаСерии.Склад.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоСкладскоеДвижение
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТаблицаСерии
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДатыПоступленияТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДатыПоступленияТоваровОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| &Период КАК ДатаПоступления,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.Назначение КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.ДатыПоступленияТоваровОрганизаций КАК ПоступленияТоваров
| ПО
| ТаблицаТовары.ВидЗапасов = ПоступленияТоваров.ВидЗапасов
| И ТаблицаТовары.Номенклатура = ПоступленияТоваров.Номенклатура
| И ТаблицаТовары.Характеристика = ПоступленияТоваров.Характеристика
| И ТаблицаТовары.Серия = ПоступленияТоваров.Серия
| И ТаблицаТовары.Назначение = ПоступленияТоваров.Назначение
| И ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) = ПоступленияТоваров.НомерГТД
|
|ГДЕ
| ТаблицаТовары.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И (ПоступленияТоваров.ДатаПоступления ЕСТЬ NULL
| ИЛИ ПоступленияТоваров.ДатаПоступления < &Период)
|
|УПОРЯДОЧИТЬ ПО
| ТаблицаТовары.ВидЗапасов,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.Серия,
| ТаблицаТовары.Назначение";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.Количество КАК Количество,
| 0 КАК КоличествоПоРНПТ,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД,
| ИСТИНА КАК Первичное
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииТоваровОрганизаций";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
УстановитьПараметрыЗапросаКоэффициентыВалют(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК Организация,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| &Ссылка КАК ДокументПоступления,
|
| ТаблицаТовары.Количество КАК Количество,
| (ВЫБОР
| КОГДА ТаблицаТовары.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ТипыСтоимостиВыходныхИзделий.Фиксированная)
| ТОГДА ТаблицаТовары.СуммаУпр
| ИНАЧЕ 0 КОНЕЦ) КАК Стоимость,
| (ВЫБОР
| КОГДА ТаблицаТовары.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ТипыСтоимостиВыходныхИзделий.Фиксированная)
| ТОГДА ТаблицаТовары.СуммаУпр
| ИНАЧЕ 0 КОНЕЦ) КАК СтоимостьБезНДС,
| (ВЫБОР
| КОГДА ТаблицаТовары.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ТипыСтоимостиВыходныхИзделий.Фиксированная)
| ТОГДА ТаблицаТовары.СуммаРегл
| ИНАЧЕ 0 КОНЕЦ) КАК СтоимостьРегл,
| 0 КАК НДСРегл,
|
| ТаблицаТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
|
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИСТИНА КАК Первичное,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| &ПартионныйУчетВерсии21
| И ТаблицаТовары.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыПолученныеОтПереработчика(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ТоварыПолученныеОтПереработчика";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
|
| &Организация КАК Организация,
| ВЫБОР
| КОГДА &ПоступлениеПоЗаказам
| ТОГДА ТаблицаТовары.ЗаказПереработчику
| КОГДА &ПартионныйУчетВерсии22
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ &Ссылка
| КОНЕЦ КАК Распоряжение,
| ТаблицаТовары.АналитикаУчетаПоПартнеру КАК АналитикаУчетаНоменклатуры,
| ВЫБОР
| КОГДА &ПоступлениеПоЗаказам
| ИЛИ НЕ &ПартионныйУчетВерсии22
| ТОГДА ТаблицаТовары.КодСтроки
| ИНАЧЕ 0
| КОНЕЦ КАК КодСтроки,
| ТаблицаТовары.ТипСтоимости КАК ТипСтоимости,
| ТаблицаТовары.Количество КАК Количество
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено) Экспорт
ТекстЗапросаДанных = "
|ВЫБРАТЬ
| ""Товары"" КАК ИсточникДанных,
| ЛОЖЬ КАК РаспределятьОбщуюСумму,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| ТаблицаДокумента.Ссылка.Дата КАК Дата,
| ТаблицаДокумента.Ссылка.Организация КАК Организация,
| ТаблицаДокумента.Ссылка.Валюта КАК ВалютаДокумента,
| НЕОПРЕДЕЛЕНО КАК ВалютаВзаиморасчетов,
| НЕОПРЕДЕЛЕНО КАК ПериодБазыНДС,
| ТаблицаДокумента.Ссылка.Дата КАК ДатаКурса,
|
| ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
| ТаблицаДокумента.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ТаблицаДокумента.Сумма КАК СуммаБезНДС,
| НЕОПРЕДЕЛЕНО КАК СтавкаНДС,
| 0 КАК СуммаНДС,
| 0 КАК СуммаВзаиморасчетов,
| 0 КАК СуммаНДСВзаиморасчетов,
| 0 КАК СуммаБезНДСРегл,
| 0 КАК СуммаБезНДСУпр,
|
| ЛОЖЬ КАК ОтражаетсяВРасчетах,
| НЕОПРЕДЕЛЕНО КАК ОбъектРасчетов,
| ЛОЖЬ КАК ПересчитыватьПоДаннымРасчетов
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТаблицаДокумента
|
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
|";
РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(
Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных);
КонецПроцедуры
Функция ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "МатериалыИРаботыВПроизводстве";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| Строки.НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Период КАК ДатаРегистратора,
| &Организация КАК Организация,
| &Партнер КАК Подразделение,
| Строки.Номенклатура,
| Строки.Характеристика,
| Строки.Серия,
| Строки.АналитикаУчетаПоПартнеру.Назначение КАК Назначение,
| Строки.ЗаказПереработчику КАК ЗаказНаПроизводство,
| Строки.АналитикаУчетаПоПартнеру КАК АналитикаУчетаНоменклатуры,
| -Строки.Количество КАК Количество
|ИЗ
| ВтТаблицаТовары КАК Строки
|
|ГДЕ
| НЕ &ПартионныйУчетВерсии22
| И Строки.ФиксированнаяСтоимость
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаПартииПроизводственныхЗатрат(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ПартииПроизводственныхЗатрат";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаТовары.НомерСтроки КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Период КАК ДатаРегистратора,
| &Организация КАК Организация,
| ТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ТаблицаТовары.АналитикаУчетаПоПартнеру КАК АналитикаУчетаНоменклатуры,
| -ТаблицаТовары.Количество КАК Количество,
| -ТаблицаТовары.СуммаУпр КАК Стоимость,
| -ТаблицаТовары.СуммаУпр КАК СтоимостьБезНДС,
| ТаблицаТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
| &Ссылка КАК ДокументПоступления,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| -ТаблицаТовары.СуммаРегл КАК СтоимостьРегл
|
|ИЗ
| ВтТаблицаТовары КАК ТаблицаТовары
|
|ГДЕ
| (ТаблицаТовары.ФиксированнаяСтоимость
| ИЛИ ТаблицаТовары.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
| И НЕ &ПартионныйУчетВерсии22
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаВыпускПродукции(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ВыпускПродукции";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТаблицаТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ВтТаблицаТовары.КодСтроки КАК КодСтроки,
| &Период КАК Период,
| ВтТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| СУММА(ВтТаблицаТовары.Количество) КАК Количество,
| ВтТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ЗНАЧЕНИЕ(Справочник.РесурсныеСпецификации.ПустаяСсылка) КАК Спецификация,
| ВтТаблицаТовары.ЗаказПереработчику КАК Заказ
|ИЗ
| ВтТаблицаТовары КАК ВтТаблицаТовары
|ГДЕ
| &ПоступлениеПоЗаказам
| И НЕ &ПартионныйУчетВерсии22
|
|СГРУППИРОВАТЬ ПО
| ВтТаблицаТовары.ЗаказПереработчику,
| ВтТаблицаТовары.ВидЗапасов,
| ВтТаблицаТовары.АналитикаУчетаНоменклатуры,
| ВтТаблицаТовары.КодСтроки
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 0 КАК КодСтроки,
| &Период КАК Период,
| ВтТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| СУММА(ВтТаблицаТовары.Количество) КАК Количество,
| ВтТаблицаТовары.ВидЗапасов КАК ВидЗапасов,
| ЗНАЧЕНИЕ(Справочник.РесурсныеСпецификации.ПустаяСсылка) КАК Спецификация,
| ВтТаблицаТовары.Ссылка КАК Заказ
|ИЗ
| ВтТаблицаТовары КАК ВтТаблицаТовары
|ГДЕ
| НЕ &ПоступлениеПоЗаказам
| И НЕ &ПартионныйУчетВерсии22
|
|СГРУППИРОВАТЬ ПО
| ВтТаблицаТовары.Ссылка,
| ВтТаблицаТовары.ЗаказПереработчику,
| ВтТаблицаТовары.ВидЗапасов,
| ВтТаблицаТовары.АналитикаУчетаНоменклатуры,
| ВтТаблицаТовары.КодСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Договор КАК Договор,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Склад КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Ответственный,
| &Автор КАК Автор,
| &Комментарий КАК Комментарий,
| &Валюта КАК Валюта,
| &СуммаДокумента КАК Сумма,
| НЕОПРЕДЕЛЕНО КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| &ИнформацияПоДоговору КАК Дополнительно,
| &ДатаВходящегоДокумента КАК ДатаПервичногоДокумента,
| &НомерВходящегоДокумента КАК НомерПервичногоДокумента,
| ЛОЖЬ КАК СторноИсправление,
| НЕОПРЕДЕЛЕНО КАК СторнируемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| &НаименованиеВходящегоДокумента КАК НаименованиеПервичногоДокумента,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| Документ.ПоступлениеОтПереработчика КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| ТабЧасть.Ссылка.ПоступлениеПоЗаказам И ТабЧасть.КодСтроки <> 0 КАК ПоГрафику,
| ТабЧасть.Распоряжение КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТабЧасть
|ГДЕ
| НЕ ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении > ТабЧасть.Ссылка.Дата
| ИЛИ ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| ТабЧасть.Ссылка.ПоступлениеПоЗаказам И ТабЧасть.КодСтроки <> 0 КАК ПоГрафику,
| ТабЧасть.Распоряжение КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТабЧасть
|ГДЕ
| НЕ ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении > ТабЧасть.Ссылка.Дата
| ИЛИ ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| -ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| -ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТабЧасть
|ГДЕ
| ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
|
| ВЫБОР КОГДА ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ ТОГДА
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ИНАЧЕ
| ТабЧасть.Назначение
| КОНЕЦ КАК Назначение,
|
| ТабЧасть.Количество КАК Количество,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ПоступлениеПоЗаказам
| И ТабЧасть.Ссылка.ВариантПриемкиТоваров
| <> ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным) ТОГДА
| ТабЧасть.Распоряжение
| ИНАЧЕ
| ТабЧасть.Ссылка
| КОНЕЦ КАК Заказ,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ТабЧасть.Ссылка.ДатаПоступления
| ИНАЧЕ
| ТабЧасть.Ссылка.Дата
| КОНЕЦ КАК ДатаПоступления,
|
| ИСТИНА КАК ДоступенДляРасхода,
| ТабЧасть.Ссылка.ПоступлениеПоЗаказам И ТабЧасть.КодСтроки <> 0 КАК ПоГрафику,
| ТабЧасть.Распоряжение КАК РаспоряжениеВГрафике,
| ТабЧасть.Количество КАК КоличествоВГрафике
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата
| И (ТабЧасть.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ИЛИ НЕ ТабЧасть.Ссылка.ПоступлениеПоЗаказам
| ИЛИ ТабЧасть.КодСтроки = 0)";
РаспределениеЗапасовДвижения.ЗапланироватьПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
|
| ВЫБОР КОГДА ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ ТОГДА
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| ИНАЧЕ
| ТабЧасть.Назначение
| КОНЕЦ КАК Назначение,
|
| ТабЧасть.Количество КАК Количество,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ПоступлениеПоЗаказам
| И ТабЧасть.Ссылка.ВариантПриемкиТоваров
| <> ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным) ТОГДА
| ТабЧасть.Распоряжение
| ИНАЧЕ
| ТабЧасть.Ссылка
| КОНЕЦ КАК Заказ,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ДатаПоступления <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА
| ТабЧасть.Ссылка.ДатаПоступления
| ИНАЧЕ
| ТабЧасть.Ссылка.Дата
| КОНЕЦ КАК ДатаПоступления,
|
| ИСТИНА КАК ДоступенДляРасхода,
| ТабЧасть.Ссылка.ПоступлениеПоЗаказам И ТабЧасть.КодСтроки <> 0 КАК ПоГрафику,
| ТабЧасть.Распоряжение КАК РаспоряжениеВГрафике,
| ТабЧасть.Количество КАК КоличествоВГрафике
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ТабЧасть
|ГДЕ
| ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата
| И (ТабЧасть.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ИЛИ НЕ ТабЧасть.Ссылка.ПоступлениеПоЗаказам
| ИЛИ ТабЧасть.КодСтроки = 0)";
РаспределениеЗапасовДвижения.ЗапланироватьПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
КонецПроцедуры
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
Если Запрос <> Неопределено Тогда
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтТаблицаТовары");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтТаблицаТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область Перемещение_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаПоПартнеру КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ВЫБОР КОГДА &ПартионныйУчетВерсии22
| ТОГДА ТаблицаВидыЗапасов.ВидДеятельностиНДС
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ВидДеятельностиНДС,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДСДокумента,
|
| ВЫБОР КОГДА &ПартионныйУчетВерсии22 И &ФИФОСкользящаяОценка
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаПартий
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК АналитикаУчетаПартий,
|
| НЕОПРЕДЕЛЕНО КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК КорВидЗапасов,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| ТаблицаВидыЗапасов.Номенклатура.ГруппаАналитическогоУчета КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеОтПереработчика) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПоступлениеОтПереработчика КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаТовары КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И &ПартионныйУчетВерсии22
| И НЕ ТаблицаВидыЗапасов.ФиксированнаяСтоимость
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
#КонецОбласти
#Область ВнутреннееПоступление_ПУ21_НеФиксированнаяСтоимость
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК Партия,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ЗакупкаПодДеятельность КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| 0 КАК КодСтроки,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорГруппаПродукции,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| ТаблицаВидыЗапасов.Номенклатура.ГруппаАналитическогоУчета КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ТаблицаВидыЗапасов.СуммаУпр
| ИНАЧЕ 0
| КОНЕЦ КАК Стоимость,
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ТаблицаВидыЗапасов.СуммаУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР КОГДА &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ТаблицаВидыЗапасов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| ВЫБОР КОГДА &УправленческийУчетОрганизаций И &УчетГотовойПродукцииПоПлановойСтоимости
| ТОГДА ТаблицаВидыЗапасов.СуммаУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОтПереработчика) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеОтПереработчика) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПоступлениеОтПереработчика КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаТовары КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И НЕ &ПартионныйУчетВерсии22
| И НЕ ТаблицаВидыЗапасов.ФиксированнаяСтоимость
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнутреннееПоступление,
ТекстЗапроса);
#КонецОбласти
#Область ВнутреннееПоступление_ФиксированнаяСтоимость
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК Партия,
| ВЫБОР КОГДА &ПартионныйУчетВерсии22
| ТОГДА ТаблицаВидыЗапасов.ВидДеятельностиНДС
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ЗакупкаПодДеятельность КАК ВидДеятельностиНДСДокумента,
|
| ВЫБОР КОГДА &ПартионныйУчетВерсии22 И &ФИФОСкользящаяОценка
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаПартий
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК АналитикаУчетаПартий,
| ВЫБОР КОГДА &ПартионныйУчетВерсии22 И НЕ &ФИФОСкользящаяОценка
| ТОГДА ТаблицаВидыЗапасов.АналитикаУчетаПартий
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорАналитикаУчетаПартий,
| 0 КАК КодСтроки,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорГруппаПродукции,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| ТаблицаВидыЗапасов.ВидЗапасов.ГруппаПродукции КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| ВЫБОР КОГДА НЕ &ПартионныйУчетВерсии22
| ТОГДА ТаблицаВидыЗапасов.СуммаУпр
| ИНАЧЕ 0
| КОНЕЦ КАК Стоимость,
| ВЫБОР КОГДА НЕ &ПартионныйУчетВерсии22
| ТОГДА ТаблицаВидыЗапасов.СуммаУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьБезНДС,
| ВЫБОР КОГДА НЕ &ПартионныйУчетВерсии22
| ТОГДА ТаблицаВидыЗапасов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| 0 КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ВЫБОР КОГДА &ПартионныйУчетВерсии22
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОтПереработчика)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость)
| КОНЕЦ КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ПоступлениеОтПереработчика) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПоступлениеОтПереработчика КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаТовары КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаВидыЗапасов.ФиксированнаяСтоимость
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнутреннееПоступление,
ТекстЗапроса);
#КонецОбласти
#Область ВнутреннееПоступление_ПУ21_СторноФиксированнаяСтоимость
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК ДокументИсточник,
| НЕОПРЕДЕЛЕНО КАК ПериодДокументаИсточника,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаУчетаПоПартнеру КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК Партия,
| НЕОПРЕДЕЛЕНО КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ЗакупкаПодДеятельность КАК ВидДеятельностиНДСДокумента,
|
| НЕОПРЕДЕЛЕНО КАК АналитикаУчетаПартий,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаПартий,
| 0 КАК КодСтроки,
|
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорГруппаПродукции,
|
| ТаблицаДокумента.Сделка КАК Сделка,
| ТаблицаДокумента.Подразделение КАК Подразделение,
| ТаблицаДокумента.Менеджер КАК Менеджер,
| ТаблицаВидыЗапасов.ВидЗапасов.ГруппаПродукции КАК ГруппаПродукции,
|
| -ТаблицаВидыЗапасов.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
| -ТаблицаВидыЗапасов.СуммаУпр КАК Стоимость,
| -ТаблицаВидыЗапасов.СуммаУпр КАК СтоимостьБезНДС,
| -ТаблицаВидыЗапасов.СуммаРегл КАК СтоимостьРегл,
| 0 КАК НДСРегл,
| 0 КАК СтоимостьУпр,
| 0 КАК НДСУпр,
| 0 КАК СтоимостьЗабалансовая,
| 0 КАК СтоимостьЗабалансоваяРегл,
| 0 КАК ДопРасходы,
| 0 КАК ДопРасходыБезНДС,
| 0 КАК ДопРасходыРегл,
| 0 КАК ДопРасходыУпр,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК КорСтоимость,
|
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыпускПродукцииФиксированнаяСтоимость) КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| ЗНАЧЕНИЕ(Справочник.НастройкиХозяйственныхОпераций.ВыпускПродукцииФиксированнаяСтоимость) КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.ПоступлениеОтПереработчика КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТаблицаТовары КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И НЕ &ПартионныйУчетВерсии22
| И ТаблицаВидыЗапасов.ФиксированнаяСтоимость
| И ТаблицаВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар)";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.ВнутреннееПоступление,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(КомандыПечати, "ЗаданиеНаРазмещение");
ПоступлениеОтПереработчикаЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
#КонецОбласти
#Область ТекущиеДела
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
ОбщиеПараметрыЗапросов = ТекущиеДелаСервер.ОбщиеПараметрыЗапросов();
Доступность =
(ОбщиеПараметрыЗапросов.ЭтоПолноправныйПользователь
Или ПравоДоступа("Просмотр", Метаданные.Документы.ПоступлениеОтПереработчика))
И ПравоДоступа("Просмотр", Метаданные.Документы.ЗаказПереработчику)
И (ПравоДоступа("Добавление", Метаданные.Документы.ПоступлениеОтПереработчика)
ИЛИ ПравоДоступа("Изменение", Метаданные.Документы.ПоступлениеОтПереработчика))
И ПолучитьФункциональнуюОпцию("ИспользоватьПроизводствоНаСтороне");
Если НЕ Доступность Тогда
Возврат;
КонецЕсли;
ХозОперации = Новый Массив(1);
ХозОперации[0] = Перечисления.ХозяйственныеОперации.ПоступлениеОтПереработчика;
ПоступленияОтПереработчиковКОформлению = Обработки.ЖурналДокументовПереработки.КоличествоСтрокКОформлению(ХозОперации);
ДелоРодитель = ТекущиеДела.Найти("ПроизводствоНаСтороне", "Идентификатор");
Если ДелоРодитель = Неопределено Тогда
ДелоРодитель = ТекущиеДела.Добавить();
ДелоРодитель.Идентификатор = "ПроизводствоНаСтороне";
ДелоРодитель.Представление = НСтр("ru = 'Производство на стороне'");
ДелоРодитель.Владелец = Метаданные.Подсистемы.Производство;
КонецЕсли;
ДелоРодитель.ЕстьДела = ДелоРодитель.ЕстьДела Или ПоступленияОтПереработчиковКОформлению > 0;
ПараметрыОткрытия = ПараметрыОткрытияФормыРабочегоМеста();
ПараметрыОткрытия.ПараметрыФормы.Вставить("КлючНазначенияФормы", "ТекущиеДела");
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "ПоступленияОтПереработчиковКОформлению";
Дело.ЕстьДела = ПоступленияОтПереработчиковКОформлению > 0;
Дело.Представление = НСтр("ru = 'Поступления от переработчиков к оформлению (2.4)'");
Дело.Количество = ПоступленияОтПереработчиковКОформлению;
Дело.Важное = Ложь;
Дело.Форма = ПараметрыОткрытия.ИмяФормы;
Дело.ПараметрыФормы = ПараметрыОткрытия.ПараметрыФормы;
Дело.Владелец = "ПроизводствоНаСтороне";
КонецПроцедуры
#КонецОбласти
#Область ФормированиеГиперссылкиВЖурналеДокументовПереработки
Функция ЕстьДокументыКОформлению(Параметры)
Возврат Обработки.ЖурналДокументовПереработки.ЕстьДокументыКОформлению(
Параметры, Перечисления.ХозяйственныеОперации.ПоступлениеОтПереработчика);
КонецФункции
Функция СформироватьГиперссылкуКОформлению(Параметры) Экспорт
ЕстьПраваНаЧтение = ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.ЗаказыПоставщикам)
И ПравоДоступа("Чтение", Метаданные.РегистрыНакопления.ТоварыКПоступлению);
Если Не ЕстьПраваНаЧтение Тогда
Возврат Неопределено;
КонецЕсли;
ТекстГиперссылки = НСтр("ru = 'Поступление продукции'");
ТекстСсылки = "Обработка.ЖурналДокументовПереработки.Форма.СписокДокументыПередачиКОформлению/СтраницаПоступления";
Если ЕстьДокументыКОформлению(Параметры) Тогда
Гиперссылка = Новый ФорматированнаяСтрока(ТекстГиперссылки,,,, ТекстСсылки);
Иначе
Гиперссылка = Новый ФорматированнаяСтрока(ТекстГиперссылки,, ЦветаСтиля.НезаполненноеПолеТаблицы,, ТекстСсылки);
КонецЕсли;
Возврат Гиперссылка;
КонецФункции
#КонецОбласти
#Область ОбновлениеИнформационнойБазы
#КонецОбласти
#Область ЗаполнениеДокументов
Функция ТабличныеЧастиДляОформленияОтчетаПереработчика() Экспорт
Результат = Новый Структура("Товары,ВозвратныеОтходы");
Результат.Товары =
"ВЫБРАТЬ
| ТоварыПоступления.НомерСтроки КАК НомерСтроки,
| ТоварыПоступления.Ссылка КАК Ссылка,
| ТоварыПоступления.КодСтроки КАК КодСтроки,
| ТоварыПоступления.Номенклатура КАК Номенклатура,
| ТоварыПоступления.Характеристика КАК Характеристика,
| ТоварыПоступления.Назначение КАК Назначение,
| ТоварыПоступления.Упаковка КАК Упаковка,
| ТоварыПоступления.Количество КАК Количество,
| ТоварыПоступления.КоличествоУпаковок КАК КоличествоУпаковок
|ИЗ
| Документ.ПоступлениеОтПереработчика.Товары КАК ТоварыПоступления
|ГДЕ
| ТоварыПоступления.Ссылка В(&Поступления)";
Результат.ВозвратныеОтходы =
"ВЫБРАТЬ
| ВозвратныеОтходыПоступления.НомерСтроки КАК НомерСтроки,
| ВозвратныеОтходыПоступления.Ссылка КАК Ссылка,
| ВозвратныеОтходыПоступления.КодСтроки КАК КодСтроки,
| ВозвратныеОтходыПоступления.Номенклатура КАК Номенклатура,
| ВозвратныеОтходыПоступления.Характеристика КАК Характеристика,
| ВозвратныеОтходыПоступления.Назначение КАК Назначение,
| ВозвратныеОтходыПоступления.Упаковка КАК Упаковка,
| ВозвратныеОтходыПоступления.Цена КАК Цена,
| ВозвратныеОтходыПоступления.Сумма КАК Сумма,
| ВозвратныеОтходыПоступления.Количество КАК Количество,
| ВозвратныеОтходыПоступления.КоличествоУпаковок КАК КоличествоУпаковок
|ИЗ
| Документ.ПоступлениеОтПереработчика.ВозвратныеОтходы КАК ВозвратныеОтходыПоступления
|ГДЕ
| ВозвратныеОтходыПоступления.Ссылка В(&Поступления)";
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли