Не управляемая консоль запросов

Консоль запросов под 8.2. Совсем простенькая, как пример создания управляемых форм и как бонус — выполняющая запросы…

В процессе изучения 8.2 набросал консоль запросов и столкнулся с кучей различных проблем — от не правильного поведения элементов формы, до падения платформы с ошибкой. Стало интересно и немного повозившись сделал «стабильную» консоль запросов, которая не обрушивает платформу, покрайней мере предыдущие случаи падения платформы не воспроизводятся :). 

Замечания по работе консоли:
1. При выполнении первого запроса значения в списке не показываются из-за ошибки в платформе, обещали исправить.
Для того, чтобы данные отобразились, пока необходимо выполнить не корректный запрос :), например удалить букву ключевого слова «ГДЕ»
2. В толстом клиенте (управляемое приложение) не доступны поля динамического списка для отбора и т.п. (окно выбор поля пустое), в тонком все работает.
И самое забавное, поле отбор сохраняет предыдущее значение отбора, которое я установил в тонком клиенте, и отбор по нему работает, но в списке доступных полей пусто… надеюсь исправят.
3. Если изменить видимость/доступность настроек динамического списка, после выполнения запроса, и выполнить следующий запрос то появляется ошибка, но это связано с програмным созданием колонок списка.
4. Поля запроса типа Null не показывает. Более того, передача подобного поля в свойство ПутьКДанным колонки динамического списка вызывает падение платформы.

Еще есть замечания, не мои, по консоли на базе таблицы значений — при пролистывании списка платформа падает, тоже ошибка платформы и тоже будет исправлена…

Что интересного в этой консоли:

Динамический список
Результат запроса выводится в динамический список — это новый и весьма перспективный объект в 8.2 позволяющий отображать в форме данные любого практически произвольного запроса, указывать условное оформление данных, порядок сортировки, отборы и группировки данных. Однако на запросы налагается ряд ограничений.

Общие ограничения:
· динамический список не поддерживает работу с пакетными запросами;
· в случае если динамический список отображается в виде иерархического списка или дерева, запрос не должен содержать условий
отбора по родителю;
· При программном изменении свойств динамического списка не происходит автоматического перезаполнения
командных панелей, связанных с этим динамическим списком;

Если задана основная таблица:
· динамический список не поддерживает в запросе объединения, если задана основная таблица;
· динамический список не должен содержать секции УПОРЯДОЧИТЬ ПО, если задана основная таблица.
· в числе полей запроса нельзя использовать поля подзапросов, возвращающих множественное количество значений. Необходимо
использовать запрос без основной таблицы;
· запрос не может содержать группировок и агрегатных функций, если задана основная таблица.
· в случае указания основной таблицы динамического списка запрос не должен содержать инструкций ПЕРВЫЕ и РАЗЛИЧНЫЕ.

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

Конструктор Запросов
Конструктор запросов работоет только в толстом клиенте, в режиме управляемых или обычных форм.

Директивы Компиляции
Директивы компиляции при не правильном размещении конфликтуют с инструкциями препроцессору, из-за того что обработка инструкций препроцессора выполняется до обработки директив компиляции. Теперь их лучше размещать в процедуре/функции. Я насчитал всего три явных комбинации директив и инструкций, одна из которых не правильная. Та, в которой сначала идет команда препроцессору, а потом директива компляции.

 

8 Comments

  1. Душелов

    Так их всех! 😉

    Я тут как раз для 8.2 ВК начал осваивать. Забавные штукенции можно делать 😉

    Reply ↓
  2. Evg-Lylyk

    Молодца

    Я так и не победил проблему зупуска конструктора только под толстым, только одно непонятно нафига раром паковать 8 кб O_o добавлется лишней возни

    Reply ↓
  3. h00k

    (1) Ага, мельком глянул ужаснулся и отложил для детального изучения.

    Сама плптформа пока не изучена, какие уж тут внешние компоненты :).

    Зато на партнерском форуме почти истерики: «Как ТЕПЕРЬ делать ЗАЩИТУ решений» :))))

    (2) Блин, РЕФЛЕКС !!!! :)))

    Кстати, если кто «уронит» платформу этой консолью, напишите в личку как и на чем, а то у меня тут маленький спор вышел 🙂 Так что собираю информацию по падениям платформы от моей консоли…

    Reply ↓
  4. h00k

    (1) Я пока не пробывал цеплять к 8.2 компоненту dynwrap, но боюсь что не прокатит. Так что для себя уже прикинул, что внешняя компонента возвращающая хэндл окна и т.п. у меня будет первой :), ну очень этого не хватает. Правда сейчас наверно уже не хватет знаний в области *nix платформ чтоб сделать «универсальную» компоненту — во время линуксомании, год так 97-99, активно игрался с новыми игрушками, но потом стало не до этого и я перестал юниксами интересоватся.

    Это я к тому, что теперь можно как бы «кросс-платформенные» ВК делать :), вот это должно быть интересно многим.

    Reply ↓
  5. h00k

    (2) А вспомнил, это на ваш вопрос я на форуме П. Чистова овечал 🙂

    Reply ↓
  6. Evg-Lylyk

    (5) щас посмотрел форум спасибо я этого не видел. Как вы сами видели мне там ответили что НИКАК

    Видимо придется делать свой конструктор

    «Кстати, если кто «уронит» платформу этой консолью» твоей консолью пока не ронял, а так многократно. Хотел сделать один продукт для 8.2 заранее на перспективу, но забросил ввиду многочисленности глюков особенно на новых функциях дин.список, упр.формы.

    Reply ↓
  7. Yashazz

    Спасибо! Буду осваивать.

    Reply ↓
  8. chuchund

    Спасибо!

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *