|
Перечисление в запросах | ☑ | ||
---|---|---|---|---|
0
25-11
02.10.16
✎
17:20
|
Никто не интересовался, как 1С работает с перечислениями при их использовании в запросе?
Как с "обычной" таблицей, т.е. использование в запросе через точку означает вложенный запрос для каждой записи? |
|||
1
mehfk
02.10.16
✎
17:27
|
||||
2
25-11
02.10.16
✎
17:29
|
(1) Если ты не понимаешь о чем речь, то лучше молчать, чем говорить...
|
|||
3
GROOVY
02.10.16
✎
17:35
|
И куда ты через точку в перечислении полезешь?
|
|||
4
и тут и там
02.10.16
✎
17:41
|
(0) перечисление это не просто таблица. этот таблица с исключительно строковыми типами данных для элементов. какие вложенные запросы?
|
|||
5
25-11
02.10.16
✎
17:42
|
Я имею ввиду, понятное дело, как в 1C-ное "через точку" транслируется в SQL-ный запрос. Другими словами, если в запросе выводится что типа Объект.ПолеПеречисление,
то имеет ли смысл для повышения эффективности дополнительное соединение Объект.ПолеПеречисления = Пернечисление.Ссылка |
|||
6
25-11
02.10.16
✎
17:45
|
Просто я довольно часто встречал, что так не делается. Возможно 1С-овский транслятор в SQL отличает Перечисление от Справочника?
|
|||
7
25-11
02.10.16
✎
17:46
|
Потому как для справочников культурные люди не ленятся присоединить в запрос лишнюю таблицу. А вот для Перечислений - не всегда...
|
|||
8
Dotoshin
02.10.16
✎
17:55
|
(6) Ну посмотри в профайлере, в какой запрос перечисление транслируется, потом на форуме расскажешь, чтобы все
знали... |
|||
9
25-11
02.10.16
✎
18:13
|
(8) Ну вот я и спрашиваю, возможно, кто-то это исследование уже выполнил? Я сам не слищком уверенно владею такими инструментами, эксперимент потребует довольно много времени.
|
|||
10
25-11
02.10.16
✎
18:14
|
Хотя если любопытство окончательно одолеет, то разберусь и о результатах расскажу.
|
|||
11
Dotoshin
02.10.16
✎
18:15
|
(9) Ну вот тут http://www.develplatform.com/2013/02/sql.html
кто то выполнил некоторые исследования. |
|||
12
25-11
02.10.16
✎
18:27
|
(11) Ага, значит всё-таки механизм хранения перечисления отличен от справочников... По-видимому именно поэтому эффективность от неприсоединения не пострадает.
|
|||
13
mistеr
02.10.16
✎
18:28
|
(0) Если ты про конструкцию вида
ГДЕ Таблица.Поле = ЗНАЧЕНИЕ(Перечисление.ИмяПеречисления.ЗначениеПеречисления) то никакого обращения к таблице перечисления не происходит. Если про что-то другое, то приводи текст запроса. |
|||
14
25-11
02.10.16
✎
18:41
|
(13) И про это тоже, спасибо. А в еще более простом случае?
ВЫБРАТЬ СписаниеСРасчетногоСчета.Ссылка, СписаниеСРасчетногоСчета.ВидОперации ИЗ Документ.СписаниеСРасчетногоСчета КАК СписаниеСРасчетногоСчета В таком запросе имеет смысл присоединять таблицу ВидыОперацийСписаниеДенежныхСредств |
|||
15
25-11
02.10.16
✎
18:44
|
Последнее предложение - это вопрос, а не утверждение. Вопросительный знак случайно не допечатал.
|
|||
16
Mauser
02.10.16
✎
18:47
|
(15) Зачем
|
|||
17
25-11
02.10.16
✎
18:47
|
(16) И
|
|||
18
Mauser
02.10.16
✎
18:50
|
Любое действие подразумевает результат
от этого зависит надо или нет что ты ожидаешь |
|||
19
25-11
02.10.16
✎
18:52
|
Будет ли запрос выполняться быстрее?
|
|||
20
Mauser
02.10.16
✎
18:52
|
Например надо ли тебе порядок
|
|||
21
Mauser
02.10.16
✎
18:54
|
(19) нет так как ты запрашиваешь дополнительные данные
|
|||
22
mistеr
02.10.16
✎
18:56
|
(14) В таблице перечисления, кроме ссылки, только одно поле - Порядок. Присоединять ее имеет смысл, только если тебе нужен этот порядок. Ссылка у тебя и так есть. А больше ничего из этой таблицы не получишь.
|
|||
23
Mauser
02.10.16
✎
18:57
|
(22) можно получить блокировку
ну на всякий извращенный случай |
|||
24
25-11
02.10.16
✎
18:59
|
Ну да, из статьи в (11) я это понял. Само наименование (значение) извлекается каким-то иным образом, не так в справочнике.
|
|||
25
GROOVY
02.10.16
✎
20:23
|
Прикольная тема. Этакий бредовый эталон. Соединения, блокировки... У таблицы перечисления...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |