Имя: Пароль:
1C
 
Зачем запрос умеет вычислять ЗНАЧЕНИЕ(<Имя типа>)?
0 TormozIT
 
гуру
09.02.19
11:02
Если выполнить запрос

ВЫБРАТЬ ЗНАЧЕНИЕ(Справочник.Банки)

то получим таблицу значений с колонкой с описанием типов

    NULL
    Тип

с одной строкой, в единственной ячейке которой будет Неопределено. Хочется узнать зачем так сделано. Не лучше ли в таких случаях выдавать ошибку синтаксического контроля запроса?

На всякий случай вот полный код

Запрос = Новый Запрос;
Запрос.Текст = "|ВЫБРАТЬ ЗНАЧЕНИЕ(Справочник.Банки)|";
Результат = Запрос.Выполнить().Выгрузить();
1 RomanYS
 
09.02.19
11:18
Недавно тоже (здесь) столкнулся с такой конструкцией и тогда вроде бы пришел к тому, что возвращается пустая ссылка. Сейчас запустил в консоли (КА1, на построителе), вообще х#рня полная:
https://ibb.co/3r6wdQs

ТипЗначения в запросе от этой каки с ошибкой падает
2 TormozIT
 
гуру
09.02.19
11:22
(1) Консоль отчетов все таки опасно использовать для этого. Чище будет использовать консоль запросов и совсем чисто - отладчик. Скриншот с какой версии платформы и режима совместимости?
3 ДенисЧ
 
09.02.19
11:26
(0)
http://pics.wfido.ru/img/Req_rucr5.png

8.3.10.2667 без соместимости
4 RomanYS
 
09.02.19
11:30
(2) выборка показывает, что там двоичные данные
https://ibb.co/r54pNJS

платформа 8.3.13 режим совместимости 8.2
5 RomanYS
 
09.02.19
11:30
(3) может нет такого справочника?
6 RomanYS
 
09.02.19
11:31
(2) Выгрузить() получается тоже искажает, даже больше чем консоль)
7 ДенисЧ
 
09.02.19
11:34
(5) Да, действительно. Вертает неопределено...
8 RomanYS
 
09.02.19
11:36
(7) двоичные данные, а неопределено. "Неопределено" при выгрузить()  возникает
9 TormozIT
 
гуру
09.02.19
11:39
Действительно, Выборка возвращает двоичные данные.
10 TormozIT
 
гуру
09.02.19
11:40
Видимо это все таки тип возвращается, но какой то "недоделанный".
11 RomanYS
 
09.02.19
11:43
(10) +1

Только одно напрягает, точно помню, что эта хрень меня зацепила. И я проверял и получил пустую ссылку.
Старость - не радость)
12 Casey1984
 
09.02.19
11:45
(0) Забавная не задокументированная возможность. Как-то так. Никому не нужная, просто поиграться :-/
13 RomanYS
 
09.02.19
11:46
(10) и запакованный в 5(!) байт. Может какой-то номер таблицы
14 TormozIT
 
гуру
09.02.19
11:48
Написал в 1С багрепорт с просьбой удалить это безобразие и выдавать ошибку синтаксического контроля.
15 TormozIT
 
гуру
09.02.19
11:48
По всем признакам такое поведение похоже на не до конца удаленный функционал.
16 ДенисЧ
 
09.02.19
12:08
(14) Если они послушаются, сколько всего полететь может.. )))
17 TormozIT
 
гуру
09.02.19
12:20
(16) Если кто то использовал такую конструкцию в запросе, то она не могла приносить осмысленную пользу. Поэтому частота ее использования в конфигурациях наверняка крайне низкая. Думаю  из-за этого не станут оставлять эту некорректную возможность.
18 GREENLAND
 
09.02.19
12:24
Как вариант, добавление в запрос условие на сравнение с перечислениями.
19 GREENLAND
 
09.02.19
12:26
Есть другие варианты применения "Значение" в запросах...
20 Aleksey
 
09.02.19
12:31
(17) не факт к примеру универсальная обработка для разных конфигураций
21 TormozIT
 
гуру
09.02.19
13:58
(20) Можешь конкретный пример привести? Осмысленная польза какая может быть?
22 TormozIT
 
гуру
09.02.19
13:59
(18) Как вариант чего?
23 Конструктор1С
 
09.02.19
15:32
Справочник.Банки это не имя типа, это имя таблицы
24 TormozIT
 
гуру
09.02.19
17:24
(23) Нет. Справочник.Банки это имя типа и одновременно имя таблицы. Ссылочные типы в языке запросов обозначаются именами их таблиц.
25 Конструктор1С
 
10.02.19
12:59
(24) так ведь нет типа "Справочник.Банки". Есть "СправочникСсылка.Банки", "СправочникОбъект.Банки" и иже с ними
26 TormozIT
 
гуру
10.02.19
23:20
(25) Это верно для встроенного языка 1С. В языке запросов нет разделения на подтипы внутри одной таблицы (объекта метаданных).
27 VladZ
 
11.02.19
10:02
(0) Мое мнение: выражение ЗНАЧЕНИЕ(Справочник.Банки) не имеет смысла.  Зачем ЭТО выполнять в запросе?

Вопрос из разряда:
"Я в запросе выбираю какую-то хрень. И на выходе получаю хрень. Почему так происходит???"
28 TormozIT
 
гуру
11.02.19
10:09
(27) Красиво написал, но бесполезно.
29 hhhh
 
11.02.19
13:33
(26) так вы смотрите тип как раз во встроенном языке. Вы же не в языке запросов смотрите.