Консоль и расширения запросов 1С++ v2.04






Внешняя компонента. Возможности:
— консоль и конструктор прямых запросов;
— расширения запросов для создания локальных OLAP-кубов (TOTALS … BY …);
— сводные и электронные таблицы, диаграммы (на базе Office Web Components);
— etc.

Реализует консоль для отладки прямых запросов в режиме Предприятие.

Предоставляет возможность интеграции конструктора запросов в свои обработки (только для ИБ в формате SQL).

Расширяет возможности использования Office Web Components v11 в формах 1С:Предприятия 7.7. OWC11 включают в себя такие элементы управления: сводные таблицы, электронные таблицы, диаграммы.

Расширяет синтаксис инструкции SELECT: добавляет секцию TOTALS. Результат выполнения запроса с секцией TOTALS — локальный куб. Для построения кубов в ИБ в формате DBF требуется подключение пользовательского построителя, учитывающего особенности выбранного провайдера данных.

Локальный куб может быть отображен на форме в сводной таблице OWC11. Текущее состояние сводной таблицы может быть выведено в таблицу (печатную форму) 1С.
Также локальный куб может быть открыт в MS Excel (как сводная таблица) или в любом другом OLAP-клиенте. Подключение к базе данных 1С для этого не требуется.

Конструктор запросов доступен только для ИБ в формате SQL. Все остальные возможности доступны и в DBF.

Коммерческая версия поддерживает расшифровку в сводных таблицах, отображающих локальные кубы. Расшифровка вызывается даблкликом на ячейке с посчитанной мерой и позволяет получить таблицу значений, содержащую строки таблицы фактов, формирующие данную меру. Подробности — в описании и примерах. В основной форме консоли расшифровка может быть вызвана из контекстного меню или из панели инструментов.

OWC11 — http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76

OWC11 SP1 — http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=c815dffa-d5f3-4b71-bf46-13721bd44682

52 Comments

  1. German

    уже один раз помогала

    Reply
  2. JohnyDeath

    Да, просто офигенная вещь!

    Reply
  3. support

    Круто!

    Reply
  4. infossa

    Очень хорошая вещица!

    Спасибо!

    Reply
  5. IgorMgn

    Понравилось. Если бы еще построитель мог работать и с DBF базами (пусть и без кубов) — цены бы не было!

    Спасибо

    Reply
  6. berezdetsky

    (5) Конструктор запросов с DBF работать не будет. Причина описана здесь:

    http://www.1cpp.ru/forum/YaBB.pl?num=1191511579/18#18

    А то, что ВК вообще работает с DBF — заслуга исключительно настойчивости JohnyDeath. Ему спасибо. 🙂

    Reply
  7. ATOM_MAN

    Я написал в код

    ЗагрузитьВнешнююКомпоненту(«AddIn.qryConsole»);

    КонструкторЗапросов = СоздатьОбъект(«AddIn.qryConsole»);

    КонструкторЗапросов.ОткрытьФорму();

    и при нажатии на кнопку выскакивает сообщение «Память не может быть «read»» и «Память не может быть «written»». Что это и как с этим бороться?

    Reply
  8. berezdetsky

    ATOM_MAN

    ВК 1С++ ( http://www.1cpp.ru ) должна быть загружена до загрузки этой ВК. Для баз в формате DBF строка подключения должна быть задана до открытия формы. Не поможет — пришли мне тестовую конфигурацию и подробное описание (версии ОС, 1С и т.д.).

    Reply
  9. vasilykushnir

    В чем особенность коммерческой версии? Что не работает в некомерчи?

    Reply
  10. berezdetsky

    (9) Последний абзац текста, над скриншотами.. 😉

    Reply
  11. CheBurator

    Правильно ли я понял, что конструктор запросов не льзя использовать под DBF?

    Reply
  12. vip

    (11) Не прошло и полгода (см. 6), а ты уже правильно все понял :))

    Reply
  13. CheBurator

    (12) оч.плохо… очень…

    Reply
  14. vip

    (13) Минули еще полгода (см. 12) …

    Reply
  15. Vad1m

    Отличная разработка. Спасибо

    Reply
  16. LubK

    Сначала поставил консоль запросов qryMaker. Работает нормально. Спасибо.

    Потом захотел попробовать еще и OLAP через Вашу qryConsol.

    При инсталляции говорит «успешно». qryMaker.dll и qryConsl.dll в 1cv77SQLBINconfig положило нормально. Но при запуске конфигуратора теперь ругается

    Призагрузке плагина «C:Program Files1cv77SQLBINconfigqryConsole.dll” не удалось создать обьект « qryConsoleLE»

    КодОшибки: Ох800401F3

    Недопустимая строка с указаним класса

    НЕ подскажите ли что-нибудь.

    В reedme сведения только о методах dll а по установке не нашел ничего.

    Reply
  17. LubK

    (+16) У меня Win Server 2003 + SQL 2000 + MS Offis 2003+ 1cv7.25+ 1c++ + Openkof

    Reply
  18. berezdetsky

    (16) qryConsole — это внешняя компонента, а не плагин OpenConf. Она работает в режиме «Предприятие», а не в режиме «Конфигуратор». Её не нужно записывать в папку «config» и штатный инсталлятор её туда не записывает.

    Reply
  19. LubK

    (18) Большое спасибо. Заработало. Стер qryConsole.dll из Config и бросил в каталог БД и заработало. Но бросает длл туда все-таки штатный инсталятор, проверял несколько раз.

    Reply
  20. berezdetsky

    (19) Штатный инсталлятор по умолчанию бросает в BIN, а не в BINconfig. При желании, путь можно изменить. Проверял несколько раз. 🙂

    Reply
  21. LubK

    Извините, не могу понять откуда у Вас на скриншоте диаграмма. В ПримереТис.ert нижних закладок “Результат»,»СводнаяТаблица»,»Диаграмма» — нет. Закладку для Диаграмм надо делать самому стандартными средствами 1с или Вашей компоненты? В Вашем хелпе и readme ничего не нашел, как строить Диаграммы. Если графика делается не стандартными средствами 1с а Вашими можна подсказку как?

    Reply
  22. berezdetsky

    Этот скриншот снят с основной формы консоли. Эта форма открывается методом ОткрытьФорму(). Диаграмма там — это элемент управления OWC11.ChartSpace. В примере для ТиС он не используется, но легко может быть добавлен. Пример работы с этим элементом управления можно найти здесь: http://infostart.ru/projects/1112/

    Reply
  23. 1981ink

    О великий как её пользоваться то? qryMaker устанавливал его получается через меню опенконф, вызвать а твою разработку никак не получаеться прикрутить, очень уж хочется консолью воспользоваться

    Reply
  24. berezdetsky

    o_O

    Есть документация, есть примеры — пробуй. Не получится — приходи с конкретными вопросами, показывай, как делаешь.. Посмотри ещё топик на 1cpp.ru — там ряд проблем уже рассмотрен.

    Reply
  25. 1981ink

    Окоей может просто дело в хитрой висте с её контролем доступ запуска приложений попробую в этом направлении если что отпишусь если так, чтоб ешё кто нить на эти грабли на наступил

    Reply
  26. w-divin

    при выполнении кода:

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

    выдает:

    Error # 91 : Object variable or With block variable not set

    Консоль.ОткрытьФорму();

    {D:1CV77! СИНИЦКИЙTEST_TRADE_SQLEXTFORMS!КОНСОЛЬ.ERT(10)}:

    Reply
  27. berezdetsky

    w-divin

    Не воспроизводится.

    Давай версии: Windows, 1C, 1C++, qryConsole.dll, OWC11.dll. qryConsole ставилась инсталлятором или копированием? Обработку и, по возможности, конфигурацию — на e-mail.

    Reply
  28. w-divin

    (27) WinXP Pro SP3

    1C 27

    1CPP 3.0.1.22

    qryconsole 1.80.1812

    OWC11 12.0.4518.1014

    ставилось инсталятором

    обработка:

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

    почту не нашел шоб мд выслать (((

    ПыСы -пробовал на 4х разных конфах — одно и тоже (((

    Reply
  29. berezdetsky

    (28) Для начала обнови qryConsole до 1.85 и OWC до 12.0.6502.5000.

    Если база в формате DBF, нужно ещё задавать строку подключения.

    Мой e-mail есть в документации.

    Reply
  30. w-divin

    (29) скачал OWC SP1 по ссылке в (0) — версия стала 12.0.06211.1000, где взять 6502.5000?

    qryconsole установил 1.85.0.1831 — ошибка осталась

    ПыСы версия 1.85 ставиться в папку C:Program Files1Cv77BIN независимо от того где лежит сама 1С ))))))))))))

    Reply
  31. free-lance-1C

    Доброго времени суток всем!

    У меня та же проблемма 🙁

    В глобальном модуле, в процедуре ПриНачалеРаботыСистеммы():

    ЗагрузитьВнешнююКомпоненту(«qryConsole.dll»);

    Консоль = СоздатьОбъект(«AddIn.qryConsole»);

    Консоль.ОткрытьФорму();

    исходные данные:

    WinXP Pro SP3

    1C 25

    1CPP.dll 3.0.1.23

    qryconsole.dll 1.80.1831

    OWC11.dll 12.0.6502.5000

    ставилось инсталятором

    1CPP.dll и qryconsole.dll лежат и в C:Program Files1Cv77BIN и в каталоге базы(уже и не знаю куда еще положить :))) ). База sql — ная.

    Reply
  32. berezdetsky

    (30) Последние версии OWC лучше искать на Microsoft Update. Текущая версия лежит здесь: http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=644008e0-77c9-4a02-ac9b-e30d0930c4be

    Консоль ставится по умолчанию в «Program Files» или «Program Files (x86)». В процессе установки этот путь можно изменить.

    Попробуй вынести переменную «Консоль» на уровень модуля и убрать СтатусВозврата(0).

    Reply
  33. free-lance-1C

    млин. заработала 😀

    Reply
  34. berezdetsky

    (33) Чё сделал?

    Reply
  35. w-divin

    (32) — во! пасип — после обновления по ссылке из (32) заработало… бум смотреть )))

    Reply
  36. w-divin

    сорь за тупой вопрос, но… строю конструктором:

    SELECT ОстаткиТоваровОстатки.Склад [Склад $Справочник.Склады]
    , ОстаткиТоваровОстатки.Товары [Товары $Справочник.Товары]
    , (ОстаткиТоваровОстатки.ОстатокОстаток + ОстаткиТоваровОстатки.РезервОстаток+ ОстаткиТоваровОстатки.РезервVIPОстаток) Остаток
    FROM $РегистрОстатки.ОстаткиТоваров(:КонДата ~,,,,
    (Остаток, Резерв, РезервVIP)) AS ОстаткиТоваровОстатки

    и тишина…

    проверка синтаксиса пишет:

    qryConsole : Ввиду особенностей реализации проверка синтаксиса

    запроса к виртуальным таблицам 1С++ невозможна.


    а нажатие на «Выполнить» не приводит ни к каким результатам (((

    кажется понял — проблема в «:КонДата ~». Отсюда вопрос: в каком формате дату в условии? пробовал и 01.12.09 и 01.12.2009 — не помогает. если убрать «:КонДата ~» то формирует…

    Reply
  37. berezdetsky

    (36) O_o Там дата в параметрах вводится штатным 1С-овским диалогом.

    Reply
  38. w-divin

    (37) а вот и ничего подобного — см вложение

    Reply
  39. berezdetsky

    (38) А документацию читать кто будет? 😉

    Во второй колонке указывается признак, позволяющий задать значение параметра выражением на встроенном языке 1С:Предприятия 7.7.

    Зачем ты его поставил? А если поставил — пиши на встроенном языке: ‘01.12.2009’.

    Reply
  40. w-divin

    😳

    по признаку туплю ))) не совсем просто вкурил смысл ))) теперь дошло ))) пасип за подсказки ))))

    а с выражением потуже ))) во встроенном языке строка определяется символом » , а в параметрах как оказалось надо ставить ‘ )))

    Еще раз пасип за разъяснения и помощь… ну и за сам сабж естессно )))

    Reply
  41. berezdetsky

    (40) Даты во встроенном языке записываются именно с ‘ 😀

    Reply
  42. w-divin
    //*******************************************
    Процедура Сформировать()
    ВыбДата = «01.10.09»;
    ВыбДата2 = ‘01.10.09’;
    КонецПроцедуры

    пишутся и так и так, но во втором случае при использовании интеллисенса имеем кучу геммороя:

    Reply
  43. berezdetsky

    1. В первом случае у тебя строка, а не дата. Это лишнее преобразование типов.

    2. В консоли интеллисенса нет.

    Reply
  44. lelusha

    А что значит внешняя компонента? это не просто внешняя обработка?

    Reply
  45. berezdetsky

    (44) Это такая ерунда, которая позволяет расширять встроенный язык 1С новыми видами объектов. Звучит страшно, но использовать несложно. Посмотри примеры.

    Reply
  46. lelusha

    понятно, а в установочный пакет входят исходники?

    Reply
  47. berezdetsky

    (46) Нет.

    Reply
  48. DasIsFantastich

    В консоли возможно как-то укладывать объекты в запрос? В инструкции видел что данные методы поддерживаются, но меня интересует непосредственная работа в режиме 1С:Предприятие

    Reply
  49. berezdetsky

    (48) Программно в базе SQL используется подключение 1С, так что подойдёт метод УложитьСписокОбъектов объекта ODBCRecordset или метод УложитьСписокГрупп объекта консоли.

    В форме консоли в пакете может быть несколько запросов, разделённых командой GO. При этом в вывод консоли попадёт последний запрос, а все предыдущие могут использоваться для наполнения временных таблиц. Запросы придётся писать руками — конструктор запросы на создание и вставку делать не умеет.

    Reply
  50. DasIsFantastich



    А можно микро примерчик, как в этом случае делать?

    Reply
  51. DasIsFantastich

    Прочитав (39) стало больше понятно, но пример будет нагляднее

    Reply
  52. berezdetsky

    (51) Пример:

    IF (OBJECT_ID(‘Tempdb..#Фирмы’) IS NOT NULL)
    DR OP   TABLE #Фирмы
    
    GO
    
    SEL ECT Фирмы.ID Ссылка
    INTO #Фирмы
    FR OM $Справочник.Фирмы AS Фирмы With (NOLOCK)
    
    GO
    
    SEL ECT Фирмы.ID [Ссылка $Справочник.Фирмы]
    , $Фирмы.Банк Банк
    FR OM $Справочник.Фирмы AS Фирмы With (NOLOCK)
    WH ERE (Фирмы.ID IN (SELECT Ссылка FR OM #Фирмы))
    TOTALS Count([Ссылка $Справочник.Фирмы])
    BY ALL
    , Банк

    Показать

    (Инфостарт портит тексты запросов).

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *