Консоль и расширения запросов 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 не будет опубликован. Обязательные поля помечены *