Работа с типами в запросах

Работа с типами в запросах

Значения типа Тип в запросах 1С могут использоваться при наложении условий, в сравнениях, упорядочивании и группировках. Для работы с типами предусмотрено несколько механизмов, которые покрывают все потребности разработчика. Рассмотрим их.

Функция ТИПЗНАЧЕНИЯ
Литерал ТИП
Оператор ССЫЛКА

Функция ТИПЗНАЧЕНИЯ

Функция ТИПЗНАЧЕНИЯ имеет единственный параметр, куда передается значение, для которого требуется определить тип. Функция возвращает значения типа Тип. Чаще всего функция используется совместно с литералом ТИП в условиях запроса.

Рассмотрим примеры использования. Вывод в результат запроса типа Регистратора:

ВЫБРАТЬ

Закупки.Регистратор КАК Регистратор,

ТИПЗНАЧЕНИЯ(Закупки.Регистратор) КАК ТипРегистратора

ИЗ

РегистрНакопления.Закупки КАК Закупки

Использование функции ТИПЗНАЧЕНИЯ в операции сравнения:

ВЫБРАТЬ

Закупки.Регистратор КАК Регистратор

ИЗ

РегистрНакопления.Закупки КАК Закупки

ГДЕ

ТИПЗНАЧЕНИЯ(Закупки.Регистратор) = ТИП(Документ.ПриобретениеТоваровУслуг)

Литерал ТИП

В литерал ТИП передается имя примитивного типа или таблицы ссылочного типа. Результатом конструкции будет значение типа Тип.

Примеры имен типов:

ТИП(Строка)
ТИП(Число)
ТИП(Перечисление.СтавкиНДС)
ТИП(Справочник.Номенклатура)
ТИП(Документ.ПриобретениеТоваровУслуг)
ТИП(ПланСчетов.Хозрасчетный)
ТИП(ПланОбмена.Полный)

Использование в запросе:

ВЫБРАТЬ

Закупки.Регистратор КАК Регистратор,

ВЫБОР

КОГДА ТИПЗНАЧЕНИЯ(Закупки.Регистратор) = ТИП(Документ.ПриобретениеТоваровУслуг)

ТОГДА «Приобретение товаров»

ИНАЧЕ «Прочее»

КОНЕЦ КАК ТипИсточника

ИЗ

РегистрНакопления.Закупки КАК Закупки

Оператор ССЫЛКА

Оператор позволяет проверить, является ли значение выражения, указанного справа от него, ссылкой на таблицу, указанную слева. Результат оператора — значение типа Булево.

ВЫБРАТЬ

Закупки.Регистратор КАК Регистратор

ИЗ

РегистрНакопления.Закупки КАК Закупки

ГДЕ

Закупки.Регистратор ССЫЛКА Документ.ПриобретениеТоваровУслуг

Для ссылочных таблиц оператор ССЫЛКА является эквивалентом сравнения

ТИПЗНАЧЕНИЯ(<Значение>) = ТИП(<Имя типа>)

 

Остались вопросы?
Спросите в комментариях к статье.

 

Смотри также:

Запросы в 1С
Использование функции ЗНАЧЕНИЕ в запросе
Оператор ВЫРАЗИТЬ в запросах

1 комментарий

  1. Скажите, пжст, для оптимальной производительности что лучше использовать:

    ТипЗначения() ИЛИ «Регистартор Ссылка Документ…»?

Добавить комментарий

Ваш e-mail не будет опубликован.