Untitled

mail@pastecode.io avatarunknown
plain_text
2 months ago
5.4 kB
0
Indexable
Never
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Дата = НачалоМесяца(Дата);
КонецПроцедуры

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

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

КонецПроцедуры