Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) ТП. немного рассуждений и предложений. (число прочтений - 2621 )
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ТП. немного рассуждений и предложений.
08. Сентября 2008 :: 06:17
Печать  
Было проведено ряд тестов с поставщиком ТП -  ODBCDataBase. Было выяснено, что испольование GROUP BY приводит к вылету ТП (подключение занято до получения ...). Использование View в качестве источника для запроса - также не решало проблему, ошибка та же.
Есть пару предложений по этому поводу.
1 - Для "ТаймаутОбновления" сделать какую то предопределенную процедуру, которая будет вызываться перед обновлением (например, если источник ТЗ, то чтобы обновить данные в ТЗ).
2 - Не делать столь жесткими условия по GROUP BY, потому как иногда надо все таки в запросе эта конструкция, а иногда приходиться использовать и With ROllup, уже не знаю что будет с ним, как поведет себя ТП.
« Последняя редакция: 15. Сентября 2008 :: 13:44 - pvase »  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #1 - 08. Сентября 2008 :: 08:51
Печать  
Закидывай запрос с группировкой в подзапрос типа
Select * From (Твой запрос) и уже этот запрос подставляй в ТП.
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #2 - 08. Сентября 2008 :: 08:58
Печать  
Ага , только так вся идея ТП идёт лесом, для получения 20 строк данных приходится  обрабатывать все
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #3 - 08. Сентября 2008 :: 09:51
Печать  
Почему? Поясни.
ЗЫ если что, GroupBy по различным причинам в ТП запрещен Улыбка
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #4 - 08. Сентября 2008 :: 10:03
Печать  
artbear писал(а) 08. Сентября 2008 :: 09:51:
Почему? Поясни.
ЗЫ если что, GroupBy по различным причинам в ТП запрещен Улыбка


Когда происходит скролирование ТП то происходит выборка только нескольких строк - необходимых для отрисовки ТП. А в случае с под запросом сервер у тебя будет лопатить все записи а потом уже их отфильтровывать. Т.е. если запрос "тяжёлый"  будут тормоза.
  
Наверх
ICQ  
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: ТП. немного рассуждений и предложений.
Ответ #5 - 09. Сентября 2008 :: 06:11
Печать  
Оптимальнее будет все же один раз сделать запрос с групбай, выгрузить его в ТЗ, и выводить из ТЗ в ТП.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #6 - 09. Сентября 2008 :: 15:13
Печать  
orefkov писал(а) 09. Сентября 2008 :: 06:11:
Оптимальнее будет все же один раз сделать запрос с групбай, выгрузить его в ТЗ, и выводить из ТЗ в ТП.


Вот я об этом и говорю, только если бы еще и обновлять эти данные в ТЗ как то когда происходит обновление источника ТП, было бы проще немножко с реализацией.
  
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #7 - 09. Сентября 2008 :: 17:29
Печать  
pvase писал(а) 09. Сентября 2008 :: 15:13:
Вот я об этом и говорю, только если бы еще и обновлять эти данные в ТЗ как то когда происходит обновление источника ТП, было бы проще немножко с реализацией.

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


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #8 - 10. Сентября 2008 :: 10:16
Печать  
pvase писал(а) 09. Сентября 2008 :: 15:13:
orefkov писал(а) 09. Сентября 2008 :: 06:11:
Оптимальнее будет все же один раз сделать запрос с групбай, выгрузить его в ТЗ, и выводить из ТЗ в ТП.


Вот я об этом и говорю, только если бы еще и обновлять эти данные в ТЗ как то когда происходит обновление источника ТП, было бы проще немножко с реализацией.

Когда используется локальный поставщик данных (данные не могут изменяться другими процессами, например поставщик ТЗ), использовать ТаймаутОбновления смысла не имеет.

Если нужно периодическое обновление самих данных в ТЗ, это нужно делать функционалом формы: ОбработкаОжидания(), с подачей команды обновления отображения ТП (ТП.ОбновитьСтроки()).
  
Наверх
ICQ  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #9 - 11. Сентября 2008 :: 08:20
Печать  
DmitrO писал(а) 10. Сентября 2008 :: 10:16:
Когда используется локальный поставщик данных (данные не могут изменяться другими процессами, например поставщик ТЗ), использовать ТаймаутОбновления смысла не имеет.

Если нужно периодическое обновление самих данных в ТЗ, это нужно делать функционалом формы: ОбработкаОжидания(), с подачей команды обновления отображения ТП (ТП.ОбновитьСтроки()).


Спасибо, понял, так и планировал сделать, наверное так и сделаю.

А по поводу подзапросов то все таки ТП с группировками не совсем корректно работает иногда вылетает.

Теоретически, можно использовать временную таблицу вместо таблицы значений, но проблему будут те же, за исключением, что временную таблицу можно апдейтить или по тригеру или по шедулеру независимо от 1С.
  
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ТП. немного рассуждений и предложений.
Ответ #10 - 11. Сентября 2008 :: 08:47
Печать  
Я в свое время продумывал механизм своеобразной подписки на события. Т.е. если мы в запросе используем определенную таблицу, то подписываемся на изменения в ней, когда другой процесс внесет изменения в эту таблицу, происходит уведомление подписчиков на необходимость обновления данных. Подписчики, в свою очередь, обновляют свои отображаемые данные.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать