Заметки из Зазеркалья

27.01.2014

Управляемый конструктор запроса и объектная модель схемы запроса

Реализовано в версии 8.3.5.1068.

Мы доработали конструктор запроса таким образом, что теперь он может работать в управляемом режиме в тонком клиенте, толстом клиенте и веб-клиенте. Раньше конструктор запроса не был доступен в режиме управляемого приложения.

Большинство действий в управляемом режиме выполняется так же, как и в «старом» конструкторе. Но есть и целый ряд доработок. Например:

  • на некоторых вкладках мы изменили способ редактирования выражений (условия, суммарные поля, выражения для итоговых полей);
  • запрос, уничтожающий временную таблицу, редактируется теперь на отдельной вкладке;
  • для изменения текущего запроса и оператора мы используем выпадающие списки в нижней части формы, а не переключаем вкладки, как раньше.

Но самые большие изменения претерпела вкладка Связи. Теперь формирование связей происходит перетаскиванием таблиц одной на другую.

Работу конструктора запроса мы реализовали в немодальном режиме. Для этого мы добавили ему новый метод Показать(), который открывает немодальное блокирующее окно. А результат «конструирования» (текст запроса) платформа передаёт в процедуру, вызываемую после закрытия конструктора.

Объектная модель схемы запроса

Периодически во встроенном языке возникает необходимость изменения текста запроса в зависимости от разных алгоритмических условий. Раньше подобная задача решалась путём непосредственного формирования нужного текста запроса в виде строки. А это не всегда удобно и зачастую очень громоздко.

Теперь во встроенном языке мы реализовали объектную модель схемы запроса. Вы можете создать пустую схему запроса конструктором и загрузить в неё имеющийся текст запроса. После этого отдельные элементы текста запроса будут доступны вам как свойства объектной модели.

На рисунке ниже стрелки показывают, в каких объектах встроенного языка будут доступны те или иные элементы простого запроса, загруженного в схему:

Редактирование текста запроса с помощью объектной модели позволяет вам проще и понятнее модифицировать имеющиеся запросы. Или даже создавать их во встроенном языке «с нуля». А затем просто получать готовый текст запроса из схемы методом ПолучитьТекстЗапроса().

Теги: запросы  разработка  8.3.5