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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #30 - 22. Ноября 2007 :: 11:30
Печать  
elkpro писал(а) 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'..

Покажи, чего оно навыводит при включенной отладке.
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #31 - 22. Ноября 2007 :: 11:38
Печать  
Да, если вдруг кого-то пугает, что PivotTable открывается пустая и поля надо растаскивать вручную, заполнить таблицу можно так:
Код
Выбрать все
oView = Сводная.Объект.ActiveView;
oView.FilterAxis.InsertFieldSet(oView.Fieldsets("фирма"));
oView.RowAxis.InsertFieldSet(oView.Fieldsets("[Товар].[По группам]"));
oView.ColumnAxis.InsertFieldSet(oView.Fieldsets("Период По месяцам"));
oView.DataAxis.InsertTotal(oView.Totals("Сумма _Доход"));
oView.Totals("Сумма _Доход").NumberFormat = "#,##0.00"; 


Для реляционных запросов (без TOTALS) итоги нужно сформировать предварительно:
Код
Выбрать все
oView.DataAxis.InsertTotal(oView.AddTotal("Сумма _Доход",
oView.Fieldsets("_Доход").Fields(0), Сводная.Объект.Constants.plFunctionSum)); 

  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Консоль запросов 1С++ rc
Ответ #32 - 22. Ноября 2007 :: 11:43
Печать  
berezdetsky писал(а) 22. Ноября 2007 :: 11:06:
Новости:

Мммм... хорошо! Люблю холрошие новости  Улыбка
berezdetsky писал(а) 22. Ноября 2007 :: 11:06:
  • Побеждена проблема из http://www.1cpp.ru/forum/YaBB.pl?num=1164626462/5#5


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

    Вот тут можешь поподробнее. Разве куб строится не провайдером "MSOLAP.2"?
    Если я правильно понимаю, то происходит выполнения следующего запроса:
    Код
    Выбрать все
    "PROVIDER=MSOLAP.2;DATA SOURCE=_ПутьКФайлуКуба_;SOURCE_DSN=_ИсточникДСН_;
    	|
    	|CREATECUBE=CREATE CUBE... 
    
    

    может тогда сделать установку этого _источникаДСН_?
    Просто разъясни, оч понять и помочь хочется.
      
    Наверх
     
    IP записан
     
    JohnyDeath
    1c++ power user
    1c++ donor
    Отсутствует



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

    Сделаю.

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

    Печаль плохие новости.
    Ну и хрен с ней с этой "типизацией" - пусть над этим писатель запросов голову ломает.
      
    Наверх
     
    IP записан
     
    JohnyDeath
    1c++ power user
    1c++ donor
    Отсутствует



    Сообщений: 3050
    Местоположение: Волгоград
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Консоль запросов 1С++ rc
    Ответ #34 - 22. Ноября 2007 :: 12:05
    Печать  
    Можешь поподробнее про это:
    Цитата:
    •      ВывестиСводнуюТаблицу/PutPivotTable – выводит сводную таблицу в таблицу 1С. Параметры:
    o      oPivotTable (OWC11.PivotTable) – сводная таблица;
    o      oTable (таблица) – таблица 1С, в которую будет выведена сводная таблица;
    o      nRowNo (число) – номер строки, начиная с которой будет выведена сводная таблица. Позволяет зарезервировать место для вывода шапки таблицы. Необязательный параметр. Не может быть меньше, чем (oTable.ВысотаТаблицы() + 1).

    1) Откуда брать этот первый параметр? Я понимаю, если б это АктивИкс был... а тут как?
    2) Таблица должна быть как-то подготовлена?
    3) Почему есть "номер строки", а "номера столбца" нету?
      
    Наверх
     
    IP записан
     
    berezdetsky
    1c++ power user
    Отсутствует


    barba non facit sisadminum

    Сообщений: 1986
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Консоль запросов 1С++ rc
    Ответ #35 - 22. Ноября 2007 :: 12:11
    Печать  
    JohnyDeath писал(а) 22. Ноября 2007 :: 11:43:
    berezdetsky писал(а) 22. Ноября 2007 :: 11:06:
    Побеждена проблема из http://www.1cpp.ru/forum/YaBB.pl?num=1164626462/5#5

    А как победил? Просто подставлял "Пусто" или что-то в этом роде?

    Если включить отладку или залезть в профайлер - там это видно.

    JohnyDeath писал(а) 22. Ноября 2007 :: 11:43:
    Вот тут можешь поподробнее. Разве куб строится не провайдером "MSOLAP.2"?
    Если я правильно понимаю, то происходит выполнения следующего запроса:
    Код
    Выбрать все
    "PROVIDER=MSOLAP.2;DATA SOURCE=_ПутьКФайлуКуба_;SOURCE_DSN=_ИсточникДСН_;
    	|
    	|CREATECUBE=CREATE CUBE... 
    
    

    может тогда сделать установку этого _источникаДСН_?
    Просто разъясни, оч понять и помочь хочется.

    Куб то строится провайдером MSOLAP, но инструкции ему нужно сформировать предварительно. И если CreateCube и Insert от провайдера данных не зависят, то синтаксис и функционал SELECT - очень даже. К примеру, для VFPOLEDB у меня не получилось туда засунуть подзапрос. А при выводе во временную .dbf провайдер обрезал алиасы до 10 символов.. Короче, от пользовательского построителя я хочу получить такую инструкцию, какую провайдер MSOLAP примет без ошибок.
      

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


    barba non facit sisadminum

    Сообщений: 1986
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Консоль запросов 1С++ rc
    Ответ #36 - 22. Ноября 2007 :: 12:17
    Печать  
    JohnyDeath писал(а) 22. Ноября 2007 :: 12:05:
    1) Откуда брать этот первый параметр? Я понимаю, если б это АктивИкс был... а тут как?
    2) Таблица должна быть как-то подготовлена?
    3) Почему есть "номер строки", а "номера столбца" нету?

    1) Сводная.Объект;
    2) не должна;
    3) я не придумал, что осмысленного можно вывести левее сводной таблицы при заранее неизвестной её высоте.

    Пример печати есть в #2 топика.
      

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



    Сообщений: 3050
    Местоположение: Волгоград
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Консоль запросов 1С++ rc
    Ответ #37 - 22. Ноября 2007 :: 12:59
    Печать  
    berezdetsky писал(а) 22. Ноября 2007 :: 12:17:
    3) я не придумал, что осмысленного можно вывести левее сводной таблицы при заранее неизвестной её высоте.
    Пример печати есть в #2 топика.

    например Отступ.

    а примерчик с #2 топика я как-то пропустил. спасибо!

    По поводу хрен с ней с этой "типизацией" может ещё подумаешь?
      
    Наверх
     
    IP записан
     
    berezdetsky
    1c++ power user
    Отсутствует


    barba non facit sisadminum

    Сообщений: 1986
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Консоль запросов 1С++ rc
    Ответ #38 - 27. Ноября 2007 :: 13:58
    Печать  
    JohnyDeath писал(а) 22. Ноября 2007 :: 12:05:
    Цитата:
    •      ВывестиСводнуюТаблицу/PutPivotTable – выводит сводную таблицу в таблицу 1С. Параметры:

    3) Почему есть "номер строки", а "номера столбца" нету?

    Добавил номер столбца.

    Добавил построение измерений только по иерархии (без элементов).

    Исправлены какие-то ошибки.
      

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



    Сообщений: 3050
    Местоположение: Волгоград
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Консоль запросов 1С++ rc
    Ответ #39 - 27. Ноября 2007 :: 15:31
    Печать  
    В порядке "лёгкого бреда":
    если уж с ДБФ плохло работает, то может можно как-нибудь с 1sqlite Саши Орефкова подружить?  Круглые глаза
      
    Наверх
     
    IP записан
     
    berezdetsky
    1c++ power user
    Отсутствует


    barba non facit sisadminum

    Сообщений: 1986
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Консоль запросов 1С++ rc
    Ответ #40 - 27. Ноября 2007 :: 15:38
    Печать  
    JohnyDeath писал(а) 27. Ноября 2007 :: 15:31:
    В порядке "лёгкого бреда":
    если уж с ДБФ плохло работает, то может можно как-нибудь с 1sqlite Саши Орефкова подружить?  Круглые глаза

    Кубы в ДБФ не строятся, но простые запросы должны работать нормально. Если есть ошибки - пиши.
    А подружить я готов с любым источником данных на условиях #26 Цитата:
    СоздатьКуб можно заточить под конкретный провайдер, но это будет не универсально. Предлагаю реализовать интерфейс для подключения пользовательских построителей (объектов COM или 1С++). Построитель будет получать исходный запрос (таблицу фактов), результат парсинга секции TOTALS и строку подключения и будет возвращать инструкцию CreateCube (или, хотябы, SELECT).
      

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


    I Love YaBB 2!

    Сообщений: 145
    Зарегистрирован: 19. Мая 2006
    Re: Консоль запросов 1С++ rc
    Ответ #41 - 27. Ноября 2007 :: 19:06
    Печать  
    Ошибка пропала с новой версией.
    Но теперь, когда пытаюсь построить куб только с иерархией HIERARCHY ONLY - выдает ошибку на первую строку запроса. Что делаю не так?
      
    Наверх
     
    IP записан
     
    berezdetsky
    1c++ power user
    Отсутствует


    barba non facit sisadminum

    Сообщений: 1986
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Консоль запросов 1С++ rc
    Ответ #42 - 28. Ноября 2007 :: 09:06
    Печать  
    elkpro писал(а) 27. Ноября 2007 :: 19:06:
    Ошибка пропала с новой версией.
    Но теперь, когда пытаюсь построить куб только с иерархией HIERARCHY ONLY - выдает ошибку на первую строку запроса. Что делаю не так?

    Давай тестовую конфигурацию и обработку, на которых это воспроизводится.
      

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


    I Love YaBB 2!

    Сообщений: 145
    Зарегистрирован: 19. Мая 2006
    Re: Консоль запросов 1С++ rc
    Ответ #43 - 28. Ноября 2007 :: 10:22
    Печать  
    berezdetsky писал(а) 28. Ноября 2007 :: 09:06:
    elkpro писал(а) 27. Ноября 2007 :: 19:06:
    Ошибка пропала с новой версией.
    Но теперь, когда пытаюсь построить куб только с иерархией HIERARCHY ONLY - выдает ошибку на первую строку запроса. Что делаю не так?

    Давай тестовую конфигурацию и обработку, на которых это воспроизводится.


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

    Ошибку пишет такую:
    Переход к строке 1 'SELECT      $Обороты.Агент [Агент $Справочник.Сотрудники],'
    qryConsole : Export to Microsoft Office Excel

    Конфигурация не принципиальна, т.к. без указания ONLY работает нормально.
      
    Наверх
     
    IP записан
     
    berezdetsky
    1c++ power user
    Отсутствует


    barba non facit sisadminum

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

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