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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #15 - 16. Ноября 2007 :: 14:00
Печать  
vip писал(а) 16. Ноября 2007 :: 13:18:
Нет. Нормально выгружается 1С, если не создавать объект Addin.qryConsole.
Если создать, остается висеть в памяти.

Понял, спасибо. Посмотрю.
Под вистой, где идёт основная разработка, почему-то не остаётся..
  

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


barba non facit sisadminum

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

и пользователю вылазиет окно с этими тремя закладками (т.е. то, что у тебя сейчас справа-снизу).

Сделаю.
JohnyDeath писал(а) 16. Ноября 2007 :: 13:37:
Или вообще, показывать её как АктивИкс, т.е. чтоб можно было прикрутить к АтрибутуФормы.

Подумаю.
  

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



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

и пользователю вылазиет окно с этими тремя закладками (т.е. то, что у тебя сейчас справа-снизу).

Сделаю.
JohnyDeath писал(а) 16. Ноября 2007 :: 13:37:
Или вообще, показывать её как АктивИкс, т.е. чтоб можно было прикрутить к АтрибутуФормы.

Подумаю.

Класс Зашибись!
Можно тогда сразу вопрос-пожелание.
Если задаём путь к файлу куба, то что произойдёт, если пользователь ещё раз нажмёт на "СоздатьИПоказатьКуб": предыдущий куб удалятся, а на его месте создается новый? А если пользователь в текущий момент его просматривает? Будет ли освобождаться файл куба?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #18 - 16. Ноября 2007 :: 14:25
Печать  
JohnyDeath писал(а) 16. Ноября 2007 :: 14:13:
Если задаём путь к файлу куба, то что произойдёт, если пользователь ещё раз нажмёт на "СоздатьИПоказатьКуб": предыдущий куб удалятся, а на его месте создается новый? А если пользователь в текущий момент его просматривает? Будет ли освобождаться файл куба?

Логично предположить, что пользователь получит сообщение об ошибке. А какого поведения ожидаешь ты?
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #19 - 16. Ноября 2007 :: 14:31
Печать  
Сам понимаю, что это вроде как логично, но можно было б и такой вариант рассматреть: отключаем все текущие подключения к данному файл-кубу, пересоздаём, подключаем.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #20 - 16. Ноября 2007 :: 14:36
Печать  
JohnyDeath писал(а) 16. Ноября 2007 :: 14:31:
Сам понимаю, что это вроде как логично, но можно было б и такой вариант рассматреть: отключаем все текущие подключения к данному файл-кубу, пересоздаём, подключаем.

Так и сделано в 1CQA. Так можно делать, если полностью контролировать клиента. В противном случает будет вариант: отключаем все текущие подключения к данному файл-кубу, падаем.  Подмигивание
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #21 - 16. Ноября 2007 :: 14:45
Печать  
А как отключаем? Почему падаем?
Я делал несколько небольших отчетов на основе АктивИкса OWC11, единственное, что меня очень напрягало, так это то, что 1С не отпускает файл куба. Ну например создали в обработке куб, повертели его, закрыли обработку, а мне показывают, что файл куба занят 1С! Хотя объект на этот АХ хранился только в этой обработке. Я уж и DataSourse пытался обнулять и чё ток не делал, но так и не поборол этой беды.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #22 - 16. Ноября 2007 :: 14:54
Печать  
JohnyDeath писал(а) 16. Ноября 2007 :: 14:45:
А как отключаем? Почему падаем?

Ну вот отдал тебе я куб методом СоздатьКуб, ты его где-то открыл (возможно, и не в 1С). Что произойдёт с твоим клиентским приложением, если оно потеряет свой файл? Я не знаю..

JohnyDeath писал(а) 16. Ноября 2007 :: 14:45:
Я делал несколько небольших отчетов на основе АктивИкса OWC11, единственное, что меня очень напрягало, так это то, что 1С не отпускает файл куба. Ну например создали в обработке куб, повертели его, закрыли обработку, а мне показывают, что файл куба занят 1С! Хотя объект на этот АХ хранился только в этой обработке. Я уж и DataSourse пытался обнулять и чё ток не делал, но так и не поборол этой беды.

Открой в нём другой куб или заново создай OWC11.PivotTable. Подмигивание
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #23 - 16. Ноября 2007 :: 14:59
Печать  
berezdetsky писал(а) 16. Ноября 2007 :: 14:54:
JohnyDeath писал(а) 16. Ноября 2007 :: 14:45:
А как отключаем? Почему падаем?

Ну вот отдал тебе я куб методом СоздатьКуб, ты его где-то открыл (возможно, и не в 1С). Что произойдёт с твоим клиентским приложением, если оно потеряет свой файл? Я не знаю..

Там будет просто написано, что источник данных потерян.
berezdetsky писал(а) 16. Ноября 2007 :: 14:54:
Открой в нём другой куб или заново создай OWC11.PivotTable. Подмигивание

Да, про открыть другой куб я сам дошёл - но это решение похожее на "черезж..ное", а вот пересоздать OWC11.PivotTable недопер...  Нерешительный
  
Наверх
 
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #24 - 20. Ноября 2007 :: 16:18
Печать  
Есть проблема при попытке построения куба. Выдает следующую ошибку

Переход к строке 1 'SELECT      $Обороты.Агент [Агент $Справочник.Сотрудники],'
qryConsole : ??ror # -2147467259 : OLE DB error: OLE DB or ODBC error: Error processing the dimension 'Line 1: Incorrect syntax near '$'.;42000'..

Причем если зайти в базу данных монопольно, то данной ошибки не выдает. Через профайлер видно, что запрос выполнен и видимо ошибка происходит уже локально при попытке создания куба.

Еще после выхода из 1С остается висеть процесс 1cv7s.exe. Убить можно из Таск манагера.
  
Наверх
 
IP записан
 
Valet
Full Member
***
Отсутствует



Сообщений: 141
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #25 - 22. Ноября 2007 :: 09:34
Печать  
Код
Выбрать все
qryConsole : Экспорт в Microsoft Office Excel
 


вот такую то ошибочку выплевывает при запуске запроса.
Prepare проходит.

В обработке только такой код в процедуре
Код
Выбрать все
	ЗагрузитьВнешнююКомпоненту("qryConsole.dll");
	Консоль = СоздатьОбъект("AddIn.qryConsole");
	Консоль.СтрокаПодключения ="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Base;Data Source=COMP";
	Консоль.ОткрытьФорму();
 


Где я упал?
  

/ Лень - двигатель прогресса. /
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #26 - 22. Ноября 2007 :: 11:06
Печать  
Новости:
  • Метод Отладка - позволяет посмотреть все запросы, выполняемые при СоздатьКуб.
  • Метод ВывестиСводнуюТаблицу - выводит печатную форму сводной таблицы в таблицу 1С.
  • Побеждена проблема из http://www.1cpp.ru/forum/YaBB.pl?num=1164626462/5#5


По поводу зависаний.
Если объект хранится в переменной ГМ, при выходе из 1С не вызывается IInitDone_Done (ошибка 1С?).
Результат: я не очищаю ссылки, 1С зависает.
Что делать: все ссылки на объект должны быть очищены явно. Для переменных ГМ - в ПриЗавершенииРаботыСистемы. Ещё вариант - использовать vkloader.

По поводу DBF.
СоздатьКуб можно заточить под конкретный провайдер, но это будет не универсально. Предлагаю реализовать интерфейс для подключения пользовательских построителей (объектов COM или 1С++). Построитель будет получать исходный запрос (таблицу фактов), результат парсинга секции TOTALS и строку подключения и будет возвращать инструкцию CreateCube (или, хотябы, SELECT).
  

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



Сообщений: 141
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #27 - 22. Ноября 2007 :: 11:14
Печать  
Valet писал(а) 22. Ноября 2007 :: 09:34:
Код
Выбрать все
qryConsole : Экспорт в Microsoft Office Excel
 


вот такую то ошибочку выплевывает при запуске запроса.
Prepare проходит.

В обработке только такой код в процедуре
Код
Выбрать все
	ЗагрузитьВнешнююКомпоненту("qryConsole.dll");
	Консоль = СоздатьОбъект("AddIn.qryConsole");
	Консоль.СтрокаПодключения ="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Base;Data Source=COMP";
	Консоль.ОткрытьФорму();
 


Где я упал?

Сорри. ступил. в строке подключения пароль не указал  Смущённый
  

/ Лень - двигатель прогресса. /
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #28 - 22. Ноября 2007 :: 11:21
Печать  
Valet писал(а) 22. Ноября 2007 :: 09:34:
Код
Выбрать все
qryConsole : Экспорт в Microsoft Office Excel
 


вот такую то ошибочку выплевывает при запуске запроса.
Prepare проходит.

ВыполнитьИнструкцию с этим запросом выполняется? Если да, давай текст запроса.

Valet писал(а) 22. Ноября 2007 :: 09:34:
В обработке только такой код в процедуре
Код
Выбрать все
	ЗагрузитьВнешнююКомпоненту("qryConsole.dll");
	Консоль = СоздатьОбъект("AddIn.qryConsole");
	Консоль.СтрокаПодключения ="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Base;Data Source=COMP";
	Консоль.ОткрытьФорму();
 


Где я упал?

Для ИБ в формате SQL строка подключения не нужна.
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #29 - 22. Ноября 2007 :: 11:27
Печать  
berezdetsky писал(а) 16. Ноября 2007 :: 14:04:
JohnyDeath писал(а) 16. Ноября 2007 :: 13:37:
Ну, например, вызываю метод
Код
Выбрать все
Консоль.СоздатьИПоказатьКуб(ТекстЗапроса) 

и пользователю вылазиет окно с этими тремя закладками (т.е. то, что у тебя сейчас справа-снизу).

Сделаю.

Я тут думал-подумал, и передумал.  Ужас
Не вижу применимости для такого окна. В электронной таблице выводится нетипизированный результат, а в сводной (при выводе куба) - типизированный. Для универсальной консоли запросов это нормально, а для конкретных отчётов такое сочетание вопросов создаст гораздо больше, чем пользы.
  

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