Запросы, являются одним из ключевых базовых механизмов системы 1С:Предприятия 8, вместе со встроенным языком, позволяющим читать и обрабатывать данные, которые хранятся в базе.
Для составления запросов 1С:Предприятие использует собственный язык, который основан на SQL.
Книга Е.Ю. Хрусталевой Язык запросов 1С:Предприятия 8, вышедшая в серии 1С:Библиотека разработчика, поможет начинающим разработчикам, которые не знакомы с SQL, досконально изучить и освоить язык запросов 1С:Предприятия. Также, издание будет полезно и тем, кто уже имеет опыт составления SQL-запросов в других средах разработки, поскольку язык запросов 1С:Предприятия содержит значительное количество расширений, ориентированных на специфику финансово-экономических задач.
В книге Язык запросов 1С:Предприятия 8 рассматривается большое количество примеров из практики. Для их создания автор использовала версию 8.3.3.687 платформы 1С:Предприятие.
В комплект поставки входит компакт-диск с демонстрационными конфигурациями, которые наглядно иллюстрируют практические примеры, рассмотренные в книге, а также учебная версия платформы 1С:Предприятие 8.
Структура книги Е.Ю. Хрусталева Язык запросов 1С:Предприятия 8 (+диск)
Глава 1. Механизм запросов
Как хранятся данные в 1С:Предприятии
Исходные таблицы для запросов
- Реальные таблицы
- Виртуальные таблицы
Язык запросов 1С:Предприятия
- Общая схема выполнения запросов
- Синтаксис текста запросов
- Примеры использования языка запросов для получения данных из одной таблицы
- Как получить все данные из таблицы Как получить только определенные поля для всех записей из таблицы
- Как расположить полученные записи в нужном порядке
- Как упорядочить записи таблицы по ссылочному полю
- Как получить текстовое представление ссылочного поля
- Как получить только первые несколько записей с наибольшими значениями некоторого поля
- Как получить записи, в которых определенные поля не содержат одинаковых значений
- Как получить общее количество записей в таблице и количество записей с различным значением некоторого поля
- Как получить записи из таблицы, отобранные по некоторому условию
- Как получить записи таблицы, содержащие строки, соответствующие заданному шаблону
- Как задать произвольное значение отбора записей из таблицы
- Как получить данные из табличной части некоторого документа
- Как получить данные из табличной части документа в качестве вложенной таблицы
- Как получить записи иерархической таблицы и расположить их в порядке иерархии
- Как отобрать записи иерархической таблицы по условию
- Как узнать среднюю цену, по которой продавался товар
- Как узнать общее количество и сумму продаж каждого товара в разрезе покупателей
- Как узнать среднюю цену поступления товара, не группируя сами записи
- Расчет итогов для иерархического справочника
- Расчет итогов по нескольким полям
- Расчет общих итогов
- Примеры использования выражений в списке полей выборки запроса
- Примеры использования языка запросов для получения данных из нескольких таблиц
- Как использовать данные одного запроса внутри другого запроса
- Как получить данные из разных таблиц для одного и того же поля
- Как получить данные из разных таблиц, связанных несколькими соединениями
- Как получить данные из таблицы, на которую ссылается поле другой таблицы
- Как получить данные из разных таблиц, не связывая, а дополняя их
- Временные таблицы и пакетные запросы
Глава 2. Работа с запросами во встроенном языке
- Конструктор запроса
- Создание простого запроса
- Связи источников запроса
- Объединение запросов Создание пакетного запроса, использующего временную таблицу
- Выполнение запросов из встроенного языка
- Создание запроса Передача параметров в запрос
- Получение выборки из результата запроса
- Обход выборки из результата запроса
- Линейный (прямой) порядок обхода
- Иерархический порядок обхода
- Обход по группировкам
- Обход выборки результата запроса, содержащего данные табличной части
- Обработка результатов запроса с помощью конструктора запроса
- Обход выборки
- Вывод в табличный документ
- Вывод в диаграмму
- Выгрузка результата запроса в таблицу или дерево значений
- Отладка запросов Использование временных таблиц с помощью встроенного языка
- Использование таблицы значений в качестве источника временной таблицы
- Примеры решения различных задач с использованием запросов
- Поиск всех родителей для элемента иерархического справочника
- Создание запроса из произвольного источник
- Создание кросс-отчета
- Вывод итогов по периодам с заданной периодичностью
Глава 3. Решение прикладных задач
Хранение информации
- Регистры сведений
- Получение данных из независимых непериодических регистров сведений
- Получение данных из периодических регистров сведений
- Получение данных из регистров сведений, подчиненных регистратору
- Планы видов характеристик
- Пример 1
- Пример 2
- Пример 3
- Получение значений характеристик из регистра сведений
Учет движения средств
- Регистры накопления
- Получение движений регистра накопления
- Получение остатков Получение оборотов
- Получение остатков и оборотов
Бухгалтерский учет
- Планы счетов
- Планы видов характеристик – виды субконто
- Регистры бухгалтерии
- Получение движений регистра бухгалтерии
- Получение остатков
- Получение оборотов
- Получение оборотов между корреспондирующими счетами
- Получение остатков и оборотов
- Получение движений с субконто
Сложные периодические расчеты
- Планы видов расчета
- Регистры расчета
- Получение данных из регистра расчета
- Получение данных о фактическом периоде действия записи для расчета
- Получение данных графика для расчета записи
- Получение базы для расчета записей
- Перерасчеты
Глава 4. Оптимизация запросов
Индексирование таблиц
- Способы индексирования таблиц
- Эффективное использование индексов
- Пример 1
- Пример 2
- Пример 3
- Пример 4
- Пример 5
- Общие рекомендации
Причины неоптимальной работы запросов и основные направления их оптимизации
- Общие рекомендации
- Не использовать запросы в цикле
- Не использовать в запросе функции от параметров
- Использовать параметры виртуальных таблиц
- Соответствие индексов и условий запроса
- Не использовать соединения с вложенными запросами и с виртуальными таблицами
- Соединения с вложенными запросами
- Соединения с виртуальными таблицами
- Не использовать вложенные запросы в условиях соединения
- Исключить получение поля «Ссылка» через точку
- Ограничить получение данных через точку от полей составного ссылочного типа
- Исключить вывод ссылочных полей в отчет