Работа со схемой запроса
Стандартом взаимодействия с реляционной базой данных стал язык SQL. Приемником SQL в 1С является язык запросов. Язык запросов, также как и SQL, является структурированным. Составляющие структуры запроса отвечают на разные вопросы о том, какие данные требуется получить и какие манипуляции с множествами данных необходимо произвести при получении. В простых случаях текст запроса можно написать вручную, однако в сложных случаях, а также при программном формировании, — лучше воспользоваться объектной моделью запроса и использовать объект «Схема запроса». В статье дается описание объектной модели и особенностей работы с ней, а также приводится решение, упрощающее взаимодействие с объектом «Схема запроса».
- Описание
- Подробнее
Описание
Оглавление
Подсистема Работа со схемой запроса
Построение структуры запроса. API
Шаблон «Выборка из временной таблицы»
Шаблон «Построение текста запроса по параметрам отбора»
Шаблон «Последовательность преобразований источника»
Шаблон «Расширение данных источника»
Шаблон "Работа с характеристиками"
Обработка «Конструктор схемы запроса»
Введение
До версии платформы 8.3.5 не существовало такого объекта как "Схема запроса". В задачах, где требовалось построить текст запроса динамическим образом, текст запроса собирался из фрагментов текстовых блоков. Встречались и такие варианты, когда динамический текст запроса мог моделироваться с помощью параметров. Последний вариант, пожалуй, наихудший способ получения текста запроса, так как в этом случае вероятнее всего страдала производительность при его выполнении.
Код построения запроса из текстовых фрагментов мог быть весьма запутанным. Такой код в большей степени не содержал собственно логики построения запроса, а отражал логику работы с текстом. В целом это отрицательно сказывалось на отладке, сопровождении и развитии такого кода.
Объектная модель запроса, реализованная в платформе начиная с версии 8.3.5, позволила при решении задачи получения динамического текста запроса использовать код, который уже отражал бы не манипуляции с текстом, а логику структурного построения запроса. Кроме того, в объектной модели нет смысла в манипуляции с параметрами запроса для динамического изменения логики работы запроса. Таким образом программное формирование текста запроса с использованием объектной модели позволяет получить код, подчиненный логике запроса и делает ненужным манипуляции с параметрами. Первое способствует упрощению отладки, уменьшению затрат на сопровождение и развитие программного кода, а второе — лучшей производительности выполнения запроса.
