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