Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Дата = НачалоМесяца(Дата);
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.УчетнаяПолитика.Записывать = Истина;
Движение = Движения.УчетнаяПолитика.Добавить();
Движение.Период = Дата;
Движение.МетодСписания = МетодСписания;
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Если МетодСписания = Перечисления.УчетнаяПолитика.ПоСредней Тогда
Движения.ОстаткиНоменклатуры.Записать();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
| ОстаткиНоменклатурыОстатки.Партия КАК Партия,
| ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК Количество,
| ОстаткиНоменклатурыОстатки.СуммаОстаток КАК Сумма
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры.Остатки(&МоментИтогов, ) КАК ОстаткиНоменклатурыОстатки
|ИТОГИ
| СУММА(Количество),
| СУММА(Сумма)
|ПО
| Номенклатура";
Запрос.УстановитьПараметр("МоментИтогов", МоментВремени());
РезультатЗапроса = Запрос.Выполнить();
ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.Период = Дата;
ЗаполнитьЗначенияСвойств(Движение, ВыборкаНоменклатура);
Движение.Партия = Ссылка;
Выборка = ВыборкаНоменклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Движение = Движения.ОстаткиНоменклатуры.ДобавитьРасход();
Движение.Период = Дата;
ЗаполнитьЗначенияСвойств(Движение, Выборка);
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры