|
Зачем запрос умеет вычислять ЗНАЧЕНИЕ(<Имя типа>)? | ☑ | ||
---|---|---|---|---|
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
|
||||
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) так вы смотрите тип как раз во встроенном языке. Вы же не в языке запросов смотрите.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |