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