Имя: Пароль:
1C
1C 7.7
v7: Прямой запрос к справочнику, в чем ошибка
,
0 zenon46
 
06.06.19
16:26
Доброго дня!
В справочнике всего три поля, Наименование,ВерхПредел,Стоимость.

В чем ошибка? Я не пойму поле такое есть, QA говорит обратное Invalid column name 'ВерхПредел'.
Запрос

SELECT
              Спр.ВерхПредел as [ВерхПредел $Число],
              Спр.Стоимость as [Стоимость $Число]
FROM
              $Справочник.СтоимостьПогрузкиРазгрузки As Спр
WHERE
               (Спр.ВерхПредел < :МассаТовара)
1 toypaul
 
гуру
06.06.19
16:28
в синтаксисе 1С++ не силен, но тут очевидно, что поле не транслировалось в нужный реквизит справочника. может доку с примерами почитать для начала?
2 zenon46
 
06.06.19
16:29
(1) да вроде все нормально, может очевидного не вижу, потому и српосил
3 zenon46
 
06.06.19
16:40
4 ДенисЧ
 
06.06.19
16:44
SELECT
              $Спр.ВерхПредел as [ВерхПредел $Число],

Если я правильно помню эти заморочки...
5 ДенисЧ
 
06.06.19
16:45
Во, нашёл


Re: FAQ по прямым запросам.
Ответ #2 - 19. Мая 2006 :: 11:43
    Печать  
2)Типизация к типам 1С

Текст = "
|SELECT
| Спр.ID as [Элемент $Справочник.Номенклатура]
|FROM
| $Справочник.Номенклатура as Спр
|";

Правило: Типизируем к тому виду который хранится с базе, например
$Справочник.Номенклатура
$Справочник
$Документ.РасходнаяНакладная
$Документ
$Неопределенный
дату, число, строку типизировать не надо

Еще пример

Текст = "
|SELECT
| $Док.Контрагент [Контрагент $Справочник.Контрагенты]
|FROM
| $Документ.ПКО as Док
|";

Соответственно as можно не писать.

http://www.1cpp.ru/forum/YaBB.pl?num=1148038411
6 zenon46
 
06.06.19
16:53
(5) хрень какая-то
SELECT
               $Спр.ВерхПредел  ВерхПредел,
               $Спр.Стоимость  Стоимость
FROM
              $Справочник.СтоимостьПогрузкиРазгрузки As Спр
WHERE
               (ВерхПредел < :МассаТовара)

тоже самое(
7 ДенисЧ
 
06.06.19
16:55
(6) А так

WHERE
               ($Спр.ВерхПредел< :МассаТовара)
8 zenon46
 
06.06.19
16:57
(7) ды жопа, как только не пробовал тоже самое(
9 zenon46
 
06.06.19
16:58
(7)
написал такой
SELECT
    Спр.Descr as Наименование
FROM
    $Справочник.СтоимостьПогрузкиРазгрузки as Спр
WHERE
    Спр.IsMark = 0

рабоатет
10 zenon46
 
06.06.19
17:00
SELECT
    Спр.ВерхПредел as ВерхПредел
FROM
    $Справочник.СтоимостьПогрузкиРазгрузки as Спр
WHERE
    Спр.IsMark = 0

а так не работает)
11 zenon46
 
06.06.19
17:04
http://prntscr.com/nyfd5m

что нужно, не пойму
12 zenon46
 
06.06.19
17:09
SELECT
    $Спр.ВерхПредел as ВерхПредел
FROM
    $Справочник.СтоимостьПогрузкиРазгрузки as Спр
WHERE

так рабоатет
13 zenon46
 
06.06.19
17:20
В условии не получается выбрать нормально. Получается надо было перебором справочника заниматься.
14 Herby
 
06.06.19
17:33
(13) и в условии нужно добавлять знак $ перед Спр.ВерхПредел
15 MAG
 
06.06.19
17:37
$Спр.ВерхПредел as ВерхПредел
FROM
    $Справочник.СтоимостьПогрузкиРазгрузки as Спр
WHERE
    Спр.IsMark = 0
16 Herby
 
06.06.19
18:11
(13) ВерхПредел - это название реквизита в метаданных, но в таблице БД поле имеет другое наименование, какое-нибудь sp2394.
И вот $ как раз и говорит парсеру, чтобы ВерхПредел в уже переданном запросе на сервер переименовался в sp2394.

А вот зарезервированные поля в таблицах такие как IsMark, Descr, ID и тд. ни куда переводить не нужно, они такими и остаются, поэтому перед такими полями знак $ не ставится.
17 zenon46
 
06.06.19
18:36
Всем пасибо, разобрался.
18 zenon46
 
06.06.19
19:35
http://prntscr.com/nyhl02

почему в выборке пусто?
19 Herby
 
06.06.19
20:42
(18) потому что такое условие задал.

ни одна строка из таблицы слева не соответствует условию.
20 zenon46
 
06.06.19
20:45
(19) не понял, а 4-я строка, нижний предел = 31 верхний 100, 31 туда попадет.
21 Mikeware
 
06.06.19
20:46
(20) ты знаки перепутал.
22 zenon46
 
06.06.19
20:47
(21) БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
23 Mikeware
 
06.06.19
20:57
(22) "следи за собой, будь осторожен..."©
24 zenon46
 
06.06.19
21:05
(23) пора заканчивать, на сегодня.