Администратор словаря данных - вижу фигу.... 
	   
	     | 
   
 
	
		| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		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] | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |