Переключение на Главную Страницу Страницы: 1 ... 34 35 [36] 37 38 ... 81 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения. Часть 2. (число прочтений - 376828 )
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #525 - 13. Декабря 2011 :: 14:08
Печать  
vandalsvq писал(а) 10. Декабря 2011 :: 09:12:
Интересно сколько пользователей класса осталось?
...

Я хот и не юзаю ПоставщикДанных, но много кода стырил  Смех
А класс ПрямойЗапрос буду использовать, что бы не возится с переделкой под 1sqlite.
Саша, а ты на Инфостаре тоже сделай голосовалку, ведь достаточно людей сюда не заходят, хотя используют твои классы.
  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #526 - 13. Декабря 2011 :: 21:25
Печать  
vandalsvq писал(а) 10. Декабря 2011 :: 09:12:
Интересно сколько пользователей класса осталось?

Я было подумал сделать последний подарок и переработать класс и добавить некоторые вкусности (+ переработать класс прямой запрос)... буду хоть знать кого спрашивать


Используем и будем использовать ещё долго. Особенно класс "Прямой запрос". Готов помочь с анализом и оптимизацией существующего кода классов.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #527 - 15. Декабря 2011 :: 07:06
Печать  
Использую частично, не все классы. Переделал немного под свои нужды. Пришлось переделать класс Сервис, выделить подкласс для картинок, чтобы они грузились сразу при старте системы и один раз, потому что было замечено, если пользователи открывают много журналов, то наступал момент когда картинки уже не загружались а выдавалось сообщение о невозможности загрузки картинки. А так разработка очень полезна.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #528 - 15. Декабря 2011 :: 08:46
Печать  
pvase, готов рассмотреть любые предложения для включения в систему Подмигивание
  

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


1C++ rocks!

Сообщений: 2
Зарегистрирован: 15. Декабря 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #529 - 15. Декабря 2011 :: 11:10
Печать  
Помогите! плиз.
Сделал таблицу для справочника подтянул все реквизиты, но у меня цены в подчиненном справочнике. Как добавить колонку я уже понял но как сделать так чтобы в эту колонку отображались данные из функции, которая у меня есть

Что то вроде      
 
ДанныеЖурнал.Колонки.Добавить(Идентификатор).Данные="глПолучитьЦенуПоБлюду(ТабличноеПоле.ТекущаяСтрока,Подразделение,ДатаК,""Цена"")";

те чтобы данные брались не из справочника а из указанной моно функции в мою колонку
  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #530 - 15. Декабря 2011 :: 16:07
Печать  
vandalsvq писал(а) 15. Декабря 2011 :: 08:46:
pvase, готов рассмотреть любые предложения для включения в систему Подмигивание


Было бы не плохо добавить возможность управлять режимом сохранения текущих настроек колонок ТП, добавив в ПоставщикДанных.ТабличноеПоле.ert соответствующий флаг:

Перем АвтоСохранениеНастроекКолонок Экспорт; // 1/0 - сохранять/не сохранять текущие настройки колонок ТП

Добавить проверку этого флага при выполнении процедур:

СоздатьТабличноеПоле()
     Если АвтоСохранениеНастроекКолонок=1 Тогда
           я().ВосстановитьПозициюКолонок();
     КонецЕсли;

ПриУничтожении()
     Если АвтоСохранениеНастроекКолонок=1 Тогда
           я().СохранитьПозициюКолонок();
     КонецЕсли;

  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #531 - 15. Декабря 2011 :: 16:21
Печать  
vandalsvq писал(а) 15. Декабря 2011 :: 08:46:
pvase, готов рассмотреть любые предложения для включения в систему Подмигивание


Еще можно внести изменение в ПоставщикДанных.КоманднаяПанель.ert, что бы при отсутствии Microsoft Office можно было пользоваться данным классом, естественно без использования функционала командной панели.

ПоставщикДанных.КоманднаяПанель.ert
Процедура УстановитьНаборПиктограмм
     Попытка
           КартинкиПанелиУправления = СоздатьОбъект("MSComctlLib.ImageListCtrl");
     Исключение
           Возврат;
     КонецПопытки;

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #532 - 15. Декабря 2011 :: 21:41
Печать  
Igor Nikolaenko, по автосохранению принято, по поводу командной панели не обещаю, подумаю, но что родится не знаю Улыбка
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #533 - 17. Декабря 2011 :: 22:25
Печать  
Тут обновил статус подготовки обновления... пока не поздно высказывайте пожелания
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #534 - 17. Декабря 2011 :: 23:16
Печать  
И еще одна фишка, которую я собственно хотел анонсировать.
Суть "фишки" - это сочетание использования прямого запроса и поставщика данных "Отбор" чтобы сделать возможность отбора данных в отчетах.
Например: у вас есть отчет. Предположим он собирается следующим запросом:
Код
Выбрать все
ВЫБРАТЬ Код, Наименование, ПометкаУдаления ИЗ Справочник.Контрагенты 


И вы хотите сделать возможность пользователю отбора по полям "Наименование" и "Пометка удаления".
Ранее был добавлена возможность отображать в ТП объект "Объектыv8.Отбор". Что собственно позволяло делать таблицу элементов отбора для размещения на форме. Собственно рассмотрим код для добавления ТП и размещения полей отбора.
Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "Отбор";
ПоставщикДанных.КонтейнерКоманднойПанели = "ИДКоманднаяПанель";
ПоставщикДанных.КонтейнерТабличногоПоля = "ОтборСписок";

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

Данные = ПоставщикДанных.Данные;

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

ПолеНастройкиНаименование =
ПолеНастройкиНаименование.Родитель = "Справочник.Контрагенты";
ПолеНастройкиНаименование.ПутьКДанным = "Наименование";

ПолеНастройкиПометкаУдаления = ДобавитьПолеНастройки(ПоляНастройки,"ПометкаУдаления","Пометка удаления","Число.1.0");
ПолеНастройкиПометкаУдаления.Родитель = "Справочник.Контрагенты";
ПолеНастройкиПометкаУдаления.ПутьКДанным = "ПометкаУдаления";

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

Отбор.Добавить("Наименование");
Отбор.Добавить("ПометкаУдаления");

Данные.СоздатьКнопкиПоУмолчанию();

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


В итоге пользователь видит табличную часть с полями "Наименование" и "Пометка удаления".
В результате он выбирает какие то настройки и хочет сформировать отчет. На текущий момент чтобы модифицировать запрос необходимо "вручную" проанализировать элементы отбора. Собственно со следующего релиза, будет добавлена возможность получать значение отбора в виде запроса, кроме того с подставлением параметров в объект "ПрямойЗапрос".
Выглядеть это будет так:
Код
Выбрать все
Отбор.Наименование.Установить("Рога и копыта", 1); // отбор по контрагенту "Рога и копыта"
ТекстОтбора = Отбор.Наименование.ПолучитьТекстОтбора(Запрос);
ТекстОтбора = СтрЗаменить(ТекстОтбора, "[ОсновнаяТаблица]", "");
Запрос.Текст = Запрос.Текст + " ГДЕ " + ТекстОтбора; 



В результате текст запроса будет
Код
Выбрать все
ВЫБРАТЬ Код, Наименование, ПометкаУдаления ИЗ Справочник.Контрагенты ГДЕ descr = 'Рога и копыта' 

.

Собственно я понимаю что чтобы запросы работали эффективно надо вставлять не так примитивно как я это сделал, но собственно говоря полдела как я считаю уже положено.

Надо сказать что до конца с синтаксисом я не определился. Варианта 3 пока я вижу:
1. Научить класс "ПрямойЗапрос" работать с объектом "Отбор". Считывать элементы, устанавливать параметры, возвращать текст запроса.
2. Научить класс "ПрямойЗапрос" формировать текст запроса (с одновременной установкой параметров)
3. Научить класс "ЭлементОтбора" формировать текст запроса (с установкой параметров если ему передан класс "ПрямойЗапрос")

Ну как то так. Обсуждаем?
  

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


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #535 - 20. Декабря 2011 :: 14:26
Печать  
Цитата:
1. Научить класс "ПрямойЗапрос" работать с объектом "Отбор". Считывать элементы, устанавливать параметры, возвращать текст запроса.
2. Научить класс "ПрямойЗапрос" формировать текст запроса (с одновременной установкой параметров)
3. Научить класс "ЭлементОтбора" формировать текст запроса (с установкой параметров если ему передан класс "ПрямойЗапрос")

Можно уточнить, что подразумевается под вторым вариантом?
Мне кажется в 3-м случае будет сложнее оптимизировать запрос.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #536 - 20. Декабря 2011 :: 14:39
Печать  
vandalsvq писал(а) 12. Декабря 2011 :: 13:25:
Кстати для оптимизации запроса можно использовать момент когда устанавливается отбор, чтобы изменять соединение данных. Я попробую эту идею воплотить, возможно что небольшие изменения будут в классе, но потом будет проще.

Я вообще не знаю, почему никто ничего не говорит про оптимизацию соединений. Имхо, это еще важнее, чем оптимизация полей.
Пробовал реализовать своими силами - фигня получается. Выходит, что это надо реализовывать где-то в провайдере sqlite вместе и по аналогии с оптимизацией полей. Это он ведь ненужные поля удаляет из запроса, а не Поставщик, или я чего-то напутал?

Словом, очень хочется чтобы из запроса удалялись не только неиспользуемые в ТП колонки, но и соединения для них.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #537 - 20. Декабря 2011 :: 14:45
Печать  
По поводу сохранения настроек ТП... что-то у меня они не сохраняются, если сразу закрывать саму 1сь. При закрытии непосредственно формы - все пучком. Раньше, вроде, по-любому сохранялось. ++ 3.2.3.14
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #538 - 20. Декабря 2011 :: 15:00
Печать  
Igor Nikolaenko писал(а) 15. Декабря 2011 :: 16:21:
Еще можно внести изменение в ПоставщикДанных.КоманднаяПанель.ert,...

А мне бы тут хотелось поуправлять позицией размещения кнопок
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #539 - 20. Декабря 2011 :: 15:21
Печать  
В Отборе:
  • Когда тип поля = Число.1.0, в колонке оно выводится как флажок, а в отборе поле ввода. Учитывая неоднозначность может добавить свойство "ИспользоватьФлажок"?
  • тип колонки Число.13.2, а в поле ввода значения отбора не могу ввести больше 9.99
  • повесь ctrl-Enter на ОК
  • При открытии настройки обора автоматом переходить на поле, соответствующее текущей колонке списка
  • Упорядочить список полей отбора по названию поля
  • Добавить возможность интерактивной сортировки списка полей отбора по колонке "использование" (поднять те, что включены. не шариться по всему списку)
  
Наверх
GTalkICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 34 35 [36] 37 38 ... 81
ОтправитьПечать