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