Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Как в запросе получить Уровень() (число прочтений - 10396 )
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Как в запросе получить Уровень()
Ответ #15 - 21. Мая 2008 :: 07:24
Печать  
pvase писал(а) 21. Мая 2008 :: 07:07:
sadovnikov писал(а) 21. Мая 2008 :: 06:53:
Не понял. Что есть "свой справочник по типу 1С"?
Если создавать будешь свою таблицу - кто мешает сразу туда заложить поле Уровень?

Есть разные задачи и разное их решения, оба решения имеют право на применение.


А как-то по-проще про  "свой справочник по типу 1С" сказать можешь?
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как в запросе получить Уровень()
Ответ #16 - 21. Мая 2008 :: 07:44
Печать  
sadovnikov писал(а) 21. Мая 2008 :: 07:24:
А как-то по-проще про  "свой справочник по типу 1С" сказать можешь?

Это пока идея, есть решение, где в 1С храниться только ID+Код+Наименование (ну и системные поля) справочника, а все остальные реквизиты в другой таблице, потом через View просматривать все вместе (через JOIN). Но есть и другое решение (пока проект) - в 1С вообще не хранить справочник, а хранить его в таблице отдельно, работу с ним вести через ТП. Это более универсальное решение и гибче, но требует больше программирования.
  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как в запросе получить Уровень()
Ответ #17 - 21. Мая 2008 :: 07:45
Печать  
А зачем?
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Как в запросе получить Уровень()
Ответ #18 - 21. Мая 2008 :: 07:52
Печать  
pvase писал(а) 21. Мая 2008 :: 07:44:
Это пока идея, есть решение, где в 1С храниться только ID+Код+Наименование (ну и системные поля) справочника, а все остальные реквизиты в другой таблице, потом через View просматривать все вместе (через JOIN).


Присоединюсь к JohnyDeath - зачем??

pvase писал(а) 21. Мая 2008 :: 07:44:
Но есть и другое решение (пока проект) - в 1С вообще не хранить справочник, а хранить его в таблице отдельно, работу с ним вести через ТП. Это более универсальное решение и гибче, но требует больше программирования.


У нас в базах дофигищи своих таблиц. Не вижу сложности. И зачем в них копировать структуру от 1С? свои талицы нужны как раз в тех случаях, когда структара таблиц 1С чем-то не устраивает.

Сдается мне, что сейчас ты пытаешься объять необъятное. И кучу проблем свлил в одну. Ты их раздели на мелкие кусочки и решай по очереди. Хочешь вытащить запросом уровень элемента 1С-кого справочника - вытаскивай. И не отвлекайся на другое.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как в запросе получить Уровень()
Ответ #19 - 21. Мая 2008 :: 08:00
Печать  
ID 9 символов - бред (еще больший бред делать его GUID без особой надобности на то), кластерный индекс ROW_ID - еще одно достоинство которое можно смело убить. Выборка в таблицу (форму списка) сразу всех реквизитов с их типизацией - тормоз (если реквизитов до 50-100 и элементов от 10 000 например). Индексы - также желают лучшего (не считая делать свои, которые как показал опыт в случае уникальности не работают), ну и наконец связи с каскадным удалением или обновление - то что так не хватает в 7-ке (правда обновление не будет нужным, но вот удаление при некотых условиях еще как надо).
  
Наверх
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Как в запросе получить Уровень()
Ответ #20 - 21. Мая 2008 :: 08:02
Печать  
Ты это сейчас что хотел до нас донести?
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как в запросе получить Уровень()
Ответ #21 - 21. Мая 2008 :: 08:06
Печать  
sadovnikov писал(а) 21. Мая 2008 :: 08:02:
Ты это сейчас что хотел до нас донести?


Зачем делать свои таблицы для справочников, еще одна фича - строки с типом Char (хотя бы VarChar). В общем, справочник 1С есть куда развить (гурппы динамические например или доступ на записи по пользователям).
  
Наверх
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Как в запросе получить Уровень()
Ответ #22 - 21. Мая 2008 :: 08:10
Печать  
pvase писал(а) 21. Мая 2008 :: 08:06:
... еще одна фича - строки с типом Char (хотя бы VarChar).

Ты в курсе про разные накладные расходы при работе с Char и varChar?

pvase писал(а) 21. Мая 2008 :: 08:06:
...(гурппы динамические например или доступ на записи по пользователям).

Посни понятие "гурппы динамические"?
И, заодно, "доступ на записи по пользователям".
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как в запросе получить Уровень()
Ответ #23 - 28. Мая 2008 :: 06:22
Печать  
sadovnikov писал(а) 21. Мая 2008 :: 08:10:
pvase писал(а) 21. Мая 2008 :: 08:06:
... еще одна фича - строки с типом Char (хотя бы VarChar).

Ты в курсе про разные накладные расходы при работе с Char и varChar?

pvase писал(а) 21. Мая 2008 :: 08:06:
...(гурппы динамические например или доступ на записи по пользователям).

Посни понятие "гурппы динамические"?
И, заодно, "доступ на записи по пользователям".


"Гурппы динамические" - группы не привязанные по ParentID-ID, а по фильтру (набор фильтров). Доступ до записи - пользователь видит только свои записи и кому хочет раздает права на просмотр и редактивраоние записей (Если честно я думал что в 8-ке это есть, но как показал опыт еще нет, или я плохо смотрел).
Реализация всего этого несложная, но если код будет не INT а Char, то такие запросы с JOIN-ами могут работать не так быстро как с ID типа INT (я не говорю о ID типа GUID, которые длиной 36 смиволов, хотя в этом может есть какой тайный смысл кроме всемирной репликации записей).
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать