|
0
Константин536
01.04.15
✎
11:47
|
Здравствуйте. У меня такая проблема: По факту товара нет на складе, но если я его выбираю и продаю, то операция проходит. А если на складе есть хоть 1шт, а я хочу продать 3, то выскакивает ошибка. Как сделать чтоб и при нуле такая ошибка выходила.
Вот код:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.Общий.Записывать = истина;
Запрос = Новый Запрос;
Запрос.Текст =
"выбрать
|пр.товар как товар,
|Сумма(пр.количество) как количество,
|Максимум(ЕстьNULL(рег.количествоостаток, 0)) как количествоостаток,
|Максимум(ЕстьNULL(рег.стоимостьостаток, 0)) как стоимостьостаток,
|Сумма(пр.Сумма) как Продажа
|из
|документ.продажа.товары как пр
|левое соединение
|регистрнакопления.общий.остатки(&МоментВремени, ) как рег
|по
|пр.товар = рег.товар
|где
|склад = &склад и
|ссылка = &ссылка и
|ссылка.склад = &склад
|сгруппировать по
|пр.товар";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("склад", склад);
Запрос.УстановитьПараметр("ссылка.склад", склад);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Количество > Выборка.КоличествоОстаток тогда
Сообщить("Не хватает товара " + Выборка.Товар + " в количестве " + (Выборка.Количество - Выборка.КоличествоОстаток));
Отказ = истина;
Движения.Общий.Записывать = ложь;
КонецЕсли;
Если отказ тогда
Продолжить;
КонецЕсли;
Движение = Движения.Общий.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Склад =Склад;
Движение.Товар = Выборка.Товар;
Движение.Количество = выборка.Количество;
Движение.Стоимость = Выборка.Количество / Выборка.КоличествоОстаток * Выборка.СтоимостьОстаток;
Движение.СуммаПродажи = Выборка.Продажа;
КонецЦикла;
КонецПроцедуры
|
|
|
2
lxndr
01.04.15
✎
11:54
|
Уоттакуот!
"выбрать
|пр.товар как товар,
|Сумма(пр.количество) как количество,
|Максимум(ЕстьNULL(рег.количествоостаток, 0)) как количествоостаток,
|Максимум(ЕстьNULL(рег.стоимостьостаток, 0)) как стоимостьостаток,
|Сумма(пр.Сумма) как Продажа
|из
|документ.продажа.товары как пр
|левое соединение
|регистрнакопления.общий.остатки(&МоментВремени, склад = &склад) как рег
|по
|пр.товар = рег.товар
|где
|//склад = &склад и
|ссылка = &ссылка и
|ссылка.склад = &склад
|сгруппировать по
|пр.товар";
|
|