sadams
07.07.2023, 20:48
В конфигурации есть документ "Выбытие оборудования", который при проведении проверяет движения оборудования, хранящегося на складе (документ "Приходная накладная") и движения оборудования, введенного со склада в эксплуатацию (документ "Ввод в эксплуатацию"). При проверке определяется, вышел ли срок эксплуатации оборудования с момента его ввода в эксплуатацию. Если срок
эксплуатации истек или истек срок годности, то оборудование должно быть списано. Кроме того, этот же документ должен списывать еще не введенное в эксплуатацию оборудование , но срок годности, которого уже истек.
Как реализовать следующий дополнительный функционал?
В форме документа должна быть кнопка "Заполнить", после нажатия на которую табличная часть формы должна заполняться. Движение расхода происходит только после проведения документа, так что пользователь может самостоятельно удалить строку из табличной части документа, благодаря чему данное оборудование, с истекшим сроком годности/эксплуатации не будет списано.
На данный момент обработка проведения реализована данным образом:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОборудованиеНаХр� �нении.Записывать = Истина;
Движения.ОборудованиеВЭкс� �луатации.Записывать = Истина;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОборудованиеНаХраненииОст атки.Оборудование,
| ОборудованиеНаХраненииОст атки.СрокГодности,
| ОборудованиеНаХраненииОст атки.КоличествоОстаток,
| ОборудованиеНаХраненииОст атки.СуммаОстаток
|ИЗ
| РегистрНакопления.Оборудо� �аниеНаХранении.Остатки(&Период, СрокГодности < &Период) КАК ОборудованиеНаХраненииОст атки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОборудованиеВЭксплуатации Остатки.Оборудование,
| ОборудованиеВЭксплуатации Остатки.СрокГодности,
| ОборудованиеВЭксплуатации Остатки.СрокЭксплуатации,
| ОборудованиеВЭксплуатации Остатки.КоличествоОстаток,
| ОборудованиеВЭксплуатации Остатки.СуммаОстаток
|ИЗ
| РегистрНакопления.Оборудо� �аниеВЭксплуатации.Остатки (
| &Период,
| СрокГодности < &Период
| ИЛИ СрокЭксплуатации < &Период) КАК ОборудованиеВЭксплуатации Остатки";
Запрос.УстановитьПараметр("Период", Дата);
ВыборкаМассив = Запрос.ВыполнитьПакет();
Выборка = ВыборкаМассив[0].Выбрать();
Пока Выборка.Следующий() Цикл
Движение = Движения.ОборудованиеНаХр� �нении.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Оборудование = Выборка.Оборудование;
Движение.СрокГодности = Выборка.СрокГодности;
Движение.Количество = Выборка.КоличествоОстаток;
Движение.Сумма = Выборка.СуммаОстаток;
КонецЦикла;
Выборка = ВыборкаМассив[1].Выбрать();
Пока Выборка.Следующий() Цикл
Движение = Движения.ОборудованиеВЭкс� �луатации.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Оборудование = Выборка.Оборудование;
Движение.СрокГодности = Выборка.СрокГодности;
Движение.СрокЭксплуатации = Выборка.СрокЭксплуатации;
Движение.Количество = Выборка.КоличествоОстаток;
Движение.Сумма = Выборка.СуммаОстаток;
КонецЦикла;
КонецПроцедуры
эксплуатации истек или истек срок годности, то оборудование должно быть списано. Кроме того, этот же документ должен списывать еще не введенное в эксплуатацию оборудование , но срок годности, которого уже истек.
Как реализовать следующий дополнительный функционал?
В форме документа должна быть кнопка "Заполнить", после нажатия на которую табличная часть формы должна заполняться. Движение расхода происходит только после проведения документа, так что пользователь может самостоятельно удалить строку из табличной части документа, благодаря чему данное оборудование, с истекшим сроком годности/эксплуатации не будет списано.
На данный момент обработка проведения реализована данным образом:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОборудованиеНаХр� �нении.Записывать = Истина;
Движения.ОборудованиеВЭкс� �луатации.Записывать = Истина;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОборудованиеНаХраненииОст атки.Оборудование,
| ОборудованиеНаХраненииОст атки.СрокГодности,
| ОборудованиеНаХраненииОст атки.КоличествоОстаток,
| ОборудованиеНаХраненииОст атки.СуммаОстаток
|ИЗ
| РегистрНакопления.Оборудо� �аниеНаХранении.Остатки(&Период, СрокГодности < &Период) КАК ОборудованиеНаХраненииОст атки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОборудованиеВЭксплуатации Остатки.Оборудование,
| ОборудованиеВЭксплуатации Остатки.СрокГодности,
| ОборудованиеВЭксплуатации Остатки.СрокЭксплуатации,
| ОборудованиеВЭксплуатации Остатки.КоличествоОстаток,
| ОборудованиеВЭксплуатации Остатки.СуммаОстаток
|ИЗ
| РегистрНакопления.Оборудо� �аниеВЭксплуатации.Остатки (
| &Период,
| СрокГодности < &Период
| ИЛИ СрокЭксплуатации < &Период) КАК ОборудованиеВЭксплуатации Остатки";
Запрос.УстановитьПараметр("Период", Дата);
ВыборкаМассив = Запрос.ВыполнитьПакет();
Выборка = ВыборкаМассив[0].Выбрать();
Пока Выборка.Следующий() Цикл
Движение = Движения.ОборудованиеНаХр� �нении.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Оборудование = Выборка.Оборудование;
Движение.СрокГодности = Выборка.СрокГодности;
Движение.Количество = Выборка.КоличествоОстаток;
Движение.Сумма = Выборка.СуммаОстаток;
КонецЦикла;
Выборка = ВыборкаМассив[1].Выбрать();
Пока Выборка.Следующий() Цикл
Движение = Движения.ОборудованиеВЭкс� �луатации.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Оборудование = Выборка.Оборудование;
Движение.СрокГодности = Выборка.СрокГодности;
Движение.СрокЭксплуатации = Выборка.СрокЭксплуатации;
Движение.Количество = Выборка.КоличествоОстаток;
Движение.Сумма = Выборка.СуммаОстаток;
КонецЦикла;
КонецПроцедуры