Переключение на Главную Страницу Страницы: 1 ... 70 71 [72] 73 74 ... 81 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения. Часть 2. (число прочтений - 415268 )
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1065 - 04. Апреля 2014 :: 15:47
Печать  
Да, черным запросом, чтобы всяческие отборы не работали над итоговой ИТЗ, а шуршали в запросе.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1066 - 04. Апреля 2014 :: 20:17
Печать  
Посмотрел "ПоставщикДанных.Справочник"
1. В Процедуре ДобавитьКолонкуДанных жестко устанавливается
Код
Выбрать все
	ВложеннаяСтруктура.Сортировка = 0; 


2. В событии ПриВыбореЗаголовка есть этот код:
Код
Выбрать все
	Если ВложеннаяСтруктура.Сортировка = 0 Тогда
		Возврат; 


в результате сортировка по таким полям становится невозможной.

В качестве временного решения "для_себя" можно подправить процедуру 1, чтобы если имя колонки начинается, например, на "_сорт", то Сортировка выставлять в 1.
Примерно так:
Код
Выбрать все
	Если Лев(ИдентификаторРеквизита,5)="_сорт" Тогда
		ВложеннаяСтруктура.Сортировка = 1;
	Иначе
		ВложеннаяСтруктура.Сортировка = 0;
	КонецЕсли; 



И добавлять колонку для сортировки как
Код
Выбрать все
менование","Строка",15,,1); 

  
Наверх
ICQ  
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1067 - 04. Апреля 2014 :: 21:04
Печать  
Ух ты спасибо большое!!!
Будем пробовать
  
Наверх
 
IP записан
 
badaboom
YaBB Newbies
*
Отсутствует



Сообщений: 2
Зарегистрирован: 27. Августа 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1068 - 07. Апреля 2014 :: 07:18
Печать  
Вопрос:
Возможно ли в объекте «ПоставщикДанных.КоманднаяПанель»

В кнопке с типом "вложеное меню" добавить кноку так же с типом "Вложеное меню", чтобы получить еще подменю.
У меня сходу не получилось.

Спасибо.
  
Наверх
ICQ  
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1069 - 17. Апреля 2014 :: 07:22
Печать  
ПоставщикДанных.ДвиженияДокумента валит 1С с ошибкой
Цитата:
[Microsoft][SQL Server Native Client 10.0] Подключение занято до получения результатов другой команды

  

ErrorSQL2.PNG ( 26 KB | Загрузки )
ErrorSQL2.PNG
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1070 - 17. Апреля 2014 :: 07:38
Печать  
leov-001 писал(а) 17. Апреля 2014 :: 07:22:
ПоставщикДанных.ДвиженияДокумента валит 1С с ошибкой
Цитата:
[Microsoft][SQL Server Native Client 10.0] Подключение занято до получения результатов другой команды


  

ErrorSQL1.PNG ( 16 KB | Загрузки )
ErrorSQL1.PNG
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1071 - 17. Апреля 2014 :: 08:51
Печать  
Пардон, сам виноват. В документе расходная накладная есть реквизит ВидДвижения
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1072 - 24. Апреля 2014 :: 11:16
Печать  
Salimbek писал(а) 04. Апреля 2014 :: 20:17:
Посмотрел "ПоставщикДанных.Справочник"
1. В Процедуре ДобавитьКолонкуДанных жестко устанавливается
Код
Выбрать все
	ВложеннаяСтруктура.Сортировка = 0; 


2. В событии ПриВыбореЗаголовка есть этот код:
Код
Выбрать все
	Если ВложеннаяСтруктура.Сортировка = 0 Тогда
		Возврат; 


в результате сортировка по таким полям становится невозможной.

В качестве временного решения "для_себя" можно подправить процедуру 1, чтобы если имя колонки начинается, например, на "_сорт", то Сортировка выставлять в 1.
Примерно так:
Код
Выбрать все
	Если Лев(ИдентификаторРеквизита,5)="_сорт" Тогда
		ВложеннаяСтруктура.Сортировка = 1;
	Иначе
		ВложеннаяСтруктура.Сортировка = 0;
	КонецЕсли; 



И добавлять колонку для сортировки как
Код
Выбрать все
менование","Строка",15,,1); 


После некоторого тестирования получилось следующее:
Когда сортировку включаешь в ПД.Справочник через "_сорт", то далее поле искалось у текущего справочника. И, так как не находило, то все падало с ошибкой.
Решение:
В функции "ПолучитьСтрокуУпорядочивания" вместо
Код
Выбрать все
		ИначеЕсли ПустоеЗначение(ВрегРеквизитСортировки) = 1 Тогда
			Если ИерархическийПросмотр = 1 Тогда
				СтрокаПорядка = "ТекущийОбъект.idx_"+Лев(ДобавлениеКИндексу,СтрДлина(ДобавлениеКИндексу)-1);
			Иначе
				СтрокаПорядка = "ТекущийОбъект.idx_ID";
			КонецЕсли;
		Иначе
			ПолеКодаНаименования = "";
...
 


пишем
Код
Выбрать все
		ИначеЕсли ПустоеЗначение(ВрегРеквизитСортировки) = 1 Тогда
			Если ИерархическийПросмотр = 1 Тогда
				СтрокаПорядка = "ТекущийОбъект.idx_"+Лев(ДобавлениеКИндексу,СтрДлина(ДобавлениеКИндексу)-1);
			Иначе
				СтрокаПорядка = "ТекущийОбъект.idx_ID";
			КонецЕсли;
		ИначеЕсли Лев(ВрегРеквизитСортировки,5)="_СОРТ" Тогда
			СтрокаПорядка = СтруктураДанных.Получить(ВрегРеквизитСортировки).РеквизитЗапроса;
		Иначе
			ПолеКодаНаименования = "";
 



Если используется SQL-сервер, то добавляем подсвеченные строчки и в ветку "Если ЭтоSQL = 1"
  
Наверх
ICQ  
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1073 - 26. Апреля 2014 :: 18:46
Печать  
у кого есть работающая версия Поставщика , с отборами по "Отбор по значению в текущей колонке", созданные  ПДДанные.ДобавитьКолонкуДанных( 

P.S.
Ошибка где то в классе Объектv8.Отбор
Функция ПолучитьТекстЗапроса(
После прохода Группы "Преопределенные", все остальные элементы отбора получают значение:
ЭлементОтбора.Использование = 0
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1074 - 26. Апреля 2014 :: 19:06
Печать  
Напиши, если можно, подробнее. Я смотрел сортировку "встроенную", т.е. по нажатию на заголовок и что там далее по цепочке вызывалось. Возможно на какой-то другой блок кода внимания не обратил. Напиши - при вызове какого события этого Поставщика падает - попробую смоделировать и, если что, исправить.
  
Наверх
ICQ  
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1075 - 26. Апреля 2014 :: 19:46
Печать  
В версии Поставщика 4.1.1 все работает
В последней не работает
Часть модуля :{
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "Документ.РасходнаяНакладная";
ПоставщикДанных.КонтейнерТабличногоПоля = "ДокументыСписокДокументСчет";
ПоставщикДанных.КонтейнерКоманднойПанели = "ИДКоманднаяПанель";
     
Данные = ПоставщикДанных.Данные;
ТекстСоединения="
     |left join Справочник.Контрагенты as $СпрКонтр
     |     on $ШапкаДокумента.Контрагент = $СпрКонтр.id  
     |";
Данные.ДобавитьСоединениеДанных("ДопПоля",ТекстСоединения);

ник.Сотрудники",,,1);

Данные.НоваяКолонка("Контрагент");
Данные.НоваяКолонка("Менеджер");
}

Отбор по Колонке "Контрагент" производится всегда (Реквизит документа расходная накладная)
Отбор по колонке "Менеджер " произвести не удается.(реквизит справочника контрагенты)

разбор полетов показал , что "отбор по значению в текущей колонке" в поставщике не работает в связи с тем что
У " Менеджера" значение "ПолеНастройки.ПолеЗапроса " - пустое,
подскажите где копать-?
« Последняя редакция: 27. Апреля 2014 :: 12:04 - PitKZL »  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1076 - 28. Апреля 2014 :: 04:19
Печать  
По поводу ошибки с тем что отбор по добавленным колонкам не работает ко мне уже обратились. Ошибку исправил, но еще не до конца протестировал + нашел по мелочи всякие ошибочки. Постараюсь выложить в ближайшее время.
Так же постараюсь добавить сквозную сортировку по дереву значений.

По поводу сортировки по произвольным полям, тут я не хочу ничего говорить. Изначально хотелось добавить такую возможность, но помню что отказался от этой идеи. Были сложности в реализации, но главная проблема - скорость работы. Отсутствие индексов по данным полям вполне возможно что приведет к не оптимальному плану запроса и как следствие скажется на времени отклика на действия пользователей.
  

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



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1077 - 28. Апреля 2014 :: 04:43
Печать  
vandalsvq писал(а) 28. Апреля 2014 :: 04:19:
По поводу ошибки с тем что отбор по добавленным колонкам не работает ко мне уже обратились. Ошибку исправил, но еще не до конца протестировал + нашел по мелочи всякие ошибочки. Постараюсь выложить в ближайшее время.
Так же постараюсь добавить сквозную сортировку по дереву значений.

По поводу сортировки по произвольным полям, тут я не хочу ничего говорить. Изначально хотелось добавить такую возможность, но помню что отказался от этой идеи. Были сложности в реализации, но главная проблема - скорость работы. Отсутствие индексов по данным полям вполне возможно что приведет к не оптимальному плану запроса и как следствие скажется на времени отклика на действия пользователей.

Глядя на код я примерно так и понял.
Чтобы быстро работало, надо: 1. Соединяемое поле основного справочника должно быть проиндексировано и 2. Должен быть индекс по полю, по которому будем сортировать. Проверить же 1-й пункт программно - не простая задача, т.к. для этого надо выделить соединяемые поля и проверить на вхождение в один индекс.
С другой стороны - если разработчикам очень хочется, то почему бы и не дать им такой инструмент? Можно просто описать рекомендации по оптимальному использованию в документации.
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1078 - 28. Апреля 2014 :: 04:49
Печать  
Кстати, можно же добавлять признак сортировки и на основное поле справочника, как сейчас сделано у тебя с проверкой на наличие признака "Сортировка" в метаданных. Это раскроет нам п.1. Только при активизации соответствующей сортировки не устанавливать сортировку по этом полю (как сделано сейчас), а делать "скрытый" JOIN с соответствующим справочником и установкой сортировки по "Представлению"(только надо добавить проверку, вдруг поле descr отсутствует)
  
Наверх
ICQ  
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1079 - 13. Мая 2014 :: 06:56
Печать  
Все и затихло?Когда ожидать исправления?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 70 71 [72] 73 74 ... 81
ОтправитьПечать