В связи с необходимостью переноса ПО с платформы Powerbuilder на платформу 1C предлагается выкладывать базовые объекты работы с данными. Основным объектом PowerBuilder является Datawindow. Он включает в себя описание данных, методы редактирования данных и визуальное представление. Представлена попытка переноса данного объекта на платформу 1С.
Представленное решение эмулирует частично Datawindow и включает в себя:
- Справочник Datawindow, с описанием графического интерфейса Табличного Поля Формы (состава колонок, порядок, характеристики Табличного Поля). Справочник включает описание параметров для выборки и записи отредактированных данных (Текст Запроса, Главная таблица, режим удаления данных, Первичный Ключ), cостав процедур дополнительных Кнопок Командной Панели и Панели Основных Действий Формы, вид визуального представления/редактирования колонок и их характеристики - флажок, список выбора на базе запроса, список выбора на базе перечисления, вызов формы выбора, зависимые колонки.
- Справочник зависимостей между таблицами, который формируется автоматически и содержит данные о связях таблиц. Обрабатываются взаимосвязи объектов Метаданных: Справочники(табличные части и владельцы), Документы, Регистры Накопления, Регистры Сведений, Регистры Бухгалтерии, Регистры Расчета, Журналы Документов (Регистрируемые Документы и Графы).
- На базе Справочника зависимостей в состав ОбщейФормыСписка включен визуальный построитель запроса, в котором вы можете построить условие ГДЕ в соответствии с таблицей взаимосвязей. Автоматически будет строиться запрос с исправленным условием ИЗ и ГДЕ. Построитель поддерживает все Виды Условий стандартного конструктора запросов. Дополнительно можно указывать скобки и связывать отдельные условия запроса по И/ИЛИ.
- ОбщееОкноСписка содержит стандартные функции фильтрации/сортировки записей
- ОбщееОкноСписка поддерживает режимы - редактирование табличных данных построенных на базе запроса, просмотра, просмотра с выбором значений колонки или ТаблицыЗначений из выделенных строк.
- Построение запроса не требует предварительной выборки данных, а строится на базе текста запроса и Справочника СвязейДанных. Выборка данных через запрос производится после построения запроса.
Состав : Информационная БД в формате 8.1 . Пользователь:shishkin, пароль:sog
Пример вызова:
// Открыть для редактирования в табличном виде справочник СвязиДанных
Процедура ОткрытьСправочникСвязиДанных() export
Форма = ПолучитьОбщуюФорму("ОбщаяФормаСписка", ,Новый УникальныйИдентификатор());
Форма.DatawindowName = "Справочник СвязиДанных";
Форма.Mode = "EDIT";
Форма.Открыть();
endprocedure
// Процедура просмотра Справочника Номенклатура в режиме просмотра и редактирования через форму Элемента
Процедура ОткрытьСправочникНоменклатура() export
Форма = ПолучитьОбщуюФорму("ОбщаяФормаСписка", ,Новый УникальныйИдентификатор());
Форма.DatawindowName = "Справочник Номенклатура";
Форма.Mode = "VIEW";
Форма.Открыть();
endprocedure
// Пример вызова просмотра результатов запроса без указания Datawindow
Procedure ОткрытьЗапросБезDatawindow() export
Форма = ПолучитьОбщуюФорму("ОбщаяФормаСписка", ,Новый УникальныйИдентификатор());
Форма.QueryText = "ВЫБРАТЬ * ИЗ Справочник.Номенклатура КАК Номенклатура";
Форма.DatawindowProperties.UpdateTable = "Номенклатура";
//Форма.РежимВыбора = true;
//Форма.СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Нормальное;
Форма.СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Максимизированное;
Форма.Открыть();
endprocedure
Цель разработки - устранение лишних (неконтролируемых) запросов к серверу БД со стороны клиента. Полный переход на работу с сервером через запросы. Перенос задачи построения различных выборок данных с разработчика на пользователя. Изживание механизма ОТБОРА (полной выборки данных с последующей фильтрацией всей выборки) и переход на выбор данных через правильные и оптимальные запросы.
Критика приветствуется !!!