Имя: Пароль:
1C
 
Товары в минусе
0 Sv4org
 
17.08.16
16:26
Всем привет
Ребята написал процедуру котрая должна выдать ошибку если товар уходит в минус, но не работает
Можете посмотреть в чём ошибка?

вот код:
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    

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

    Движения.Записать();  
   //проверяю есть ли отрицательные остатки на складе после движений. Если есть - отмена проведения
   //и сообщение о нехватке товаров
   Запрос = Новый Запрос("ВЫБРАТЬ
                         |   ОстаткиМатериалов.Материал,
                         |   ОстаткиМатериалов.Количество
                         |ИЗ
                         |   РегистрНакопления.ОстаткиМатериалов КАК ОстаткиМатериалов
                         |ГДЕ
                         |   ОстаткиМатериалов.Количество < 0"
   );
   Результат = Запрос.Выполнить();
   ТабЗнач=Результат.Выбрать();
   Пока ТабЗнач.Следующий() Цикл
      
      СписываемоеКоличествоТовара = Движение.Количество - ТабЗнач.КоличествоОстаток;
      Сообщить ("Товара: "+ТабЗнач.Наименование+" недостаточно на складе. Не хватает "+СписываемоеКоличествоТовара+"  единиц товара! Проведение отменено! ", СтатусСообщения.Важное);
          Отказ=Истина;
      
   КонецЦикла;

    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
1 Spieluhr
 
17.08.16
16:33
в запросе
2 vicof
 
17.08.16
16:35
в ДНК
3 Chum
 
17.08.16
16:40
(0) признавайся - тебя мама на работу устроила? сказала, что сыночек разбирается в компьютерах?
4 Sv4org
 
17.08.16
16:41
(3) Причём здесь мама? Она в другой стране
5 Sv4org
 
17.08.16
16:42
(3) Причём здесь мама?
6 Zamestas
 
17.08.16
16:42
(4) Что за конфигурация?
7 Масянька
 
17.08.16
16:42
Стопудово - календарь врет... Сегодня - пятница...
8 Sv4org
 
17.08.16
16:42
(6) По Книге Радченко делал конфигурацию
9 Масянька
 
17.08.16
16:43
А у Радченко есть мыло?
10 Sv4org
 
17.08.16
16:44
(9) Какое мыло?
11 Горогуля
 
17.08.16
16:44
(9) Радченко принимает только со своим вазелином
12 LordCMEPTb
 
17.08.16
16:45

...
//проверяю есть ли отрицательные остатки на складе после движений. Если есть - отмена проведения
...
|ИЗ
|   РегистрНакопления.ОстаткиМатериалов КАК ОстаткиМатериалов


Может надо все же остатки брать, а не физический регистр?
13 vicof
 
17.08.16
16:45
(12) Внезапно
14 Горогуля
 
17.08.16
16:46
+(12) можно ещё не все сразу брать
15 Sv4org
 
17.08.16
17:07
Спасибо ребят помогли
от души)
16 Горогуля
 
17.08.16
17:08
слава яйцам!
спорим, ТЧ сгруппировать не догадался?
17 Sv4org
 
17.08.16
17:10
(16) догадался,помогли добрые люди
скинули пример
18 Горогуля
 
17.08.16
17:11
Радченко не устроил, да?
19 Sv4org
 
17.08.16
17:12
(18) не нашёл этого
20 Fram
 
17.08.16
17:26
(0) начни со схем. до последней мелочи прорисуй все возможные сценарии. а писать код это ужэ дело второе.

ЗЫ не тот форум ты выбрал для своего вопроса
21 Sv4org
 
22.08.16
09:21
Ребят такая ситуция
работает всё кроме одного
допустим если у нас есть 10 штук одного товара и мы добавим в расходную накладную два элемнта где в одном будет 5 штук а в другой 6 штук этого товара тогда всё проводиться
Как решить эту проблему?
22 lodger
 
22.08.16
09:23
(21) ответ в (16)
23 birkoFFFF
 
22.08.16
09:25
(21) Надо сначала свернуть ТЧ документа в таблицу значений и потом уже эту свернутую ТЗ проверять. Чтобы было не 2 строки 5 и 6, а одна с 11.
24 birkoFFFF
 
22.08.16
09:25
(22) о, пропустила)
25 Масянька
 
22.08.16
09:28
(21)
1. В идеале: в одном документе не может быть 2 одинаковых товара по разной цене. Поэтому - при добавлении товара ищется (может быть уже есть) и суммируется кол-во.
2. Не в идеале: может быть несколько позиций одинакового товара. Тогда нужно при проведении (движения по регистрам) - пересчитывать кол-во для каждой позиции, с учетом кол-ва этого документа.
Оба варианта имеют право на жизнь. Первый - легче, второй - сложнее.
26 Sv4org
 
22.08.16
10:57
(25) Спасибо
27 Горогуля
 
22.08.16
11:01
(21) а как же добрые люди из (17)?
28 Sv4org
 
22.08.16
11:21
(27)В данный момент они заняты
29 Горогуля
 
22.08.16
11:27
(28) да пофиг, помогли же. а ты тупой вопрос задаёшь
30 Sv4org
 
06.09.16
15:34
Ребят как сделать этот же пример но через последовательности?
а то ситуация следующая расходную накладную проводят допустим в 12:00:00
а приходную провели в 12:00:02 и в итоге выдаёт ошибку что нет товара на складе
31 Sv4org
 
06.09.16
17:45
Кто нибудь знает как это сделать?
32 FIXXXL
 
06.09.16
17:53
(30) и это правильно
проводить надо оперативно