Администратор словаря данных - вижу фигу....
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Июл 01, 2013 14:11  Администратор словаря данных - вижу фигу.... |
|
Полезность: Нет оценки
|
Добрый вечер.
Подскажите новичку - может где-чё включить надо, чтобы на вкладке
"Реквизиты" в Администраторе словаре данных появилась нужная мне информация.
В настройках что-то повключал - к наименованию и короткому имени реквизита появился "Тип"
А видеть хочется, для начала, такие поля:
Код: | select c.has_instances, c.agregate, c.base_class_id, c.target_class_id from classes c where c.id = .... |
Ну и дальше, если реквизит объекта является массивом (коллекцией), то хотелось видеть чем является элемент этого массива (ссылкой или самостоятельной структурой).
Дело в том, название типам даются не всегда в соответствии с их типами - сильно зависит от проектанта. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Июл 02, 2013 08:20  Re: Администратор словаря данных - вижу фигу.... |
|
Полезность: Нет оценки
|
Damir пишет: | Добрый вечер.
Подскажите новичку - может где-чё включить надо, чтобы на вкладке
"Реквизиты" в Администраторе словаре данных появилась нужная мне информация.
В настройках что-то повключал - к наименованию и короткому имени реквизита появился "Тип"
А видеть хочется, для начала, такие поля:
Код: | select c.has_instances, c.agregate, c.base_class_id, c.target_class_id from classes c where c.id = .... |
Ну и дальше, если реквизит объекта является массивом (коллекцией), то хотелось видеть чем является элемент этого массива (ссылкой или самостоятельной структурой).
Дело в том, название типам даются не всегда в соответствии с их типами - сильно зависит от проектанта. |
Бить пректанта по шее зарплатой не помогает?
Обычно окончание _REF означает, что мы имеем дело со ссылкой, _ARR - с массивом, _REF_ARR - с массивом ссылок. Сразу оговорюсь, что массивы ссылок - persona non grata.
Простые типы нужно просто запомнить.
Все остальные - структуры.
И вообще, кода долго работаешь над одним и тем же проектом, запоминаешь типы, если сомневаешься, ну ткнул пару раз мышкой на нужном поле. Или выполнил запрос к БД.
А тащить всю информацию в окошко - сильно много разных буковок, глаза устают, не нужно это ИМХО.
Тем более, что тех колонок, которые Вы хотите видеть, всё равно не настроить никак. |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Вт Июл 02, 2013 10:30  Re: Администратор словаря данных - вижу фигу.... |
|
Полезность: Нет оценки
|
Random пишет: | Бить пректанта по шее зарплатой не помогает? |
Последние разбегуться тада. Итак вокруг одни 1С-ники
А если серъездно - раритета достаточно много, а я ЦФТ в глаза увидел только 2 месяца как.
Тык мышкой на поле дает неоднозначную интерпретацию (например, в случае Ссылки, Класса без возможности иметь экземпляры, Массива объектов - вот во всех случаях открывается окошко Класса).
Мне было бы удобнее напротив реквизита увидеть 'REFERENCE', 'STRUCTURE' или 'COLLECTION' и в случае массива - массив чего (ссылок или объектов)
Random пишет: |
Сразу оговорюсь, что массивы ссылок - persona non grata.
|
А вот тут очень интересно узнать мнение спеца - почему?
В нашей системе массивов ссылок достаточно много
Random пишет: |
Тем более, что тех колонок, которые Вы хотите видеть, всё равно не настроить никак.
|
Придется себе самому тулсятину писать - не так уж и сложно.
Просто это уж совсем инструмантальные средства - их лучше централизованно разрабатывать. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Ср Июл 03, 2013 06:40  Re: Администратор словаря данных - вижу фигу.... |
|
Полезность: Нет оценки
|
Damir пишет: | Мне было бы удобнее напротив реквизита увидеть 'REFERENCE', 'STRUCTURE' или 'COLLECTION' и в случае массива - массив чего (ссылок или объектов) |
Привыкнешь
Увы, но это факт - что есть, то и кушаем. Сподвигнуть что-то поменять - это реально подвиг...
Damir пишет: |
Random пишет: |
Сразу оговорюсь, что массивы ссылок - persona non grata.
|
А вот тут очень интересно узнать мнение спеца - почему?
В нашей системе массивов ссылок достаточно много |
Ну это же достаточно просто.
Вот раньше у клиента был массив ссылок кодов ОКАТО, или как-то так.
Через несколько времени стал нужен приоритет, какой из кодов предпочтительней.
Массивы ссылок не расширяются вообще никак.
Пришлось разрабатывать структуру со ссылкой на код окато и признаком MAIN. И заменять везде одно на другое. И писать операции конвертации, перегоняющие данные из одной таблички в другую. И куча ошибок.
Зато, когда встала задача сделать привязку того же кода ОКАТО к клиенту историчным, никаких проблем - на уже существующей структуре добавили реквизит DATE_BEG и всё.
PS: Про код ОКАТО и клиентов - это фантазия чисто для примера. Но факт - в ЦФТ по регламенту новый массив ссылок практически не имеет шансов попасть в дистрибутив. |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Чт Июл 04, 2013 05:33  Re: Администратор словаря данных - вижу фигу.... |
|
Полезность: Нет оценки
|
Random пишет: |
Увы, но это факт - что есть, то и кушаем. Сподвигнуть что-то поменять - это реально подвиг...
|
Ужос.....
Будет время - наваяю по-бырому для себя гляделку реквизитов в виде операции ЦФТ-шной и выложу в форум. Нихай вашим ядерщикам потом в нос тычут.
Пока вот (другим топиком) выложу свои мысли по логированию изменений - на всеобщее обсуждение.
Random пишет: |
Массивы ссылок не расширяются вообще никак.
................
Зато, когда встала задача сделать привязку того же кода ОКАТО к клиенту историчным, никаких проблем - на уже существующей структуре добавили реквизит DATE_BEG и всё.
PS: ... в ЦФТ по регламенту новый массив ссылок практически не имеет шансов попасть в дистрибутив. |
Ясн. Пасиб.
Ну, по-сути, те же яйца только в профиль.
Вместо массива ссылок имеем расширяемую структуру ссылок.
Я уж было испугался, что пользовать можно только массивы объектов. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Чт Июл 04, 2013 12:47  Re: Администратор словаря данных - вижу фигу.... |
|
Полезность: Нет оценки
|
Damir пишет: | Пока вот (другим топиком) выложу свои мысли по логированию изменений - на всеобщее обсуждение. |
Можно подробнее? А то у меня есть что-то на эту тему...
Damir пишет: |
Я уж было испугался, что пользовать можно только массивы объектов. |
Ну да, так и есть. Просто в данном случае объект - структура со ссылкой. |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Июл 15, 2013 12:23  Re: Администратор словаря данных - вижу фигу.... |
|
Полезность: Нет оценки
|
Damir пишет: |
Будет время - наваяю по-бырому для себя гляделку реквизитов в виде операции ЦФТ-шной и выложу в форум. Нихай вашим ядерщикам потом в нос тычут.
|
Ну вот сделал для себя 2 PL+ представления.
1-ое на основе таблицы CLASSES, второе на основе таблички class_attributes.
Второе представление прилагаю - собс-но мне не хватало поля SELF_KIND_TREE в Администраторе словаря при просмотре реквизитов.
Код: |
type main is
select ca(
ca.CLASS_ID : IBSO_CLASS_ID
, ca.ATTR_ID : ATTR_ID
, ca.SELF_CLASS_ID : SELF_CLASS_ID
, ca.NAME : NAME
, ca.REQUIRED : REQUIRED
, ca.POSITION : POSITION
, ca.FILTERABLE : FILTERABLE
, ca.BROWSEABLE : BROWSEABLE
, ca.SEQUENCED : SEQUENCED
, ca.MODIFIED : MODIFIED
, ( select c1(
max(sys_connect_by_path(c1.id, ' \ ')) : qq
) in classes%rowtype
connect by prior c1.target_class_id = c1.id
start c1.id = ca.SELF_CLASS_ID
) : SELF_CLASS_TREE
, ( select c(
max(sys_connect_by_path(
--c.id
case
when c.base_class_id = 'OLE' then 'OLE объекты'
when c.base_class_id = 'TABLE' then 'Вложенные массивы'
when c.base_class_id = 'DATE' then 'Даты'
when c.base_class_id = 'BOOLEAN' then 'Логические'
when c.base_class_id = 'COLLECTION' then 'Массивы'
when c.base_class_id = 'STRING' then 'Строки'
when c.base_class_id = 'REFERENCE' then 'Ссылки'
when c.base_class_id = 'STRUCTURE' and c.agregate = 'VARIANT' then 'Варианты'
when c.base_class_id = 'STRUCTURE' then 'Структуры'
when c.base_class_id = 'MEMO' then 'Текстовые'
when c.base_class_id = 'NUMBER' then 'Числа'
else 'unknown'
end --: KIND
, ' \ ')) : qq
) in classes%rowtype
connect by prior c.target_class_id = c.id
start c.id = ca.SELF_CLASS_ID
) : SELF_KIND_TREE
)in class_attributes%rowtype
order by ca.class_id, ca.position
; |
|
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Июл 15, 2013 13:15  Re: Администратор словаря данных - вижу фигу.... |
|
Полезность: Нет оценки
|
Damir пишет: |
Ну вот сделал для себя 2 PL+ представления.
1-ое на основе таблицы CLASSES, второе на основе таблички class_attributes.
Второе представление прилагаю - собс-но мне не хватало поля SELF_KIND_TREE в Администраторе словаря при просмотре реквизитов.
|
Продублировал поле SELF_KIND_TREE в представлении на основании CLASSES - по-моему неплохо получилось.
Код: |
type main is
select c(
c.KIND : KIND
, c.id : IBSO_CLASS_ID
, level : LVL
, c.name : NAME
, c.entity_id : ENTITY_ID
, c.parent_id : PARENT_ID
, c.has_instances : HAS_INSTANCES
, c.init_state_id : INIT_STATE_ID
, c.agregate : AGREGATE
, c.base_class_id : BASE_CLASS_ID
, c.target_class_id : TARGET_CLASS_ID
, c.autonomous : AUTONOMOUS
, c.is_collection : IS_COLLECTION
, c.kernel : KERNEL
, c.param_group : PARAM_GROUP
, c.has_type : HAS_TYPE
, substr(SYS_CONNECT_BY_PATH ( c.id, '/' ), 1, 4000) : TREE_WAY
, decode(c.KIND
, 'OLE объекты' , 10
, 'Варианты' , 15
, 'Вложенные массивы' , 20
, 'Даты' , 30
, 'Логические' , 40
, 'Массивы' , 50
, 'Строки' , 60
, 'Ссылки' , 70
, 'Структуры' , 90
, 'Текстовые' , 100
, 'Числа' , 110
, 'unknown' , 120
) : KIND_4_SORT
, ( select c1(
max(sys_connect_by_path(c1.id, ' \ ')) : qq
) in classes%rowtype
connect by prior c1.target_class_id = c1.id
start c1.id = c.ID
) : SELF_CLASS_TREE
, ( select c1(
max(sys_connect_by_path(
--c.id
case
when c1.base_class_id = 'OLE' then 'OLE объекты'
when c1.base_class_id = 'TABLE' then 'Вложенные массивы'
when c1.base_class_id = 'DATE' then 'Даты'
when c1.base_class_id = 'BOOLEAN' then 'Логические'
when c1.base_class_id = 'COLLECTION' then 'Массивы'
when c1.base_class_id = 'STRING' then 'Строки'
when c1.base_class_id = 'REFERENCE' then 'Ссылки'
when c1.base_class_id = 'STRUCTURE' and c1.agregate = 'VARIANT' then 'Варианты'
when c1.base_class_id = 'STRUCTURE' then 'Структуры'
when c1.base_class_id = 'MEMO' then 'Текстовые'
when c1.base_class_id = 'NUMBER' then 'Числа'
else 'unknown'
end --: KIND
, ' \ ')) : qq
) in classes%rowtype
connect by prior c1.target_class_id = c1.id
start c1.id = c.id
) : SELF_KIND_TREE
, 'A' : ATTRIB
) in( --classes%rowtype
select c(
c%rowtype
, to_char(c.id+0) : CLASS_ID
, case
when c.base_class_id = 'OLE' then 'OLE объекты'
when c.base_class_id = 'TABLE' then 'Вложенные массивы'
when c.base_class_id = 'DATE' then 'Даты'
when c.base_class_id = 'BOOLEAN' then 'Логические'
when c.base_class_id = 'COLLECTION' then 'Массивы'
when c.base_class_id = 'STRING' then 'Строки'
when c.base_class_id = 'REFERENCE' then 'Ссылки'
when c.base_class_id = 'STRUCTURE' and c.agregate = 'VARIANT' then 'Варианты'
when c.base_class_id = 'STRUCTURE' then 'Структуры'
when c.base_class_id = 'MEMO' then 'Текстовые'
when c.base_class_id = 'NUMBER' then 'Числа'
else 'unknown'
end : KIND
) in classes%rowtype
)
connect by c.parent_id = prior c.id
start c.parent_id is null
order siblings by c.base_class_id
;
| [/code] |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|