Появилась новая идея по управлению гридом для элемента "ПоставщикДанных.Элемент".
Опишу вкратце мысли:
1) Первичная настройка (первое открытие формы элемента определенного вида справочника) размещения реквизитов в общем табличном поле с существующей одной закладкой, например название "Основной", где закладки это табличное поле по принципу построения например: ПоставщикДанных.КонтейнерЗакладок = "тпФормаГруппыЗакладки";
2) Для закладок доступно контекстное меню, где одним из пунктов "Добавить закладку"
3) При открытии формы вида справочника происходит проверка наличия файла, что-то типа "Элемент.Контрагенты.xml", где структура его определена по принципу например:
<Структура>
<ФормаНастроена>0</ФормаНастроена>
<Закладка>
<ЗакладкаИдентификатор>Общая</ ЗакладкаИдентификатор>
<ЗакладкаНаименование>Общая</ЗакладкаНаименование>
<Реквизит>
<РеквизитИдентификатор>Телефоны</РеквизитИдентификатор>
</Реквизит>
</Закладка>
</Структура>
4) При добавлении новых реквизитов создается новая заклдака в xml файле, чтото типа
<Закладка>
<ЗакладкаИдентификатор>НовыеРеквизиты</ ЗакладкаИдентификатор>
<ЗакладкаНаименование>*Новые реквизиты</ЗакладкаНаименование>
<Реквизит>
<РеквизитИдентификатор>Вебсайт</РеквизитИдентификатор>
</Реквизит>
</Закладка>
5) Администратор путем переноса (drug-drop) переносит по закладкам и сортирует реквизиты формы, после чего
<ФормаНастроена>1</ФормаНастроена>
6) При необходимости изменить расположение реквизитов по формам устанавливаем
<ФормаНастроена>0</ФормаНастроена>
7)Соответсвенно когда ФормаНастроена = 0, это доступность к изменению расположения реквизитов, и когда ФормаНастроена = 1, это обычный пользовательский режим
8)Для табличного поля в также предусмотрена закладка "Общие", где будут видны реквизиты в табличном поле в любой закладке, например тоже наименование элемента справочника
9)Доступные дополнительные возможности на разделение по группам реквизитов с отличием по визуальному отображению, через цвет фона и текста, а также доступны разделительные строки, что-то типа
<Реквизит>
<РеквизитГруппа>КонтактнаяИнформация
<РеквизитГруппаЦветФона>RGB</РеквизитГруппаЦветФона>
<РеквизитГруппаЦветТекста>RGB</РеквизитГруппаЦветТекста>
<РеквизитИдентификатор>Телефоны</РеквизитИдентификатор>
<РеквизитРазделитель>Разделитель</РеквизитРазделитель>
<РеквизитИдентификатор>Вебсайт</РеквизитИдентификатор>
</Реквизит>
</РеквизитГруппа>
Можно конечно хранить все не в xml файле а созданной новой таблице в SQL, или dbf файле, но тогда надо делать разные варианты обработки для SQL и ДБФ, а xml более универсальный на мое мнение.
Вот такая примерно схема!
vandalsvq писал(а) 27. Августа 2009 :: 14:50:Что я думаю... думаю что так и до 8.2 дойдем, чтобы формы на ходу рисовать, задавая только описание формы.
Получиться покруче чем в 8.2
Zealot писал(а) 27. Августа 2009 :: 12:15:Вот решил написать новый ПоставщикДанных.Элемент, основная идея, работа с формой элемента посредством табличного поля, где табличное поле фиксированная таблица определенной структуры (например колонки: ИдентификаторРеквизита, СинонимРеквизита, ЗначениеРеквизита, ЗакладкаРеквизита и т.д.)
Код примерный:
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "Элемент.Контрагенты";
ПоставщикДанных.КонтейнерКоманднойПанели = "тпФормаГруппыКоманднаяПанель";
ПоставщикДанных.КонтейнерТабличногоПоля = "тпФормаГруппы";
ПоставщикДанных.КонтейнерЗакладок = "тпФормаГруппыЗакладки";
Очевидные выгоды:
- Отпадает необходимость рисовать формы элемента
- Программное управление реквизитами справочника
- Ну в общем еще всякая полезность от этого
Что vandalsvq и господа думают о этом!