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