Переключение на Главную Страницу Страницы: [1] 2 3 ... 42 ОтправитьПечать
Очень популярная тема (более 25 ответов) Консоль и расширения запросов 1С++ v2.04 (число прочтений - 347949 )
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Консоль и расширения запросов 1С++ v2.04
26. Октября 2007 :: 10:21
Печать  
ВК. Возможности:
  • консоль запросов;
  • конструктор запросов (только для SQL);
  • Office Web Components (сводные таблицы, электронные таблицы, диаграммы);
  • расширения прямых запросов (TOTALS ... BY ...);
  • OLAP (построение локальных кубов);
  • etc.

Развитие темы http://www.1cpp.ru/forum/YaBB.pl?num=1191511579.

Требования: OWC11 + апдейты из #320.

Описание: внутри.

Пример. Ещё пример.


« Последняя редакция: 01. Августа 2011 :: 20:31 - berezdetsky »  

qryConsole_003.zip ( 1928 KB | Загрузки )

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: Консоль запросов 1С++ β
Ответ #1 - 26. Октября 2007 :: 23:37
Печать  
Установил, сделал:
Перем Консоль экспорт:
...
ЗагрузитьВнешнююКомпоненту("qryConsole.dll");
Консоль = СоздатьОбъект("AddIn.qryConsole");
Консоль.ОткрытьФорму();

Получил:
qryConsole : Error # 91 : Object variable or With block variable not set
Консоль.ОткрытьФорму();
{Глобальный модуль(17280)}: Ошибка при выполнении метода объекта компоненты C:\Program Files\1Cv77\BIN\qryConsole.dll
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ β2
Ответ #2 - 01. Ноября 2007 :: 13:14
Печать  
Цитата:
qryConsole : Error # 91 : Object variable or With block variable not set

Добавил в процедуру инициализации диагностику наличия требуемых компонент.

Для SQL-ных баз - добавлены методы, позволяющие использовать конструктор запросов, создавать локальные кубы и печатать сводные таблицы в своих обработках.

Файл примера удалён.
« Последняя редакция: 10. Декабря 2007 :: 22:13 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #3 - 16. Ноября 2007 :: 11:59
Печать  
Новости:
- возможность печати сводной таблицы без экселя (PivotTable выводится в обычную таблицу 1С);
- для инструкции SELECT доопределена секция TOTALS. Результат выполнения - локальный куб. Возможно построение иерархии по справочникам и периодам. Секция может быть построена конструктором или написана вручную.
- наружу выставлен функционал, позволяющий строить локальные кубы для использования в сводных таблицах в объекте ActiveX;
- устранены вылеты при выходе.

Подробное описание - инсайд.

Если кому нужен функционал, облегчающий использование OWC11.PivotTable в своих обработках - пишите.

Обработка, показанная на скриншоте - постом выше.
  

6.PNG ( 44 KB | Загрузки )
6.PNG

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #4 - 16. Ноября 2007 :: 12:40
Печать  
Что-то qryConsole.dll вообще не загружается.
ЗагрузитьВнешнююКомпоненту возвращает 0
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #5 - 16. Ноября 2007 :: 12:45
Печать  
Я понимаю, конечно, что ДБФ - не в моде, но может быть можно как-нить типизацию прикрутить? А то вот так вот получается:
  

qry-type1.jpg ( 49 KB | Загрузки )
qry-type1.jpg
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #6 - 16. Ноября 2007 :: 12:47
Печать  
И ещё вопрос: где/как хранятся текущий построенный куб?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #7 - 16. Ноября 2007 :: 12:50
Печать  
vip писал(а) 16. Ноября 2007 :: 12:40:
Что-то qryConsole.dll вообще не загружается.
ЗагрузитьВнешнююКомпоненту возвращает 0

Я запустил сетуп и сделал обработку со след. кодом:
Код
Выбрать все
Перем Консоль;
//*******************************************
Процедура Сформировать()
	Каталог=?(Прав(КаталогИБ(), 1)= "\", Лев(КаталогИБ(), СтрДлина(КаталогИБ())-1), КаталогИБ());
	СтрокаСоединения="Provider=VFPOLEDB.1;Deleted=Yes;Data Source="+Каталог+";Mode=ReadWrite;Extended Properties="";User ID="";Password="";Mask Password=False;Collating Sequence=Machine;DSN=""";;

	ЗагрузитьВнешнююКомпоненту("qryConsole.dll");
	Консоль = СоздатьОбъект("AddIn.qryConsole");
	Консоль.СтрокаПодключения = СтрокаСоединения;
	Консоль.ОткрытьФорму();
КонецПроцедуры
 


И всё нормально пашет. Ну тебе скорее всего строчка "Консоль.СтрокаПодключения = СтрокаСоединения;" не понадобится (грустно вздыхаю...)
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #8 - 16. Ноября 2007 :: 12:54
Печать  
Извиняюсь. Заработало.
Видно, описАлся.
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #9 - 16. Ноября 2007 :: 13:05
Печать  
JohnyDeath писал(а) 16. Ноября 2007 :: 12:47:
И ещё вопрос: где/как хранятся текущий построенный куб?

Для окна консоли он хранится во временной папке и удаляется при выходе. При использовании метода СоздатьКуб он возвращает путь к кубу. Также путь можно передать во втором параметре метода. Пример:
Код
Выбрать все
Сводная.Объект.ConnectionString = "Provider=MSOLAP;Location=" + Консоль.СоздатьКуб(ТекстЗапроса);
Сводная.Объект.DataMember = "qryConsole"; 




  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #10 - 16. Ноября 2007 :: 13:09
Печать  
JohnyDeath писал(а) 16. Ноября 2007 :: 12:45:
Я понимаю, конечно, что ДБФ - не в моде, но может быть можно как-нить типизацию прикрутить?

Там не полноценная типизация - только в кубах и только получение представлений для справочников определённого вида.
Я не умею писать запросы для ДБФ. Напиши мне их несколько в личку, посмотрю, что можно сделать.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #11 - 16. Ноября 2007 :: 13:11
Печать  
Так. Теперь после завершения работы 1С остается висеть в памяти.
В обработке вызываю только Консоль.ОткрытьФорму()
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #12 - 16. Ноября 2007 :: 13:18
Печать  
vip писал(а) 16. Ноября 2007 :: 13:11:
Так. Теперь после завершения работы 1С остается висеть в памяти.
В обработке вызываю только Консоль.ОткрытьФорму()

Если ЗагрузитьВнешнююКомпоненту вызывается в глобальнике, то 1С нормально выгружается после завершения работы, а если в обработке, то нет.

Нет. Нормально выгружается 1С, если не создавать объект Addin.qryConsole.
Если создать, остается висеть в памяти.
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #13 - 16. Ноября 2007 :: 13:19
Печать  
berezdetsky писал(а) 16. Ноября 2007 :: 13:09:
JohnyDeath писал(а) 16. Ноября 2007 :: 12:45:
Я понимаю, конечно, что ДБФ - не в моде, но может быть можно как-нить типизацию прикрутить?

Там не полноценная типизация - только в кубах и только получение представлений для справочников определённого вида.
Я не умею писать запросы для ДБФ. Напиши мне их несколько в личку, посмотрю, что можно сделать.

Вот кратко отличия ДБФ отSQL, найденные мной (если чего забыл дополните пожалуйста):
1) надо обязательно ставить as в секции SELECT;
2) ес-но, не поддерживаются виртуальные таблицы типа "$РегистрОстаткиОбороты"...;
3) всякий там with rollup отсутствует;
4) (NOLOCK) не признаёт;
5) В журнале документов вместо поля "DATE_TIME_IDDOC" есть два: "DATE", "TIME" и дата хранится несколько в другом формате, т.е. надо всегда ставить два знака ~~ (например, :НачДата~~)
пока ничего больше вспомнить не могу. В общем - почти близнецы!  Улыбка
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #14 - 16. Ноября 2007 :: 13:37
Печать  
А возможно сделать какую-нибудь light-версию для пользователей, чтоб показывалась только ТаблицаЕхель\СводнаяТаблица\СводнаяДиаграмма?
Ну, например, вызываю метод
Код
Выбрать все
Консоль.СоздатьИПоказатьКуб(ТекстЗапроса) 

и пользователю вылазиет окно с этими тремя закладками (т.е. то, что у тебя сейчас справа-снизу).
Или вообще, показывать её как АктивИкс, т.е. чтоб можно было прикрутить к АтрибутуФормы. Например так:
Код
Выбрать все
Консоль.СоздатьИПоказатьКубНаФорме(ТекстЗапроса, АтрибутФормы [,Форма]) 

?
Очень довольный
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 42
ОтправитьПечать