| И СрокЭкс = ДАТАВРЕМЯ(1, 1, 1)) КАК ОборудованиеОстатки
| ПО ВТ_ТЧ. Номенклатура = ОборудованиеОстатки. Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| СрокГодности
|ИТОГИ
| МАКСИМУМ(КоличествоДок),
| СУММА(КоличествоОстаток),
| МАКСИМУМ(СрокЭксплуатации)
|ПО
| Номенклатура";
Запрос. УстановитьПараметр("Дата", Дата);
Запрос. УстановитьПараметр("МоментВремени", МоментВремени());
Запрос. УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос. Выполнить();
ВыборкаНоменклатура = РезультатЗапроса. Выбрать(ОбходРезультатаЗапроса. ПоГруппировкам);
Пока ВыборкаНоменклатура. Следующий() Цикл
Если ВыборкаНоменклатура. КоличествоОстаток < ВыборкаНоменклатура. КоличествоДок Тогда
Сообщение = Новый СообщениеПользователю;
Текст = "Нехватка номенклатуры: " + ВыборкаНоменклатура. НоменклатураПредставление + " в кол-ве " + (ВыборкаНоменклатура. КоличествоДок - ВыборкаНоменклатура. КоличествоОстаток);
Сообщение. Текст = Текст;
Сообщение. Поле = "";
Сообщение. Сообщить();
КонецЕсли;
ОсталосьСписать = ВыборкаНоменклатура. КоличествоДок;
ВыборкаДетальныеЗаписи = ВыборкаНоменклатура. Выбрать();
Пока ВыборкаДетальныеЗаписи. Следующий() И ОсталосьСписать > 0 Цикл
КоличествоСписать = Мин(ОсталосьСписать, ВыборкаДетальныеЗаписи. КоличествоОстаток);
//списание оборудования с пустым сроком эксплуатации
Движение = Движения. Оборудование. Добавить();
Движение. ВидДвижения = ВидДвиженияНакопления. Расход;
Движение. Период = Дата;
Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;
Движение. СрокГодности = ВыборкаДетальныеЗаписи. СрокГодности;
Движение. Количество = КоличествоСписать;
//ввод в эксплуатацию
Движение = Движения. Оборудование. Добавить();
Движение. ВидДвижения = ВидДвиженияНакопления. Приход;
Движение. Период = Дата;
Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;
Движение. СрокГодности = ВыборкаДетальныеЗаписи. СрокГодности;
Движение. СрокЭкс = Дата + ВыборкаДетальныеЗаписи. СрокЭксплуатации * День;
Движение. Количество = КоличествоСписать;
ОсталосьСписать = ОсталосьСписать - Движение. Количество;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Документ «ВыбытиеОборудования»
Процедура ОбработкаПроведения(Отказ, Режим)
Движения. Оборудование. Записывать = Истина;
Движения. ОстаткиНоменклатуры. Записывать = Истина;
Движения. Оборудование. Очистить();
Движения. ОстаткиНоменклатуры. Очистить();
Движения. Оборудование. Записать();
Движения. ОстаткиНоменклатуры. Записать();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка. Добавить("РегистрНакопления. Оборудование");
ЭлементБлокировки. УстановитьЗначение("СрокЭкс", Новый Диапазон(,Дата));
ЭлементБлокировки. УстановитьЗначение("СрокГодности", Новый Диапазон(,Дата));
ЭлементБлокировки = Блокировка. Добавить("РегистрНакопления. ОстаткиНоменклатуры");
Блокировка. Заблокировать();
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| ОборудованиеОстатки. Номенклатура,
| ОборудованиеОстатки. СрокГодности,
| ОборудованиеОстатки. СрокЭкс,
| ОборудованиеОстатки. КоличествоОстаток
|ПОМЕСТИТЬ ВТ_Оборудование
|ИЗ
| РегистрНакопления. Оборудование. Остатки(
| &МоментВремени,
| СрокЭкс <> ДАТАВРЕМЯ(1, 1, 1)
| И (СрокГодности < &ДатаДок
| ИЛИ СрокЭкс < &ДатаДок)) КАК ОборудованиеОстатки
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОборудованиеОстатки. Номенклатура,
| ОборудованиеОстатки. СрокГодности,
| ОборудованиеОстатки. СрокЭкс,
| ОборудованиеОстатки. КоличествоОстаток
|ИЗ
| РегистрНакопления. Оборудование. Остатки(
| &МоментВремени,
| СрокЭкс = ДАТАВРЕМЯ(1, 1, 1)
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 |


