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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #45 - 28. Ноября 2007 :: 10:53
Печать  
berezdetsky писал(а) 27. Ноября 2007 :: 15:38:
А подружить я готов с любым источником данных на условиях #26 Цитата:
СоздатьКуб можно заточить под конкретный провайдер, но это будет не универсально. Предлагаю реализовать интерфейс для подключения пользовательских построителей (объектов COM или 1С++). Построитель будет получать исходный запрос (таблицу фактов), результат парсинга секции TOTALS и строку подключения и будет возвращать инструкцию CreateCube (или, хотябы, SELECT).

А можешь поподробнее в случае, если построитель будет объектом 1С++. Примерчик или что-нибудь в этом духе... может у меня что-нибудь да получится  Нерешительный
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #46 - 28. Ноября 2007 :: 11:06
Печать  
JohnyDeath писал(а) 28. Ноября 2007 :: 10:53:
А можешь поподробнее в случае, если построитель будет объектом 1С++. Примерчик или что-нибудь в этом духе... может у меня что-нибудь да получится  Нерешительный

Пример можно после реализации. А пока.. Напиши, какая информация тебе нужна, в каком формате, и желаемый интерфейс. Я этот интерфейс реализую. При необходимости в интерфейсе можно учесть передачу списка поддерживаемых фич. Т.е. если твой построитель, к примеру, не поддерживает опцию HIERARCHY ONLY, то ВК и не будет пытаться такой запрос выполнить.
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #47 - 28. Ноября 2007 :: 11:46
Печать  
Я хотел посмотреть на тестовый пример. Т.е. на входе имеем:
1. Исходный запрос;
2. результат парсинга секции TOTALS;
3. строка подключения
Выход:
1. Инструкция CreateCube
(я так понял что-то типа:
CREATE CUBE (...
  DIMENSION
      HIERARCHY
        LEVEL
MEASURE
...)
Т.е. дай пример конкретной ситуации: что имеем на входе, что хотим на выходе иметь. А то я чё-т не сразу въезжаю.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #48 - 28. Ноября 2007 :: 12:19
Печать  
JohnyDeath писал(а) 28. Ноября 2007 :: 11:46:
А то я чё-т не сразу въезжаю.

Круглые глаза Я просто даю тебе возможность предложить спецификацию максимально удобного для тебя интерфейса.
Не получается - ok, я сделаю то, как я себе это представляю. Тогда и продолжим с примерами.
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #49 - 28. Ноября 2007 :: 12:21
Печать  
Да, давай так. Ты, мне кажется, лучше представляешь чем я  Очень довольный
  
Наверх
 
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #50 - 28. Ноября 2007 :: 13:31
Печать  
berezdetsky писал(а) 28. Ноября 2007 :: 10:28:
Выполни, плиз, запрос методом СоздатьКуб при включенной отладке и покажи результат.


Вот собственно результат запроса:

SELECT  Обороты.sp4276 [Агент $Справочник.Сотрудники],
(
cast(left(Обороты.Date_Time_IDDOC, 6) + '01' as datetime)) Период,
Обороты.sp4280 Продано
INTO ##qryConsole97 FROM ra4285 AS Обороты
WHERE Обороты.sp4672='-' AND Обороты.Date_Time_IDDOC>'20071101'
if exists(select * from tempdb..sysobjects where id = object_id('tempdb..##h971'))
drop table ##h971
SELECT ID, PARENTID, DESCR INTO ##h971 FROM sc3246 (nolock) WHERE (isfolder = 1) OR (parentid = '     0   ')
INSERT INTO ##h971 VALUES('ZZZZZZZZZ', '     0   ', '<>')
UPDATE ##qryConsole97 SET [Агент $Справочник.Сотрудники] = sc.parentid FROM ##qryConsole97 sq INNER JOIN sc3246 sc (nolock) ON sq.[Агент $Справочник.Сотрудники] = sc.id WHERE sc.parentid <> '     0   '
UPDATE ##qryConsole97 SET [Агент $Справочник.Сотрудники] = 'ZZZZZZZZZ' WHERE [Агент $Справочник.Сотрудники] = '     0   '
PROVIDER=MSOLAP;Persist Security Info=False;
DATA SOURCE=C:\DOCUME~1\pavels\LOCALS~1\Temp\c1.cub;
SOURCE_DSN="Provider=SQLOLEDB;Data Source=trade1;User ID=sa;Password=blablabla;Initial Catalog=master;Extended Properties=""APP=1CV7"";Use Procedure for Prepare=0;Persist Security Info=False";
CREATECUBE=CREATE CUBE qryConsole (
     DIMENSION [Агент] DIMENSION_STRUCTURE PARENT_CHILD OPTIONS(UNIQUE_KEY, ALLOWSIBLINGSWITHSAMENAME),
           HIERARCHY [По группам], LEVEL [Все] TYPE ALL, LEVEL [Агент] ROOT_MEMBER_IF ROOT_IF_PARENT_IS_MISSING,
           HIERARCHY [Все], LEVEL [Все] TYPE ALL, LEVEL [Агент],
     DIMENSION [Период По месяцам] TYPE TIME,
           LEVEL [Все] TYPE ALL, LEVEL [Год] TYPE YEAR, LEVEL [Квартал] TYPE QUARTER, LEVEL [Месяц] TYPE MONTH, LEVEL [День] TYPE DAY,
     DIMENSION [Период По неделям] TYPE TIME,
           LEVEL [Все] TYPE ALL, LEVEL [Год] TYPE YEAR, LEVEL [Неделя] TYPE WEEK, LEVEL [День недели] TYPE DAYOFWEEK,
     MEASURE [Сумма Продано] FUNCTION SUM) ;
InsertInto=INSERT INTO qryConsole (
     [Агент].Key, [Агент].Name, [Агент].Parent,
     [Период По месяцам], [Период По неделям],
     [Сумма Продано])
SELECT
     h1.ID, h1.DESCR, h1.PARENTID,
     qryConsole.Период, qryConsole.Период,
     qryConsole.Продано
FROM ##qryConsole97 qryConsole
     , ##h971 h1
WHERE (qryConsole.[Агент $Справочник.Сотрудники] = h1.ID);
Переход к строке 1 'SELECT      $Обороты.Агент [Агент $Справочник.Сотрудники],'
qryConsole : Export to Microsoft Office Excel
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #51 - 28. Ноября 2007 :: 14:17
Печать  
elkpro писал(а) 28. Ноября 2007 :: 13:31:
Вот собственно результат запроса:

Не вижу ошибку.   Печаль
Проблема со всеми справочниками или только с этим? В $Обороты.Агент группы есть?
Всё же, хотелось бы получить тестовую конфу.
  

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


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #52 - 28. Ноября 2007 :: 14:42
Печать  
berezdetsky писал(а) 28. Ноября 2007 :: 14:17:
elkpro писал(а) 28. Ноября 2007 :: 13:31:
Вот собственно результат запроса:

Не вижу ошибку.   Печаль
Проблема со всеми справочниками или только с этим? В $Обороты.Агент группы есть?
Всё же, хотелось бы получить тестовую конфу.


Вот текст запроса, когда используется HIERARCHY без ONLY:

SELECT  Обороты.sp4276 [Агент $Справочник.Сотрудники],
(
cast(left(Обороты.Date_Time_IDDOC, 6) + '01' as datetime)) Период,
Обороты.sp4280 Продано
INTO ##qryConsole97 FROM ra4285 AS Обороты
WHERE Обороты.sp4672='-' AND Обороты.Date_Time_IDDOC>'20071101'
if exists(select * from tempdb..sysobjects where id = object_id('tempdb..##h971'))
drop table ##h971
SELECT ID, PARENTID, DESCR INTO ##h971 FROM sc3246 (nolock)
INSERT INTO ##h971 VALUES('ZZZZZZZZZ', '     0   ', '<>')
UPDATE ##qryConsole97 SET [Агент $Справочник.Сотрудники] = 'ZZZZZZZZZ' WHERE [Агент $Справочник.Сотрудники] = '     0   '
PROVIDER=MSOLAP;Persist Security Info=False;
DATA SOURCE=C:\DOCUME~1\pavels\LOCALS~1\Temp\c1.cub;
SOURCE_DSN="Provider=SQLOLEDB;Data Source=trade1;User ID=sa;Password=blablabla;Initial Catalog=master;Extended Properties=""APP=1CV7"";Use Procedure for Prepare=0;Persist Security Info=False";
CREATECUBE=CREATE CUBE qryConsole (
     DIMENSION [Агент] DIMENSION_STRUCTURE PARENT_CHILD OPTIONS(UNIQUE_KEY, ALLOWSIBLINGSWITHSAMENAME),
           HIERARCHY [По группам], LEVEL [Все] TYPE ALL, LEVEL [Агент] ROOT_MEMBER_IF ROOT_IF_PARENT_IS_MISSING,
           HIERARCHY [Все], LEVEL [Все] TYPE ALL, LEVEL [Агент],
     DIMENSION [Период По месяцам] TYPE TIME,
           LEVEL [Все] TYPE ALL, LEVEL [Год] TYPE YEAR, LEVEL [Квартал] TYPE QUARTER, LEVEL [Месяц] TYPE MONTH, LEVEL [День] TYPE DAY,
     DIMENSION [Период По неделям] TYPE TIME,
           LEVEL [Все] TYPE ALL, LEVEL [Год] TYPE YEAR, LEVEL [Неделя] TYPE WEEK, LEVEL [День недели] TYPE DAYOFWEEK,
     MEASURE [Сумма Продано] FUNCTION SUM) ;
InsertInto=INSERT INTO qryConsole (
     [Агент].Key, [Агент].Name, [Агент].Parent,
     [Период По месяцам], [Период По неделям],
     [Сумма Продано])
SELECT
     h1.ID, h1.DESCR, h1.PARENTID,
     qryConsole.Период, qryConsole.Период,
     qryConsole.Продано
FROM ##qryConsole97 qryConsole
     , ##h971 h1
WHERE (qryConsole.[Агент $Справочник.Сотрудники] = h1.ID);

Вышеприведенная конструкция отрабатывает нормально.

Базу я выслать не смогу. Конфигурация сама вряд ли поможет.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #53 - 28. Ноября 2007 :: 15:22
Печать  
elkpro писал(а) 28. Ноября 2007 :: 14:42:
Базу я выслать не смогу.  

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

Проблема со всеми справочниками/регистрами или только с этим? В $Обороты.Агент группы есть?
  

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


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #54 - 28. Ноября 2007 :: 15:49
Печать  
berezdetsky писал(а) 28. Ноября 2007 :: 15:22:
elkpro писал(а) 28. Ноября 2007 :: 14:42:
Базу я выслать не смогу. 

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

Проблема со всеми справочниками/регистрами или только с этим? В $Обороты.Агент группы есть?


Проблема в том, что база порядка 30 Gb и тестовую с минимальным набором никак не выслать.
Попробовал на других измерениях и на другом регистре - результат такой же и вываливается в том же самом месте.
  
Наверх
 
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #55 - 28. Ноября 2007 :: 16:16
Печать  
berezdetsky писал(а) 28. Ноября 2007 :: 15:22:
elkpro писал(а) 28. Ноября 2007 :: 14:42:
Базу я выслать не смогу. 

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

Проблема со всеми справочниками/регистрами или только с этим? В $Обороты.Агент группы есть?


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


SELECT      $Обороты.Клиент [Клиент $Справочник.Контрагенты],
           $НачалоПериода.Месяц(Обороты.Date_Time_IDDOC) Период,
           $Обороты.Сумма Продано
FROM $Регистр.ВзаиморасчетыПокупателей AS Обороты
WHERE Обороты.Date_Time_IDDOC>'20071001'
TOTALS  SUM(Продано)
BY ALL
           , [Клиент $Справочник.Контрагенты] HIERARCHY ONLY
           , Период PERIODS

Этот запрос работает нормально.

Если только в запросе поставить больший период "20070901", то вылетает с ошибкой
Переход к строке 1 'SELECT      $Обороты.Клиент [Клиент $Справочник.Контрагенты],'
qryConsole : Export to Microsoft Office Excel

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #56 - 28. Ноября 2007 :: 21:51
Печать  
elkpro писал(а) 28. Ноября 2007 :: 16:16:
Получается данная ошибка возникает из-за объема обрабатываемых данных?

Не получается - опция ONLY как раз уменьшает объём данных.
За 9 (без 10-го) месяц этот запрос выполняется?
И проверь текущую сборку - есть шанс получить более осмысленное сообщение об ошибке.
  

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


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #57 - 29. Ноября 2007 :: 07:33
Печать  
berezdetsky писал(а) 28. Ноября 2007 :: 21:51:
elkpro писал(а) 28. Ноября 2007 :: 16:16:
Получается данная ошибка возникает из-за объема обрабатываемых данных?

Не получается - опция ONLY как раз уменьшает объём данных.
За 9 (без 10-го) месяц этот запрос выполняется?
И проверь текущую сборку - есть шанс получить более осмысленное сообщение об ошибке.


Поставил новую версию - получилось еще веселее.
После выполнения запросов с опцией HIERARCHY ONLY. Без указания ONLY работает нормально.

Error # -2147467259 : Unspecified error
ФайлКуба = КонструкторЗапросов.СоздатьКуб(ТекЗапрос, ВремПапка + "\c" + ъ + ".cub");
{Z:\1C\1C EXTCOMP\1CQA.ERT(177)}:
Переход к строке 1 'SELECT      $Обороты.Клиент [Клиент $Справочник.Контрагенты],'
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #58 - 29. Ноября 2007 :: 10:29
Печать  
elkpro писал(а) 29. Ноября 2007 :: 07:33:
Error # -2147467259 : Unspecified error

Ага, Unspecified error - любимая ошибка провайдера MSOLAP. IMHO, у тебя в данных есть что-то, не вписывающееся в параметры, заданные мной в инструкции CreateCube. Без тестовых данных, на которых это воспроизводится, я врядли смогу помочь.

За 9 (без 10-го) месяц этот запрос выполняется?
В измерениях регистров есть группы или битые ссылки?
  

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


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Консоль запросов 1С++ rc
Ответ #59 - 29. Ноября 2007 :: 21:09
Печать  
berezdetsky писал(а) 29. Ноября 2007 :: 10:29:
elkpro писал(а) 29. Ноября 2007 :: 07:33:
Error # -2147467259 : Unspecified error

Ага, Unspecified error - любимая ошибка провайдера MSOLAP. IMHO, у тебя в данных есть что-то, не вписывающееся в параметры, заданные мной в инструкции CreateCube. Без тестовых данных, на которых это воспроизводится, я врядли смогу помочь.

За 9 (без 10-го) месяц этот запрос выполняется?
В измерениях регистров есть группы или битые ссылки?


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