Имя: Пароль:
1C
 
Запрос. Условие "ГДЕ" реквизит определенного типа
0 ne6o
 
12.08.08
12:08
Нужно отобрать все документы, где реквизит имеет тип строка.
Изначально реквизит составного типа:
1.Строка;
2.Ссылка на справочник;

Выбрать
 Док.Ссылка КАК Ссылка
Из
 Документы.Док КАК Док
Где
 ТипЗнч(Док.Реквизит) = Тип("Строка") // Что здесь писать?
1 ТелепатБот
 
гуру
12.08.08
12:08
2 IronDemon
 
12.08.08
12:10
Поля исходных таблиц могут иметь составной тип. Для таких полей возникает необходимость привести значения поля к какому-либо определенному типу. В языке запросов предусмотрена возможность приведения типа, ею можно пользоваться в списке полей выборки и в условии отбора в предложении ГДЕ.

<Приведение типа>

ВЫРАЗИТЬ ( <Выражение> КАК <Тип значения> )

<Тип значения>

БУЛЕВО |
ЧИСЛО [(Длина[, Точность])]|
СТРОКА [(Длина)]|
ДАТА |
<Имя таблицы>

<Длина>

Число

<Точность>

Число

<Выражение> приводится к одному из примитивных типов, или к ссылочному типу данных; в последнем случае <Имя таблицы> указывает на соответствующую таблицу информационной базы.

Если <Выражение> содержит в составном типе требуемый <Тип значения>, то приведение типа считается осуществимым, и для каждого значения указанного типа результатом будет это самое значение. Для значений других типов результатом приведения типа будет значение NULL.

Если <Выражение> не содержит в составном типе требуемый <Тип значения>, то выполнение данного запроса завершится ошибкой из-за принципиальной невозможности совершить приведение типов.

Для <Тип значения> СТРОКА с указанием длины максимальный размер строки 1024.
3 ne6o
 
12.08.08
12:18
(2) мне не нужно приводить к типу Строка
Нужно отобрать ТОЛЬКО те документы, у которых ТипЗнч(Реквизита) = Тип("Строка")
4 tautau
 
12.08.08
12:26
ГДЕ НЕ ПолеТакоеТо ССЫЛКА Справочник.СправочникСякойТо
5 ne6o
 
12.08.08
12:29
(4) Так и делаю, поэтому возник вопрос
неужели нельзя отобрать ТОЛЬКО где ТипЗнч(Док.Реквизит) = Тип("Строка") ?
6 ne6o
 
12.08.08
12:39
Или ТипЗнч(Док.Реквизит) = Тип("Число")
или ТипЗнч(Док.Реквизит) = Тип("Булево")
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.