Переключение на Главную Страницу Страницы: 1 ... 71 72 [73] 74 75 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения, примеры, вопросы (число прочтений - 361724 )
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1080 - 10. Августа 2010 :: 11:21
Печать  
Странная ошибка. Подумаю... самое интересное что DBF-щики тут есть но подобной проблемы еще не пролетало.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Jarad
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 35
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1081 - 10. Августа 2010 :: 12:45
Печать  
Временно решил подобнім образом:
Код
Выбрать все
		ЗапросSQLite = БазаДанных.НовыйЗапрос();
			ЗапросSQLite.ВыполнятьВТранзакции = 0;
			ЗапросSQLite.ВыполнитьЗапрос("PRAGMA journal_mode = OFF");
 



Заменил на кусок из старого релиза ПрямогоЗапроса, где переменная инициализируется в классе
Код
Выбрать все
		БазаДанных = СоздатьОбъект("SQLiteBase");
		БазаДанных.Открыть(ПутьКБазеSQL);
		ЗапросSQLite = БазаДанных.НовыйЗапрос();
		ЗапросSQLite.ВыполнятьВТранзакции = 0;
		ЗапросSQLite.ВыполнитьЗапрос("PRAGMA journal_mode = OFF");
 

  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1082 - 10. Августа 2010 :: 13:15
Печать  
zk96 писал(а) 09. Августа 2010 :: 11:20:
Вот два примера для ПУБ.Один - ПоставщикДанных.Журнал, второй - ПоставщикДанных.Документ. Оба примера проверил у себя, они полностью рабочие.

Спасибо. Журнал заработал. начало положено.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1083 - 12. Августа 2010 :: 06:32
Печать  
Jarad писал(а) 09. Августа 2010 :: 12:32:
Я так понимаю, в конструкторе Поставщика.Справочник мы инициализируем объект ПрямойЗапрос, и второй строкой присваивается папаметр подключения к базе, но ведь в самом конструкторе "ПрямогоЗапроса", явно вызывается метод СоздатьОбъектыЗапроса, где параметр БазаДанных уже используется.


Что-то ты неправильное говоришь. В конструкторе класса "ПоставщикДанных.ПрямойЗапрос" вызов СоздатьОбъектыЗапроса не происходит. И происходит только при записи атрибута БазаДанных. Собственно ошибки там нигде нет, почему она у тебя возникает... кхм, тут у меня ответа нет.
И не путай класс "ПрямойЗапрос" с объектом в поставщике, они все таки немного разные.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1084 - 12. Августа 2010 :: 12:05
Печать  
недавно заметил что в ПоставщикДанных.Журнал.НайтиЗначение возможен поиск по вхождениею (последний параметр = 2) Очень довольный
одна беда что поиск происходит по текстовым полям, а нужен по наименованию справочника.

пердлагаю в данную ф-и немного поменять

Код
Выбрать все
	Если Врег(ИмяКолонки) = "ВРЕМЯДОКУМЕНТА" Тогда
		ЗначениеВремя36 = Сервис.ПолучитьTimeИзСтроки(Значение);
		ТекстЗапросаПоиска = ТекстЗапросаПоиска + "
		|"+КлючевоеСлово+" "+ВложеннаяСтруктура.РеквизитЗапроса+" = '" + ЗначениеВремя36 + "'
		|";
		КлючевоеСлово = "and";
	Иначе
		ТекстЗапросаПоиска = ТекстЗапросаПоиска + ,Вид,Значение,ПрямойЗапрос,КлючевоеСлово,ТочныйПоиск);
	КонецЕсли; 



на вот такой код

Код
Выбрать все
	Если Врег(ИмяКолонки) = "ВРЕМЯДОКУМЕНТА" Тогда
		ЗначениеВремя36 = Сервис.ПолучитьTimeИзСтроки(Значение);
		ТекстЗапросаПоиска = ТекстЗапросаПоиска + "
		|"+КлючевоеСлово+" "+ВложеннаяСтруктура.РеквизитЗапроса+" = '" + ЗначениеВремя36 + "'
		|";
		КлючевоеСлово = "and";
	ИначеЕсли (ВложеннаяСтруктура.Тип = "Справочник") и (ТочныйПоиск = 2) Тогда
		Если КлючевоеСлово = "where" Тогда
			ТекстЗапросаПоиска = ТекстЗапросаПоиска + "
			|left join Справочник." + ВложеннаяСтруктура.Вид + " AS УслПоиска ON (" + ВложеннаяСтруктура.РеквизитЗапроса + ") = $УслПоиска.ТекущийЭлемент
			|";
		Иначе
			СтрокаДопСоединения = "
			|left join Справочник." + ВложеннаяСтруктура.Вид + " AS УслПоиска ON (" + ВложеннаяСтруктура.РеквизитЗапроса + ") = $УслПоиска.ТекущийЭлемент
			|where";
			ТекстЗапросаПоиска = СтрЗаменить(ТекстЗапросаПоиска, "where",СтрокаДопСоединения);
		КонецЕсли;
		ТекстЗапросаПоиска = ТекстЗапросаПоиска + Сервис.ПолучитьТекстЗапросаПоискаЗначения(" $УслПоиска.Наименование " ,Тип,Вид,Значение,ПрямойЗапрос,КлючевоеСлово,ТочныйПоиск);
	Иначе
		ТекстЗапросаПоиска = ТекстЗапросаПоиска + ,Вид,Значение,ПрямойЗапрос,КлючевоеСлово,ТочныйПоиск);
	КонецЕсли; 



несовсем красиво, но работает
  
Наверх
wwwICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1085 - 13. Августа 2010 :: 08:14
Печать  
Прошу принять мелкую доводку формы отбора ПоставщикДанных.ОтборДанных.ert
1. Признак использования включается сам при выборе значения
2. "Флажочные" значения переключаются Enter'ом
3. При переключении вида отбора с "несписочного" на "списочный", текущее значение включается в список. Если наоборот, то первое значение списка становится Значением. При этом фиксится баг невозможности выбора значения после такого перехода.
  

____________________________001.ert ( 33 KB | Загрузки )
Наверх
GTalkICQ  
IP записан
 
PoVad
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 13. Августа 2010
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1086 - 13. Августа 2010 :: 08:39
Печать  
За класс огромный респектище!!!
Но, тут в документацию, по-моему, закралась ошибочка.  Вроде бы ничего страшного, но немого пришлось поковыряться. Версии и класса и документации проверил - и то и то от 21.07.2010.
Хотел  в поставщике данных с типом значения ИндексированнаяТаблица запретить добавлять и удалять строки. Делал все вроде бы по букварю:

ПередНачаломДобавления(Копирование, ФСО)
Параметры:
•      Копирование – признак (1,0) копирования строки.
•      ФСО – флаг стандартной обработки

Нарисовал такую процедурку:
Код
Выбрать все
Процедура ТабличноеПолеМногострочнойЧастиПередНачаломДобавления(Копирование,ФСО)
    ФСО=0;
КонецПроцедуры	// ПередНачаломДобавления
 


И она не сработала. Начал разбираться. Вот обработчик этого события, модуль ПоставщикДанных.ИндексированнаяТаблица:
Код
Выбрать все
Процедура ДобавитьСтроку() Экспорт
	ИмяМетода = Сервис.ПолучитьИмяМетода(КонтейнерТабличногоПоля,"ПередНачаломДобавления");
	Если Информатор.МетодСуществует(КонтекстФормы,ИмяМетода) = 1 Тогда
		СтруктураПараметров = СоздатьОбъект("СписокЗначений");

		СтруктураПараметров.Установить("Копирование",0);
		СтруктураПараметров.Установить("ФСО",-1);
		араметров);
		Если СтруктураПараметров.Получить("ФСО") = 0 Тогда
			Возврат;
		КонецЕсли;
	КонецЕсли;

	ИндексированнаяТаблица.НоваяСтрока();
	НомерСтроки = ИндексированнаяТаблица.НомерСтроки;
	я().Обновить();
	АктивизироватьСтроку(НомерСтроки);
КонецПроцедуры	// ДобавитьСтроку
 


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


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

Если что, не пинайте сильно, только начинаю разбираться с классом, может каких тонкостей и не заметил.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1087 - 13. Августа 2010 :: 08:42
Печать  
ПЕРВЫЙ ПАРАМЕТР ВО ВСЕХ СОБЫТИЯХ  - ТАБЛИЧНОЕПОЛЕ!!!

В ДОКЕ ЭТО НАПИСАНО! В ЭТОЙ ВЕТКЕ ОБСУЖДАЛОСЬ!

Со сжатыми губами


Цитата:
ВАЖНО:
События, генерируемые табличным полем, вызываются в модуле формы в виде процедур поименованных следующим образом:
<ИдентификаторТабличногоПоля><ИмяСобытия>(Параметры…)
Кроме описанных ниже параметров, данные события ВСЕГДА первым параметром передают элемент управления «ТабличноеПоле» которым сгенерировано данное событие. Т.о. если в событии (например) Выбор указаны параметры: «ТекущаяСтрока, ТекущаяКолонка» и пр. То в методе параметры будут следующие: ИдентификаторТПВыбор(ЭлементУправления, ТекущаяСтрока, ТекущаяКолонка ….).

  
Наверх
wwwICQ  
IP записан
 
PoVad
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 13. Августа 2010
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1088 - 13. Августа 2010 :: 08:52
Печать  
Anatol писал(а) 13. Августа 2010 :: 08:42:
ПЕРВЫЙ ПАРАМЕТР ВО ВСЕХ СОБЫТИЯХ  - ТАБЛИЧНОЕПОЛЕ!!!
Со сжатыми губами

Спасибо, будем знать. Доку просмотрел всю, но только сейчас обратил на это внимание. Чай не пара страниц. Улыбка
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1089 - 13. Августа 2010 :: 09:00
Печать  
Таки, наверное, стоит в описания самих событий этот параметр вставить. Сколько еще народу по этим граблям ходить будет? Почти все докой пользуются в "справочном режиме", там где что-то не получилось "в лоб". Сам читал все по-порядку, но к тому моменту, когда понадобилось воткнуть первый обработчик, тоже уже успел забыть про этот прикол  Подмигивание.
  
Наверх
GTalkICQ  
IP записан
 
PoVad
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 13. Августа 2010
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1090 - 13. Августа 2010 :: 09:14
Печать  
Так оно и есть. Никуда ведь от этого не денешься. Стереотип-то срабатывает. Работаешь вплотную только с тем что в данный момент  интересует, хотя и просматриваешь все,  ну так, "шоб було". Смотришь описание, считаешь по пальчикам параметры - вроде бы все сходится, а тут, оказывается, военная хитрость.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1091 - 13. Августа 2010 :: 09:32
Печать  
Если реализацию этого события сделаете в классе-наследнике, то будет 2 параметра, если же в обработке - то три
  
Наверх
ICQ  
IP записан
 
Jarad
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 35
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1092 - 13. Августа 2010 :: 09:56
Печать  
Я кажется понял, я под классом ПрямойЗапрос понимал ПоставщикДанных.ПрямойзЗапрос, и просто "ПрямойЗапрос" из соседней ветки как бы и не юзал, думаю что они одинаковые.
Извиняюсь)
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1093 - 13. Августа 2010 :: 10:50
Печать  
Kalen писал(а) 13. Августа 2010 :: 08:14:
Прошу принять мелкую доводку формы отбора ПоставщикДанных.ОтборДанных.ert
1. Признак использования включается сам при выборе значения
2. "Флажочные" значения переключаются Enter'ом
3. При переключении вида отбора с "несписочного" на "списочный", текущее значение включается в список. Если наоборот, то первое значение списка становится Значением. При этом фиксится баг невозможности выбора значения после такого перехода.



http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/915#924

+ по кнопке КП
стоит отбор, кнопка отбора вдавлина, открываем отбор, нажимаем кнопку "закрыть". кнопка отбора "отжимается" (показывает что отбор выключен.)
  
Наверх
wwwICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1094 - 13. Августа 2010 :: 13:43
Печать  
Обана... в ЖурналРегистрации-то ничего не пишется! Может для кого-то это мелочи, для меня - нет.  Злой
Прошу принять мои правки ПоставщикДанных.Журнал.ert (все изменения кода помечены). Не знаю только как правильно эмулировать события типа "общие", поэтому смена ТА через журнал остается незарегистрированной Печаль. Если кто знает как - очень прошу сообщить (Grbgs не предлагать Подмигивание).
Остальные расширения пока не трогал. Ждем, что скажет Александр.

ЗЫ Да... там же я предлагаю поменять УстановитьТАна на УстановитьТАпо, ибо именно так поступает сама 7-ка по действию "Установить ТА на документ".
  

_______________________003.ert ( 47 KB | Загрузки )
Наверх
GTalkICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 71 72 [73] 74 75 ... 79
ОтправитьПечать