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

Консоль запросов под 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 не будет опубликован. Обязательные поля помечены *