Переключение на Главную Страницу Страницы: 1 ... 34 35 [36] 37 38 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) 1sqlite (число прочтений - 464509 )
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #525 - 06. Апреля 2009 :: 06:45
Печать  
Точно, была небольшая трабла с неудаляемыми полями.
Попробуй вот с этой.
  

1sqlite_006.zip ( 390 KB | Загрузки )
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: 1sqlite
Ответ #526 - 06. Апреля 2009 :: 08:14
Печать  
Пойдем дальше?
В общем запрос есть, текст запроса устанавливается один раз, потом он переформируется и при повторной установке (в т.ч. и поставщика данных в ТП) 1С зависает долго думает и падает
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #527 - 06. Апреля 2009 :: 08:32
Печать  
vandalsvq писал(а) 06. Апреля 2009 :: 08:14:
Пойдем дальше?
В общем запрос есть, текст запроса устанавливается один раз, потом он переформируется и при повторной установке (в т.ч. и поставщика данных в ТП) 1С зависает долго думает и падает

Тоже примерно такое пытался пробывать, но списал всё на свои руки и недоученность.
В общем делаю пример по справочнику Сотрудники. Хочу, чтобы при быстром поиске табличное поле оставляла только нужные строки (=удовлетворяющие критерию поиска). Делаю так:
Код
Выбрать все
//===========================================================
Процедура СоздатьТП()
	ТекстЗапроса="
	|SELECT id as [Элемент :Справочник.Сотрудники]
	|	,isfolder [ЭтоГруппа]
	|	,idx_CODE [КлючПорядка]
	|FROM Справочник_Сотрудники
	|";
	Провайдер=СоздатьОбъект("SQLiteDataProvider");
	Провайдер.УстановитьБД(_БазаЛайт);
	Провайдер.Отладка(флОтладка);
	Провайдер.УстановитьТекстЗапроса(ТекстЗапроса, "[КлючПорядка]", "[Элемент :Справочник.Сотрудники]");
	тпНаФорме.ПоставщикДанных="";

	ДобавитьКолонкуТП(тпНаФорме, "Элемент");
	ДобавитьКолонкуТП(тпНаФорме, "ЭтоГруппа");

	тпНаФорме.ПоставщикДанных=Провайдер;
	тпНаФорме.ОбновитьСтроки();
КонецПроцедуры	// СоздатьТП

//===========================================================
Процедура тпНаФормеПриБыстромПоиске(ТабличноеПоле, чТипБыстрогоПоиска, нДанные, чФСО)
	ИмяКолонки=ТабличноеПоле.ТекущаяКолонка.Имя;
	Если ИмяКолонки="Элемент" Тогда
		ТекстЗапроса="
		|SELECT id as [Элемент :Справочник.Сотрудники]
		|	,isfolder [ЭтоГруппа]
		|	,idx_CODE [КлючПорядка]
		|FROM Справочник_Сотрудники
		|WHERE descr like '"+нДанные+"%'";
		тпНаФорме.ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса, "[КлючПорядка]", "[Элемент :Справочник.Сотрудники]");
		тпНаФорме.ОбновитьСтроки();
	КонецЕсли;
КонецПроцедуры	// тпНаФормеПриБыстромПоиске

//===========================================================
Процедура тпНаФормеПриОкончанииБыстрогоПоиска(ТабличноеПоле, флРезультат, флПерепозиционировано)
	ТекСтрока=тпНаФорме.ТекущаяСтрока;
	ТекстЗапроса="
	|SELECT id as [Элемент :Справочник.Сотрудники]
	|	,isfolder [ЭтоГруппа]
	|	,idx_CODE [КлючПорядка]
	|FROM Справочник_Сотрудники";
	тпНаФорме.ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса, "[КлючПорядка]", "[Элемент :Справочник.Сотрудники]");
	тпНаФорме.ОбновитьСтроки();
	тпНаФорме.ТекущаяСтрока=ТекСтрока;
КонецПроцедуры	// ПриОкончанииБыстрогоПоиска(ТабличноеПоле, флРезультат, флПерепозиционировано) 


В общем падает. Что я делаю не так и как надо правильно?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: 1sqlite
Ответ #528 - 06. Апреля 2009 :: 08:57
Печать  
Да в общем то все правильно вроде. (у себя не проверял).
Просто я тестирую на уже отлаженном коде работающем на "старом" поставщике. Малость модифицировал под то что Александр написал и по старому и по новому работает, но старый при изменении текста и переустановке все делает хорошо, а новый падает... не хорошо это.
  

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


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #529 - 06. Апреля 2009 :: 09:29
Печать  
пока как вариант обхода:
Код
Выбрать все
п = ТП.ПоставщикДанных;
ТП.ПоставщикДанных = "";
п.УстановитьТекстЗапроса(...);
ТП.ПоставщикДанных = п;
 

  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #530 - 06. Апреля 2009 :: 09:54
Печать  
Проблему выяснил - когда после новой установки текста запроса при подключенном ТП, я вызываю ему ResetData - чтобы инициализировать заполнение ТП, оно не вызывает у меня QueryField, для своих колонок, и они у меня не помечаются, как используемые в запросе, и не включаются в текст запроса, а ТП потом просит данные для этих колонок.
Ща буду выяснять, как это поправить.

Зарегил баг http://www.1cpp.ru/bugs/show_bug.cgi?id=4269
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #531 - 06. Апреля 2009 :: 10:47
Печать  
orefkov писал(а) 06. Апреля 2009 :: 09:29:
пока как вариант обхода:
Код
Выбрать все
п = ТП.ПоставщикДанных;
ТП.ПоставщикДанных = "";
п.УстановитьТекстЗапроса(...);
ТП.ПоставщикДанных = п;
 



Вроде такое было с другими поставщиками,
kms тоже советовал сначала отключать поставщика от ТП.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #532 - 06. Апреля 2009 :: 10:57
Печать  
Вот переделал.
Теперь на момент переустановки текста запроса у подключенного к ТП поставщика, автоматом включаются те поля из нового запроса, которые были включены в старом запросе на момент переустановки.
Однако, если в новом запросе какого-либо поля не хватит (по сравнению со старым запросом), то все равно вылетит.

  

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


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #533 - 06. Апреля 2009 :: 11:01
Печать  
PVR писал(а) 06. Апреля 2009 :: 10:47:
Вроде такое было с другими поставщиками,
kms тоже советовал сначала отключать поставщика от ТП.


Оно конечно понятно, но для меня то, что глюк может быть обойден пользователем, не показатель.
Все должно работать без танцев с бубном.
В доке нигде не написано, что ТП требует отключать предварительно поставщика.
Также в доке сказано -
Код
Выбрать все
ResetData
Описание: позволяет инициализировать заполнение ЭУ. 


Однако отрабатывает не совсем так, как должно.
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #534 - 06. Апреля 2009 :: 11:21
Печать  
orefkov писал(а) 06. Апреля 2009 :: 11:01:
PVR писал(а) 06. Апреля 2009 :: 10:47:
Вроде такое было с другими поставщиками,
kms тоже советовал сначала отключать поставщика от ТП.


Оно конечно понятно, но для меня то, что глюк может быть обойден пользователем, не показатель.
Все должно работать без танцев с бубном.
В доке нигде не написано, что ТП требует отключать предварительно поставщика.
Также в доке сказано -
Код
Выбрать все
ResetData
Описание: позволяет инициализировать заполнение ЭУ. 


Однако отрабатывает не совсем так, как должно.


Согласен на все 100 Подмигивание
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: 1sqlite
Ответ #535 - 06. Апреля 2009 :: 13:22
Печать  
orefkov писал(а) 06. Апреля 2009 :: 10:57:
Однако, если в новом запросе какого-либо поля не хватит (по сравнению со старым запросом), то все равно вылетит.


Ты имеешь в виду что КОЛОНКИ в тексте запроса или КОЛОНКИ в табличном поле? Если в табличном поле, то проблема, а если в тексте запроса, то можно запросто пережить, ибо если колонка.видимость = 0 то новый поставщик ее не обработает кроме случаев когда принудительно установлен сбор.
Я правильно понял?  Улыбка
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: 1sqlite
Ответ #536 - 06. Апреля 2009 :: 13:29
Печать  
Саша... слушай давай я тебе хорошую демку дам для тестирования поставщика? Улыбка по крайней мере я на ней тестирую и получаю все что написал выше.
Только мылом поделись Улыбка

Пы.сы. плюс я получил счас еще раз вылет с темой что память не может быть read.
  

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


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #537 - 07. Апреля 2009 :: 02:55
Печать  
почта - orefkov на гмаиле.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: 1sqlite
Ответ #538 - 07. Апреля 2009 :: 04:05
Печать  
Отправил. Посмотри... я там в письме описание дал если вдруг понадобится.
Письмо правда весит не мало (пости 6 метров).

Надеюсь поможет в твоем ратном труде  Подмигивание

Пы.сы. хотел сказать что проблемы ловил на поставщике справочника при комбинации разных отборов или настройки видимости колонок.  Подмигивание
« Последняя редакция: 07. Апреля 2009 :: 05:52 - vandalsvq »  

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


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #539 - 07. Апреля 2009 :: 08:00
Печать  
Вот еще чутка поправил.
Вроде на твоей обработке как только не изголялся с отборами и колонками, уронить не удалось.

Хотя имхо пока ТП не доделают нормально (чтобы при сбросе данных поставщиком оно информировало поставщика о необходимых полях, лучше менять текст запроса у отключенного от ТП поставщика)
  

1sqlite_008.zip ( 390 KB | Загрузки )
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 34 35 [36] 37 38 ... 79
ОтправитьПечать