Вход | Регистрация
 

Запрет на проведения при отрицательном и нулевом остатке

Запрет на проведения при отрицательном и нулевом остатке
Я
   vadim1995
 
22.01.21 - 11:00
Добрый день, подскажите как мне поставить контроль в документ продажа товара. Там нужно что бы при минусовом или нулевом остатке во время проведения выходило сообщение и документ не проводился. Но проблема в том что он проводится в этих случаях и ни какого сообщения не выходит.

Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    // регистр ТоварыНаСкладах Расход
    Движения.ТоварыНаСкладах.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.ТоварыНаСкладах.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Товар = ТекСтрокаТовары.Товар;
        Движение.Склад = Склад;
        Движение.Количество = ТекСтрокаТовары.Количество;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЦикла;

    // регистр Взаиморасчет Приход
    Движения.Взаиморасчет.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.Взаиморасчет.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Контрагент = Контрагент;
        Движение.Договор = Договор;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЦикла;

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.