Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отказ при записи

Отказ при записи
Я
   MIV 91
 
23.11.20 - 17:54
Добрый день, по задумке при записи если не хватает товара то должен идти отказ в записи, однако этого нет, не подскажите почему?


Процедура ПриЗаписи(Отказ)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
        |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
        |ИЗ
        |    РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В (&Товары)) КАК ТоварыНаСкладахОстатки
        |ГДЕ
        |    ТоварыНаСкладахОстатки.КоличествоОстаток < 0";
    
    Запрос.УстановитьПараметр("Товары", Товары.ВыгрузитьКолонку("Номенклатура"));
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Если ВыборкаДетальныеЗаписи.Количество()> 0 Тогда
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Сообщить ("Не хватает"  + ВыборкаДетальныеЗаписи.Номенклатура +  "количество" +  -ВыборкаДетальныеЗаписи.КоличествоОстаток + "!")    
    КонецЦикла;
    Отказ = Истина;
    КонецЕсли;
    
КонецПроцедуры
   ДенисЧ
 
1 - 23.11.20 - 17:58
Белые люди обычно такую пакость делают в ПередЗаписью()
   MIV 91
 
2 - 23.11.20 - 18:03
(1) Я пробовал и перед Записью и Режим Проведения, все равно документ проходит...
   RomanYS
 
3 - 23.11.20 - 18:04
(1) а типовые другие расы пишут? Контроль остатков обычно в обработке проведения
   ДенисЧ
 
4 - 23.11.20 - 18:10
(3) Типовые пишут инопланетянет
(2) А запрос что говорит вообще?
   MIV 91
 
5 - 23.11.20 - 18:12
(4) Через запрос я получаю выборку, и конкретно нужную строку табличной части, плюс условие что если меньше нуля конкретной номенклатуры, тогда...
   RomanYS
 
6 - 23.11.20 - 18:17
(4) Не только инопланетяне знают, что отрицательные остатки нужно проверять после проведения (и точно после "ПередЗаписью") :))).
   RomanYS
 
7 - 23.11.20 - 18:18

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