Переключение на Главную Страницу Страницы: 1 ... 41 42 [43] 44 45 ... 81 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения. Часть 2. (число прочтений - 399443 )
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #630 - 01. Марта 2012 :: 19:05
Печать  
Да ТП ждет пока ты не наберешь какой-то символ далее. В принципе логично. Потому как штатный лично мне никак не нравится. Набрал ошибку, а он ищет. Ну нахрена спрашивается? Ресурсы лишние и сервер рад новому запросу? Улыбка)))) В общем мне нравится, достаточно привыкнуть.

Картинки делать не очень хочется, их там иначе много надо вставить + прозрачность проверить... пунктов меню то типовых немало. В общем не скоро. Или вообще никогда Печаль

Все остальное как руки дойдут (ошибки и неточности).
К сожалению исходя из количества необходимого кода по моим текущим работам на 8.2 я предполагаю что меня можно дождаться где-то к.... не знаю Улыбка
  

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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #631 - 01. Марта 2012 :: 19:13
Печать  
alyuev писал(а) 01. Марта 2012 :: 15:55:
...
Где-то какая-то задержка стоит у ТП?

У ТП есть свойство  -  ТаймаутОбновления
Установи его например в 100 миллисекунд.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #632 - 01. Марта 2012 :: 21:13
Печать  
zk96 писал(а) 01. Марта 2012 :: 19:13:
alyuev писал(а) 01. Марта 2012 :: 15:55:
...
Где-то какая-то задержка стоит у ТП?

У ТП есть свойство  -  ТаймаутОбновления
Установи его например в 100 миллисекунд.

Правильнее смотреть на "ТаймаутБыстрогоПоиска" http://www.1cpp.ru/docum/icpp/html/TableField.html#quicksearchtimeout
  
Наверх
ICQ  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #633 - 01. Марта 2012 :: 21:28
Печать  
"ТаймаутБыстрогоПоиска" - О! Вот это, наверное, то, что я искал! Завтра буду пробовать...
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #634 - 02. Марта 2012 :: 05:28
Печать  
Подскажите пожалуйста как правильно реализовать:
ТП для журнала документов
необходимо отключить АвтоКонтекстноеМеню
(тут вроде понятно ПоставщикДанных.Данные.АвтоКонтекстноеМеню = 0)
А вот дальше нужно через свой список добавить возможность установки периода, фильтров.
делаю
Код
Выбрать все
Сервис = СоздатьОбъект("ПоставщикДанных.Сервис");
Рез = Сервис.ВыбратьЗначение(СзМеню);
Если Рез = 1 Тогда
    Сервис.ВыполнитьНастройкуОтбора();
КонецЕсли; 


И получаю ошибку:
Количество = Отбор.Количество()-1;
9)}: Значение не представляет агрегатный объект (Количество)

Версия класса: Версия = "4.1.4 20.05.2011";

То есть вопрос - как правильно использовать ПоставщикДанных.Сервис и можно ли самому добавлять пункты в АвтоКонтекстноеМеню
  
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #635 - 02. Марта 2012 :: 05:52
Печать  
Отвечу сам себе -
Цитата:
ПриФормированииКонтекстногоМеню

Вот этим событием попробую пользоваться.
  
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #636 - 02. Марта 2012 :: 09:24
Печать  
Да. ТаймаутБыстрогоПоиска - это то, что нужно! Спасибо!

А вот с Отбором - пока странности. Не отрабатывает функция ПослеСозданияФормы() в классе ПоставщикДанных.НастройкаОтбора. Точнее не всегда отрабатывает. Вот и не инициализируется ТП. С чего бы это? Formex разный пробовал - сначала 93, потом 104 - без разницы.

Сейчас, пока делал вызов Сообщить во всех методах, чтобы отследить последовательность вызовов - вообще перестала вызываться ПослеСозданияФормы().
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #637 - 02. Марта 2012 :: 10:46
Печать  
Подозреваю что просто неправильно написано имя функции
  
Наверх
wwwICQ  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #638 - 02. Марта 2012 :: 11:24
Печать  
Это как? Улыбка Она ж, то работает, то нет... Какой-то плавающий глюк...
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #639 - 02. Марта 2012 :: 11:58
Печать  
Похоже, что фигня с Отбором из-за модального вызова окна класса НастройкаОтбора. Вызов идет из класса ПоставщикДанных.Сервис в функции ОткрытьФормуНастройки(). Я там попробовал открыть через ОткрытьФорму() - всё ок. Но, конечно, алгоритм ломается. А ТП отрисовывается нормально.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #640 - 02. Марта 2012 :: 11:59
Печать  
Т.е. в модальном окне, по всей видимости, какие-то непонятки с вызовом ПослеСозданияФормы() и пр. аналогичных функций.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #641 - 02. Марта 2012 :: 12:17
Печать  
Ха.... еще одну зависимость отловил. Если Отбор вызывать по кнопке из КоманднойПанели - всё ок! А из контекстного меню - глюк.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #642 - 02. Марта 2012 :: 12:58
Печать  
А как происходит обработка события нажатия кнопки КоманднойПанели?

Вызывается  ПоставщикДанных.КоманднаяПанель ButtonClick() при этом в переменная ИмяПроцедуры = КоманднаяПанельПриНажатии. А такой процедуры не нашел. Зато потом отрабатывает ПоставщикДанных.Справочник ПриВыбореКоманды(). И если я правильно понимаю, она срабатывает из-за того, что прописана в свойствах кнопки      
Код
Выбрать все
Кнопка = СвойствоКоманднаяПанель.Кнопка("НастроитьОтбор",,,16,"ПриВыбореКоманды",я()); 



Я правильно рассуждаю:  ПриВыбореКоманды вызывается непосредственно из кнопки, а не из ButtonClick()?


  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
newbas
Junior Member
**
Отсутствует



Сообщений: 32
Местоположение: Краснодар
Зарегистрирован: 29. Августа 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #643 - 02. Марта 2012 :: 15:41
Печать  
Пытаюсь разобраться и использовать класс для журнала документов. Вот код:
Код
Выбрать все
	ПоставщикДанных 							= СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений 				= "Журнал.РегистрацияДокументов";
	ПоставщикДанных.КонтейнерТабличногоПоля 	= "ТабличноеПолеМногострочнойЧасти";
	ПоставщикДанных.КонтейнерКоманднойПанели 	= "КоманднаяПанельМногострочнойЧасти";


	ТабличноеПоле 					= ПоставщикДанных.ТабличноеПоле;
	ТабличноеПоле.СтильРамки 		= 1;
	ТабличноеПоле.СтильЗаголовков 	= 1;

	Данные 							= ПоставщикДанных.Данные;
	Данные.СоздатьКнопкиПоУмолчанию();
	Данные.РеквизитСортировки 		= "ВидДокумента";
	Данные.КолонкаПиктограмм 		= "НомерДокумента";
	Данные.РежимВыбора 				= 0;
	Данные.РежимОтладки 			= -1;
	Данные.АвтоОбновление 			= 1;
	Данные.ПериодАвтоОбновления 	= 10;
	Данные.РазрешитьОтборПоГрафам 	= 1;


	//Данные.ДобавитьКолонкуДанных("НачалоГода","Начало года","НачалоПериода($ТекущийОбъект.ДатаДокумента,ГОД)","Дата",,,1);

	Данные.НоваяКолонка("ДатаДокумента");
	//Данные.НоваяКолонка("НачалоГода");
	Данные.НоваяКолонка("НомерДокумента");
	Данные.НоваяКолонка("ВремяДокумента");
	Данные.НоваяКолонка("Контрагент");
	Данные.НоваяКолонка("Фирма");
	Данные.НоваяКолонка("Комментарий");


	Отбор 			= ТабличноеПоле.Отбор;
	ПоляНастройки 	= Отбор.ПолучитьДоступныеПоля();

	ПолеНастройки 				= ка.100");
	ПолеНастройки.Родитель 		= "Журнал.РегистрацияДокументов";
	ПолеНастройки.ПутьКДанным 	= "Контрагент.Наименование";
	ПолеНастройки.Отбор 		= 1;

	Отбор.УстановитьДоступныеПоля(ПоляНастройки);

	ЭлементОтбора 				= Отбор.Добавить("НаименованиеКонтрагента");

	ТабличноеПоле.СтандартныйБыстрыйПоиск = 1;
	ТабличноеПоле.ПозиционныйБыстрыйПоиск = 0;

	ТабличноеПоле.ВосстановитьПозициюКолонок();
	ПоставщикДанных.Обновить();
 


Обработка открывается - все отображается, фильтры работают. Однако при попытке изменить период ТП становится пустым и на нем в хинте висит ошибка (см. скриншот).
База у меня SQL - судя по ошибке зачем-то накладнывается дважды поле позиции документа date_time_iddoc
  

___________001.JPG ( 91 KB | Загрузки )
___________001.JPG
Наверх
 
IP записан
 
mvgfirst
Full Member
***
Отсутствует


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #644 - 03. Марта 2012 :: 04:12
Печать  
Создал форму отчета.
На нее положил ПоставщикДанных - тип значения "Справочник.Номенклатура".
Чуть ниже положил еще один ПоставщикДанных - тип значения "Справочник.КодыПоставщика" (Справочник подчинен справочнику Номенклатура).
В событие "ПриАктивизацииСтроки" - переопределяю владельца у подчиненного Поставщика, таким образом:
Код
Выбрать все
	Данные = ПоставщикКодовПоставщиков.Данные;
	Данные.Владелец = ПоставщикНоменклатуры.ТабличноеПоле.ТекущаяСтрока;

	ПоставщикКодовПоставщиков.Обновить();
	Активизировать("тпНоменклатура");
 


Запустил обработку - стал на первую строку справочника и не отпускаю кнопку пока не "добегу" до конца справочника. Все быстро бегает, причем в подчиненном ТП быстро мелькают подчиненные элементы. Для каждой строки Номенклатуры. И курсов в тпНоменклатура виден на каждой строке...

Добавляю еще один ПоставщикДанных - тип значения "Справочник.Замены" (тоже подчинен справочнику Номенклатура)
В процедуру ПриАктивизации добавляю еще код аналогичный вышенаписанному.

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

Вот теперь вопрос: Это баг? Это фича? Это задумка разработчика - дабы экономить трафик на большом количестве запросов? Почему это работает с одним дочерним поставщиком и почему уже перестает работать на двух.. кто определяет "перегруженность по объему запросов"?

З.Ы. ПРобовал отключать по отдельности каждый из подчиненных Поставщиков - все начинает быстро бегать как в первом описаном случае.... при возврате всех поставщиков в дело, или же при добавлении новых подчиненных Постащиков - поведение идет по второму типу.

З.Ы.Ы. Почему бы не сделать для таких случаем специальный атрибут у Поставщика справочников - например "ПоставщикВладелец" указывая который поставщик авоматически будет менять свой состав в зависимости от смены строки в Поставщике владельце.
Такую вот Master-Detail связь я делал еще в 3-м Delphi... все работало без извратов и тормозов...

  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 41 42 [43] 44 45 ... 81
ОтправитьПечать