|                                        И СрокЭкс = ДАТАВРЕМЯ(1, 1, 1)) КАК ОборудованиеОстатки

               |                ПО ВТ_ТЧ. Номенклатура = ОборудованиеОстатки. Номенклатура

               |

               |УПОРЯДОЧИТЬ ПО

               |        СрокГодности

               |ИТОГИ

               |        МАКСИМУМ(КоличествоДок),

               |        СУММА(КоличествоОстаток),

               |        МАКСИМУМ(СрокЭксплуатации)

               |ПО

               |        Номенклатура";

       

       Запрос. УстановитьПараметр("Дата", Дата);

       Запрос. УстановитьПараметр("МоментВремени", МоментВремени());

       Запрос. УстановитьПараметр("Ссылка", Ссылка);

       

       РезультатЗапроса = Запрос. Выполнить();

НЕ нашли? Не то? Что вы ищете?

       

       ВыборкаНоменклатура = РезультатЗапроса. Выбрать(ОбходРезультатаЗапроса. ПоГруппировкам);

       

       Пока ВыборкаНоменклатура. Следующий() Цикл

               Если ВыборкаНоменклатура. КоличествоОстаток < ВыборкаНоменклатура. КоличествоДок Тогда

                       Сообщение = Новый СообщениеПользователю;

                       Текст = "Нехватка номенклатуры: " + ВыборкаНоменклатура. НоменклатураПредставление + " в кол-ве " + (ВыборкаНоменклатура. КоличествоДок - ВыборкаНоменклатура. КоличествоОстаток);

                       Сообщение. Текст = Текст;

                       Сообщение. Поле = "";

                       Сообщение. Сообщить();

               КонецЕсли;

               

               ОсталосьСписать = ВыборкаНоменклатура. КоличествоДок;

               

               ВыборкаДетальныеЗаписи = ВыборкаНоменклатура. Выбрать();

       

               Пока ВыборкаДетальныеЗаписи. Следующий() И ОсталосьСписать > 0 Цикл

                       

                       КоличествоСписать = Мин(ОсталосьСписать, ВыборкаДетальныеЗаписи. КоличествоОстаток);

                       

                       //списание оборудования с пустым сроком эксплуатации

                       Движение = Движения. Оборудование. Добавить();

                       Движение. ВидДвижения = ВидДвиженияНакопления. Расход;

                       Движение. Период = Дата;

                       Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;

                       Движение. СрокГодности = ВыборкаДетальныеЗаписи. СрокГодности;

                       Движение. Количество = КоличествоСписать;

                       

                       //ввод в эксплуатацию

                       Движение = Движения. Оборудование. Добавить();

                       Движение. ВидДвижения = ВидДвиженияНакопления. Приход;

                       Движение. Период = Дата;

                       Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;

                       Движение. СрокГодности = ВыборкаДетальныеЗаписи. СрокГодности;

                       Движение. СрокЭкс = Дата + ВыборкаДетальныеЗаписи. СрокЭксплуатации * День;

                       Движение. Количество = КоличествоСписать;

                       

                       ОсталосьСписать = ОсталосьСписать - Движение. Количество;

               КонецЦикла;

       КонецЦикла;

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

Документ «ВыбытиеОборудования»


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

       Движения. Оборудование. Записывать = Истина;

       Движения. ОстаткиНоменклатуры. Записывать = Истина;

       

       Движения. Оборудование. Очистить();

       Движения. ОстаткиНоменклатуры. Очистить();

       Движения. Оборудование. Записать();

       Движения. ОстаткиНоменклатуры. Записать();

       

       Блокировка = Новый БлокировкаДанных;

       ЭлементБлокировки = Блокировка. Добавить("РегистрНакопления. Оборудование");

       ЭлементБлокировки. УстановитьЗначение("СрокЭкс", Новый Диапазон(,Дата));

       ЭлементБлокировки. УстановитьЗначение("СрокГодности", Новый Диапазон(,Дата));

       

       ЭлементБлокировки = Блокировка. Добавить("РегистрНакопления. ОстаткиНоменклатуры");

       Блокировка. Заблокировать();

       

       Запрос = Новый Запрос;

       Запрос. Текст =

               "ВЫБРАТЬ

               |        ОборудованиеОстатки. Номенклатура,

               |        ОборудованиеОстатки. СрокГодности,

               |        ОборудованиеОстатки. СрокЭкс,

               |        ОборудованиеОстатки. КоличествоОстаток

               |ПОМЕСТИТЬ ВТ_Оборудование

               |ИЗ

               |        РегистрНакопления. Оборудование. Остатки(

               |                        &МоментВремени,

               |                        СрокЭкс <> ДАТАВРЕМЯ(1, 1, 1)

               |                                И (СрокГодности < &ДатаДок

               |                                        ИЛИ СрокЭкс < &ДатаДок)) КАК ОборудованиеОстатки

               |

               |ОБЪЕДИНИТЬ ВСЕ

               |

               |ВЫБРАТЬ

               |        ОборудованиеОстатки. Номенклатура,

               |        ОборудованиеОстатки. СрокГодности,

               |        ОборудованиеОстатки. СрокЭкс,

               |        ОборудованиеОстатки. КоличествоОстаток

               |ИЗ

               |        РегистрНакопления. Оборудование. Остатки(

               |                        &МоментВремени,

               |                        СрокЭкс = ДАТАВРЕМЯ(1, 1, 1)

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9