В процессе изучения 8.2 набросал консоль запросов и столкнулся с кучей различных проблем - от не правильного поведения элементов формы, до падения платформы с ошибкой. Стало интересно и немного повозившись сделал "стабильную" консоль запросов, которая не обрушивает платформу, покрайней мере предыдущие случаи падения платформы не воспроизводятся :).
Замечания по работе консоли:
1. При выполнении первого запроса значения в списке не показываются из-за ошибки в платформе, обещали исправить.
Для того, чтобы данные отобразились, пока необходимо выполнить не корректный запрос :), например удалить букву ключевого слова "ГДЕ"
2. В толстом клиенте (управляемое приложение) не доступны поля динамического списка для отбора и т.п. (окно выбор поля пустое), в тонком все работает.
И самое забавное, поле отбор сохраняет предыдущее значение отбора, которое я установил в тонком клиенте, и отбор по нему работает, но в списке доступных полей пусто... надеюсь исправят.
3. Если изменить видимость/доступность настроек динамического списка, после выполнения запроса, и выполнить следующий запрос то появляется ошибка, но это связано с програмным созданием колонок списка.
4. Поля запроса типа Null не показывает. Более того, передача подобного поля в свойство ПутьКДанным колонки динамического списка вызывает падение платформы.
Еще есть замечания, не мои, по консоли на базе таблицы значений - при пролистывании списка платформа падает, тоже ошибка платформы и тоже будет исправлена...
Что интересного в этой консоли:
Динамический список
Результат запроса выводится в динамический список - это новый и весьма перспективный объект в 8.2 позволяющий отображать в форме данные любого практически произвольного запроса, указывать условное оформление данных, порядок сортировки, отборы и группировки данных. Однако на запросы налагается ряд ограничений.
Общие ограничения:
· динамический список не поддерживает работу с пакетными запросами;
· в случае если динамический список отображается в виде иерархического списка или дерева, запрос не должен содержать условий
отбора по родителю;
· При программном изменении свойств динамического списка не происходит автоматического перезаполнения
командных панелей, связанных с этим динамическим списком;
Если задана основная таблица:
· динамический список не поддерживает в запросе объединения, если задана основная таблица;
· динамический список не должен содержать секции УПОРЯДОЧИТЬ ПО, если задана основная таблица.
· в числе полей запроса нельзя использовать поля подзапросов, возвращающих множественное количество значений. Необходимо
использовать запрос без основной таблицы;
· запрос не может содержать группировок и агрегатных функций, если задана основная таблица.
· в случае указания основной таблицы динамического списка запрос не должен содержать инструкций ПЕРВЫЕ и РАЗЛИЧНЫЕ.
Соответственно в консоли нет основной таблицы, значит - не работают пакетные запросы, не происходит автоматического перезаполнения
командных панелей (оно и не надо вроде) и есть еще ограничение с отбором по родителю если динамический список отображается иерархически или в виде дерева.
Конструктор Запросов
Конструктор запросов работоет только в толстом клиенте, в режиме управляемых или обычных форм.
Директивы Компиляции
Директивы компиляции при не правильном размещении конфликтуют с инструкциями препроцессору, из-за того что обработка инструкций препроцессора выполняется до обработки директив компиляции. Теперь их лучше размещать в процедуре/функции. Я насчитал всего три явных комбинации директив и инструкций, одна из которых не правильная. Та, в которой сначала идет команда препроцессору, а потом директива компляции.