Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Граф подчиненности документов (число прочтений - 27202 )
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Граф подчиненности документов
13. Декабря 2006 :: 14:21
Печать  
Отчет "Структура подчиненности документов" в типовых конфах для меня обладает рядом недостатков.
1. Выбрать подчиненные документы средствами языка можно, а вот для нахождения родительских документов (поиск корня структуры) приходится извращатся, перебирая типы реквизитов документа через метаданные.
Хотя все ссылки лежат спокойно в 1srcdoc, откуда спокойно вытягиваются, как подчиненные по родителю, так и родители по подчиненному.
2. Отчет работает, исходя из предположения, что каждый документ может быть подчинен только одному документу. В реальности это не так. В шапке может быть не один реквизит с типом "Документ", да и в табличной части бывают. То есть в общем случае структура подчиненности не дерево, а граф.

Вот эти недочеты и сподвигли меня написать "правильный" отчет о структуре подчиненности документов.
- Подчиненные/родительские документы выбираются параметризированными запросами из 1scrdoc
- Боле-менее нормальная попытка отобразить граф средствами таблиц 1С
- Интерактивный (можно сворачивать/разворачивать родителей/потомков документа)

Проверял на SQL, но вроде должно и на ДБФ работать, через ODBC.
  

docs_links.zip ( 6 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #1 - 13. Декабря 2006 :: 14:51
Печать  
Симпотично выглядит. Пара замечаний:
1. Я только со 3-го раза въехал когда мельком прочел заголовок ветки чего это может быть (.
2. Крайне симпотный дизайн, улыбнуло.
3. Фишка пригодности AS IS. Рядовой бухгалтер НЕ ЗНАЕТ ЧТО ТАКОЕ ГРАФ. ему бы возде [F-12....] написать что за знак что обозначает.
4. (что не совсем беда) Юзвери привыкли что дерево всегда развернуто....
5.  (предложение) хранить рядом с [F-12....] Кнопочку нафигации ИЛИ список уже "отграфованных" документов. для "возврата", а то иногда и не вспомнишь с чего начал....
  
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #2 - 13. Декабря 2006 :: 15:35
Печать  
Супер!  Улыбка

Только в 1.8.1.6 не работает. Чтобы работало и там, надо
Код
Выбрать все
запросПотомков.УстПараметр(1, ТекДок); 

поменять на
Код
Выбрать все
запросПотомков.УстПараметр(1, запросПотомков.мд.ЗначениеВСамуюДлиннуюСтрокуБД(ТекДок)); 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #3 - 13. Декабря 2006 :: 15:57
Печать  
тзДоки.Родители      = запросРодителей.ВыполнитьИнструкцию();
{D:\СТРУКТУРАПОДЧ.ERT(111)}: State HY010, native 0, message [Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций

Имеем такую вот ситуацию при DBF базе
Причем 1С выдает странное прупреждение "-2"
  

gluk.png ( 4 KB | Загрузки )
gluk.png

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Граф подчиненности документов
Ответ #4 - 13. Декабря 2006 :: 16:06
Печать  
orefkov

Штука из серии "о чем вы давно думали, но боялись спросить", (пока не было прямых запросов) Улыбка
На SQL все путем.

P.S.
Судорожно искал приличную иерархию, чтобы ощутить всю силу, которая в правде.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #5 - 13. Декабря 2006 :: 16:13
Печать  
Версия 1С++ как обычно из последнего nigthbuild'а
драйвера доступа и vfpODBC и vfpOleDB стоят и на прямых запросах в отчетах работают коректно

И еще данный документ выбора имеет следующую струтуру подчиненности

  

gluk1.png ( 19 KB | Загрузки )
gluk1.png

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #6 - 13. Декабря 2006 :: 16:18
Печать  
Супер! Впечатлило! Давно хотел сделать, но год откладывал "на след понедельник"Улыбка

kms писал(а) 13. Декабря 2006 :: 16:06:
Судорожно искал приличную иерархию, чтобы ощутить всю силу, которая в правде.


Иерархия из пары сотен документов пошла на ура Улыбка
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Граф подчиненности документов
Ответ #7 - 14. Декабря 2006 :: 07:07
Печать  
lustin писал(а) 13. Декабря 2006 :: 15:57:
тзДоки.Родители      = запросРодителей.ВыполнитьИнструкцию();
{D:\СТРУКТУРАПОДЧ.ERT(111)}: State HY010, native 0, message [Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций

Имеем такую вот ситуацию при DBF базе
Причем 1С выдает странное прупреждение "-2"

Да, точно.
Прогнал на дбф базе.
Там текст запроса должен быть другой. У себя исправил, но работает ЧУДОВИЩНО медленно.
Видимо придется для ДБФ заюзать штатные методы.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Граф подчиненности документов
Ответ #8 - 14. Декабря 2006 :: 07:56
Печать  
Вот вариант, работающий с ДБФ через ODBCRecordSet
ДБФщики, потестируйте плиз.
Чето у меня он сильно тормозит (1scrdoc у меня 45 МБ)
  

docs_links_001.zip ( 7 KB | Загрузки )
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #9 - 14. Декабря 2006 :: 08:38
Печать  
Поправил обработку под работу с ДБФ.

Но при работе через DBF-ODBC есть приличные тормоза Печаль
При работе с OLEDB все очень быстро.

Поэтому схема работы следующая:
сначала пытаемся работать через OLEDB, если возникает ошибка подключения или создания, работаем через ODBC.

А в общем, удобно и быстро Улыбка
Спасибо Саше !
  

docs_links_sql_dbf.zip ( 18 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #10 - 14. Декабря 2006 :: 08:40
Печать  
Проверил у себя, работает изумительно.
и как всегда ряд хотелок Улыбка
- при выборе родителя иногда открывается новое дерево, хотелось бы его открывать в отдельном окне
- возможность просмотра реквизитов документа прямо в дереве

мы себе написали свое дерево подчиненности, оно позволяет менять отображение документа в дереве, просматривать реквизиты документы не открывая его ...
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #11 - 14. Декабря 2006 :: 08:40
Печать  
Черт, не видел пост Саши - почта не работала Печаль
Мог бы съэкономить час времени Улыбка

Так что у нас почти независимые разработки в части ДБФ Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Граф подчиненности документов
Ответ #12 - 14. Декабря 2006 :: 08:53
Печать  
artbear писал(а) 14. Декабря 2006 :: 08:40:
Черт, не видел пост Саши - почта не работала Печаль
Мог бы съэкономить час времени Улыбка

Так что у нас почти независимые разработки в части ДБФ Улыбка

Ну у Саши только через ODBC.
Посмотрел и тот и друго вариант: небо и земля. В общем: OLE DB, Саша, Артур - рулят!
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Граф подчиненности документов
Ответ #13 - 14. Декабря 2006 :: 15:37
Печать  
Вот обновил с учетом доработок Артура и некоторым пожеланиям.
Для дбф сделаны методы получения, в порядке предпочтения:
- оле дб
- одбц
- штатные средства
(хотя скорее всего штатные средства будут быстрее одбц, надо проверять)

При открытии отчета разворачиваются все узлы, за исключением зацикленных.
То есть если после открытия есть доки с "+", значит, они уже где-то в дереве выводились ранее.
  

docs_links_003.zip ( 8 KB | Загрузки )
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Граф подчиненности документов
Ответ #14 - 14. Декабря 2006 :: 17:01
Печать  
Ну и еще фичи:
- История документов
- Открытие в новом окне
  

docs_links_002.zip ( 9 KB | Загрузки )
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать