Где найти полный список функций языка запросов 1С и как ими пользоваться

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с языком запросов 1С программисты часто сталкиваются с необходимостью использовать специфические функции для преобразования данных, математических вычислений или работы со строками. Найти актуальный и полный список всех возможностей бывает непросто из-за обилия разрозненной информации в сети. В этой статье мы разберем, где находится официальный справочник, какие инструменты встроены в платформу для помощи разработчику и какие новые функции появились в последних релизах платформы (начиная с 8.3.20).

Официальный источник информации в Конфигураторе

Самый надежный и актуальный список функций всегда находится внутри самой платформы. Чтобы получить к нему доступ, не нужно искать информацию в интернете. Рассмотрим путь в Синтакс-помощнике:

  1. Откройте Конфигуратор.
  2. Перейдите в меню Справка — Содержание.
  3. Разверните ветку Встроенный язык.
  4. Найдите раздел Работа с запросами.
  5. Откройте подраздел Синтаксис текста запросов.
  6. Выберите пункт Ключевые слова и функции.

Именно здесь представлено официальное описание всех операторов, таких как ВЫБРАТЬ, ГДЕ, СГРУППИРОВАТЬ ПО, а также встроенных функций.

Использование Конструктора запросов

Если вам нужно быстро вспомнить название функции или посмотреть доступные варианты «на лету», проанализируем возможности Конструктора запросов. Это визуальный инструмент, который минимизирует риск синтаксических ошибок.

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

Работа с типами данных в запросе

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

Проанализируем пример кода, который позволяет определить, является ли ссылка в поле типом «Номенклатура»:


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

Важный нюанс: функция ТИП принимает в качестве аргумента имя таблицы в формате Справочник.Имя, Документ.Имя и так далее. Если передать туда некорректную строку или само поле, система выдаст ошибку «Таблица не найдена».

Новые возможности платформы: Математические функции

Начиная с версии 8.3.20, возможности языка запросов были существенно расширены. Ранее сложные расчеты приходилось выполнять уже после получения выборки в коде 1С, теперь же мы можем перенести их на сторону СУБД.

Рассмотрим основные математические функции:

Расширенная работа со строками

Долгое время разработчикам была доступна только функция ПОДСТРОКА. Теперь мы можем выполнять более гибкие манипуляции со строковыми данными. Выясним, какие инструменты появились в нашем арсенале:

  1. Изменение регистра: функции ВРЕГ и НРЕГ позволяют привести строки к единому виду для сравнения.
  2. Обрезка пробелов: СОКРЛ, СОКРП и СОКРЛП удаляют лишние символы пробелов.
  3. Поиск и длина: ДЛИНА(Строка) возвращает число символов, а СТРНАЙТИ помогает найти позицию подстроки.
  4. Выделение частей: функции ЛЕВ(Строка, Количество) и ПРАВ(Строка, Количество) упрощают получение префиксов или суффиксов.

Системные функции и агрегаты

Помимо новых функций, не забываем про классические инструменты, которые используются практически в каждом сложном отчете:

Функция ЗНАЧЕНИЕ(): Позволяет обращаться к предопределенным данным, не используя параметры запроса. Например: ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Новый) или ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка).

Функция ВЫРАЗИТЬ(): Необходима для изменения типа данных. Чаще всего применяется для ограничения длины неограниченных строк (чтобы их можно было использовать в группировках) или для приведения составного типа к конкретному: ВЫРАЗИТЬ(ПолеСоставногоТипа КАК Справочник.Номенклатура).

Функция ЕСТЬNULL(): Критически важна при работе с левыми соединениями. Она позволяет заменить пустое значение (NULL) на значение по умолчанию: ЕСТЬNULL(СуммаОстаток, 0).

Особенности функции ПРЕДСТАВЛЕНИЕ

Функции ПРЕДСТАВЛЕНИЕ и ПРЕДСТАВЛЕНИЕОСНОВНОГОДАННОГО заслуживают отдельного упоминания. Они возвращают строковое описание объекта (например, наименование справочника). Однако помните: эти функции нельзя использовать в условиях ГДЕ, в группировках или внутри других функций. Они предназначены только для вывода финального результата пользователю. Для обхода ограничений при фильтрации по представлению ссылки можно использовать методику сравнения строки с представлением ссылки в запросе.

Подводя итог, можно сказать, что язык запросов 1С становится всё более мощным инструментом. Регулярная проверка раздела «Синтаксис текста запросов» в официальной справке Конфигуратора позволит вам всегда быть в курсе актуальных возможностей платформы.

← На главную