Процедура ДвиженияПоРегистрамУпр(РежимПроведения, СтруктураШапкиДокумента,
ТаблицаПоТоварам, ТаблицаПоКомплектам, ТаблицаПоСкидкам, ТаблицаПоТаре, ТаблицаПоУслугам,
ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, Отказ, Заголовок)
Если ОтражатьВУправленческомУчете Тогда
УправлениеВзаиморасчетами.ВыполнитьДвиженияПоРегистрамУпрВзаиморасчетов(ЭтотОбъект, СтруктураШапкиДокумента,
мСтруктураПараметровВзаиморасчетов, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам,
ВидДвиженияНакопления.Приход, Отказ, Заголовок);
Если СтруктураШапкиДокумента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем Тогда
Если СуммаДокумента <> 0 Тогда
// По регистру ПродажиПоДисконтнымКартам.
Если ЗначениеЗаполнено(СтруктураШапкиДокумента.ДисконтнаяКарта) Тогда
НаборДвижений = Движения.ПродажиПоДисконтнымКартам;
// Получим таблицу значений, совпадающую со структурой набора записей регистра.
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
// Заполним таблицу движений.
СтрокаДвижений = ТаблицаДвижений.Добавить();
СтрокаДвижений.ДисконтнаяКарта = СтруктураШапкиДокумента.ДисконтнаяКарта;
СтрокаДвижений.ВладелецДисконтнойКарты = СтруктураШапкиДокумента.Контрагент;
СтрокаДвижений.Сумма = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СуммаДокумента, ВалютаДокумента,
СтруктураШапкиДокумента.ВалютаУправленческогоУчета,
СтруктураШапкиДокумента.КурсДокумента,
СтруктураШапкиДокумента.КурсВалютыУправленческогоУчета,
СтруктураШапкиДокумента.КратностьДокумента,
СтруктураШапкиДокумента.КратностьВалютыУправленческогоУчета);
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
Если Не Отказ Тогда
НаборДвижений.ВыполнитьДвижения();
КонецЕсли;
КонецЕсли;
КонецЕсли;
// ТОВАРЫ ПО РЕГИСТРУ Продажи.
НаборДвижений = Движения.Продажи;
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
ТаблицаПоТоварам.Колонки.НДС.Имя = "НДСВрем";
ТаблицаПоТоварам.Колонки.НДСУпр.Имя = "НДС";
// Заполним таблицу движений.
Если СтруктураШапкиДокумента.ВедениеУчетаПоПроектам Тогда
УправлениеПроектами.ОтразитьДвиженияПоПроектам(ТаблицаПоТоварам,ТаблицаДвижений, Проект, Дата, "Продажи");
Иначе
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоТоварам, ТаблицаДвижений);
КонецЕсли;
ТаблицаДвижений.ЗаполнитьЗначения(ДоговорКонтрагента,"ДоговорКонтрагента");
ТаблицаДвижений.ЗаполнитьЗначения(Контрагент , "Контрагент");
ТаблицаДвижений.ЗаполнитьЗначения(Организация, "Организация");
ТаблицаДвижений.ЗаполнитьЗначения(Ссылка,"ДокументПродажи");
ТаблицаДвижений.ЗаполнитьЗначения(Подразделение,"Подразделение");
// Когда взаиморасчеты ведутся по счетам, поле заказ покупателя в таб.части будет пустое (нет типа Документ.СчетНаОплату)
Если СтруктураШапкиДокумента.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам Тогда
ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Сделка, "ЗаказПокупателя");
КонецЕсли;
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
Если Не Отказ Тогда
Движения.Продажи.ВыполнитьДвижения();
КонецЕсли;
// УСЛУГИ ПО РЕГИСТРУ Продажи.
НаборДвижений = Движения.Продажи;
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
ТаблицаПоУслугам.Колонки.НДС.Имя = "НДСВрем";
ТаблицаПоУслугам.Колонки.НДСУпр.Имя = "НДС";
// Заполним таблицу движений.
Если СтруктураШапкиДокумента.ВедениеУчетаПоПроектам Тогда
УправлениеПроектами.ОтразитьДвиженияПоПроектам(ТаблицаПоУслугам,ТаблицаДвижений, Проект, Дата, "Продажи");
Иначе
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоУслугам, ТаблицаДвижений);
КонецЕсли;
ТаблицаДвижений.ЗаполнитьЗначения(ДоговорКонтрагента,"ДоговорКонтрагента");
ТаблицаДвижений.ЗаполнитьЗначения(Контрагент , "Контрагент");
ТаблицаДвижений.ЗаполнитьЗначения(Организация, "Организация");
ТаблицаДвижений.ЗаполнитьЗначения(Ссылка,"ДокументПродажи");
ТаблицаДвижений.ЗаполнитьЗначения(Подразделение,"Подразделение");
// Когда взаиморасчеты ведутся по счетам, поле заказ покупателя в таб.части будет пустое (нет типа Документ.СчетНаОплату)
Если СтруктураШапкиДокумента.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам Тогда
ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Сделка, "ЗаказПокупателя");
КонецЕсли;
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
Если Не Отказ Тогда
Движения.Продажи.ВыполнитьДвижения();
КонецЕсли;
// ПО РЕГИСТРУ ПредоставленныеСкидки.
НаборДвижений = Движения.ПредоставленныеСкидки;
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
// Заполним таблицу движений.
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоСкидкам, ТаблицаДвижений);
ТаблицаДвижений.ЗаполнитьЗначения(Ссылка,"ДокументСкидки");
ТаблицаДвижений.ЗаполнитьЗначения(ДоговорКонтрагента,"ПолучательСкидки");
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
Если Не Отказ Тогда
Движения.ПредоставленныеСкидки.ВыполнитьДвижения();
КонецЕсли;
ТаблицаПоТоварам.Колонки.НДС.Имя = "НДСУпр";
ТаблицаПоТоварам.Колонки.НДСВрем.Имя = "НДС";
ТаблицаПоУслугам.Колонки.НДС.Имя = "НДСУпр";
ТаблицаПоУслугам.Колонки.НДСВрем.Имя = "НДС";
КонецЕсли;
Если ВидПередачи = Перечисления.ВидыПередачиТоваров.СоСклада Тогда
// ТОВАРЫ ПО РЕГИСТРУ ТоварыНаСкладах.
ВидСкладаОпт = Новый Структура("ВидСклада", Перечисления.ВидыСкладов.Оптовый);
РезультатЗапросаКомплектыОпт = ОбщегоНазначения.ОтобратьСтрокиПоКритериям(ТаблицаПоКомплектам, ВидСкладаОпт);
РезультатЗапросаТараОпт = ОбщегоНазначения.ОтобратьСтрокиПоКритериям(ТаблицаПоТаре, ВидСкладаОпт);
Если Не РезультатЗапросаКомплектыОпт.Пустой() ИЛИ НЕ РезультатЗапросаТараОпт.Пустой() Тогда
// Проверка остатков при оперативном проведении.
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.ТоварыНаСкладах.КонтрольОстатков(ЭтотОбъект, "Товары", СтруктураШапкиДокумента, Отказ, Заголовок);
Движения.ТоварыНаСкладах.КонтрольОстатков(ЭтотОбъект, "ВозвратнаяТара", СтруктураШапкиДокумента, Отказ, Заголовок);
КонецЕсли;
Если НЕ Отказ Тогда
СтруктТаблицДокумента = Новый Структура;
СтруктТаблицДокумента.Вставить("КомплектыОпт", РезультатЗапросаКомплектыОпт.Выгрузить());
СтруктТаблицДокумента.Вставить("ТараОпт", РезультатЗапросаТараОпт .Выгрузить());
ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ТоварыНаСкладах, СтруктТаблицДокумента);
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "Качество", Справочники.Качество.Новый, "ТараОпт");
ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ТоварыНаСкладах, ВидДвиженияНакопления.Расход, ТаблицыДанныхДокумента, Дата);
КонецЕсли;
КонецЕсли;
ВидСкладаРозн = Новый Структура("ВидСклада", Перечисления.ВидыСкладов.Розничный);
РезультатЗапросаКомплектыРозн = ОбщегоНазначения.ОтобратьСтрокиПоКритериям(ТаблицаПоКомплектам, ВидСкладаРозн);
РезультатЗапросаТараРозн = ОбщегоНазначения.ОтобратьСтрокиПоКритериям(ТаблицаПоТаре, ВидСкладаРозн);
Если Не РезультатЗапросаКомплектыРозн.Пустой() ИЛИ НЕ РезультатЗапросаТараРозн.Пустой() Тогда
// Проверка остатков при оперативном проведении.
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.ТоварыВРознице.КонтрольОстатков(ЭтотОбъект, "Товары", СтруктураШапкиДокумента, Отказ, Заголовок);
Движения.ТоварыВРознице.КонтрольОстатков(ЭтотОбъект, "ВозвратнаяТара", СтруктураШапкиДокумента, Отказ, Заголовок);
КонецЕсли;
Если Не Отказ Тогда
ТаблицаКомплектыРозн = РезультатЗапросаКомплектыРозн.Выгрузить();
ТаблицаТараРозн = РезультатЗапросаТараРозн.Выгрузить();
ТаблицаКомплектыРозн.Колонки.Добавить("СуммаПродажная", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));
Если ТаблицаКомплектыРозн.Количество() <> 0 Тогда
ТаблицаПоЦенам = УправлениеРозничнойТорговлей.СформироватьЗапросПоПродажнымЦенам(Дата, ТаблицаКомплектыРозн.ВыгрузитьКолонку("Склад"),
ТаблицаКомплектыРозн.ВыгрузитьКолонку("Номенклатура")).Выгрузить();
УправлениеРозничнойТорговлей.ЗаполнитьКолонкуСуммаПродажная(ТаблицаКомплектыРозн, ТаблицаПоЦенам, "ВидСклада");
КонецЕсли;
ТаблицаТараРозн.Колонки.Добавить("СуммаПродажная", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));
Если ТаблицаТараРозн.Количество() <> 0 Тогда
ТаблицаПоЦенам = УправлениеРозничнойТорговлей.СформироватьЗапросПоПродажнымЦенам(Дата, ТаблицаТараРозн.ВыгрузитьКолонку("Склад"),
ТаблицаТараРозн.ВыгрузитьКолонку("Номенклатура")).Выгрузить();
УправлениеРозничнойТорговлей.ЗаполнитьКолонкуСуммаПродажная(ТаблицаТараРозн, ТаблицаПоЦенам, "ВидСклада");
КонецЕсли;
СтруктТаблицДокумента = Новый Структура;
СтруктТаблицДокумента.Вставить("КомплектыРозн", ТаблицаКомплектыРозн);
СтруктТаблицДокумента.Вставить("ТараРозн" , ТаблицаТараРозн);
ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ТоварыВРознице, СтруктТаблицДокумента);
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "Качество", Справочники.Качество.Новый, "ТараРозн");
ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ТоварыВРознице, ВидДвиженияНакопления.Расход, ТаблицыДанныхДокумента, Дата);
КонецЕсли;
КонецЕсли;
Иначе // отпуск по ордеру
// Проверка остатков при оперативном проведении.
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.ТоварыКПередачеСоСкладов.КонтрольОстатков(ЭтотОбъект, "Товары", СтруктураШапкиДокумента, Отказ, Заголовок);
Движения.ТоварыКПередачеСоСкладов.КонтрольОстатков(ЭтотОбъект, "ВозвратнаяТара", СтруктураШапкиДокумента, Отказ, Заголовок);
КонецЕсли;
// ТОВАРЫ И ТАРА ПО РЕГИСТРУ ТоварыКПередачеСоСкладов.
Если Не Отказ Тогда
СтруктТаблицДокумента = Новый Структура;
СтруктТаблицДокумента.Вставить("ТаблицаТовары", ТаблицаПоКомплектам);
СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", ТаблицаПоТаре);
ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ТоварыКПередачеСоСкладов, СтруктТаблицДокумента);
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "ДокументПередачи", Ссылка);
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПартии", Перечисления.СтатусыПартийТоваров.Купленный, "ТаблицаТовары");
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПартии", Перечисления.СтатусыПартийТоваров.ВозвратнаяТара, "ТаблицаПоТаре");
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "Качество", Справочники.Качество.Новый, "ТаблицаПоТаре");
ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ТоварыКПередачеСоСкладов, ВидДвиженияНакопления.Приход, ТаблицыДанныхДокумента, Дата);
КонецЕсли;
КонецЕсли;
// Проверка остатков лимитов возвратной тары при оперативном проведении.
Если РежимПроведения = РежимПроведенияДокумента.Оперативный И ТаблицаПоТаре.Количество()<>0 Тогда
Движения.ТоварыПереданные.КонтрольЛимитовВозвратнойТары(ЭтотОбъект, СтруктураШапкиДокумента, Отказ, Заголовок);
КонецЕсли;
// ТАРА ПО РЕГИСТРУ ТоварыПереданные
Если Не Отказ Тогда
СтруктТаблицДокумента = Новый Структура;
СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", ТаблицаПоТаре);
КопияТаблицаПоТаре = ТаблицаПоТаре.Скопировать();
КопияТаблицаПоТаре.Колонки.ЗаказПокупателя.Имя = "Сделка";
СтруктТаблицДокумента = Новый Структура;
СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", КопияТаблицаПоТаре);
Если СтруктураШапкиДокумента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
КопияТовары = ТаблицаПоТоварам.Скопировать();
КопияТовары.Колонки.ЗаказПокупателя.Имя = "Сделка";
СтруктТаблицДокумента.Вставить("ТаблицаТовары", КопияТовары);
КонецЕсли;
ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ТоварыПереданные, СтруктТаблицДокумента);
Если СтруктураШапкиДокумента.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам Тогда
Для Каждого ТаблицаДанных Из ТаблицыДанныхДокумента Цикл
ТаблицаДанных.Значение.ЗаполнитьЗначения(Сделка, "Сделка");
КонецЦикла;
КонецЕсли;
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "ДоговорКонтрагента", ДоговорКонтрагента);
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "Контрагент", Контрагент);
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "Организация", Организация);
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПередачи", Перечисления.СтатусыПолученияПередачиТоваров.ВозвратнаяТара, "ТаблицаПоТаре");
Если СтруктураШапкиДокумента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПередачи", Перечисления.СтатусыПолученияПередачиТоваров.НаКомиссию, "ТаблицаТовары");
КонецЕсли;
ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ТоварыПереданные, ВидДвиженияНакопления.Приход, ТаблицыДанныхДокумента, Дата);
КонецЕсли;
// ТОВАР, ТАРА И УСЛУГИ ПО РЕГИСТРУ ЗаказыПокупателей.
// Проверка остатков при оперативном проведении.
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Движения.ЗаказыПокупателей.КонтрольПревышенияОбъемаЗаказа(ЭтотОбъект, СтруктураШапкиДокумента, "Товары", Отказ, Заголовок);
Движения.ЗаказыПокупателей.КонтрольПревышенияОбъемаЗаказа(ЭтотОбъект, СтруктураШапкиДокумента, "ВозвратнаяТара", Отказ, Заголовок);
Движения.ЗаказыПокупателей.КонтрольПревышенияОбъемаЗаказа(ЭтотОбъект, СтруктураШапкиДокумента, "Услуги", Отказ, Заголовок);
КонецЕсли;
Если Не Отказ Тогда
СтруктТаблицДокумента = Новый Структура;
СтруктТаблицДокумента.Вставить("ТаблицаПоТоварам", ТаблицаПоТоварам);
СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", ТаблицаПоТаре);
СтруктТаблицДокумента.Вставить("ТаблицаПоУслугам", ТаблицаПоУслугам);
ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ЗаказыПокупателей, СтруктТаблицДокумента);
ОбщегоНазначения.УдалитьСтрокиИзТаблицДокумента(ТаблицыДанныхДокумента, "ЗаказПокупателя");
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "ДоговорКонтрагента", ДоговорКонтрагента);
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПартии", Перечисления.СтатусыПартийТоваров.Купленный, "ТаблицаПоТоварам,ТаблицаПоУслугам");
ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПартии", Перечисления.СтатусыПартийТоваров.ВозвратнаяТара, "ТаблицаПоТаре");
ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ЗаказыПокупателей, ВидДвиженияНакопления.Расход, ТаблицыДанныхДокумента, Дата);
КонецЕсли;
// Если есть списание из резерва, то надо списать резерв
ТаблицаПоТоварамИзРезерва = ТаблицаПоТоварам.Скопировать();
Сч = 0;
Пока Сч < ТаблицаПоТоварамИзРезерва.Количество() Цикл
СтрокаТаблицы = ТаблицаПоТоварамИзРезерва.Получить(Сч);
Если СтрокаТаблицы.СпособСписанияОстаткаТоваров <> Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва
ИЛИ НЕ ЗначениеЗаполнено(СтрокаТаблицы.ЗаказПокупателя) Тогда
ТаблицаПоТоварамИзРезерва.Удалить(СтрокаТаблицы);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
Если ТаблицаПоТоварамИзРезерва.Количество() > 0 Тогда
НаборДвижений = Движения.ТоварыВРезервеНаСкладах;
// Получим таблицу значений, совпадающую со структурой набора записей регистра.
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
// Заполним таблицу движений.
ТаблицаПоТоварамИзРезерва.Колонки.ЗаказПокупателя.Имя = "ДокументРезерва";
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоТоварамИзРезерва, ТаблицаДвижений);
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
// Проверка остатков при оперативном проведении.
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
НаборДвижений.КонтрольОстатков(ЭтотОбъект, "Товары", СтруктураШапкиДокумента, Отказ, Заголовок);
КонецЕсли;
Если Не Отказ Тогда
Движения.ТоварыВРезервеНаСкладах.ВыполнитьРасход();
КонецЕсли;
КонецЕсли;
ТаблицаПоТареИзРезерва = ТаблицаПоТаре.Скопировать();
Сч = 0;
Пока Сч < ТаблицаПоТареИзРезерва.Количество() Цикл
СтрокаТаблицы = ТаблицаПоТареИзРезерва.Получить(Сч);
Если СтрокаТаблицы.СпособСписанияОстаткаТоваров <> Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва
ИЛИ НЕ ЗначениеЗаполнено(СтрокаТаблицы.ЗаказПокупателя) Тогда
ТаблицаПоТареИзРезерва.Удалить(СтрокаТаблицы);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
Если ТаблицаПоТареИзРезерва.Количество() > 0 Тогда
НаборДвижений = Движения.ТоварыВРезервеНаСкладах;
// Получим таблицу значений, совпадающую со структурой набора записей регистра.
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
// Заполним таблицу движений.
ТаблицаПоТареИзРезерва.Колонки.ЗаказПокупателя.Имя = "ДокументРезерва";
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоТареИзРезерва, ТаблицаДвижений);
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
// Проверка остатков при оперативном проведении.
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
НаборДвижений.КонтрольОстатков(ЭтотОбъект, "ВозвратнаяТара", СтруктураШапкиДокумента, Отказ, Заголовок);
КонецЕсли;
Если Не Отказ Тогда
Движения.ТоварыВРезервеНаСкладах.ВыполнитьРасход();
КонецЕсли;
КонецЕсли;
КонецЕсли; // Если ОтражатьВУправленческомУчете
КонецПроцедуры // ДвиженияПоРегистрамУпр()