В процессе изучения 8.2 набросал консоль запросов и столкнулся с кучей различных проблем — от не правильного поведения элементов формы, до падения платформы с ошибкой. Стало интересно и немного повозившись сделал «стабильную» консоль запросов, которая не обрушивает платформу, покрайней мере предыдущие случаи падения платформы не воспроизводятся :).
Замечания по работе консоли:
1. При выполнении первого запроса значения в списке не показываются из-за ошибки в платформе, обещали исправить.
Для того, чтобы данные отобразились, пока необходимо выполнить не корректный запрос :), например удалить букву ключевого слова «ГДЕ»
2. В толстом клиенте (управляемое приложение) не доступны поля динамического списка для отбора и т.п. (окно выбор поля пустое), в тонком все работает.
И самое забавное, поле отбор сохраняет предыдущее значение отбора, которое я установил в тонком клиенте, и отбор по нему работает, но в списке доступных полей пусто… надеюсь исправят.
3. Если изменить видимость/доступность настроек динамического списка, после выполнения запроса, и выполнить следующий запрос то появляется ошибка, но это связано с програмным созданием колонок списка.
4. Поля запроса типа Null не показывает. Более того, передача подобного поля в свойство ПутьКДанным колонки динамического списка вызывает падение платформы.
Еще есть замечания, не мои, по консоли на базе таблицы значений — при пролистывании списка платформа падает, тоже ошибка платформы и тоже будет исправлена…
Что интересного в этой консоли:
Динамический список
Результат запроса выводится в динамический список — это новый и весьма перспективный объект в 8.2 позволяющий отображать в форме данные любого практически произвольного запроса, указывать условное оформление данных, порядок сортировки, отборы и группировки данных. Однако на запросы налагается ряд ограничений.
Общие ограничения:
· динамический список не поддерживает работу с пакетными запросами;
· в случае если динамический список отображается в виде иерархического списка или дерева, запрос не должен содержать условий
отбора по родителю;
· При программном изменении свойств динамического списка не происходит автоматического перезаполнения
командных панелей, связанных с этим динамическим списком;
Если задана основная таблица:
· динамический список не поддерживает в запросе объединения, если задана основная таблица;
· динамический список не должен содержать секции УПОРЯДОЧИТЬ ПО, если задана основная таблица.
· в числе полей запроса нельзя использовать поля подзапросов, возвращающих множественное количество значений. Необходимо
использовать запрос без основной таблицы;
· запрос не может содержать группировок и агрегатных функций, если задана основная таблица.
· в случае указания основной таблицы динамического списка запрос не должен содержать инструкций ПЕРВЫЕ и РАЗЛИЧНЫЕ.
Соответственно в консоли нет основной таблицы, значит — не работают пакетные запросы, не происходит автоматического перезаполнения
командных панелей (оно и не надо вроде) и есть еще ограничение с отбором по родителю если динамический список отображается иерархически или в виде дерева.
Конструктор Запросов
Конструктор запросов работоет только в толстом клиенте, в режиме управляемых или обычных форм.
Директивы Компиляции
Директивы компиляции при не правильном размещении конфликтуют с инструкциями препроцессору, из-за того что обработка инструкций препроцессора выполняется до обработки директив компиляции. Теперь их лучше размещать в процедуре/функции. Я насчитал всего три явных комбинации директив и инструкций, одна из которых не правильная. Та, в которой сначала идет команда препроцессору, а потом директива компляции.
Так их всех! 😉
Я тут как раз для 8.2 ВК начал осваивать. Забавные штукенции можно делать 😉
Молодца
Я так и не победил проблему зупуска конструктора только под толстым, только одно непонятно нафига раром паковать 8 кб O_o добавлется лишней возни
(1) Ага, мельком глянул ужаснулся и отложил для детального изучения.
Сама плптформа пока не изучена, какие уж тут внешние компоненты :).
Зато на партнерском форуме почти истерики: «Как ТЕПЕРЬ делать ЗАЩИТУ решений» :))))
(2) Блин, РЕФЛЕКС !!!! :)))
Кстати, если кто «уронит» платформу этой консолью, напишите в личку как и на чем, а то у меня тут маленький спор вышел 🙂 Так что собираю информацию по падениям платформы от моей консоли…
(1) Я пока не пробывал цеплять к 8.2 компоненту dynwrap, но боюсь что не прокатит. Так что для себя уже прикинул, что внешняя компонента возвращающая хэндл окна и т.п. у меня будет первой :), ну очень этого не хватает. Правда сейчас наверно уже не хватет знаний в области *nix платформ чтоб сделать «универсальную» компоненту — во время линуксомании, год так 97-99, активно игрался с новыми игрушками, но потом стало не до этого и я перестал юниксами интересоватся.
Это я к тому, что теперь можно как бы «кросс-платформенные» ВК делать :), вот это должно быть интересно многим.
(2) А вспомнил, это на ваш вопрос я на форуме П. Чистова овечал 🙂
(5) щас посмотрел форум спасибо я этого не видел. Как вы сами видели мне там ответили что НИКАК
Видимо придется делать свой конструктор
«Кстати, если кто «уронит» платформу этой консолью» твоей консолью пока не ронял, а так многократно. Хотел сделать один продукт для 8.2 заранее на перспективу, но забросил ввиду многочисленности глюков особенно на новых функциях дин.список, упр.формы.
Спасибо! Буду осваивать.
Спасибо!