Uploaded by Вера Балашова

Альбом слайдов из первого модуля Расширенного курса по запросам

advertisement
Разработка и оптимизация запросов в
1С:Предприятие 8.3
Общая информация и рекомендации по изучению курса
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
МОДУЛЬ 1
Хранение данных в информационных базах
1С:Предприятие 8. Принципы работы запросов
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Занятие 1. Принципы хранения данных
•
Клиент-серверная (трехзвенная) архитектура
Клиентское
приложение
Сервер 1С
Сервер СУБД
База данных
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Базы данных
•
Для хранения данных 1С использует реляционные БД (от англ. relation – отношение, связь):
• Данные представлены в виде таблиц со связями между ними
• Таблица состоит из строк и колонок (столбцов)
• Каждая колонка таблицы имеет определенный тип данных
• Термины: строка таблицы – запись; колонка таблицы – поле
•
Базы данных, которые можно использовать для хранения информационных баз 1С:
• Файловая СУБД
• Microsoft SQL Server
• PostgreSQL
• IBM DB2
• Oracle Database
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Структура таблиц в базе данных
•
Разработчик не обращается к базе данных, к таблицам напрямую:
• Описывает структуру данных в конфигураторе при помощи объектов метаданных
• Реализует обработку данных при помощи объектов встроенного языка
•
Примеры:
• При создании справочника в конфигураторе платформа создает в базе данных таблицу
• При заполнении справочника данными в пользовательском режиме платформа
выполняет запись в таблицу базы данных
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Ссылочные данные
•
Поле Ссылка – уникальный идентификатор записи (объекта)
Курсы-по-1С.рф
Ссылка
Код
Наименование
Ссылка1
1
Контрагент1
Ссылка2
2
Контрагент2
Ссылка3
3
Контрагент3
Профессиональные курсы для тех, кто внедряет 1С
Ссылочные данные
•
Объекты метаданных, обладающие полем Ссылка:
o Справочник
o Документ
o Перечисление
o План видов характеристик
o План счетов
o План видов расчета
o Бизнес-процесс
o Задача
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Иерархические справочники
•
Поле ЭтоГруппа принимает значение Истина для записей, являющихся группой
•
Поле Родитель – ссылка на родительскую запись
Ссылка
Код
Наименование
ЭтоГруппа
Ссылка1
1
Покупатели
Истина
Ссылка2
2
Покупатель1
Ложь
Ссылка1
Ссылка3
3
Покупатель2
Ложь
Ссылка1
Курсы-по-1С.рф
Родитель
Профессиональные курсы для тех, кто внедряет 1С
Подчиненные справочники
•
В таблицу подчиненного справочника платформа добавляет поле Владелец – ссылку на
элемент справочника-владельца
БанковскиеСчетаКонтрагентов
Ссылка
Код
Наименование
Владелец
Ссылка1
1
12345678
Ссылка3
Контрагенты
Курсы-по-1С.рф
Ссылка
Код
Наименование
Ссылка2
1
Контрагент1
Ссылка3
2
Контрагент2
Ссылка4
3
Контрагент3
Профессиональные курсы для тех, кто внедряет 1С
Ссылочные поля
•
Добавление отдельного справочника позволяет:
o Избежать избыточного хранения данных
o Упростить обслуживание данных
Города
Ссылка
Код
Наименование
Ссылка1
1
Москва
Ссылка2
2
Санкт-Петербург
Контрагенты
Ссылка
Код
Наименование
Город
Ссылка3
1
Контрагент1
Ссылка1
Ссылка4
2
Контрагент2
Ссылка1
Ссылка5
3
Контрагент3
Ссылка2
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Табличные части
•
Табличная часть связана по полю Ссылка с основной таблицей
•
В конфигураторе один справочник, в базе – несколько таблиц
Контрагенты
Направления деятельности
Ссылка
Код
Наименование
Ссылка
Номер
строки
Направление
деятельности
Ссылка1
1
Контрагент1
Ссылка1
1
Строительство
Ссылка2
2
Контрагент2
Ссылка1
2
Торговля
Ссылка3
3
Контрагент3
Ссылка3
1
Производство
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Связь разных объектов при помощи ссылочных полей
•
Ссылочные типы данных появляются только при создании в конфигураторе объектов
метаданных (пример – СправочникСсылка.Контрагенты)
Приходная накладная
Контрагенты
Ссылка
Код
Наименование
Ссылка2
1
Контрагент1
Номер
Дата
Проведен
Контраген
т
Ссылка1
1
01.06.2022
Истина
Ссылка2
Товары
Номенклатура
Ссылка
Номер
строки
Номенклатура
Колво
Цена
Сумма
Товар1
Ссылка1
1
Ссылка3
1
100
100
Товар2
Ссылка1
2
Ссылка4
2
300
600
Ссылка
Код
Наименование
Ссылка3
1
Ссылка4
2
Курсы-по-1С.рф
Ссылка
Профессиональные курсы для тех, кто внедряет 1С
Нессылочные данные
•
Нет поля Ссылка
•
Пример:
o Регистр сведений
o Регистр накопления
o Регистр бухгалтерии
o Регистр расчета
•
Нет одного поля, однозначно идентифицирующего запись регистра
•
Используется другой подход к получению данных – получение набора записей при помощи
отбора, обработка полученных записей в цикле
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Периодический независимый регистр сведений
•
Периодический регистр сведений может хранить историю изменения ресурсов в разрезе
измерений
Номенклатура
Ссылка
Код
Наименование
Ссылка1
1
Номенклатура1
Ссылка2
2
Номенклатура2
Цены номенклатуры
Период
Номенклатура
Цена
01.01.2022
Ссылка1
100
01.01.2022
Ссылка2
300
01.06.2022
Ссылка1
200
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Таблицы объектов метаданных
Каждому объекту конфигурации соответствует одна или
несколько таблиц в зависимости от вида объекта и его структуры
Размещение данных 1С:Предприятия 8:
https://its.1c.ru/db/metod8dev#content:1591:hdoc/
https://its.1c.ru/db/metod8dev#content:1798:hdoc/
Чтобы узнать, для чего предназначается та или иная таблица в
базе данных, существует метод глобального контекста:
• ПолучитьСтруктуруХраненияБазыДанных()
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Зачем нужно знать принципы хранения данных?
•
Выбор правильных объектов метаданных для решения поставленной задачи
•
Настройка свойств объектов метаданных в конфигураторе для получения требуемых полей в
таблицах базы данных
•
Анализ технологического журнала, анализ планов запросов, выполняющихся на сервере
СУБД
•
Оптимизация производительности запросов
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Занятие 2. Модели доступа к данным
2 способа обращения к данным, хранящимся в ИБ:
Объектная модель
Табличная модель
• Возможна выборка данных, создание,
изменение, удаление
• База представляет собой взаимосвязанный
набор таблиц
• Ограничения при чтении данных:
• Доступно только чтение данных
o Нельзя использовать несколько источников
o Нельзя применять произвольные фильтры
(И, ИЛИ, НЕ)
o Нельзя применять при ограничениях
доступа на уровне записей (RLS)
Курсы-по-1С.рф
• Возможность получить только те данные, на
которые есть права доступа
• Запрещена запись – создание, изменение,
удаление
Профессиональные курсы для тех, кто внедряет 1С
Принципы работы запросов
•
Для получения данных из таблиц БД используются запросы
Встроенный язык
Запрос 1С
Трансляция запроса в
язык SQL
Выполнение SQLзапроса сервером
СУБД
Возврат результата
запроса на сервер 1С
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Работа с различными СУБД
•
Разработчик не работает непосредственно с таблицами БД
•
Могут использоваться различные СУБД
•
В платформе реализован SDBL (Special Database Language):
o Промежуточный язык работы с данными
o Любое действие с базой – только через SDBL (запросы 1С, служебные запросы
платформы, модификация данных объектов)
Запрос 1С
Курсы-по-1С.рф
SDBL
SQL-запрос
конкретной СУБД
Профессиональные курсы для тех, кто внедряет 1С
Ошибки SDBL
•
Связаны со структурой хранения данных в базе
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Работа с различными СУБД
•
Любые манипуляции с данными (и чтение, и модификацию) платформа совершает с
помощью запросов к СУБД
•
Запросы на языке запросов 1С транслируются в команды SQL
Запрос 1С
SDBL
SQL-запрос
конкретной СУБД
•
Методы получения данных для объектов встроенного языка также транслируются в
команды SQL
•
Происходит неявно, на уровне платформы, скрыто от разработчика
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Реальные и виртуальные таблицы
Таблицы языка запросов:
Реальные таблицы
Виртуальные таблицы
• Хранятся в базе данных
• Используются в запросах
• Используются в запросах
• В базе данных не хранятся
• При выполнении преобразуются в запросы
• Упрощают задачу разработчику
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Виртуальные таблицы
Запрос к виртуальной таблице
РегистрНакопления.ТоварныеЗапасы.Остатки
Не хранятся в базе данных
Сделаны для удобства разработчиков
Таблица итогов регистра накопления
ОБЪЕДИНЕНИЕ
Таблица движений регистра накопления
Формируются в момент выполнения запроса на основе
реальных таблиц базы данных
Выбранные данные
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Внешние источники данных
•
Извлечение данных из сторонних реляционных БД
•
Используется механизм ODBC
Драйвер ODBC
База данных
•
При помощи внешних источников данных можно работать с данными, не хранящимися в
базе, таким образом, как если бы они хранились в ней:
o Использование в запросах
o Чтение, редактирование
Курсы-по-1С.рф
Профессиональные курсы для тех, кто внедряет 1С
Download