Языки программирования

Учебник Запросы 1С для начинающих

17 уроков · 6 разделов · бесплатно, без регистрации

Отдельный курс по языку запросов 1С — главному инструменту работы с данными и теме №1 на собеседованиях.

Курс «Запросы 1С» состоит из 6 разделов и 17 уроков: Основы языка запросов, Соединения и агрегация, Виртуальные таблицы регистров, Продвинутые приёмы, Оптимизация и Практикум. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Основы языка запросов

    1. ВЫБРАТЬ, ИЗ, ГДЕ: первый запрос

      Первый запрос 1С на языке запросов: зачем он нужен вместо перебора в цикле, из чего состоит ВЫБРАТЬ...ИЗ...ГДЕ и чем он похож и не похож на SQL.

    2. Параметры запроса

      Параметры запроса 1С: как передать значение снаружи через УстановитьПараметр и &Имя, почему параметры безопаснее склейки строк и как применять их в условии ГДЕ.

    3. Обход результата запроса

      Что делать с результатом запроса 1С: обойти выборку циклом Пока Выборка.Следующий(), выгрузить в таблицу значений через Выгрузить() и проверить пустоту через Пустой().

  2. 2 Соединения и агрегация

    1. Соединения таблиц

      Как соединять таблицы в запросе 1С: ЛЕВОЕ, ВНУТРЕННЕЕ и ПОЛНОЕ СОЕДИНЕНИЕ ПО, почему левое — самое частое и как не размножить строки.

    2. Группировка и агрегатные функции

      СГРУППИРОВАТЬ ПО в запросах 1С, агрегатные функции СУММА, КОЛИЧЕСТВО, МАКСИМУМ, МИНИМУМ, СРЕДНЕЕ и условие ИМЕЮЩИЕ на агрегаты — с разбором ошибок.

    3. ИТОГИ и иерархия

      Конструкция ИТОГИ ... ПО в запросах 1С: промежуточные и общие итоги, обход результата ОбходРезультата и иерархические итоги по группам справочника.

  3. 3 Виртуальные таблицы регистров

    1. СрезПоследних

      Виртуальная таблица СрезПоследних регистра сведений в 1С: получаем актуальную цену, курс валюты или ставку НДС на нужную дату. Параметр Период и задача «цена на дату документа».

    2. Остатки, Обороты, ОстаткиИОбороты

      Три виртуальные таблицы регистра накопления в 1С: Остатки (сколько есть на дату), Обороты (движение за период) и ОстаткиИОбороты. Когда какую выбирать.

    3. Параметры виртуальной таблицы vs ГДЕ

      Ловушка производительности в запросах 1С: условие в параметрах виртуальной таблицы применяется до расчёта итогов и работает быстро, а то же условие в ГДЕ — после и медленно.

  4. 4 Продвинутые приёмы

    1. Временные таблицы и пакетные запросы

      Временные таблицы 1С: МенеджерВременныхТаблиц, оператор ПОМЕСТИТЬ, пакетный запрос через точку с запятой и зачем дробить сложный запрос на этапы.

    2. Вложенные запросы vs соединения

      Вложенные запросы в 1С: подзапрос в ИЗ и в ГДЕ через В(...), когда подзапрос читаемее соединения, когда бьёт по скорости и как заменить его временной таблицей.

    3. ВЫБОР, ЕСТЬNULL и приведение типов

      Условные выражения в запросах 1С: ВЫБОР КОГДА ТОГДА ИНАЧЕ КОНЕЦ, замена NULL функцией ЕСТЬNULL после левого соединения и приведение ссылочных типов через ВЫРАЗИТЬ.

  5. 5 Оптимизация

    1. Что тормозит запросы

      Главные причины медленных запросов 1С: запрос в цикле, соединение с подзапросом, ПОДОБНО по подстроке, условие в ГДЕ вместо параметров ВТ — и как их переписать.

    2. Консоль запросов и замер

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

  6. 6 Практикум

    1. Задача: дебиторская задолженность

      Пошаговый разбор задачи с собеседования: остатки взаиморасчётов по контрагентам на дату через регистр накопления и отбор должников через ИМЕЮЩИЕ.

    2. Задача: остатки товаров на складе на дату

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

    3. Задача: последние цены номенклатуры

      Разбор задачи с собеседования: актуальная цена номенклатуры через СрезПоследних, левое соединение со справочником и обработка отсутствующих цен через ЕСТЬNULL.