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