Файл: Проектирование реализации операций бизнес-процесса « Складской учет »..pdf
Добавлен: 18.06.2023
Просмотров: 39
Скачиваний: 2
Код модуля объекта (обрабатываем проведение, при котором проверяются остатки и записываются движения по регистрам для дальнейшего учета):
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
для каждого текОтгрузка из ЭтотОбъект.Отгрузка цикл
текПродукция = текОтгрузка.Продукция;
текКоличество = текОтгрузка.Количество;
запрос = новый запрос ("ВЫБРАТЬ
| ОстаткиПродукцииОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиПродукции.Остатки КАК ОстаткиПродукцииОстатки
|ГДЕ
| ОстаткиПродукцииОстатки.Продукция = &Продукция");
запрос.УстановитьПараметр("Продукция", текПродукция);
выбор = запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("КоличествоОстаток");
если выбор.Количество() <> 0 тогда
остаток = выбор.Получить(0);
если остаток < текКоличество тогда
неХватает = текКоличество - остаток;
Сообщить ("Не хватает продукции " + текПродукция + " в количестве " + неХватает + " единиц." + "Документ не может быть проведен." );
отказ = истина;
КонецЕсли;
Иначе
Сообщить ("Не хватает продукции " + текПродукция + " в количестве " + текКоличество + " единиц." + "Документ не может быть проведен." );
отказ = истина;
КонецЕсли;
КонецЦикла;
если отказ = ложь тогда
Движения.ОстаткиПродукции.Записывать = истина;
Движения.Продажи.Записывать = истина;
для каждого текОтгрузка из ЭтотОбъект.Отгрузка цикл
Движение = Движения.ОстаткиПродукции.Добавить();
Движение.Период = Дата;
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Продукция = текОтгрузка.Продукция;
Движение.Количество = текОтгрузка.Количество;
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Продукция = текОтгрузка.Продукция;
Движение.Количество = текОтгрузка.Количество;
Движение.Сумма = текОтгрузка.Стоимость;
Движения.Продажи.Записать();
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Код формы документа (автоматически проставляем стоимость при выборе номенклатуры и изменении ее количества и автоматически вычисляем общую сумму Отгрузкаа):
&НаКлиенте
Процедура ОтгрузкаКоличествоПриИзменении(Элемент)
ТекущаяСтрока = элементы.Отгрузка.ТекущиеДанные.НомерСтроки;
ОтгрузкаКоличествоПриИзмененииСервер(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ОтгрузкаКоличествоПриИзмененииСервер(НомерСтроки)