Содержание:
1. Основное применение функции ВЫРАЗИТЬ в 1С
2. Дополнительное применение функции ВЫРАЗИТЬ в запросе 1С 8.3
1. Основное применение функции ВЫРАЗИТЬ в 1С
Основное применение функции ВЫРАЗИТЬ() в запросе 1С:Предприятия – выделять из значений составного типа значение требуемого типа.
Синтаксис функции следующий:
Если преобразуемое выражение имеет тип значения отличный от того, к которому требуется привести, то функция вернет NULL.
Проблема выглядит так: при попытке получить данные через точку от полей составного типа происходит соединение со всеми таблицами объектов 1С, входящих в составной тип. А если нужные реквизиты есть не у всех регистраторов или реквизиты имеют различные имена? В таких ситуациях рекомендуется сообщить системе, к какой таблице объектов 1С мы хотим обратиться, чтобы оптимизировать запрос.
Например, допустим, что при выборке данных из регистра «Оплата счетов в 1С 8.3» нам потребовалось получить сумму документа регистратора. Мы сталкиваемся с ситуацией, что в документе «Списание с расчетного счета» есть реквизит «Сумма документа», а в документе «Операция» этот реквизит называется «СуммаОперации». Здесь нам поможет следующий запрос 1С Предприятия:
Здесь для каждого выбранного типа ссылки мы обращаемся к своей таблице, чтобы из нее выбрать нужный нам реквизит.
Но у функции ВЫРАЗИТЬ() есть еще несколько областей применения.
2. Дополнительное применение функции ВЫРАЗИТЬ в запросе 1С 8.3
1. Для строковых типов:
· Если нужно получить подстроку слева (аналог функции Лев()). Приведение строкового типа к «более короткому» строковому типу приводит к обрезанию «не уместившейся» правой части строки.
· Приведение неограниченной строки к строке фиксированной длины. Строки неограниченной длины не могут быть обработаны в запросах 1С:Предприятия при сравнении значений, группировке, если требуется получить РАЗЛИЧНЫЕ. Чтобы обойти эти ограничения нужно преобразовать неограниченную строку к ограниченной:
2. Для числовых типов:
Округление числовых значений в запросе до определенного знака:
Обратим внимание, что ВЫРАЗИТЬ() – это не функция преобразования типов. И хотя ВЫРАЗИТЬ() и имеет английский синоним Cast, не обманывайтесь, это не аналог неявного преобразования типов в SQL. Например, система выдаст ошибку при попытке преобразовать тип из числа в строку.
Специалист компании «Кодерлайн»
Горбунов Иван