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