#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("Закупки");
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("СерийныйУчет");
МеханизмыДокумента.Добавить("АдресныйСклад");
АктОРасхожденияхПослеПриемкиЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.АктОРасхожденияхПослеПриемки") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаЗаказыПоставщикам(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры);
ПринятьТоварНаСклад(Запрос, ТекстыЗапроса, Регистры);
ОформитьПоступлениеТоваровПоДвухходовке(Запрос, ТекстыЗапроса, Регистры);
ОформитьПриобретениеТоваровПоДвухходовке(Запрос, ТекстыЗапроса, Регистры);
ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры);
ОформитьИзлишкиНедостачиНаСкладе(Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
Функция СтатусыДокументаИзменяемыеИзСписка() Экспорт
Таблица = ОбщегоНазначенияУТ.ТаблицаСтатусовИзменяемыхИзСписка();
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыАктаОРасхождениях.НеСогласовано);
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыАктаОРасхождениях.Согласовано);
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыАктаОРасхождениях.КВыполнению);
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыАктаОРасхождениях.Отработано);
Возврат Таблица;
КонецФункции
Функция ИменаРеквизитовДляЗаполненияПараметровУказанияСерий() Экспорт
ИменаРеквизитов = "ТипОснованияАктаОРасхождении,Дата,ХозяйственнаяОперация";
Возврат ИменаРеквизитов;
КонецФункции
Функция ПараметрыУказанияСерий(Объект) Экспорт
ПараметрыУказанияСерий = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
ПараметрыУказанияСерий.ПолноеИмяОбъекта = "Документ.АктОРасхожденияхПослеПриемки";
ПараметрыСерийСклада = Новый Структура;
ПараметрыСерийСклада.Вставить("ИспользоватьСерииНоменклатуры", ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатуры"));
ПараметрыСерийСклада.Вставить("УчитыватьСебестоимостьПоСериям",ПолучитьФункциональнуюОпцию("УчитыватьСебестоимостьПоСериямСклад"));
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПараметрыСерийСклада.ИспользоватьСерииНоменклатуры;
Если Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратТоваровОтКлиента
Или Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратОтКомиссионера
Или РасхожденияКлиентСервер.ТипОснованияПоступлениеТоваровОтХранителя(Объект.ТипОснованияАктаОРасхождении) Тогда
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента);
ИначеЕсли Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПриобретениеТоваровУслуг
Или Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение Тогда
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПриемкаОтПоставщика);
Иначе
ТекстИслючения = НСтр("ru = 'Не поддерживается получение параметров серий для акта с типом основания %ТипАкта%.'");
ТекстИслючения = СтрЗаменить(ТекстИслючения, "%ТипАкта%", Объект.ТипОснованияАктаОРасхождении);
ВызватьИсключение ТекстИслючения;
КонецЕсли;
ПараметрыУказанияСерий.СерииПриПланированииОтгрузкиУказываютсяВТЧСерии = Истина;
ПараметрыУказанияСерий.ПоляСвязи.Добавить("ЗаполненоПоОснованию");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("ДокументОснование");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Склад");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Действие");
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Назначение");
ПараметрыУказанияСерий.ЭтоНакладная = Истина;
ПараметрыУказанияСерий.ТолькоСерииДляСебестоимости = Ложь;
ПараметрыУказанияСерий.Дата = Объект.Дата;
ОперацииВПути = Новый Массив();
ОперацииВПути.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути);
ОперацииВПути.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути);
ОперацииВПути.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути);
ОперацииНеотфактуровки = Новый Массив();
ОперацииНеотфактуровки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки);
ОперацииНеотфактуровки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки);
ХозОперацияТоварыВПутиИНеотфактуровка = ОперацииВПути.Найти(Объект.ХозяйственнаяОперация) <> Неопределено
Или ОперацииНеотфактуровки.Найти(Объект.ХозяйственнаяОперация) <> Неопределено;
ЭтоТоварыВПути = ОперацииВПути.Найти(Объект.ХозяйственнаяОперация) <> Неопределено;
ПараметрыУказанияСерий.ПараметрыЗапроса.Вставить("ЭтоТоварыВПути", ЭтоТоварыВПути);
ПараметрыУказанияСерий.ПараметрыЗапроса.Вставить("ИспользуетсяДокументПоступлениеТоваров", ХозОперацияТоварыВПутиИНеотфактуровка);
Возврат ПараметрыУказанияСерий;
КонецФункции
Функция ТекстЗапросаЗаполненияСтатусовУказанияСерий(ПараметрыУказанияСерий) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Склад,
| Товары.ЗаполненоПоОснованию,
| Товары.ДокументОснование,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Серия,
| Товары.Количество,
| Товары.СтатусУказанияСерий,
| Товары.Действие,
| Товары.НомерСтроки
|ПОМЕСТИТЬ Товары
|ИЗ
| &Товары КАК Товары
|;
|
|
|ВЫБРАТЬ
| Товары.Склад,
| Товары.ЗаполненоПоОснованию,
| Товары.ДокументОснование,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Действие,
| СУММА(Товары.Количество) КАК Количество,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры КАК ВидНоменклатуры
|ПОМЕСТИТЬ ТоварыДляЗапроса
|ИЗ
| Товары КАК Товары
|
|СГРУППИРОВАТЬ ПО
| Товары.Склад,
| Товары.ЗаполненоПоОснованию,
| Товары.ДокументОснование,
| Товары.Номенклатура,
| Товары.Характеристика,
| Товары.Назначение,
| Товары.Действие,
| ВЫРАЗИТЬ(Товары.Номенклатура КАК Справочник.Номенклатура).ВидНоменклатуры
|;
|
|
|ВЫБРАТЬ
| Серии.Склад,
| Серии.ЗаполненоПоОснованию,
| Серии.ДокументОснование,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Действие,
| Серии.Количество
|ПОМЕСТИТЬ Серии
|ИЗ
| &Серии КАК Серии
|;
|
|
|ВЫБРАТЬ
| Серии.Склад,
| Серии.ЗаполненоПоОснованию,
| Серии.ДокументОснование,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Действие,
| СУММА(Серии.Количество) КАК Количество
|ПОМЕСТИТЬ СерииДляЗапроса
|ИЗ
| Серии КАК Серии
|
|СГРУППИРОВАТЬ ПО
| Серии.Склад,
| Серии.ЗаполненоПоОснованию,
| Серии.ДокументОснование,
| Серии.Номенклатура,
| Серии.Характеристика,
| Серии.Назначение,
| Серии.Действие
|;
|
|
|ВЫБРАТЬ
| Товары.НомерСтроки КАК НомерСтроки,
| Товары.СтатусУказанияСерий КАК СтарыйСтатусУказанияСерий,
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ИЛИ &ИспользуетсяДокументПоступлениеТоваров
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 14
| ИНАЧЕ 13
| КОНЕЦ
| КОГДА Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| И &Дата >= Склады.ДатаНачалаОрдернойСхемыПриПоступлении
| ТОГДА 0
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И (ТоварыДляЗапроса.Количество > 0
| ИЛИ ТоварыДляЗапроса.ЗаполненоПоОснованию)
| ТОГДА 10
| ИНАЧЕ 9
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И (ТоварыДляЗапроса.Количество > 0
| ИЛИ ТоварыДляЗапроса.ЗаполненоПоОснованию)
| ТОГДА 8
| ИНАЧЕ 7
| КОНЕЦ
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПриемке
| И (НЕ Склады.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ &Дата < Склады.ДатаНачалаОрдернойСхемыПриПоступлении)
| И (ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПриемкеПоВозвратуОтКлиента
| И &ПриемкаПоВозвратуОтКлиента
| ИЛИ ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПриемкеОтПоставщика
| И &ПриемкаОтПоставщика)
| ТОГДА ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьОстаткиСерий
| ТОГДА ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И (ТоварыДляЗапроса.Количество > 0
| ИЛИ ТоварыДляЗапроса.ЗаполненоПоОснованию)
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.Количество = ЕСТЬNULL(СерииДляЗапроса.Количество, 0)
| И (ТоварыДляЗапроса.Количество > 0
| ИЛИ ТоварыДляЗапроса.ЗаполненоПоОснованию)
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК СтатусУказанияСерий,
| ВЫБОР
| КОГДА ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям
| И &ИспользуетсяДокументПоступлениеТоваров
| ТОГДА
| ВЫБОР
| КОГДА ((ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчетСерийВНеотфактурованныхПоставкахТоваров
| И НЕ &ЭтоТоварыВПути)
| ИЛИ (ТоварыДляЗапроса.ВидНоменклатуры.ПолитикаУчетаСерий.УчетТоваровВПутиОтПоставщикаПоСериям)
| И &ЭтоТоварыВПути)
| ТОГДА ВЫБОР
| КОГДА Товары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| ТОГДА 18
| ИНАЧЕ 17
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК СтатусУказанияСерийТоварыУПартнеров
|ПОМЕСТИТЬ Статусы
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ТоварыДляЗапроса КАК ТоварыДляЗапроса
| ЛЕВОЕ СОЕДИНЕНИЕ СерииДляЗапроса КАК СерииДляЗапроса
| ПО ТоварыДляЗапроса.Номенклатура = СерииДляЗапроса.Номенклатура
| И ТоварыДляЗапроса.Характеристика = СерииДляЗапроса.Характеристика
| И ТоварыДляЗапроса.Назначение = СерииДляЗапроса.Назначение
| И ТоварыДляЗапроса.Склад = СерииДляЗапроса.Склад
| И ТоварыДляЗапроса.ДокументОснование = СерииДляЗапроса.ДокументОснование
| И ТоварыДляЗапроса.ЗаполненоПоОснованию = СерииДляЗапроса.ЗаполненоПоОснованию
| И ТоварыДляЗапроса.Действие = СерииДляЗапроса.Действие
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
| ПО ПолитикиУчетаСерий.Склад = Склады.Ссылка
| ПО (ПолитикиУчетаСерий.Склад = ТоварыДляЗапроса.Склад)
| И ТоварыДляЗапроса.ВидНоменклатуры = ПолитикиУчетаСерий.Ссылка
| ПО Товары.Номенклатура = ТоварыДляЗапроса.Номенклатура
| И Товары.Характеристика = ТоварыДляЗапроса.Характеристика
| И Товары.Назначение = ТоварыДляЗапроса.Назначение
| И Товары.Склад = ТоварыДляЗапроса.Склад
| И Товары.ДокументОснование = ТоварыДляЗапроса.ДокументОснование
| И Товары.ЗаполненоПоОснованию = ТоварыДляЗапроса.ЗаполненоПоОснованию
| И Товары.Действие = ТоварыДляЗапроса.Действие
|;
|
|
|ВЫБРАТЬ
| Статусы.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА &ИспользуетсяДокументПоступлениеТоваров
| ТОГДА Статусы.СтатусУказанияСерийТоварыУПартнеров
| ИНАЧЕ Статусы.СтатусУказанияСерий
| КОНЕЦ КАК СтатусУказанияСерий
|ИЗ
| Статусы КАК Статусы
|ГДЕ
| ВЫБОР
| КОГДА &ИспользуетсяДокументПоступлениеТоваров
| ТОГДА Статусы.СтатусУказанияСерийТоварыУПартнеров
| ИНАЧЕ Статусы.СтатусУказанияСерий
| КОНЕЦ <> Статусы.СтарыйСтатусУказанияСерий
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Документы.РасходныйОрдерНаТовары.ДобавитьКомандуСоздатьНаОснованииРасходныйОрдерНаТовары(КомандыСозданияНаОсновании);
Документы.ПоручениеЭкспедитору.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
КомандаСоздатьНаОсновании = Обработки.СправочноеРазмещениеНоменклатуры.ДобавитьКомандуСоздатьНаОсновании(
КомандыСозданияНаОсновании);
Если КомандаСоздатьНаОсновании <> Неопределено Тогда
СтатусыАкта = Новый Массив;
СтатусыАкта.Добавить(Перечисления.СтатусыАктаОРасхождениях.КВыполнению);
СтатусыАкта.Добавить(Перечисления.СтатусыАктаОРасхождениях.Отработано);
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(КомандаСоздатьНаОсновании,
"Статус",
СтатусыАкта,
ВидСравнения.ВСписке);
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(КомандаСоздатьНаОсновании,
"СпособОтраженияРасхождений",
Перечисления.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления,
ВидСравнения.Равно);
КонецЕсли;
АктОРасхожденияхПослеПриемкиЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.АктОРасхожденияхПослеПриемки) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.АктОРасхожденияхПослеПриемки.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.АктОРасхожденияхПослеПриемки);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции =
"ИспользоватьАктыРасхожденийПослеПриемки,
|ИспользоватьАктыРасхожденийПослеПриемкиПоПоступлениямОтПереработчика2_5";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
АктОРасхожденияхПослеПриемкиЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказов", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Склад = "Объект.Товары.Склад";
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказовРаботами", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования = "Объект.Товары.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Подразделение = "Объект.Товары.Подразделение";
Возврат МакетФормы;
КонецФункции
Функция ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСПродажи();
ПараметрыЗаполнения.Организация = Объект.Организация;
ПараметрыЗаполнения.Дата = Объект.Дата;
ПараметрыЗаполнения.Договор = Объект.Договор;
ПараметрыЗаполнения.Подразделение = Объект.Подразделение;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента Или
Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя Тогда
ПараметрыЗаполнения.ВозвратТоваровОтКлиента = Истина;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера Тогда
ПараметрыЗаполнения.ВозвратТоваровОтКомиссионера = Истина;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСЗакупки();
ПараметрыЗаполнения.Контрагент = Объект.Контрагент;
ПараметрыЗаполнения.Договор = Объект.Договор;
ПараметрыЗаполнения.Период = Объект.Дата;
ХозОперацииЗакупкаУПоставщика = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозОперацииЗакупкаВСтранахЕАЭС = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС);
ХозОперацииЗакупкаПоИмпорту = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(
Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
Если ХозОперацииЗакупкаУПоставщика.Найти(Объект.ХозяйственнаяОперация) <> Неопределено
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет Тогда
ПараметрыЗаполнения.ПриобретениеТоваров = Истина;
ПараметрыЗаполнения.ПриобретениеРабот = Истина;
ИначеЕсли ХозОперацииЗакупкаВСтранахЕАЭС.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ПараметрыЗаполнения.ВвозТоваровИзТаможенногоСоюза = Истина;
ИначеЕсли ХозОперацииЗакупкаПоИмпорту.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ПараметрыЗаполнения.ИмпортТоваров = Истина;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи Тогда
ПараметрыЗаполнения.ПриобретениеТоваров = Истина;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссию Тогда
ПараметрыЗаполнения.ПриемНаКомиссию = Истина;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаЧерезПодотчетноеЛицо Тогда
ПараметрыЗаполнения.ЗакупкаЧерезПодотчетноеЛицо = Истина;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
Функция ПараметрыВыбораСтатейИАналитик(ХозяйственнаяОперация) Экспорт
МассивПараметровВыбора = Новый Массив;
#Область ПрочиеРасходыСтатьяРасходов
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект.Товары";
ПараметрыВыбора.Статья = "СтатьяРасходов";
ПараметрыВыбора.ДоступностьПоОперации = (ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаЧерезПодотчетноеЛицо
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемНаКомиссию
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС);
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("ТоварыСтатьяРасходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("ТоварыАналитикаРасходов");
ПараметрыВыбора.УсловияДоступностиСтатьиВСтроках.Вставить("СписатьНаРасходы", Истина);
ПараметрыВыбора.УсловияДоступностиСтатьиВСтроках.Вставить("ЗаполненоПоОснованию", Ложь);
МассивПараметровВыбора.Добавить(ПараметрыВыбора);
#КонецОбласти
Возврат МассивПараметровВыбора;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Партнер)
| И ЗначениеРазрешено(ТипОснованияАктаОРасхождении)";
КонецПроцедуры
#КонецОбласти
#Область Печать
Функция ПравилаПечатиЗаданияНаОтборРазмещение() Экспорт
ПравилаПечати = Новый Массив;
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.ОперацияПоступления = Истина;
ПравилаПечатиЗадания.СкладыВТЧ = Истина;
ПравилаПечати.Добавить(ПравилаПечатиЗадания);
ПравилаПечатиЗадания = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ПравилаПечатиЗаданияНаОтборРазмещение();
ПравилаПечатиЗадания.ОперацияПоступления = Истина;
ПравилаПечатиЗадания.ОтражениеИзлишков = Истина;
ПравилаПечатиЗадания.СкладыВТЧ = Истина;
ПравилаПечати.Добавить(ПравилаПечатиЗадания);
Возврат ПравилаПечати;
КонецФункции
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Поля.Добавить("ТипОснованияАктаОРасхождении");
Поля.Добавить("Дата");
Поля.Добавить("Номер");
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Данные.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратТоваровОтКлиента Тогда
ШаблонПредставления = НСтр("ru = 'Акт о расхождениях после возврата от клиента %1 от %2'");
ИначеЕсли Данные.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение Тогда
ШаблонПредставления = НСтр("ru = 'Акт о расхождениях после приемки товаров на хранение %1 от %2'");
ИначеЕсли Данные.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратТоваровОтХранителя Тогда
ШаблонПредставления = НСтр("ru = 'Акт о расхождениях после поступления товаров от хранителя %1 от %2'");
ИначеЕсли Данные.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратОтКомиссионера Тогда
ШаблонПредставления = НСтр("ru = 'Акт о расхождениях после поступления товаров от комиссионера %1 от %2'");
Иначе
ШаблонПредставления = НСтр("ru = 'Акт о расхождениях после поступления %1 от %2'");
КонецЕсли;
Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонПредставления,
Данные.Номер,
Данные.Дата);
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
#Область Проведение
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеШапки.Дата КАК Период,
| ДанныеШапки.Номер КАК Номер,
| ДанныеШапки.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеШапки.Проведен КАК Проведен,
| ДанныеШапки.Партнер КАК Партнер,
| ДанныеШапки.Контрагент КАК Контрагент,
| ДанныеШапки.Организация КАК Организация,
| ДанныеШапки.Валюта КАК Валюта,
| ДанныеШапки.Статус КАК Статус,
| ДанныеШапки.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| ДанныеШапки.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеШапки.Договор КАК Договор,
| ДанныеШапки.Подразделение КАК Подразделение,
| ДанныеШапки.Менеджер КАК Менеджер,
| ДанныеШапки.Комментарий КАК Комментарий,
| ДанныеШапки.СпособОтраженияРасхождений КАК СпособОтраженияРасхождений,
| ДанныеШапки.ТипОснованияАктаОРасхождении КАК ТипОснованияАктаОРасхождении,
| ДанныеШапки.Автор КАК Автор,
| ДанныеШапки.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки КАК ДанныеШапки
|ГДЕ
| ДанныеШапки.Ссылка = &Ссылка";
Реквизиты = Запрос.Выполнить().Выбрать();
Реквизиты.Следующий();
Запрос.УстановитьПараметр("Период", Реквизиты.Период);
Запрос.УстановитьПараметр("ПометкаУдаления", Реквизиты.ПометкаУдаления);
Запрос.УстановитьПараметр("Проведен", Реквизиты.Проведен);
Запрос.УстановитьПараметр("Партнер", Реквизиты.Партнер);
Запрос.УстановитьПараметр("Контрагент", Реквизиты.Контрагент);
Запрос.УстановитьПараметр("Валюта", Реквизиты.Валюта);
Запрос.УстановитьПараметр("Статус", Реквизиты.Статус);
Запрос.УстановитьПараметр("Организация", Реквизиты.Организация);
Запрос.УстановитьПараметр("ЦенаВключаетНДС", Реквизиты.ЦенаВключаетНДС);
Запрос.УстановитьПараметр("ХозяйственнаяОперация", Реквизиты.ХозяйственнаяОперация);
Запрос.УстановитьПараметр("Договор", Реквизиты.Договор);
Запрос.УстановитьПараметр("Подразделение", Реквизиты.Подразделение);
Запрос.УстановитьПараметр("Менеджер", Реквизиты.Менеджер);
Запрос.УстановитьПараметр("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.АктОРасхожденияхПослеПриемки"));
Запрос.УстановитьПараметр("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
Запрос.УстановитьПараметр("Номер", Реквизиты.Номер);
Запрос.УстановитьПараметр("СпособОтраженияРасхождений", Реквизиты.СпособОтраженияРасхождений);
Запрос.УстановитьПараметр("СкладскаяОперация", СкладскаяОперацияПоТипуОснования(Реквизиты.ТипОснованияАктаОРасхождении));
Запрос.УстановитьПараметр("Комментарий", Реквизиты.Комментарий);
Запрос.УстановитьПараметр("Автор", Реквизиты.Автор);
Если ЗначениеЗаполнено(Реквизиты.Договор) Тогда
ШаблонСтроки = "ru = 'По договору ""%1""'";
ИнформацияПоДоговору = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСтроки, Реквизиты.Договор);
КонецЕсли;
Запрос.УстановитьПараметр("ИнформацияПоДоговору", ИнформацияПоДоговору);
Если ЗакупкиСервер.РаспоряжениеНаПриемкуТовараНакладная(Реквизиты.ВариантПриемкиТоваров) Тогда
Запрос.УстановитьПараметр("НакладнаяЯвляетсяРаспоряжением", Истина);
Иначе
Запрос.УстановитьПараметр("НакладнаяЯвляетсяРаспоряжением", Ложь);
КонецЕсли;
ОперацииДвухходовки = ЗакупкиСервер.ХозяйственныеОперацииРаздельнойЗакупкиБезОтборов();
Запрос.УстановитьПараметр("ОперацииДвухходовки", ОперацииДвухходовки);
КонецПроцедуры
Функция УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапроса)
ТекстУсловияНаОдноходовку =
"(ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА ИСТИНА
| КОГДА НЕ ТаблицаТовары.Ссылка.Договор.ВариантОформленияЗакупок ЕСТЬ NULL
| И ТаблицаТовары.Ссылка.Договор.ВариантОформленияЗакупок = ЗНАЧЕНИЕ(Перечисление.ВариантыОформленияЗакупок.НеРазделять)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ)";
ТекстУсловияНаДвухходовку =
"(ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА ЛОЖЬ
| КОГДА НЕ ТаблицаТовары.Ссылка.Договор.ВариантОформленияЗакупок ЕСТЬ NULL
| И ТаблицаТовары.Ссылка.Договор.ВариантОформленияЗакупок <> ЗНАЧЕНИЕ(Перечисление.ВариантыОформленияЗакупок.НеРазделять)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ)";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеНаОдноходовку", ТекстУсловияНаОдноходовку);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеНаДвухходовку", ТекстУсловияНаДвухходовку);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОформитьИзлишкиНедостачиНаСкладе(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| (ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку) КАК РазрешеноОтражатьОстатокПоОрдерномуСкладу,
| ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу) КАК РазрешеноОтражатьОстатокПоНеОрдерномуСкладу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И (
| (ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
| И &УсловиеНаОдноходовку)
| )
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| (ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное) КАК РазрешеноОтражатьОстатокПоОрдерномуСкладу,
| ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| И ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы) КАК РазрешеноОтражатьОстатокПоНеОрдерномуСкладу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И &УсловиеНаОдноходовку
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И (
| (ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
| )
| )
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| (ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы) КАК РазрешеноОтражатьОстатокПоОрдерномуСкладу,
| ЛОЖЬ КАК РазрешеноОтражатьОстатокПоНеОрдерномуСкладу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И &УсловиеНаДвухходовку
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И (
| (ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
| )
| )
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| (ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы) КАК РазрешеноОтражатьОстатокПоОрдерномуСкладу,
| ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| И ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы) КАК РазрешеноОтражатьОстатокПоНеОрдерномуСкладу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И &УсловиеНаОдноходовку
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы))
| ";
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыНаСкладах", Регистры) Тогда
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ОформитьИзлишкиНедостачиНаСкладеСОтборомПоОрдерности(Запрос, ТекстыЗапроса, "ТоварыНаСкладах", ТекстЗапросаДокумента);
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| (ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы) КАК РазрешеноОтражатьОстатокПоОрдерномуСкладу,
| ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| И ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы) КАК РазрешеноОтражатьОстатокПоНеОрдерномуСкладу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И Не ТаблицаТовары.Ссылка.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаПоступлениеИзТоваровВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаНеотфактурованнаяПоставка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСПоступлениеИзТоваровВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСНеотфактурованнаяПоставка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуПоступлениеИзТоваровВПути))
| И (
| (ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку)))
| ИЛИ
| ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы))
| )
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| (ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы) КАК РазрешеноОтражатьОстатокПоОрдерномуСкладу,
| ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| И ТаблицаТовары.Действие <> ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы) КАК РазрешеноОтражатьОстатокПоНеОрдерномуСкладу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И Не ТаблицаТовары.Ссылка.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаПоступлениеИзТоваровВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаНеотфактурованнаяПоставка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСПоступлениеИзТоваровВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСНеотфактурованнаяПоставка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуПоступлениеИзТоваровВПути))
| И (
| (ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
| )
| ИЛИ (
| ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы))
| )
| )";
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыКОформлениюИзлишковНедостач", Регистры) Тогда
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ОформитьИзлишкиНедостачиНаСкладеСОтборомПоОрдерности(Запрос, ТекстыЗапроса, "ТоварыКОформлениюИзлишковНедостач", ТекстЗапросаДокумента);
КонецЕсли;
КонецПроцедуры
Функция ТекстЗапросаТаблицаЗаказыПоставщикам(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ЗаказыПоставщикам";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса = "
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| ТаблицаТовары.ЗаказПоставщику КАК ЗаказПоставщику,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.КодСтроки КАК КодСтроки,
| ВЫБОР КОГДА ТаблицаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)) ТОГДА
| ТаблицаТовары.Склад
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
| КОНЕЦ КАК Склад,
| ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество КАК Заказано,
| ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество КАК КОформлению
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.КодСтроки <> 0
| И ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| )
|
| И ТаблицаТовары.КоличествоПоДокументу <> ТаблицаТовары.Количество
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
|
| И &УсловиеНаДвухходовку
|
|";
ТекстЗапроса = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапроса);
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Процедура ЗапланироватьПоступлениеТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.ДокументОснование КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ТаблицаТовары.ЗаказПоставщику КАК Заказ,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| НЕОПРЕДЕЛЕНО КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ВЫБОР
| КОГДА ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть)
| )
| ТОГДА
| ТаблицаТовары.Ссылка.ВариантПриемкиТоваров
| ИНАЧЕ
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| КОНЕЦ КАК ВариантПриемкиТоваров,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| ТаблицаТовары.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| )
| И ТаблицаТовары.КодСтроки = 0 КАК СверхЗаказа,
| ТаблицаТовары.Серия КАК Серия,
| -(ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| ) КАК ПоступлениеПоЗаказам,
| ИСТИНА КАК ЭтоНакладная
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И &УсловиеНаОдноходовку
|
| И ТаблицаТовары.КоличествоПоДокументу <> ТаблицаТовары.Количество
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
|
| И (
| (
| НЕ (ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| И ТаблицаТовары.КодСтроки = 0)
| )
| ИЛИ
| ТаблицаТовары.ЗаказПоставщику В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| )
|
|";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ЗапланироватьПоступлениеТоваров(
Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДокумента,
"ТаблицаТовары");
КонецПроцедуры
Процедура ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.ДокументОснование КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ТаблицаТовары.ЗаказПоставщику КАК Заказ,
| ТаблицаТовары.Ссылка.Договор КАК Договор,
| ТаблицаТовары.Ссылка.Соглашение КАК Соглашение,
| ТаблицаТовары.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| )
| И ТаблицаТовары.КодСтроки = 0 КАК СверхЗаказа,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| ТаблицаТовары.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| -(ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ВЫБОР
| КОГДА ТаблицаТовары.ДокументОснование ССЫЛКА Документ.ПриобретениеТоваровУслуг
| ТОГДА
| (ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриемкаТоваровНаХранение).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ВозвратТоваровОтКлиента).ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка), ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПоступлениеТоваровОтХранителя).ПоРаспоряжениям, ЛОЖЬ)
| )
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ
| КАК ПоступлениеПоЗаказам,
| ЛОЖЬ КАК ЭтоКорректировкаВнутриНакладной
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.КоличествоПоДокументу <> ТаблицаТовары.Количество
| И &УсловиеНаОдноходовку
|
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
|
| И (
| (
| НЕ (ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| И ТаблицаТовары.КодСтроки = 0)
| )
| ИЛИ
| ТаблицаТовары.ЗаказПоставщику В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| )
|";
ТекущийОбъектМетаданных = Метаданные.Документы.АктОРасхожденияхПослеПриемки;
ДополнительныеПоляСоединенияССериями = Новый Массив();
ДополнительныеПоляСоединенияССериями.Добавить("ЗаполненоПоОснованию");
ДополнительныеПоляСоединенияССериями.Добавить("ДокументОснование");
ДополнительныеПоляСоединенияССериями.Добавить("Действие");
ДополнительныеПоляСоединенияССериями.Добавить("Назначение");
ПодменаПолейСерий = Новый Соответствие();
ПодменаПолейСерий.Вставить("ДанныеСерий.Количество",
"-(ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество)");
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.ИмяТЧСерии = "Серии";
ПараметрыМодульногоПроведения.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМодульногоПроведения.ДополнительныеПоляСоединенияССериями = ДополнительныеПоляСоединенияССериями;
ПараметрыМодульногоПроведения.ПодменаПолейСерий = ПодменаПолейСерий;
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыКПоступлению", Регистры) Тогда
РегистрТоварыКПоступлению = "ТоварыКПоступлению";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ОформитьПоступлениеТоваровПоОдноходовкеСНастройкойСоединенияСерий(Запрос,
ТекстыЗапроса,
РегистрТоварыКПоступлению,
ТекстЗапросаДокумента,
ТекущийОбъектМетаданных,
ПараметрыМодульногоПроведения);
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.ДокументОснование КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ТаблицаТовары.ЗаказПоставщику КАК Заказ,
| ТаблицаТовары.Ссылка.Договор КАК Договор,
| ТаблицаТовары.Ссылка.Соглашение КАК Соглашение,
| ТаблицаТовары.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| )
| И ТаблицаТовары.КодСтроки = 0 КАК СверхЗаказа,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| ТаблицаТовары.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| -(ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ВЫБОР
| КОГДА ТаблицаТовары.ДокументОснование ССЫЛКА Документ.ПриобретениеТоваровУслуг
| ТОГДА
| (ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриемкаТоваровНаХранение).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ВозвратТоваровОтКлиента).ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка), ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПоступлениеТоваровОтХранителя).ПоРаспоряжениям, ЛОЖЬ)
| )
| ИНАЧЕ
| ЛОЖЬ
| КОНЕЦ
| КАК ПоступлениеПоЗаказам,
| ЛОЖЬ КАК ЭтоКорректировкаВнутриНакладной
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.КоличествоПоДокументу <> ТаблицаТовары.Количество
| И &УсловиеНаОдноходовку
|
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
|";
ТекущийОбъектМетаданных = Метаданные.Документы.АктОРасхожденияхПослеПриемки;
ДополнительныеПоляСоединенияССериями = Новый Массив();
ДополнительныеПоляСоединенияССериями.Добавить("ЗаполненоПоОснованию");
ДополнительныеПоляСоединенияССериями.Добавить("ДокументОснование");
ДополнительныеПоляСоединенияССериями.Добавить("Действие");
ДополнительныеПоляСоединенияССериями.Добавить("Назначение");
ПодменаПолейСерий = Новый Соответствие();
ПодменаПолейСерий.Вставить("ДанныеСерий.Количество",
"-(ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество)");
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.ИмяТЧСерии = "Серии";
ПараметрыМодульногоПроведения.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМодульногоПроведения.ДополнительныеПоляСоединенияССериями = ДополнительныеПоляСоединенияССериями;
ПараметрыМодульногоПроведения.ПодменаПолейСерий = ПодменаПолейСерий;
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыНаСкладах", Регистры) Тогда
РегистрТоварыНаСкладах = "ТоварыНаСкладах";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ОформитьПоступлениеТоваровПоОдноходовкеСНастройкойСоединенияСерий(Запрос,
ТекстыЗапроса,
РегистрТоварыНаСкладах,
ТекстЗапросаДокумента,
ТекущийОбъектМетаданных,
ПараметрыМодульногоПроведения);
КонецЕсли;
КонецПроцедуры
Процедура ПринятьТоварНаСклад(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Ячейка,
| НЕОПРЕДЕЛЕНО КАК Помещение,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| (
| ВЫБОР
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Договор
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Соглашение
| КОГДА НЕ (ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриемкаТоваровНаХранение).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ВозвратТоваровОтКлиента).ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка), ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПоступлениеТоваровОтХранителя).ПоРаспоряжениям, ЛОЖЬ)
| )
| И ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
|
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
| КОГДА НЕ ТаблицаТовары.ЗаказПоставщику В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| ТОГДА
| ТаблицаТовары.ЗаказПоставщику
| ИНАЧЕ
| ТаблицаТовары.ДокументОснование.ЗаказПоставщику
| КОНЕЦ
| ) КАК Распоряжение,
| ТаблицаТовары.ДокументОснование.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ЛОЖЬ КАК ЭтоУпаковочныйЛист,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| (ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| (ТаблицаТовары.КоличествоУпаковокПоДокументу - ТаблицаТовары.КоличествоУпаковок) КАК КоличествоУпаковок,
| ЛОЖЬ КАК Принимается,
| ИСТИНА КАК Принят,
| ЛОЖЬ КАК ЭтоПриемкаБезРаспоряжения
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
| И (
| (
| (ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления))
| )
| ИЛИ
| (ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
| И (НЕ ТаблицаТовары.ЗаказПоставщику ССЫЛКА Документ.ЗаказПоставщику
| ИЛИ ТаблицаТовары.ЗаказПоставщику = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка))
| )
| )
| И &УсловиеНаДвухходовку
| ИЛИ
| (ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
| И (
| (ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| И ТаблицаТовары.КодСтроки = 0)
| )
| )
| )
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Ячейка,
| НЕОПРЕДЕЛЕНО КАК Помещение,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| (
| ВЫБОР
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Договор
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Соглашение
| КОГДА НЕ (ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриемкаТоваровНаХранение).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ВозвратТоваровОтКлиента).ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка), ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПоступлениеТоваровОтХранителя).ПоРаспоряжениям, ЛОЖЬ)
| )
| И ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
|
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
| КОГДА НЕ ТаблицаТовары.ЗаказПоставщику В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| ТОГДА
| ТаблицаТовары.ЗаказПоставщику
| ИНАЧЕ
| ТаблицаТовары.ДокументОснование.ЗаказПоставщику
| КОНЕЦ
| ) КАК Распоряжение,
| ТаблицаТовары.ДокументОснование.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ЛОЖЬ КАК ЭтоУпаковочныйЛист,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| (ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| (ТаблицаТовары.КоличествоУпаковокПоДокументу - ТаблицаТовары.КоличествоУпаковок) КАК КоличествоУпаковок,
| ЛОЖЬ КАК Принимается,
| ИСТИНА КАК Принят,
| ЛОЖЬ КАК ЭтоПриемкаБезРаспоряжения
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы))
| И &УсловиеНаОдноходовку
|";
ПараметрыМетода = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМетода.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМетода.ЭтоАктОРасхождениях = Истина;
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыКПоступлению", Регистры) Тогда
РегистрТоварыКПоступлению = "ТоварыКПоступлению";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ПринятьТоварНаСкладСНастройками(Запрос, ТекстыЗапроса, РегистрТоварыКПоступлению, ТекстЗапросаДокумента, ПараметрыМетода);
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Ячейка,
| НЕОПРЕДЕЛЕНО КАК Помещение,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| (
| ВЫБОР
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Договор
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Соглашение
| КОГДА НЕ (ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриемкаТоваровНаХранение).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ВозвратТоваровОтКлиента).ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка), ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПоступлениеТоваровОтХранителя).ПоРаспоряжениям, ЛОЖЬ)
| )
| И ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
|
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
| КОГДА НЕ ТаблицаТовары.ЗаказПоставщику В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| ТОГДА
| ТаблицаТовары.ЗаказПоставщику
| ИНАЧЕ
| ТаблицаТовары.ДокументОснование.ЗаказПоставщику
| КОНЕЦ
| ) КАК Распоряжение,
| ТаблицаТовары.ДокументОснование.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ЛОЖЬ КАК ЭтоУпаковочныйЛист,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| (ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| (ТаблицаТовары.КоличествоУпаковокПоДокументу - ТаблицаТовары.КоличествоУпаковок) КАК КоличествоУпаковок,
| ЛОЖЬ КАК Принимается,
| ИСТИНА КАК Принят,
| ЛОЖЬ КАК ЭтоПриемкаБезРаспоряжения
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу))
| И &УсловиеНаДвухходовку
|
|";
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыКПоступлению", Регистры) Тогда
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ПринятьТоварНаСклад(Запрос, ТекстыЗапроса, "ТоварыКПоступлению", ТекстЗапросаДокумента, "ТаблицаТовары");
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Ячейка,
| НЕОПРЕДЕЛЕНО КАК Помещение,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| (
| ВЫБОР
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Договор
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Соглашение
| КОГДА НЕ (ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриемкаТоваровНаХранение).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ВозвратТоваровОтКлиента).ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка), ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПоступлениеТоваровОтХранителя).ПоРаспоряжениям, ЛОЖЬ)
| )
| И ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
|
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
| КОГДА НЕ ТаблицаТовары.ЗаказПоставщику В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| ТОГДА
| ТаблицаТовары.ЗаказПоставщику
| ИНАЧЕ
| ТаблицаТовары.ДокументОснование.ЗаказПоставщику
| КОНЕЦ
| ) КАК Распоряжение,
| ТаблицаТовары.ДокументОснование.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ЛОЖЬ КАК ЭтоУпаковочныйЛист,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| -(ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| -(ТаблицаТовары.КоличествоУпаковокПоДокументу - ТаблицаТовары.КоличествоУпаковок) КАК КоличествоУпаковок,
| ЛОЖЬ КАК Принимается,
| ИСТИНА КАК Принят,
| ЛОЖЬ КАК ЭтоПриемкаБезРаспоряжения
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
| И &УсловиеНаОдноходовку
| ";
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыНаСкладах", Регистры) Тогда
ПараметрыМетода = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМетода.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМетода.ЭтоАктОРасхождениях = Истина;
РегистрТоварыНаСкладах = "ТоварыНаСкладах";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ПринятьТоварНаСкладСНастройками(Запрос, ТекстыЗапроса, РегистрТоварыНаСкладах, ТекстЗапросаДокумента, ПараметрыМетода);
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Ячейка,
| НЕОПРЕДЕЛЕНО КАК Помещение,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| (
| ВЫБОР
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Договор
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Соглашение
| КОГДА НЕ (ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриемкаТоваровНаХранение).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ВозвратТоваровОтКлиента).ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка), ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПоступлениеТоваровОтХранителя).ПоРаспоряжениям, ЛОЖЬ)
| )
| И ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
|
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
| КОГДА НЕ ТаблицаТовары.ЗаказПоставщику В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| ТОГДА
| ТаблицаТовары.ЗаказПоставщику
| ИНАЧЕ
| ТаблицаТовары.ДокументОснование.ЗаказПоставщику
| КОНЕЦ
| ) КАК Распоряжение,
| ТаблицаТовары.ДокументОснование.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ЛОЖЬ КАК ЭтоУпаковочныйЛист,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| (ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| (ТаблицаТовары.КоличествоУпаковокПоДокументу - ТаблицаТовары.КоличествоУпаковок) КАК КоличествоУпаковок,
| ЛОЖЬ КАК Принимается,
| ИСТИНА КАК Принят,
| ЛОЖЬ КАК ЭтоПриемкаБезРаспоряжения
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
| И ТаблицаТовары.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| И &УсловиеНаДвухходовку
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Склад КАК Склад,
| НЕОПРЕДЕЛЕНО КАК Ячейка,
| НЕОПРЕДЕЛЕНО КАК Помещение,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| (
| ВЫБОР
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Договор
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным))
| ТОГДА
| ТаблицаТовары.ДокументОснование.Соглашение
| КОГДА НЕ (ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриобретениеТоваровУслуг).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПриемкаТоваровНаХранение).ПоступлениеПоЗаказам, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ВозвратТоваровОтКлиента).ЗаявкаНаВозвратТоваровОтКлиента <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка), ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ВЫРАЗИТЬ(ТаблицаТовары.ДокументОснование КАК Документ.ПоступлениеТоваровОтХранителя).ПоРаспоряжениям, ЛОЖЬ)
| )
| И ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаПоЗаказамИНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
|
| КОГДА ТаблицаТовары.ДокументОснование.ВариантПриемкиТоваров =
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ТОГДА
| ТаблицаТовары.ДокументОснование
| КОГДА НЕ ТаблицаТовары.ЗаказПоставщику В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
| ТОГДА
| ТаблицаТовары.ЗаказПоставщику
| ИНАЧЕ
| ТаблицаТовары.ДокументОснование.ЗаказПоставщику
| КОНЕЦ
| ) КАК Распоряжение,
| ТаблицаТовары.ДокументОснование.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Упаковка КАК Упаковка,
| ЛОЖЬ КАК ЭтоУпаковочныйЛист,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| (ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| (ТаблицаТовары.КоличествоУпаковокПоДокументу - ТаблицаТовары.КоличествоУпаковок) КАК КоличествоУпаковок,
| ЛОЖЬ КАК Принимается,
| ИСТИНА КАК Принят,
| ЛОЖЬ КАК ЭтоПриемкаБезРаспоряжения
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления))
| И &УсловиеНаОдноходовку
|";
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыКПоступлению", Регистры) Тогда
ПараметрыМетода = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМетода.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМетода.ЭтоАктОРасхождениях = Истина;
РегистрТоварыНаСкладах = "ТоварыКПоступлению";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ПринятьТоварНаСкладСНастройками(Запрос, ТекстыЗапроса, РегистрТоварыНаСкладах, ТекстЗапросаДокумента, ПараметрыМетода);
КонецЕсли;
КонецПроцедуры
Процедура ОформитьПоступлениеТоваровПоДвухходовке(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.ДокументОснование КАК Накладная,
| ТаблицаТовары.ЗаказПоставщику КАК Заказ,
| ТаблицаТовары.Ссылка.Дата КАК Дата,
| ТаблицаТовары.Ссылка.Договор КАК Договор,
| НЕОПРЕДЕЛЕНО КАК Соглашение,
| ТаблицаТовары.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Ссылка.Партнер КАК Отправитель,
| ТаблицаТовары.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерийНаСкладах,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерийТоварыУПартнеров,
| ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| )
| И ТаблицаТовары.КодСтроки = 0 КАК СверхЗаказа,
| ТаблицаТовары.Серия КАК Серия,
| (ТаблицаТовары.КоличествоПоДокументу - ТаблицаТовары.Количество) КАК Количество,
| ТаблицаТовары.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| ) КАК ПоступлениеПоЗаказам,
| ИСТИНА КАК ЭтоНакладная,
| ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу) КАК РазрешеноОтражатьОстатокПоОрдерномуСкладу,
| ТаблицаТовары.Действие В (ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу)) КАК РазрешеноОтражатьОстатокПоНеОрдерномуСкладу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В (&Ссылка)
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И &УсловиеНаДвухходовку
|
| И ТаблицаТовары.КоличествоПоДокументу <> ТаблицаТовары.Количество
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
|
|";
ТекущийОбъектМетаданных = Метаданные.Документы.АктОРасхожденияхПослеПриемки;
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыКПоступлению", Регистры) Тогда
РегистрыПоступления = "ТоварыКПоступлению";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ОформитьПоступлениеТоваровПоДвухходовкеАкты(
Запрос,
ТекстыЗапроса,
РегистрыПоступления,
ТекстЗапросаДокумента,
ТекущийОбъектМетаданных,
"Серии",
"ТаблицаТовары");
КонецЕсли;
КонецПроцедуры
Процедура ОформитьПриобретениеТоваровПоДвухходовке(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.ДокументОснование КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.ЗаказПоставщику КАК Заказ,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| ИсточникДанных.Ссылка.Соглашение КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ИсточникДанных.Ссылка.Дата КАК ДатаПланируемогоПоступления,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИсточникДанных.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| )
| И ИсточникДанных.КодСтроки = 0 КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| ) КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И ИсточникДанных.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ВЫБОР
| КОГДА ИсточникДанных.Ссылка.ХозяйственнаяОперация В(ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| И ИсточникДанных.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет)
| И ИсточникДанных.КоличествоПоДокументу <> ИсточникДанных.Количество
| И ИсточникДанных.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ИсточникДанных.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть)
| )
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.ДокументОснование КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.ЗаказПоставщику КАК Заказ,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| ИсточникДанных.Ссылка.Соглашение КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ИсточникДанных.Ссылка.Дата КАК ДатаПланируемогоПоступления,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИСТИНА КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| -ИсточникДанных.Количество КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| ) КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И ИсточникДанных.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ВЫБОР
| КОГДА ИсточникДанных.Ссылка.ХозяйственнаяОперация В(ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| И ИсточникДанных.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет)
| И ИсточникДанных.КоличествоПоДокументу <> ИсточникДанных.Количество
| И ИсточникДанных.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ИсточникДанных.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть)
| )
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.ДокументОснование КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.ЗаказПоставщику КАК Заказ,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| ИсточникДанных.Ссылка.Соглашение КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ИсточникДанных.Ссылка.Дата КАК ДатаПланируемогоПоступления,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИСТИНА КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| (ИсточникДанных.КоличествоПоДокументу - ИсточникДанных.Количество) КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| ) КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И ИсточникДанных.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ВЫБОР
| КОГДА ИсточникДанных.Ссылка.ХозяйственнаяОперация В(ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| И ИсточникДанных.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет)
| И ИсточникДанных.КоличествоПоДокументу <> ИсточникДанных.Количество
| И ИсточникДанных.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ИсточникДанных.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
| И ИсточникДанных.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ИсточникДанных.Ссылка КАК Ссылка,
| ИсточникДанных.ДокументОснование КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ИсточникДанных.ЗаказПоставщику КАК Заказ,
| ИсточникДанных.Ссылка.Договор КАК Договор,
| ИсточникДанных.Ссылка.Соглашение КАК Соглашение,
| ИсточникДанных.Ссылка.ВариантПриемкиТоваров КАК ВариантПриемкиТоваров,
| ИсточникДанных.Ссылка.Дата КАК Дата,
| ИсточникДанных.Ссылка.Дата КАК ДатаПланируемогоПоступления,
| ИсточникДанных.Номенклатура КАК Номенклатура,
| ИсточникДанных.Характеристика КАК Характеристика,
| ИсточникДанных.Назначение КАК Назначение,
| ИсточникДанных.Серия КАК Серия,
| ИсточникДанных.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ИсточникДанных.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| )
| И ИсточникДанных.КодСтроки = 0 КАК СверхЗаказа,
| ИсточникДанных.Склад КАК Склад,
| ИсточникДанных.Ссылка.Партнер КАК Отправитель,
| ИсточникДанных.Ссылка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| -(ИсточникДанных.КоличествоПоДокументу - ИсточникДанных.Количество) КАК Количество,
| ИСТИНА КАК ЭтоНакладная,
| ИсточникДанных.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)
| ) КАК ПоступлениеПоЗаказам
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ИсточникДанных
|ГДЕ
| ИсточникДанных.Ссылка В (&Ссылка)
| И ИсточникДанных.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ВЫБОР
| КОГДА ИсточникДанных.Ссылка.ХозяйственнаяОперация В(ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| И ИсточникДанных.Ссылка.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет)
| И ИсточникДанных.КоличествоПоДокументу <> ИсточникДанных.Количество
| И ИсточникДанных.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ИсточникДанных.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
| И ИсточникДанных.ЗаказПоставщику НЕ В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка))
|";
СкладыСервер.ОформитьПриобретениеТоваровПоДвухходовке(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента);
КонецПроцедуры
Процедура ЗапланироватьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Период,
| ТаблицаТовары.Ссылка КАК Заказ,
| ТаблицаТовары.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ТаблицаТовары.Ссылка.Партнер КАК Получатель,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| -(ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТаблицаТовары.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТаблицаТовары.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТаблицаТовары.Ссылка.Дата
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления))";
СкладыСервер.ЗапланироватьОтгрузкуТоваров(
Запрос,
ТекстыЗапроса,
Регистры,
ТекстЗапросаДокумента);
КонецПроцедуры
Процедура ОформитьОтгрузкуТоваров(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Период,
| ТаблицаТовары.Ссылка КАК Заказ,
| ТаблицаТовары.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ТаблицаТовары.Ссылка.Партнер КАК Получатель,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| -(ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И (
| ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления))
| И ТаблицаТовары.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТаблицаТовары.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТаблицаТовары.Ссылка.Дата
| ИЛИ
| (
| ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу)
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений
| = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриобретениеТоваровУслуг)
| )
| )";
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМодульногоПроведения.ТребуетсяОтборПоОрдерностиСкладаПриПоступлении = Истина;
ПараметрыМодульногоПроведения.ТребуетсяОтборПоОрдерностиСкладаНаОтражениеИзлишковНедостач = Истина;
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыКОтгрузке", Регистры) Тогда
РегистрТоварыКОтгрузке = "ТоварыКОтгрузке";
СкладыСервер.ОформитьОтгрузкуТоваровАкты(
Запрос,
ТекстыЗапроса,
РегистрТоварыКОтгрузке,
ТекстЗапросаДокумента,
ПараметрыМодульногоПроведения);
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Период,
| ТаблицаТовары.Ссылка КАК Заказ,
| ТаблицаТовары.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ТаблицаТовары.Ссылка.Партнер КАК Получатель,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| (ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу))
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
|";
ПодменаПолейСерий = Новый Соответствие();
ПодменаПолейСерий.Вставить("ДанныеСерий.Количество",
"ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество");
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМодульногоПроведения.ИмяТЧСерии = "Серии";
ПараметрыМодульногоПроведения.ОбъектМетаданных = Метаданные.Документы.АктОРасхожденияхПослеПриемки;
ПараметрыМодульногоПроведения.ТребуетсяОтборПоОрдерностиСкладаПриПоступлении = Истина;
ПараметрыМодульногоПроведения.ТребуетсяОтборПоОрдерностиСкладаНаОтражениеИзлишковНедостач = Истина;
ПараметрыМодульногоПроведения.ПодменаПолейСерий = ПодменаПолейСерий;
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыКОтгрузке", Регистры) Тогда
РегистрТоварыКОтгрузке = "ТоварыКОтгрузке";
СкладыСервер.ОформитьОтгрузкуТоваровАкты(
Запрос,
ТекстыЗапроса,
РегистрТоварыКОтгрузке,
ТекстЗапросаДокумента,
ПараметрыМодульногоПроведения);
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Период,
| ТаблицаТовары.Ссылка КАК Заказ,
| ТаблицаТовары.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ТаблицаТовары.Ссылка.Партнер КАК Получатель,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| (ТаблицаТовары.КоличествоПоДокументу
| - ТаблицаТовары.Количество) КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу))
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
|
| И &УсловиеНаОдноходовку
|";
ПодменаПолейСерий = Новый Соответствие();
ПодменаПолейСерий.Вставить("ДанныеСерий.Количество",
"ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество");
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМодульногоПроведения.ИмяТЧСерии = "Серии";
ПараметрыМодульногоПроведения.ОбъектМетаданных = Метаданные.Документы.АктОРасхожденияхПослеПриемки;
ПараметрыМодульногоПроведения.ТребуетсяОтборПоОрдерностиСкладаПриПоступлении = Истина;
ПараметрыМодульногоПроведения.ТребуетсяОтборПоОрдерностиСкладаНаОтражениеИзлишковНедостач = Истина;
ПараметрыМодульногоПроведения.ПодменаПолейСерий = ПодменаПолейСерий;
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыНаСкладах", Регистры) Тогда
РегистрТоварыНаСкладах = "ТоварыНаСкладах";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ОформитьОтгрузкуТоваровАкты(
Запрос,
ТекстыЗапроса,
РегистрТоварыНаСкладах,
ТекстЗапросаДокумента,
ПараметрыМодульногоПроведения);
КонецЕсли;
ТекстЗапросаДокумента =
"ВЫБРАТЬ
| ТаблицаТовары.Ссылка КАК Ссылка,
| ТаблицаТовары.Ссылка.Дата КАК Период,
| ТаблицаТовары.Ссылка КАК Заказ,
| ТаблицаТовары.Ссылка КАК Накладная,
| ЛОЖЬ КАК Исправление,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| ТаблицаТовары.Ссылка.Партнер КАК Получатель,
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
| (ТаблицаТовары.Количество
| - ТаблицаТовары.КоличествоПоДокументу) КАК Количество,
| ЛОЖЬ КАК СверхЗаказа,
| ЛОЖЬ КАК Отменено,
| ИСТИНА КАК ЭтоНакладная,
| ЛОЖЬ КАК ОтгрузкаПоЗаказу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.Ссылка В(&Ссылка)
| И ТаблицаТовары.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТаблицаТовары.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления))
| И ТаблицаТовары.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТаблицаТовары.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
|
| И &УсловиеНаОдноходовку
|";
ПодменаПолейСерий = Новый Соответствие();
ПодменаПолейСерий.Вставить("ДанныеСерий.Количество",
"ДанныеСерий.Количество - ДанныеСерий.КоличествоПоДокументу");
ПараметрыМодульногоПроведения = СкладыСервер.ПараметрыМодульногоПроведения();
ПараметрыМодульногоПроведения.СинонимТаблицыДокумента = "ТаблицаТовары";
ПараметрыМодульногоПроведения.ИмяТЧСерии = "Серии";
ПараметрыМодульногоПроведения.ОбъектМетаданных = Метаданные.Документы.АктОРасхожденияхПослеПриемки;
ПараметрыМодульногоПроведения.ТребуетсяОтборПоОрдерностиСкладаПриПоступлении = Истина;
ПараметрыМодульногоПроведения.ТребуетсяОтборПоОрдерностиСкладаНаОтражениеИзлишковНедостач = Ложь;
ПараметрыМодульногоПроведения.ПодменаПолейСерий = ПодменаПолейСерий;
Если ПроведениеДокументов.ТребуетсяТаблицаДляДвижений("ТоварыНаСкладах", Регистры) Тогда
РегистрТоварыНаСкладах = "ТоварыНаСкладах";
ТекстЗапросаДокумента = УстановитьУсловияПоРаздельнойЗакупке(ТекстЗапросаДокумента);
СкладыСервер.ОформитьОтгрузкуТоваровАкты(
Запрос,
ТекстыЗапроса,
РегистрТоварыНаСкладах,
ТекстЗапросаДокумента,
ПараметрыМодульногоПроведения);
КонецЕсли;
КонецПроцедуры
Функция ТекстЗапросаВТСерии(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВТСерии";
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаСерии.Номенклатура КАК Номенклатура,
| ТаблицаСерии.Характеристика КАК Характеристика,
| ТаблицаСерии.Серия КАК Серия,
| ТаблицаСерии.Склад КАК Склад,
| ТаблицаСерии.Действие КАК Действие,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаСерии.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаСерии.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| &СкладскаяОперация КАК СкладскаяОперация,
| ВЫБОР
| КОГДА СпрСклад.ИспользоватьОрдернуюСхемуПриПоступлении
| И СпрСклад.ДатаНачалаОрдернойСхемыПриПоступлении <= &Период
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОрдернаяСхемаПриПриемке,
| ВЫБОР
| КОГДА СпрСклад.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
| И СпрСклад.ДатаНачалаОрдернойСхемыПриОтраженииИзлишковНедостач <= &Период
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОрдернаяСхемаПриОтраженииИзлишковНедостач,
| ВЫБОР
| КОГДА НЕ СпрСклад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ СпрСклад.ДатаНачалаОрдернойСхемыПриПоступлении > &Период
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоСкладскоеДвижение,
| ТаблицаСерии.Количество - ТаблицаСерии.КоличествоПоДокументу КАК Расхождения
|ПОМЕСТИТЬ ВТСерии
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Серии КАК ТаблицаСерии
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклад
| ПО (СпрСклад.Ссылка = ТаблицаСерии.Склад)
|ГДЕ
| ТаблицаСерии.Ссылка = &Ссылка
| И ТаблицаСерии.Количество <> ТаблицаСерии.КоличествоПоДокументу
| И НЕ ТаблицаСерии.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления)
| И НЕ ТаблицаСерии.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОжидатьДопоставкуБезОформления)
| И &Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению), ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.Серия,
| ТаблицаТовары.Склад,
| ТаблицаТовары.Действие,
| ВЫБОР
| КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ)
| ТОГДА ТаблицаТовары.Назначение
| ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ,
| &СкладскаяОперация,
| ВЫБОР
| КОГДА СпрСклад.ИспользоватьОрдернуюСхемуПриПоступлении
| И СпрСклад.ДатаНачалаОрдернойСхемыПриПоступлении <= &Период
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ,
| ВЫБОР
| КОГДА СпрСклад.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
| И СпрСклад.ДатаНачалаОрдернойСхемыПриОтраженииИзлишковНедостач <= &Период
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ,
| ВЫБОР
| КОГДА НЕ СпрСклад.ИспользоватьОрдернуюСхемуПриПоступлении
| ИЛИ СпрСклад.ДатаНачалаОрдернойСхемыПриПоступлении > &Период
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ,
| ТаблицаТовары.Количество - ТаблицаТовары.КоличествоПоДокументу
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК СпрСклад
| ПО (СпрСклад.Ссылка = ТаблицаТовары.Склад)
|ГДЕ
| ТаблицаТовары.Ссылка = &Ссылка
| И ТаблицаТовары.КоличествоПоДокументу <> ТаблицаТовары.Количество
| И ТаблицаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И НЕ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления)
| И НЕ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОжидатьДопоставкуБезОформления)
| И &Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению), ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияСерийТоваров";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВТСерии", ТекстыЗапроса) Тогда
ТекстЗапросаВТСерии(Запрос, ТекстыЗапроса)
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Период КАК Период,
| &Ссылка КАК Документ,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Склад КАК Отправитель,
| НЕОПРЕДЕЛЕНО КАК Получатель,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ЭтоСкладскоеДвижение КАК ЭтоСкладскоеДвижение,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтражениеНедостач) КАК СкладскаяОперация,
| ТаблицаТовары.Расхождения КАК Количество
|ИЗ
| ВтСерии КАК ТаблицаТовары
|ГДЕ
|
| ТаблицаТовары.ОрдернаяСхемаПриПриемке
| И НЕ ТаблицаТовары.ОрдернаяСхемаПриОтраженииИзлишковНедостач
| И ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &Ссылка КАК Документ,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Склад КАК Отправитель,
| НЕОПРЕДЕЛЕНО КАК Получатель,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ЭтоСкладскоеДвижение КАК ЭтоСкладскоеДвижение,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтражениеНедостач) КАК СкладскаяОперация,
| ТаблицаТовары.Расхождения КАК Количество
|ИЗ
| ВтСерии КАК ТаблицаТовары
|ГДЕ
| НЕ ТаблицаТовары.ОрдернаяСхемаПриПриемке
| И ТаблицаТовары.ОрдернаяСхемаПриОтраженииИзлишковНедостач
| И &СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ &СкладскаяОперация = ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика)
| И (ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Период КАК Период,
| &Ссылка КАК Документ,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Склад КАК Отправитель,
| НЕОПРЕДЕЛЕНО КАК Получатель,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ЭтоСкладскоеДвижение КАК ЭтоСкладскоеДвижение,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтражениеНедостач) КАК СкладскаяОперация,
| ТаблицаТовары.Расхождения КАК Количество
|ИЗ
| ВтСерии КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.ОрдернаяСхемаПриПриемке
| И НЕ ТаблицаТовары.ОрдернаяСхемаПриОтраженииИзлишковНедостач
| И &СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ &СкладскаяОперация = ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика)
| И (ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку))
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Период КАК Период,
| &Ссылка КАК Документ,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Склад КАК Отправитель,
| &Партнер КАК Получатель,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ЭтоСкладскоеДвижение КАК ЭтоСкладскоеДвижение,
| &СкладскаяОперация КАК СкладскаяОперация,
| ТаблицаТовары.Расхождения КАК Количество
|ИЗ
| ВтСерии КАК ТаблицаТовары
|ГДЕ
| &Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
|
| И ТаблицаТовары.ОрдернаяСхемаПриПриемке
| И НЕ ТаблицаТовары.ОрдернаяСхемаПриОтраженииИзлишковНедостач
| И (ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
|
| ИЛИ ((&СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ &СкладскаяОперация = ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика))
| И (ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))))
|
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Период КАК Период,
| &Ссылка КАК Документ,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Склад КАК Отправитель,
| &Партнер КАК Получатель,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ЭтоСкладскоеДвижение КАК ЭтоСкладскоеДвижение,
| &СкладскаяОперация КАК СкладскаяОперация,
| ТаблицаТовары.Расхождения КАК Количество
|ИЗ
| ВтСерии КАК ТаблицаТовары
|ГДЕ
| НЕ ТаблицаТовары.ОрдернаяСхемаПриПриемке
| И ТаблицаТовары.ОрдернаяСхемаПриОтраженииИзлишковНедостач
| И &СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ &СкладскаяОперация = ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика)
| И (ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Период КАК Период,
| &Ссылка КАК Документ,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Склад КАК Отправитель,
| НЕОПРЕДЕЛЕНО КАК Получатель,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ЭтоСкладскоеДвижение КАК ЭтоСкладскоеДвижение,
| ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ОтражениеНедостач) КАК СкладскаяОперация,
| ТаблицаТовары.Расхождения КАК Количество
|ИЗ
| ВтСерии КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.ОрдернаяСхемаПриПриемке
| И ТаблицаТовары.ОрдернаяСхемаПриОтраженииИзлишковНедостач
| И (
| (&СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ &СкладскаяОперация = ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика)
| И (ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку)))
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы)
| )
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Период КАК Период,
| &Ссылка КАК Документ,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Склад КАК Отправитель,
| &Партнер КАК Получатель,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.ЭтоСкладскоеДвижение КАК ЭтоСкладскоеДвижение,
| &СкладскаяОперация КАК СкладскаяОперация,
| ТаблицаТовары.Расхождения КАК Количество
|ИЗ
| ВтСерии КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.ОрдернаяСхемаПриПриемке
| И ТаблицаТовары.ОрдернаяСхемаПриОтраженииИзлишковНедостач
| И (
| (&СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ &СкладскаяОперация = ЗНАЧЕНИЕ(Перечисление.СкладскиеОперации.ПриемкаОтПоставщика)
| И (ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное)
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть)))
| ИЛИ ТаблицаТовары.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы)
| )";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция СкладскаяОперацияПоТипуОснования(ТипОснованияАктаОРасхождении)
Если ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПриобретениеТоваровУслуг
Или ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение Тогда
СкладскаяОперация = Перечисления.СкладскиеОперации.ПриемкаОтПоставщика;
ИначеЕсли ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратТоваровОтКлиента
Или ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратОтКомиссионера
Или РасхожденияКлиентСервер.ТипОснованияПоступлениеТоваровОтХранителя(ТипОснованияАктаОРасхождении) Тогда
СкладскаяОперация = Перечисления.СкладскиеОперации.ПриемкаПоВозвратуОтКлиента;
Иначе
СкладскаяОперация = Неопределено;
КонецЕсли;
Возврат СкладскаяОперация;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтОснований", ТекстыЗапроса) Тогда
ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Партнер КАК Партнер,
| &Контрагент КАК Контрагент,
| &Договор КАК Договор,
| ВЫБОР
| КОГДА ДанныеДокумента.КоличествоНаправленийДеятельности = 1
| ТОГДА ДанныеДокумента.НаправлениеДеятельности
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК НаправлениеДеятельности,
| ВЫБОР
| КОГДА ДанныеДокумента.КоличествоМестХранения = 1
| ТОГДА ДанныеДокумента.МестоХранения
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК МестоХранения,
| &Подразделение КАК Подразделение,
| &Менеджер КАК Ответственный,
| &Комментарий КАК Комментарий,
| &Валюта КАК Валюта,
| 0 КАК Сумма,
| &Статус КАК Статус,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| &ИнформацияПоДоговору КАК Дополнительно,
| &Период КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| &Автор КАК Автор,
| ЛОЖЬ КАК СторноИсправление,
| НЕОПРЕДЕЛЕНО КАК СторнируемыйДокумент,
| НЕОПРЕДЕЛЕНО КАК ИсправляемыйДокумент,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|ИЗ
| ВтОснований КАК ДанныеДокумента";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтОснований";
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| МАКСИМУМ(
| ЕСТЬNULL(ТаблицаТовары.ДокументОснование.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка))) КАК НаправлениеДеятельности,
| МАКСИМУМ(ТаблицаТовары.Склад) КАК МестоХранения,
| КОЛИЧЕСТВО(
| РАЗЛИЧНЫЕ ЕСТЬNULL(ТаблицаТовары.ДокументОснование.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка))) КАК КоличествоНаправленийДеятельности,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТаблицаТовары.Склад) КАК КоличествоМестХранения
|ПОМЕСТИТЬ ВтОснований
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТаблицаТовары
| ПО ДанныеДокумента.Ссылка = ТаблицаТовары.Ссылка
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| &Ссылка";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.АктОРасхожденияхПослеПриемки";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ТекстыЗапросаВременныхТаблиц = Новый Соответствие();
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ПереопределениеРасчетаПараметров.Вставить("ИнформацияПоДоговору", """""");
ПереопределениеРасчетаПараметров.Вставить("НакладнаяЯвляетсяРаспоряжением",
"ТаблицаТовары.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)");
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ТекстыЗапросаВременныхТаблиц.Вставить("ВтОснований", ТекстЗапросаВтОснований(Запрос, ТекстыЗапроса));
СинонимТаблицыДокумента = "ДанныеДокумента";
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество - ТабЧасть.КоличествоПоДокументу КАК Количество,
| ТабЧасть.КодСтроки <> 0 КАК ПоГрафику,
|
| ВЫБОР КОГДА ТабЧасть.Ссылка.ВариантПриемкиТоваров В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным)) ТОГДА
|
| ТабЧасть.Ссылка.Соглашение
|
| КОГДА ТабЧасть.Ссылка.ВариантПриемкиТоваров В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных)) ТОГДА
|
| ТабЧасть.Ссылка.Договор
|
| ИНАЧЕ
| ТабЧасть.ЗаказПоставщику
| КОНЕЦ КАК РаспоряжениеВГрафике
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Номенклатура.ТипНоменклатуры В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТабЧасть.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТабЧасть.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТабЧасть.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
| И ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ТабЧасть.КоличествоПоДокументу - ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Номенклатура.ТипНоменклатуры В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТабЧасть.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТабЧасть.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТабЧасть.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))
| И ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам = ЛОЖЬ
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.КоличествоПоДокументу - ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Номенклатура.ТипНоменклатуры В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТабЧасть.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата
| И НЕ ТабЧасть.Ссылка.ХозяйственнаяОперация В(
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаПоступлениеИзТоваровВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаНеотфактурованнаяПоставка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСПоступлениеИзТоваровВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСНеотфактурованнаяПоставка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуПоступлениеИзТоваровВПути))
| И (ТабЧасть.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы))
| ИЛИ (ТабЧасть.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТабЧасть.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение))
| И ТабЧасть.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть)))
| И (НЕ ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
| ИЛИ ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриОтраженииИзлишковНедостач > ТабЧасть.Ссылка.Дата)";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество - ТабЧасть.КоличествоПоДокументу КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Номенклатура.ТипНоменклатуры В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТабЧасть.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И НЕ(ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата)
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриОтраженииИзлишковНедостач <= ТабЧасть.Ссылка.Дата
| И НЕ ТабЧасть.Ссылка.ХозяйственнаяОперация В(
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаПоступлениеИзТоваровВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаНеотфактурованнаяПоставка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСПоступлениеИзТоваровВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСНеотфактурованнаяПоставка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуПоступлениеИзТоваровВПути))
| И ТабЧасть.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТабЧасть.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение)
| И ТабЧасть.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть))";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| -(ТабЧасть.Количество - ТабЧасть.КоличествоПоДокументу) КАК Количество,
| ВЫБОР КОГДА ТабЧасть.Ссылка.ВариантПриемкиТоваров В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.МожетПроисходитьБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоЗаказамИНакладным),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.НеРазделенаПоНакладным)) ТОГДА
|
| ТабЧасть.Ссылка.Соглашение
|
| КОГДА ТабЧасть.Ссылка.ВариантПриемкиТоваров В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамБезЗаказовИНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеЗаказовИлиНакладных),
| ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.ПоДоговорамПослеНакладных)) ТОГДА
|
| ТабЧасть.Ссылка.Договор
|
| КОГДА ТабЧасть.Ссылка.ВариантПриемкиТоваров = ЗНАЧЕНИЕ(Перечисление.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным)
| ИЛИ ТабЧасть.ЗаказПоставщику В(
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка),
| ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка)) ТОГДА
| ТабЧасть.ДокументОснование
| ИНАЧЕ
| ТабЧасть.ЗаказПоставщику
| КОНЕЦ КАК РаспоряжениеВГрафике
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Номенклатура.ТипНоменклатуры В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТабЧасть.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И (ТабЧасть.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиНедостачуНаПрочиеРасходы),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОтнестиПерепоставленноеНаПрочиеДоходы),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления))
| ИЛИ (ТабЧасть.Ссылка.СпособОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления)
| И НЕ ТабЧасть.Ссылка.ТипОснованияАктаОРасхождении = ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение))
| И ТабЧасть.Действие В(
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачу),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьНедостачуИОжидатьДопоставку),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленное),
| ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ОформитьПерепоставленноеИВернуть)))
| И (ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата
| И НЕ ТабЧасть.Ссылка.ХозяйственнаяОперация В(
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути)))";
РаспределениеЗапасовДвижения.ОтменитьЗапланированныйПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Склад КАК Склад,
| ВЫБОР КОГДА ТабЧасть.Назначение.ДвиженияПоСкладскимРегистрам ТОГДА
| ТабЧасть.Назначение
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| КОНЕЦ КАК Назначение,
| ТабЧасть.Количество - ТабЧасть.КоличествоПоДокументу КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ЗапланированныйРасходРаспределенногоЗапаса,
| ЛОЖЬ КАК КонтрольСвободногоОстатка
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Номенклатура.ТипНоменклатуры В(
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И ТабЧасть.Ссылка.Статус В(
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.КВыполнению),
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано))
| И ТабЧасть.Склад.ИспользоватьОрдернуюСхемуПриПоступлении
| И ТабЧасть.Склад.ДатаНачалаОрдернойСхемыПриПоступлении <= ТабЧасть.Ссылка.Дата
| И ТабЧасть.Действие = ЗНАЧЕНИЕ(Перечисление.ВариантыДействийПоРасхождениямВАктеПослеПриемки.ВернутьПерепоставленноеБезОформления)";
РаспределениеЗапасовДвижения.РасходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
КонецПроцедуры
#КонецОбласти
#Область Заполнение
Функция ПараметрыЗаполненияДокумента() Экспорт
ПараметрыЗаполнения = Новый Структура();
ПараметрыЗаполнения.Вставить("ИмяДокумента", "АктОРасхожденияхПослеПриемки");
ПараметрыЗаполнения.Вставить("ИмяРегистраЗаказ", "ЗаказыПоставщикам");
ПараметрыЗаполнения.Вставить("ИмяПоляЗаказ", "ЗаказПоставщику");
ПараметрыЗаполнения.Вставить("КлючевыеПоля", "Распоряжение, Номенклатура, Характеристика, Серия, Склад, Назначение");
Возврат ПараметрыЗаполнения;
КонецФункции
Процедура ОбновитьЗависимыеРеквизитыПослеЗаполненияФактаПоПриемке(Объект) Экспорт
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении) Тогда
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
ОбрабатываемыеСтроки = Новый Массив();
Для Каждого СтрокаТовары Из Объект.Товары Цикл
Если Не ЗначениеЗаполнено(СтрокаТовары.СтавкаНДС) Тогда
ОбрабатываемыеСтроки.Добавить(СтрокаТовары);
КонецЕсли;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
КонецЕсли;
Суффикс = "ПоДокументу";
СтруктураДействий = Новый Структура;
Если Объект.ТипОснованияАктаОРасхождении = ПредопределенноеЗначение("Перечисление.ТипыОснованияАктаОРасхождении.ПриобретениеТоваровУслуг")
Или Объект.ТипОснованияАктаОРасхождении = ПредопределенноеЗначение("Перечисление.ТипыОснованияАктаОРасхождении.ПриемкаТоваровНаХранение") Тогда
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПартнераПоНоменклатуре", Объект.Партнер);
КонецЕсли;
СтруктураДействий.Вставить(
"ПересчитатьКоличествоУпаковок",
ПакетнаяОбработкаТабличнойЧастиКлиентСервер.СтруктураПересчетаКоличестваУпаковок());
СтруктураДействий.Вставить("ПересчитатьКоличествоУпаковокСуффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Суффикс);
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении) Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
КонецЕсли;
СтруктураДействий.Вставить("ПризнакНаличиеКомментарияПриемка");
СтруктураДействий.Вставить("ПересчитатьРасхожденияПослеПриемки");
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары,СтруктураДействий, Неопределено);
КонецПроцедуры
#КонецОбласти
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
СтатусыАкта = Новый Массив;
СтатусыАкта.Добавить(Перечисления.СтатусыАктаОРасхождениях.КВыполнению);
СтатусыАкта.Добавить(Перечисления.СтатусыАктаОРасхождениях.Отработано);
КомандаПечати = Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(КомандыПечати,
"ЗаданиеНаРазмещение");
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(КомандаПечати,
"Статус",
СтатусыАкта,
ВидСравнения.ВСписке);
ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(КомандаПечати,
"СпособОтраженияРасхождений",
Перечисления.СпособыОтраженияАктовОРасхожденияПослеПоступления.ОформлениеКорректировокПоступления,
ВидСравненияКомпоновкиДанных.Равно);
АктОРасхожденияхПослеПриемкиЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
АктОРасхожденияхПослеПриемкиЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры
Процедура ЗаполнитьСтруктуруПолучателейПечатныхФорм(СтруктураДанныхОбъектаПечати) Экспорт
СтруктураДанныхОбъектаПечати.ОсновнойПолучатель = "Партнер";
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Партнер");
Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов") Тогда
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("Контрагент");
КонецЕсли;
СтруктураДанныхОбъектаПечати.МассивРеквизитовПолучателей.Добавить("КонтактноеЛицо");
КонецПроцедуры
#КонецОбласти
#Область ШаблоныСообщений
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриФормированииСообщения(Сообщение, ПредметСообщения, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, ПредметСообщения) Экспорт
КонецПроцедуры
#КонецОбласти
#Область ИзменениеСтатуса
Функция СформироватьЗапросПроверкиПриСменеСтатуса(МассивДокументов, НовыйСтатус, ДополнительныеПараметры) Экспорт
ЗначениеНовогоСтатуса = Перечисления.СтатусыАктаОРасхождениях[НовыйСтатус];
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокументов.Ссылка КАК Ссылка,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Ссылка) КАК Представление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Статус) КАК ПредставлениеТекущегоСтатуса,
| ПРЕДСТАВЛЕНИЕ(&Статус) КАК ПредставлениеНовогоСтатуса,
| ВЫБОР
| КОГДА ТаблицаДокументов.Статус = &Статус
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СтатусСовпадает,
| ТаблицаДокументов.Проведен КАК Проведен,
| ТаблицаДокументов.ПометкаУдаления КАК ПометкаУдаления,
| ИСТИНА КАК ЗаписьПроведением
|ИЗ
| Документ.АктОРасхожденияхПослеПриемки КАК ТаблицаДокументов
|ГДЕ
| ТаблицаДокументов.Ссылка В (&МассивДокументов)
|";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Статус", ЗначениеНовогоСтатуса);
Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
Возврат Запрос;
КонецФункции
Функция ПроверкаПередСменойСтатуса(ВыборкаПроверки, НовыйСтатус, ДополнительныеПараметры) Экспорт
Возврат Истина;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецЕсли