Имя: Пароль:
1C
1С v8
Сравнение типов
,
0 ksTheme
 
02.09.13
17:59
Здравствуйте, приведу сначала текст:

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПриемТовараНаРемонт.Номенклатура,
                   |    ПриемТовараНаРемонт.Количество КАК ПриемКоличество,
                   |    Перемещение.Количество КАК ПеремКоличество
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ПриемТовараНаРемонтТовары.Номенклатура КАК Номенклатура,
                   |        ПриемТовараНаРемонтТовары.Количество КАК Количество
                   |    ИЗ
                   |        Документ.ПриемТовараНаРемонт.Товары КАК ПриемТовараНаРемонтТовары
                   |    ГДЕ
                   |        ПриемТовараНаРемонтТовары.Ссылка = &ДокументПриемТовара) КАК ПриемТовараНаРемонт
                   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   |            ПеремещениеТоваровТовары.Номенклатура КАК Номенклатура,
                   |            ПеремещениеТоваровТовары.Количество КАК Количество                                    
                   |        ИЗ
                   |            Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
                   |        ГДЕ
                   |            ПеремещениеТоваровТовары.Ссылка = &ДокументОснование) КАК Перемещение
                   |        ПО ПриемТовараНаРемонт.Номенклатура = Перемещение.Номенклатура";
    
    Запрос.УстановитьПараметр("ДокументОснование", ДокументОснование.Ссылка);
    Запрос.УстановитьПараметр("ДокументПриемТовара", ЭтотОбъект.Ссылка);
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    ТЧОбщая    = Результат.Выгрузить();
    
    Для Каждого ТекСтрока Из ТЧОбщая Цикл
        Если ТекСтрока.ПриемКоличество < ТекСтрока.ПеремКоличество тогда
            Сообщить("Количество принимаемого товара ["+Выборка.Номенклатура+"] превышает количество по документу ["+ДокументОснование.Ссылка+"]!");
            Отказ=Истина;
        КОнецЕсли;
    КонецЦикла;
    
    Возврат Отказ;

Вопрос: При отладке ругается на сравнение в цикле после запроса - ТекСтрока.ПриемКоличество < ТекСтрока.ПеремКоличество

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПриемТовараНаРемонт.МодульОбъекта(346)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)

Не понятно, ведь у сравниваемых параметров одинаковый тип - число
1 ДенисЧ
 
02.09.13
18:00
Где-то NULL закрался.
2 Wobland
 
02.09.13
18:01
(0) откуда вывод?
3 Odavid
 
02.09.13
18:01
(0) поставь условие на число
(1) ничего подобного
Одно из Количеств - строка.
4 ksTheme
 
02.09.13
18:02
При сравнении смотрю значение, получается 1<1 значение число, но он не сравнивает, что это?
5 ksTheme
 
02.09.13
18:02
выборка из документов с ТЧ товары где количество это число
6 ksTheme
 
02.09.13
18:03
(3) чем это поможет?
7 Wobland
 
02.09.13
18:03
"1<1" - ни разу не число, если что
8 Любопытная
 
02.09.13
18:03
(4) типы скажи у каждой переменной
9 ksTheme
 
02.09.13
18:04
(8)  ЧИсло и там и там
10 Odavid
 
02.09.13
18:05
(9)>> ЧИсло и там и там
а вот и нет.
Ставь условие и вывод сообщения, какая переменная - "вдруг" не число.
11 ksTheme
 
02.09.13
18:05
(7) Подробнее пожалуйста, что-то не понял
12 Wobland
 
02.09.13
18:05
(9) ползут по пустыне три черепашки
13 Wobland
 
02.09.13
18:05
(11) это я не понял твоё (4)
14 Wobland
 
02.09.13
18:06
Запрос.Выбрать().Выгрузить().КакоеТоКоличество
вообще исполнится не должно. автор врёт
15 ksTheme
 
02.09.13
18:08
(14) Да ты спец я посмотрю ...
16 Wobland
 
02.09.13
18:10
(15) меньше флуда
17 hhhh
 
02.09.13
18:10
(15) всё-таки выведите в отладчике ТЧОбщая на экран и нам скрин выложите
18 Fragster
 
модератор
02.09.13
18:10
а нафига и выборка и выгрузка из результата?
19 ksTheme
 
02.09.13
18:11
(10) При отладке выделяю переменную, нажимаю вычислить выражение, там в колонке значение стоит 1 а в колонке типзначения число
20 ksTheme
 
02.09.13
18:11
(17) ок
21 Wobland
 
02.09.13
18:11
(19) уже лучше. теперь со второй переменной
22 Odavid
 
02.09.13
18:13
(18) ну надо же все попробовать ))
23 ksTheme
 
02.09.13
18:13
(21) тоже самое
24 Odavid
 
02.09.13
18:13
(19) это именно где ошибка или в первой?
25 Wobland
 
02.09.13
18:13
(23) и на если после этого вылетает?
26 ksTheme
 
02.09.13
18:14
(18) сначала делал через выборку, проглядел и забыл убрать, сейчас поменяю может получится
27 ksTheme
 
02.09.13
18:14
(25) да
28 Wobland
 
02.09.13
18:15
отладка - остановка по ошибке + табло - скрин в студию
29 Odavid
 
02.09.13
18:15
(26) выборка ни при чем - она не участвует нигде
30 hhhh
 
02.09.13
18:18
(27) теперь вторую строчку проверьте. Оба значения. Сколько вообще строк в таблице?
31 ksTheme
 
02.09.13
18:18
как выложить скрин?
32 Wobland
 
02.09.13
18:19
(31) любыми ссылочными методами
http://screencast.com/t/MPzJ9OaJqvEi
33 Wobland
 
02.09.13
18:20
(30) надеюсь в процессе изготовления скрина до автора дойдёт
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn