|
Запрет на проведения при отрицательном и нулевом остатке | ☑ | ||
---|---|---|---|---|
0
vadim1995
22.01.21
✎
11:00
|
Добрый день, подскажите как мне поставить контроль в документ продажа товара. Там нужно что бы при минусовом или нулевом остатке во время проведения выходило сообщение и документ не проводился. Но проблема в том что он проводится в этих случаях и ни какого сообщения не выходит.
Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр ТоварыНаСкладах Расход Движения.ТоварыНаСкладах.Записывать = Истина; Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.ТоварыНаСкладах.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Товар = ТекСтрокаТовары.Товар; Движение.Склад = Склад; Движение.Количество = ТекСтрокаТовары.Количество; Движение.Сумма = ТекСтрокаТовары.Сумма; КонецЦикла; // регистр Взаиморасчет Приход Движения.Взаиморасчет.Записывать = Истина; Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.Взаиморасчет.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Контрагент = Контрагент; Движение.Договор = Договор; Движение.Сумма = ТекСтрокаТовары.Сумма; КонецЦикла; Движения.Записать(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажаТовараТовары.Товар КАК Товар |ПОМЕСТИТЬ ДокументТЧ |ИЗ | Документ.ПродажаТовара.Товары КАК ПродажаТовараТовары |ГДЕ | ПродажаТовараТовары.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Товар.Представление КАК ТоварПредставление, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | &Граница, | Товар В | (ВЫБРАТЬ | ДокументТЧ.Товар КАК Товар | ИЗ | ДокументТЧ КАК ДокументТЧ) | И Склад = &Склад) КАК ТоварыНаСкладахОстатки |ГДЕ | ТоварыНаСкладахОстатки.КоличествоОстаток < 0"; Запрос.УстановитьПараметр("Граница", Новый Граница(МоментВремени(),ВидГраницы.Включая)); Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Количество() < 0 Тогда Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить ("Недостаточно товара" + ВыборкаДетальныеЗаписи.ТоварПредставление +"! не хватает "+(-ВыборкаДетальныеЗаписи.КоличествоОстаток)+"шт."); КонецЦикла; Отказ = Истина; КонецЕсли; КонецПроцедуры |
|||
1
Ненавижу 1С
гуру
22.01.21
✎
11:21
|
Если ВыборкаДетальныеЗаписи.Количество() < 0 Тогда //это мощное условие!!! ***проблема тут***
|
|||
2
vadim1995
22.01.21
✎
15:06
|
(1) Если вы имеете ввиду знак "<" то я его менял всё равно документ с минусовым и нулевым остатком выводился и сообщение которое я записал в коде не выходило
|
|||
3
vadim1995
22.01.21
✎
15:07
|
(2) * проводился
|
|||
4
ChMikle
22.01.21
✎
15:15
|
если это типовые конфигурации 1С , то в пользовательском меню попробуйте контроль остатков найти и выставить
|
|||
5
DrShad
22.01.21
✎
15:25
|
(2) оно вообще не нужно
|
|||
6
vadim1995
22.01.21
✎
15:26
|
(4) Это самописная конфигурация я сам её делаю
|
|||
7
vadim1995
22.01.21
✎
15:27
|
(5) Что не нужно ?
|
|||
8
vadim1995
22.01.21
✎
15:28
|
(5) Сообщение ?
|
|||
9
DrShad
22.01.21
✎
15:30
|
(8) условие
|
|||
10
vadim1995
22.01.21
✎
15:39
|
(9) А как же тогда без условия ?
|
|||
11
DrShad
22.01.21
✎
15:41
|
(10) легко, если в выборке не будет записей и то цикла не будет
|
|||
12
del123
22.01.21
✎
16:00
|
Главное отказ засунуть в цикл или сравнивать с пустой выборкой
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |