Проверка на тип значения в 1С 8.5

Что такое тип значения в 1С

В платформе 1С:Предприятие 8 каждое значение имеет определённый тип. Тип значения определяет, какие данные хранятся в переменной, реквизите или поле — число, строка, дата, ссылка на документ, справочник и т. д. Для анализа типов значений используется значение типа «Тип».

Проверка типа во встроенном языке

Для проверки на тип значения используется функция ТипЗнч(<Значение>). Она принимает любое значение и возвращает его тип. Чтобы сравнить результат с нужным типом, используется функция Тип(<ИмяТипа>), которая по строковому имени возвращает значение типа Тип.

// Пример: проверка типа переменной
Если ТипЗнч(МояПеременная) = Тип("Число") Тогда
   Сообщить("Переменная числового типа");
ИначеЕсли ТипЗнч(МояПеременная) = Тип("Строка") Тогда
   Сообщить("Переменная строкового типа");
ИначеЕсли ТипЗнч(МояПеременная) = Тип("СправочникСсылка.Номенклатура") Тогда
   Сообщить("Переменная ссылочного типа - справочник номенклатура");
КонецЕсли;

Для того, чтобы проверить принадлежность переменной к целому классу типов значений, например, справочников, можно использовать функцию ТипВсеСсылки(). Она возвращает описание типов, иными словами список типов данных какого то класса.

Например, если нужно проверить, является ли переменная Справочником, можно использовать такую конструкцию:

ТипПеременной = ТипЗнч(МояПеременная);
Если Справочники.ТипВсеСсылки().СодержитТип(ТипПеременной) Тогда
   Сообщить("Переменная является справочником");
КонецЕсли;

Метод СодержитТип(<ТипДанных>) проверяет, входит ли указанный тип в описание типов.

Проверка типа в запросах

В языке запросов используются функции ТИПЗНАЧЕНИЯТИП и оператор ССЫЛКА.

Функция ТИПЗНАЧЕНИЯ Возвращает тип переданного выражения:

ВЫБРАТЬ
    Номенклатура.Артикул Как Артикул
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    ТИПЗНАЧЕНИЯ(Номенклатура.Артикул) = ТИП(СТРОКА)

В данной примере в результат выборки попадут только та номенклатура, у которой артикул является строкой (представим, что артикул является составным типом данных).

Оператор ССЫЛКА (для ссылочных типов) проверяет, является ли выражение ссылкой на указанный объект — работает быстрее, чем ТИПЗНАЧЕНИЯ, поэтому предпочтителен для ссылочных типов.

ВЫБРАТЬ
    ОстаткиТоваров.Регистратор КАК Регистратор
ИЗ
    РегистрНакопления.ОстаткиТоваров КАК ОстаткиТоваров
ГДЕ
    Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

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

Вы также можете ознакомиться со статьей о приведении типов в запросе.

Главное, что нужно запомнить

  • ТипЗнч(<Значение>) — узнать тип значения в коде.
  • Тип(<ИмяТипа>) — получить значение типа по имени.
  • ТИПЗНАЧЕНИЯ(<ЗНАЧЕНИЕ>) — проверить тип значения в запросе.
  • ССЫЛКА в запросах предпочтительнее ТИПЗНАЧЕНИЯ для проверки ссылочных типов.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Отправьте форму и мы вам перезвоним

Отправляя форму вы соглашаетесь с политикой конфиденциальности и даете согласие на обработку персональных данных компании ИП Рыжиченко Антону Ивановичу
Сайт itviar.ru использует cookie для персонализации и хранения настроек.
Отправляя форму вы соглашаетесь с политикой конфиденциальности и даете согласие на обработку персональных данных компании ИП Рыжиченко Антону Ивановичу