Записки программиста 1с

Язык запросов 1с

Язык запросов 1С — одно из основных отличий между версиями 7.7 и 8. Одним из важнейших пунктов в изучении 1С-программирования является язык запросов.  В 1С 8.3 запросы — самый мощный и эффективный инструмент получения данных. Язык запросов позволяет в удобном виде получать информацию из базы данных.

Сам синтаксис очень сильно напоминает классический T-SQL, за исключением того, что в 1С с помощью языка запросов можно только получать данные, используя конструкцию Выбрать(select).

ВЫБРАТЬ (SELECT) в 1с

В языке запросов 1С предприятия 8 любой запрос начинается с ключевого слова ВЫБРАТЬ. В языке 1С нет конструкций UPDATE, DELETE, CREATE TABLE, INSERT, эти манипуляции производятся в объектной технике. Предназначение его — только чтение данных.

Рядом с конструкцией ВЫБРАТЬ можно встретить ключевые слова ДЛЯ ИЗМЕНЕНИЯРАЗРЕШЕННЫЕРАЗЛИЧНЫЕПЕРВЫЕ …

РАЗРЕШЕННЫЕ — выбирает только записи из таблицы, на которые есть права у текущего пользователя.

РАЗЛИЧНЫЕ — означает, что в результат не попадет дублирующих строк.

ПЕРВЫЕ n — в языке 1С 8.3 запрос отберет только n первых записей.

ВЫБОР (CASE) в 1С

Конструкция выбор позволяет получить один вариант из нескольких при выполнении условия.

ГДЕ (WHERE) в 1С

В предложении ГДЕ можно использовать как имена полей, так и их псевдонимы. При этом
совершенно необязательно, чтобы поле, фигурирующее в предложении ГДЕ, входило в
список выборки.

Условие отбора может определяться и как простое логическое выражение, и как более
сложное, в котором простые логические выражения соединяются между собой
логическими операторами И, ИЛИ, НЕ.

СГРУППИРОВАТЬ ПО (GROUP BY) в 1с

Конструкция языка запросов 1С, используемая для группировки результата.

Помимо ключевого слова СУММА можно использовать другие агрегатные функции: КОЛИЧЕСТВОКОЛИЧЕСТВО РАЗНЫХМАКСИМУММИНИМУМСРЕДНЕЕ.

ИМЕЮЩИЕ (HAVING) в 1С

Конструкция позволяет указать отбор в виде агрегатной функции, этого нельзя сделать в конструкции ГДЕ.

СОЕДИНЕНИЕ (JOIN) в 1С

Соединения бывают 4 типов: ЛЕВОЕПРАВОЕПОЛНОЕ, ВНУТРЕННЕЕ,

Соединения используются для связи двух таблиц по определенному условию. Особенность при ЛЕВОМ СОЕДИНЕНИИ в том, что мы берём первую указанную таблицу полностью и привязываем по условию вторую таблицу. Поля второй таблицы, которые не удалось привязать по условию, заполняются значением NULL.

ЗНАЧЕНИЕ() в 1С

В запросе 1C ЗНАЧЕНИЕ ()  можно использовать для указания предопределенных значений, таких как значения перечисления, пустую ссылку или значение предопределенного элемента.

ТИП в запросе 1С

Тип данных можно проверить следующим образом: с помощью функций ТИП() и ТИПЗНАЧЕНИЯ() или с помощью  логического оператора ССЫЛКА.

ВЫРАЗИТЬ() в 1С

Оператор Выразить в запросах 1С служит для преобразования типов данных.

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

С помощью него можно преобразовать строковые значения в дату или ссылочные в строковые данные и так далее.

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

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

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