Переключение на Главную Страницу Страницы: [1] 2 3 ... 7 ОтправитьПечать
Очень популярная тема (более 25 ответов) ProxyDataProvider (число прочтений - 46085 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
ProxyDataProvider
16. Мая 2008 :: 12:56
Печать  
по просьбам трудящихся
Теперь поставщика данных для ТП может попытаться написать каждый. Был бы повод и фантазия Улыбка

Документации нет, но есть немного примеров.
Будет хорошо, если кто-нибудь осилит написание описалова.
В качестве стартового мини-sdk (для понимания работы поставщиков ТП вообще) может служить раздел докуметации ТП Описание интерфейса поставщиков данных табличного поля

в атаче ВК и md с тремя КОПами (поставщики ИТ,ТЗ,ТЧ)

КОП-поставщик может реализовать следующий интерфейс (интерфейс QS пока недореализован):
//DataRow
"GetFieldCount",
"GetFieldIndexOf",
"GetFieldName",
"GetFieldType",
"FormatField",
"GetRowIndex",
"GetValue",
//Provider
"QueryRows",
"Fetch",
"RefreshRow",
"CompareRows",
"GetLastError",
"GetRowCount",
"QueryField",
"ReleaseField",
"GetQuickSearchType",
"QuickSearch",
"OnAttach",
"OnDetach",
"BuildRowByValue"


исходники
_1Common.7z
ProxyDataProvider_src.rar

ProxyDataProvider.rar
« Последняя редакция: 23. Июля 2013 :: 06:47 - trad »  

1&&2&&3
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #1 - 16. Мая 2008 :: 13:06
Печать  
trad писал(а) 16. Мая 2008 :: 12:56:
Теперь поставщика данных для ТП может попытаться написать каждый. Был бы повод и фантазия Улыбка

Уф, ну, слава богу. Теперь мне провайдера OLE DB для ТП можно не дописывать Улыбка

PS. Сырки, надеюсь, выложил?
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: ProxyDataProvider
Ответ #2 - 16. Мая 2008 :: 13:17
Печать  
Работает только с icpp?
С 2.5 нет?
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ProxyDataProvider
Ответ #3 - 16. Мая 2008 :: 13:20
Печать  
Uzhast писал(а) 16. Мая 2008 :: 13:06:
Уф, ну, слава богу. Теперь мне провайдера OLE DB для ТП можно не дописывать Улыбка

Торопишься  Улыбка, вдруг не кто не осилит  Подмигивание
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #4 - 16. Мая 2008 :: 13:30
Печать  
Uzhast писал(а) 16. Мая 2008 :: 13:06:
Уф, ну, слава богу. Теперь мне провайдера OLE DB для ТП можно не дописывать Улыбка
Сдается мне, ты зря расслабился...

Цитата:
PS. Сырки, надеюсь, выложил?

Дык ничего там такого нет. Грубая прослойка.
ссылки на исходники в #0
« Последняя редакция: 03. Июля 2008 :: 07:37 - trad »  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #5 - 16. Мая 2008 :: 13:31
Печать  
kiruha писал(а) 16. Мая 2008 :: 13:17:
Работает только с icpp?
С 2.5 нет?

проверял на последних версиях обоих. там написано на каких.
  

1&&2&&3
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #6 - 16. Мая 2008 :: 13:33
Печать  
trad писал(а) 16. Мая 2008 :: 13:30:
Цитата:
PS. Сырки, надеюсь, выложил?

Дык ничего там такого нет. Грубая прослойка.
http://trad.citykirov.ru/_1Common.rar
http://trad.citykirov.ru/ProxyDataProvider_src.rar

А я ни на что и не намекаю Улыбка Просто для использования какой-то компоненты очень желательно, чтобы либо автор ее постоянно поддерживал, либо, чтобы сырки были открыты. Зная твою ленивость... Подмигивание
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: ProxyDataProvider
Ответ #7 - 16. Мая 2008 :: 13:34
Печать  
Ну вот а я столько писал поставщика кривого, тормазнутого и никому не нужного Смех . Хорошо то что хорошо  Подмигивание пошел смотреть.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #8 - 16. Мая 2008 :: 13:44
Печать  
Цитата:
Зная твою ленивость... Подмигивание
тут ты сильно прав
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #9 - 16. Мая 2008 :: 13:57
Печать  
Uzhast писал(а) 16. Мая 2008 :: 13:33:
Просто для использования какой-то компоненты очень желательно,...
Позволю себе совет. Не используй эту компоненту. Напиши сам - у тебя лучше получиться. А еще правильнее (пока не разработаны безопасные внешние интерфейсы в 1cpp) именно этот функционал включить в 1с++. Ибо, как показали последние изменения, данные CDataRow или CDataProvider подвержены температурным расширениям и ВК перестанет работать.
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ProxyDataProvider
Ответ #10 - 16. Мая 2008 :: 13:58
Печать  
trad

Мне тоже странно, что многие простые в реализации идеи остаются нереализованными.
Пойду подумаю, почему так получается.
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ProxyDataProvider
Ответ #11 - 16. Мая 2008 :: 14:00
Печать  
trad писал(а) 16. Мая 2008 :: 13:57:
А еще правильнее (пока не разработаны безопасные внешние интерфейсы в 1cpp) именно этот функционал включить в 1с++.

Поддерживаю полностью.
  

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #12 - 16. Мая 2008 :: 14:10
Печать  
Если кто-то будет дописывать - мой brain-stream
По моему мнению необходимо реализовать базовий для КОПов класс из которого выставить методы ResetData(), SetCurrentRow() и, возможно, OnFieldsChanged().
КОП можно опционально от него наследовать, если конечно частной реализации потребуетсмя обратная связь с ТП. А она обязательно потребуется например для QS.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #13 - 16. Мая 2008 :: 14:12
Печать  
ps
даа, написал же ДмитрО нетленку - ТП
  

1&&2&&3
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ProxyDataProvider
Ответ #14 - 18. Мая 2008 :: 07:07
Печать  
Хотел попробывать "ПоставщикаДанныхТЧ". В модуле формы документа написал:
Код
Выбрать все
Процедура ПослеСозданияФормы()
	Ф=СоздатьОбъект("Форма");
	тпТЧ=Ф.СоздатьЭлементУправленияНаФорме(Форма, "ТабличноеПоле", "тпТЧ");

	Пост=СоздатьОбъект("ПоставщикДанныхТЧ");
	Пост.УстановитьКонтекстДокумента(ТекущийДокумент());

	ПроксиПоставщик=СоздатьОбъект("ПроксиПоставщикДанных");
	ПроксиПоставщик.УстПоставщика(Пост);

	тпТЧ.Колонки.Добавить("НомерСтроки").Данные=НомерСтроки;
	мдДок=Метаданные.Документ(Вид());
	Для Тек=1 По мдДок.РеквизитТабличнойЧасти() Цикл
		ИДРекв=мдДок.РеквизитТабличнойЧасти(Тек).Идентификатор;
		тпТЧ.Колонки.Добавить(ИДРекв).Данные=ИДРекв;
	КонецЦикла;
	тпТЧ.ОбновитьСтроки();
КонецПроцедуры	// ПослеСозданияФормы 



В самом КОПе добавил:
Код
Выбрать все
Сообщить("QueryRows"); 


и
Код
Выбрать все
Сообщить("Fetch"); 


в соответствующие процедуры, дабы увидеть выполняются ли эти процедуры.
В итоге на форме я имею пустую ТП и ниодного сообщения. По нажатию на "Home",  "End" или при прокрутке колесом имеем вылет.

Что я делаю не так?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 7
ОтправитьПечать