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