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