Имя: Пароль:
1C
1С v8
Контроль остатка самописка
,
0 Akkreditator
 
30.01.15
12:56
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
    ТЧ = Объект.Товары;
    Для каждого Стр из ТЧ Цикл
        СпрВладелецНаименование = Стр.Номенклатура;
        СпрИмейНаименование = Стр.Имей;
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
        |ИЗ
        |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        |ГДЕ
        |    ТоварыНаСкладахОстатки.Имей.Ссылка = &СпрИмейНаименование
        |    И ТоварыНаСкладахОстатки.Номенклатура.Ссылка = &СпрВладелецНаименование";
    Запрос.УстановитьПараметр("СпрВладелецНаименование",СпрВладелецНаименование);
    Запрос.УстановитьПараметр("СпрИмейНаименование", СпрИмейНаименование);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл        
    Если Стр.Количество > ВыборкаДетальныеЗаписи.Остаток Тогда
            //Результат на сколько превышает количество в табличной части остаток
            Результат = Стр.Количество - ВыборкаДетальныеЗаписи.Остаток;
            Сообщить("В строке номер " + Стр.НомерСтроки + " превышен остаток на складе на " + Результат + " шт.");
            Отказ = Истина;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры

Есть вот такая процедура, типа расходная накладная, если в тч вставить товар который есть на приходе то норм, а если нет то он первый раз проводит а во второй раз, ругается, в первый раз ошибка чтения значеия у выборкидетальныезаписи, как блин отловить этот момент
1 Akkreditator
 
30.01.15
12:57
Хочу чтоб если не было товара на складе вообще, то тогда чтобы с первого раза ругался типа нет его и все дела
2 PR
 
30.01.15
12:57
Да
3 Ёпрст
 
30.01.15
12:58
останки нужно проверять у всей ТЧ сразу, а не в цикле лепить запрос
4 PR
 
30.01.15
12:58
(3) Блин, поломал такую ветку. Закрывайте ветку, ответ дан.
5 Akkreditator
 
30.01.15
12:59
Не понял
6 Akkreditator
 
30.01.15
12:59
Можно по подробнее
7 Cube
 
30.01.15
12:59
(0) Запрос в цикле... Расстрелять!
8 Akkreditator
 
30.01.15
13:01
Как всю тч запихать в запрос то?!
9 ukolabrother
 
30.01.15
13:01
(0) у меня для тебя плохие новости. Ты не понимаешь какую глупость написал.
10 Cube
 
30.01.15
13:01
(8) Поиск тут -> http://www.forum.mista.ru/find.php
11 Akkreditator
 
30.01.15
13:01
(7) Понял понял, ну а как сделать то направьте деятелей
12 PR
 
30.01.15
13:02
(11) Я так понимаю, русский не родной?
14 Cube
 
30.01.15
13:03
(11) Ответ в (3).
15 Akkreditator
 
30.01.15
13:03
Блин пожалуйста, давайте не будем тут гиппократами представляться, всегда так, какие то люди неправильные , знаешь ответь нет, так что писать попусту
16 Cube
 
30.01.15
13:03
(13) О... Да ты наглец...
17 ssh2QQ6
 
30.01.15
13:04
(13) для кого "самописка" пишется?
18 PR
 
30.01.15
13:04
(13) Ой, вот это ты зря написал, прощай, невежественное хамло :))
21 ukolabrother
 
30.01.15
13:06
(19) вот что ты грубишь? Не будут тебе тут писать процедуру с таким отношением
22 ktvladimir
 
30.01.15
13:06
да нормальная  тема для пятницы... уже не первая сегодня)
23 ssh2QQ6
 
30.01.15
13:06
(20) > Дебилы!!

Гордо удалился
24 Akkreditator
 
30.01.15
13:09
Нет, просто попросил нормально, а тут начинают показывать свое великое Я... (3) написал же нормально, я попросил подробнее, и понеслась куча фигни
25 GROOVY
 
модератор
30.01.15
13:10
1. Нехрен тут ругатся. Тут никто никому ничего не должен.
2. Отбор по товарам в ГДЕ, вместо параметров виртуальной таблицы - это полнейшее отсутствие понимания того как работают запросы к виртуальным таблицам
3. Получить отрицательные остатки до первого списания в минус не получится - это очевидная логика, потому он у тебя только со второго раза ругается.
4. Эту задачу решать нужно просто совсем не так, но ты слушать видать не хочешь, а хочешь готовое решение.
26 Akkreditator
 
30.01.15
13:11
(21) А что умничать?! Я вполне нормально, без лишнего... И какое отношение имеет родной язык к этой теме, попахивает расизмом
27 ktvladimir
 
30.01.15
13:12
дарю в честь пятницы)


выбрать
  докТовары.Номенклатура,
  докТовары.имей
  ЕСТЬNULL(Остатки.КоличествоОстаток,0) - докТовары.Количество КАК Нехватает
ИЗ
  Документ.Док.Товары КАК ДокТовары
    Левое соединение РегистрНакопления.ТоварыНаСкладах.Остатки(&период, (Номенклатура, Имей) в
                                     (выбрать
                                        доктовары.Номенклатура,
                                        доктовары .имей
                                      из Документ.Док.Товары как доктовары
                                      где доктовары.ссылка = &ссылка)) КАК ТоварыНаСкладахОстатки
    ПО ДокТовары.Номенклатура =  ТоварыНаСкладахОстатки.Номенклатура
    И ДокТовары.имей =  ТоварыНаСкладахОстатки.имей
  где ДокТовары.Ссылка = &Ссылка
  и   ЕСТЬNULL(Остатки.КоличествоОстаток,0) - докТовары.Количество > 0
28 GROOVY
 
30.01.15
13:12
29 Akkreditator
 
30.01.15
13:12
(25) 1. Читаем (26)
2. Большое спасибо, постараюсь подтянуть знания по данной теме,
3. я это понимаю поэтому не зная решения обратился сюда
4.Мне не нужно решение, мне нужно направление... Где прочитать? Где покопаться?
30 Cube
 
30.01.15
13:13
(24) Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. (с)тырено
31 Akkreditator
 
30.01.15
13:13
(28) (27) Огромное спасибо за помощь, кого обидел извините, просто реально нельзя было сразу вот ткнуть на ссылку без лишних вопросов..!
32 PR
 
30.01.15
13:14
(26) В смысле какое? Такое, что у тебя ошибок по полста на пост.
33 Akkreditator
 
30.01.15
13:15
(12) Тороплюсь, бывает у каждого, ... Короче понеслась флудильня всем еще раз (31)
34 AquaMan
 
30.01.15
13:15
А почему в обработке проверки заполнения остаток проверяется?))
35 Зеленый пень
 
30.01.15
13:17
(31) Когда я начинал программировать на 8ке - сначала книжки и курсы прочитал, какие нашел. Методом тыка основ не поймешь и будешь на форумах всегда обиженным.
36 ktvladimir
 
30.01.15
13:17
ну и добавить группировки, поскольку в тч могут повторятся строки, а так же как постоянно тут пишу учесть что есть единицы измерения и нужно приводить их к единицам хранеия... ну и читать читать читать.... брать курсы смотреть проверять и снова читать
37 Akkreditator
 
30.01.15
13:19
(34) А где это стоит делать?
38 ktvladimir
 
30.01.15
13:21
при проведении документа конечно же
39 Akkreditator
 
30.01.15
13:23
(38) спасибо