Консоль запросов, СКД, ADODB. Управляемое приложение.

Программирование - Инструментарий

Консоль запросов/отчетов, СКД, ADODB. Ввывод в таблицу значений, дерево или табличный документ(только для СКД)), обработка результата, произвольные обработчики расшифровки и прочие плюшки. Написана с нуля для платформы 8.3.х. На платформе 8.3.5 доступен Конструктор запросов в тонком клиенте.

Что она умеет сейчас стандартного привычного и не совсем:

  1. Запросы к внешним источникам, через ADODB провайдеры. Возможность простой и гибкой настройки выполнения и передачи хранимых неименованных параметров.
  2. Конструктор запроса в Тонком клиенте (ТОЛЬКО для платформы 8.3.5.х)
  3. Конструктор "Схемы компоновки данных", вывод в таблицу, дерево, табличный документ.
  4. Возможность создавать произвольные, настраиваемые обработчики расшифровки (см. скриншоты).
  5. Создавать динамические элементы интерфейса для вывода результата
  6. Возможность вывода отдельных элементов результата пакета и временных таблиц
  7. Вывод данных замеров времени выполнения пакета и вывода результата (мс, с, мин)
  8. Возможность в параметры подгружать внешние таблицы значений.
  9. Возможность сохранять результат в таблицы значений.
  10. Возможность обработки результата по произвольному алгоритму.
  11. Копировать оформленный под использование в тексте модуля текст запроса в буфер обмена
  12. Регистрироваться в справочник "ДополнительныеОбработкиИОтчеты" конфигураций основанных на БСП и в самой БСП.
  13. Прочие обычные для стандартной консоли запросов мелочи.

Приветствуются все замечания, конструктивная критика, пожелания и т. д. 

Приветсвуется активное клонирование и развитие обработки (может чего подгляжу и честно стырю).

Пользуйтесь наздоровье.


 

Changelog:

 

Ver 3.3

-- В механизм запросов через ADODB добавлена возможность работы с Excel

-- В механизм работы с СКД добавлена возможность подгружать сериализованные таблицы значений в качестве объектов в наборы данных

-- Прочие мелкие багфиксы и улучшения


Changelog:

Ver 3.1


-- Реализован механизм з
апросов к внешним источникам, через ADODB провайдеры. Пока тестировалось только с MS SQL.

-- Мелкие улучшения.

 

Ver 3.0


-- Реализована полноценная работа с СКД (можно использовать как консоль отчетов), только в толстом клиенте.

-- Добавлен тип результата "Табличный документ"

-- Реализован механизм "произвольных", хранимых в настройке запроса/отчета отбрработчиков расшифровки, в которые передаются значения полей расшифровки в виде готовой структуры значений полей (см. скриншот)

-- Оптимизирован и переделан интерфейс формы

-- В поле текста алгоритма обработчика добавлена возможность вставки шаблонов кода (см. скриншот). Шаблоны настраиваются в макете обработки.

-- Убраны баги связанные с применением обработки НЕ на БСП-основанных конфигурациях

-- Убраны баги связанные с использованием в тонком клиенте (в тонком клиенте работает только как консоль запросов)

-- Прочие багфиксы и мелкие улучшения

Ver 2.3

-- Добавлен тип настройки "Система компоновки" с возможностью настроки компоновки данных

и вывода результата в таблицу и дерево.

Ver 2.0

-- Убраны все модальные вызовы.

-- Мелкие исправления.

Скачать файлы

Наименование Файл Версия Размер
SimpleQueryConsole
.epf 57,08Kb
16.12.14
525
.epf 3.3 57,08Kb 525 Скачать

См. также

Комментарии
1. Dima Dima (bayce) 24 21.02.14 19:40 Сейчас в теме
И чем эта консоль запросов отличается от уже существующих?
2. Алексей Штепа (unknownDaemon) 40 21.02.14 20:35 Сейчас в теме
(1) bayce, там вверху об этом немного есть… А если конкретно — приведите пример "остальных" — ткну пальцем "чем отличаются" :)
asylum90; +1 Ответить
3. Игорь Матюшин (Nebiros777) 3 24.02.14 17:43 Сейчас в теме
4. Алексей Штепа (unknownDaemon) 40 24.02.14 18:51 Сейчас в теме
(3) Nebiros777, Спасибо! Буду признателен за соображения по поводу "что в нее добавить". Тот функционал, который есть сейчас был реализован исходя их моих частых потребностей (то есть без чего я лично просто не могу жить и к чему привык в аналогах под другие платформы), но понимая, что в тех навороченных аналогах возможно есть функционал, который я никогда не использовал, но он нужен другим. Если есть пожелания — пишите. Пока я в стадии поиска работы — могу уделить ей время 😉
6. bobank (bobank) 122 26.02.14 10:29 Сейчас в теме
Работает ли на тонком или web-клиенте?
7. Алексей Штепа (unknownDaemon) 40 26.02.14 15:12 Сейчас в теме
(6) bobank, пока к сожалению нет. Чуть позже оптимизаицию сделаю и под него.
8. Wall30 (Wall30) 28.02.14 09:42 Сейчас в теме
эта ошибка появляется если без запроса нажим кнопку "ОБРАБОТКА"

{Форма.Форма.Форма(826)}: Преобразование значения к типу Булево не может быть выполнено
ТаблицаРезультата = РеквизитФормыВЗначение("РезультатТаблица", Тип(?(ТипРезультата,"ДеревоЗначений","ТаблицаЗначений")));

9. Алексей Штепа (unknownDaemon) 40 28.02.14 22:50 Сейчас в теме
(8) Wall30, Спасибо большое! Поправил.
10. Алексей Мусихин (AlexLM75) 02.03.14 14:10 Сейчас в теме
Интересная обработка, пощупаем...
11. Пабло (CaptainMorgan) 14.03.14 12:48 Сейчас в теме
Обработка в стадии, скажем "сильно рабочей беты"

Может тогда файл должен распространяться бесплатно. А так получается, что "Тестер" ещё и приплачивает работодателю. (Чииииз)
12. Александр Кузин (sashocq) 190 18.03.14 13:46 Сейчас в теме
Ошибки:
  • Если после открытия сразу ввести текст запроса и выполнить, то выдаст ошибку. Нужно обязательно создать запрос в дереве.
  • Не меняется ширина дерева и текста запроса
  • Если в результате запроса нет строк, то таблица вообще не отображается
  • Если в результате запроса есть колонка с типом ТипЗначения, то выдается ошибка:
    {Форма.Форма.Форма(331)} Ошибка при вызове метода контекста (ИзменитьРеквизиты)
        ИзменитьРеквизиты(Реквизиты);
    по причине:
    Недопустимый тип реквизита. Имя: "ПолеТип"

Тестировалось на 8.3.4.437, Такси
13. Алексей Штепа (unknownDaemon) 40 18.03.14 14:23 Сейчас в теме
(12) sashocq, Спасибо! Вчера поправил, но база инфостарта глюканула, поэтому выложил только сегодня.
14. Алексей Штепа (unknownDaemon) 40 18.03.14 14:51 Сейчас в теме
(12) sashocq,

Если после открытия сразу ввести текст запроса и выполнить, то выдаст ошибку. Нужно обязательно создать запрос в дереве.

Добавил вывод сообщения, что так "ай-ай-ай" делать ;-)

Не меняется ширина дерева и текста запроса
Платформенная беда и пока не победимая. Между сворачиваемыми группами разделители не добавляются. Надеюсь в релизах платформы это починят.

Если в результате запроса нет строк, то таблица вообще не отображается

А должна? Если критичн добавлю, если хотябы какая-то таблица есть на выходе пакета — она отобразится "как есть" и реквизит формы и элемент убиваются и пересоздаются постоянно… Если на выходе результата ничего нет в пакете — то из ничего ТаблицуЗначений выдумать сложно ;-)

Как Вы знаете, надеюсь, чтобы элемент формы коллекции значений связать с реквизитом — типы должны соответсвовать (ОписанияТипов если быть точнее) именнно поэтому реквизит и элемент текущего результата рубится и создается заново… Это же еще и экономит ресурсы…

И еще. При активизации строки "Настроек" тоже происходит зачистка… Не хочу долго объяснять зачем это (можете закомментить вызов метода и получите пруфф), но если примите на веру: в случае с УИ дикие тормоза при катании формы и ее данных на сервер, мысль надеюсь понятна ;-)

Я попробую некоторые методы оптимизировать через &НаСервереБезКонтекста, но многие из них требуют контекст ;-) посему "таскать барахло" считаю неразумным (тормоза интерфейса становяться визуальными)…

!! У меня есть идея одна поиграться с хитрым задействованием динамического списка для вывода, но надо поиграться еще с этим вариантом… Тогда результат вывода будет летать и творить с ним сами понимаете что можно будет ;-) /о результатах отпишу скоро или выложу апдейт, ждите/


Если в результате запроса есть колонка с типом ТипЗначения, то выдается ошибка

За эту багу — реально огромное спасибо! Хотя пока не сильно понимаю(уже отсюда не попробовав) как ее победить, дело в том, что не все можно "катать между клиентом и сервером", как вы понимаете… Возможно то, что я хочу предпринять и описано выше — решит эту проблему …

Еще раз огромное спасибо!
19. Алексей Штепа (unknownDaemon) 40 04.04.14 01:42 Сейчас в теме
(12) sashocq, пофиксил… Для колонок с типами значений ТаблицаЗначений и Тип — принудительно устанавливается "Строка", ибо пропихнуть в коллекцию такие даные с сервера на клиент не реально.
15. OBEH (OBEH) 19.03.14 14:57 Сейчас в теме
А есть в природе консоль отчетов для управляемых форм?
17. Алексей Штепа (unknownDaemon) 40 19.03.14 22:35 Сейчас в теме
(15) OBEH, так вот она ж и есть ))))
25. OBEH (OBEH) 18.04.14 17:38 Сейчас в теме
(17) unknownDaemon, по моему, это не консоль отчетов, а консоль запросов
26. Алексей Штепа (unknownDaemon) 40 20.04.14 23:10 Сейчас в теме
(25) OBEH, совершенно верно, в описани публикации, в заголовке ее и даже по сути обработка именно Консоль запросов, а что смущает?
16. Максим Тюшков (tushich) 75 19.03.14 18:55 Сейчас в теме
Желательно отвязаться от типовых модулей (ДополнительныеОтчетыИОбработки, ДополнительныеОтчетыИОбработкиКлиентСервер и т.д.) т.к. конфигурация может их не иметь) + прикрутить время выполнения запроса(ТекущаяУниверсальнаяДатаВМиллисекундах())
18. Алексей Штепа (unknownDaemon) 40 19.03.14 22:38 Сейчас в теме
(16) tushich,

Желательно отвязаться от типовых модулей (ДополнительныеОтчетыИОбработки, ДополнительныеОтчетыИОбработкиКлиентСервер и т.д.) т.к. конфигурация может их не иметь)


Это всего один метод в модуле обработки, в соответсвующую секцию выделен, его закамментить можно… Могу конечно реализовать косенный вызов через получения модуля экзекутом, как сделано в БСП все почти сейчас и с проверкой… Как вы догадались — это метод инициализации обработки для Подсистемы Дополнительных обработок в конфах с БСП

прикрутить время выполнения запроса(ТекущаяУниверсальнаяДатаВМиллисекундах())


Ок. Сделаю
20. Алексей Штепа (unknownDaemon) 40 04.04.14 01:43 Сейчас в теме
(16) tushich, сделал вывод времени
21. andrybar (andrybar) 322 04.04.14 09:29 Сейчас в теме
22. Алексей Штепа (unknownDaemon) 40 04.04.14 11:41 Сейчас в теме
(21) andrybar, какая платформа, что пишет?
23. Владимир Казначеев (Mogidin) 123 18.04.14 15:47 Сейчас в теме
кажется на тонком клиенте не открывается конструктор запроса
24. Елена Пименова (Bukaska) 125 18.04.14 16:20 Сейчас в теме
(23) Mogidin, На тонком не работает конструктор запросов.. это для толстого клиента
27. Алексей Штепа (unknownDaemon) 40 20.04.14 23:14 Сейчас в теме
(24) Bukaska, модальные окна не открываются в тонком клиенте… А можно полюбопытствовать: нафига в тонком клиенте нужна консоль?
28. Игорь Фелькер (Brawler) 336 01.05.14 14:03 Сейчас в теме
Я так полагаю, что с выходом платформы 8.3.5 теперь стоит переписать немного обработочку и использовать КонструкторЗапроса даже в тонком клиенте))
29. Игорь Фелькер (Brawler) 336 01.05.14 14:05 Сейчас в теме
Для тех кто не в курсе новостей 8.3.5

Реализован конструктор запросов для работы в управляемом режиме. Для объекта КонструкторЗапроса реализован метод Показать().
В библиотеку картинок добавлены картинки
Переименовать, Реквизит, Измерение, Ресурс, ВложеннаяТаблица, КонструкторЗапросаОтображатьТаблицыИзменений, КонструкторЗапросаСоздатьВложенныйЗапрос, КонструкторЗапросаСоздатьОписаниеВременнойТаблицы, КонструкторЗапросаЗаменитьТаблицу, КонструкторЗапросаПараметрыТаблицы, КонструкторЗапросаСоздатьЗапросУничтоженияВременнойТаблицы
КонструкторЗапросаОписаниеВременнойТаблицы, КонструкторЗапросаГруппаВременныхТаблиц, КонструкторЗапросаВременнаяТаблица, КонструкторЗапросаВложенныйЗапрос, ПроизвольноеВыражение.
30. Алексей Штепа (unknownDaemon) 40 01.05.14 14:23 Сейчас в теме
(29) Brawler, Вы меня опередили ))))) … Я как раз ее со вчерашнего вечера перепиливаю :) В середине праздников будет апдейт.
31. Алексей Штепа (unknownDaemon) 40 01.05.14 14:29 Сейчас в теме
(29) Brawler, А Вы видели такую штуку, как "Схема запроса"? :) Полистайте в синтаксис-помощнике… Я лично немного прифигел ;-)
32. Игорь Фелькер (Brawler) 336 01.05.14 17:26 Сейчас в теме
(31) unknownDaemon, да, интересная штука, но надеюсь ее будут использовать не более чем как замену СтрЗаменить, а иначе программа будет вообще не читаемой)))
33. Сергей Галюк (dj_serega) 326 29.05.14 11:07 Сейчас в теме
Круто, но жаль что без БСП не хотит работать. Может можно выложить две версии? Первая дла БСП другая для самописок?
34. Сергей Галюк (dj_serega) 326 29.05.14 11:11 Сейчас в теме
Ну и исключительные ситуации есть :) проверки бы "понатыкать". Если что могу дописать и прислать.
35. IM Rayven (LordPhoenix) 20 30.05.14 16:18 Сейчас в теме
Круто!) Наконец то нашел хорошую консоль для УП с обработкой результата!
Спасибо!
36. Сергей Галюк (dj_serega) 326 03.06.14 11:09 Сейчас в теме
А есть резон выкладывать найденные ошибки?
37. Алексей Штепа (unknownDaemon) 40 03.06.14 11:44 Сейчас в теме
(36) dj_serega, естественно имеет
38. 1c8@8c1.ru (8c1.ru) 151 06.06.14 12:52 Сейчас в теме
В БП 3.0 не работает:

Ошибка инициализации модуля: Форма.Форма.Форма
по причине:
{Форма.Форма.Форма(230,24)}: Тип не определен (КонструкторЗапроса)
Конструктор = Новый <<?>>КонструкторЗапроса;

так и должно быть, или у меня что то не так?


1С:Предприятие 8.3 (8.3.4.465)
Интерфейс: Такси
Тонкий клиент
40. Елена Пименова (Bukaska) 125 06.06.14 12:57 Сейчас в теме
(38) 8c1.ru, Конструктор запроса вы в тонком клиенте и не откроете.. вы можете из конфигуратора перенести текст запроса и протестить его в пользовательском режиме...
А так инструменты разработчика доступны только в толстом клиенте.. хотите пользоваться конструктором из пользовательского режима, включайте режим Толстый клиент управляемого приложения)))
43. Алексей Штепа (unknownDaemon) 40 10.06.14 12:09 Сейчас в теме
(40) Bukaska, из под 8.3.5 будет работать и в тонком клиенте. 1С сделали и под него контруктор, правда не совсем обычно выглядит ;-)
Обработка определяет версию платформы и либо запускает конструктор либо нет в тонком клиенте :)
39. 1c8@8c1.ru (8c1.ru) 151 06.06.14 12:55 Сейчас в теме
41. Stas Churkin (Stas-ch) 18 06.06.14 14:05 Сейчас в теме
Вопросы:
1. Можно изменять произвольным образом ширины колонок в результате?
2. Можно выполнить часть выделенного текста запроса? (Очень помогает при отладке запроса - допустим посмотреть что выдает вложенный запрос)
45. Алексей Штепа (unknownDaemon) 40 10.06.14 12:14 Сейчас в теме
(41) Stas-ch,
1. Можно изменять произвольным образом ширины колонок в результате?

Ну если только что-то сможет препятствовать вам менять ширину колонок Поля "Коллекция формы" или "Структура с коллекцией" динамически создаваемого и удаляемого под каждый результат :)))))

2. Можно выполнить часть выделенного текста запроса? (Очень помогает при отладке запроса - допустим посмотреть что выдает вложенный запрос)

Нет... пока-что... Сделать не сложно, хоть и не особо вижу в этом смысл... чуть позже добавлю
42. OBEH (OBEH) 07.06.14 01:57 Сейчас в теме
И все же.
Есть под УФ не консоль запросов, а консоль отчетов?
44. Алексей Штепа (unknownDaemon) 40 10.06.14 12:10 Сейчас в теме
(42) OBEH, у меня нет :) Но есть масса всяких консолей для работы с СКД, на инфостарте в том числе. Вполне себе консоль отчетов по нашим временам ;-)
46. Игорь Фелькер (Brawler) 336 20.06.14 09:21 Сейчас в теме
Сейчас все больше типовых конфигураций переходит на работу с блокирующими окнами вместо модальных из-за чего на эту обработку будет матерится платформа.
Пробегите рефакторингом в 8.3.5 и исправьте все модальные вызовы в форме. Что-то придется ручками переписать увы.
47. Алексей Штепа (unknownDaemon) 40 20.06.14 16:34 Сейчас в теме
(46) Brawler, собирался. Просто сейчас загружен на работе... Не до чего... В выхи сделаю...
48. Алексей Штепа (unknownDaemon) 40 28.06.14 18:11 Сейчас в теме
49. Роман Ложкин (webester) 24 29.08.14 03:09 Сейчас в теме
Не работает если конфигурация без БСП, а жаль.
50. Алексей Штепа (unknownDaemon) 40 02.09.14 21:29 Сейчас в теме
(49) webester, закомментируйте немного кода в модуле объекта и будет без нее... :)
55. Алексей Штепа (unknownDaemon) 40 28.09.14 22:20 Сейчас в теме
56. Алексей Штепа (unknownDaemon) 40 28.09.14 22:20 Сейчас в теме
51. Михаил Крыловицкий (mikl79) 102 03.09.14 11:47 Сейчас в теме
Добрый день.
Ошибку выдает
Ошибка инициализации модуля: Форма.Форма.Форма
по причине:
{Форма.Форма.Форма(144,31)}: Тип не определен (СхемаКомпоновкиДанных)
СхемаКомпоновки = Новый <<?>>СхемаКомпоновкиДанных;
{Форма.Форма.Форма(466,30)}: Тип не определен (СхемаКомпоновкиДанных)
СхемаКомпоновки = Новый <<?>>СхемаКомпоновкиДанных;
54. Алексей Штепа (unknownDaemon) 40 28.09.14 22:20 Сейчас в теме
52. Николай Зевеке (zekrus) 151 25.09.14 11:30 Сейчас в теме
Вопрос, а как добавить ТЗ в параметр (дамп как создать)?
ВЫБРАТЬ
	РасшифровкаПлатежа.Заказ КАК Заказ,
	РасшифровкаПлатежа.ВалютаВзаиморасчетов КАК Валюта,
	РасшифровкаПлатежа.Сумма КАК Сумма
ПОМЕСТИТЬ ТаблицаПлатежей
ИЗ
	&РасшифровкаПлатежа КАК РасшифровкаПлатежа
53. Алексей Штепа (unknownDaemon) 40 27.09.14 18:26 Сейчас в теме
(52) zekrus, Напиши запрос, выполни. Потом сохрани в файл, в следующем запросе используй файл в параметре. Если тип парметра будет ТЗ — обработка выбора будет диалог выбора файла, тип параметра проставится Строка(0)… Я сейчас новую версию готовлю… Она у меня давно переписана, только нужен редизайн… Работы было много, некогда. Может на этих выходных переделаю… Если неймется — могу текущий вариант на мыло отправить 😉

ЗЫ. Как дела, дружище?
57. Михаил (ZMGMSC) 74 29.09.14 10:29 Сейчас в теме
Не видно на скринах настройки структуры отчета СКД, т.е. настройка вывода строк и колонок и группировок.
И есть ли возможность сохранить схему отчета СКД в файл , для открытия его в новом отчете на СКД в конфигураторе?
58. Алексей Штепа (unknownDaemon) 40 29.09.14 11:30 Сейчас в теме
(57) ZMGMSC, на панели, вверху кнопка "Редактировать схему", открывается в стандартном конструкторе, там с ней можно делать что угодно, в т. ч. и сохранять/загружать.

Возможно позже - сделаю отдельную форму для редактирования схемы в тонком клиенте, но надеюсь, что 1С реализует это раньше меня в платформе.
59. OBEH (OBEH) 29.01.15 15:14 Сейчас в теме
Повторяю вопрос.
Есть под 8.3 что-то, типа, вот этого?
http://v8.1c.ru/overview/PlReportConsol.htm
60. Алексей Штепа (unknownDaemon) 40 29.01.15 17:03 Сейчас в теме
(59) OBEH, ну если "что-то типа" -- то и эта сойдет. Вывод в табличный документ я добавил. Но(!) это справедливо только для СКД, а конструктор СКД я использовал штатный, поэтому (редактирование) только в толстом клиенте. А так не встречал.
Есть разные консоли для отладки СКД, они тоже вполне себе могут использоваться, как консоль отчетов.

А вот именно с таки "обвесом", который Вы показали - не встречал еще пока.
63. OBEH (OBEH) 30.01.15 05:22 Сейчас в теме
(60) unknownDaemon, ну я пользуюсь сейчас этим. Просто встраиваю в любую конфигурацию. Вроде, работает. Другие попытки реализации, пока, не устраивают.
61. Александр Дуганов (sashs1980) 63 29.01.15 18:06 Сейчас в теме
При восстановлении настроек, теряется вид запроса он же тип настройки (проверял для ADODB).
62. Алексей Штепа (unknownDaemon) 40 29.01.15 19:49 Сейчас в теме
(61) sashs1980, с какой версии на какую? Настройки восстанавливаются копированием рекурсивным. Если структура настроек поменялась -- то при восстановлении сохраненых данных из деревьев и таблиц полученых из сохраненнки возьмется то что можно вопхнуть.
64. Александр Дуганов (sashs1980) 63 30.01.15 10:33 Сейчас в теме
(62) Я про сохранение списка запросов в файл и при последующем открытии теряется тип настройки ADODB
65. Алексей Штепа (unknownDaemon) 40 30.01.15 17:38 Сейчас в теме
(64) sashs1980, и это странно. У меня не воспроизводится
66. борян петров (TODD22) 18 05.03.15 20:03 Сейчас в теме
Она не в типовых не работает. Зря скачал :(
67. игорь сергеев (dr_zhivago) 12.03.15 12:19 Сейчас в теме
Отличная штука.


1С:Предприятие 8.3 (8.3.5.1443)
1С:ERP Управление предприятием 2.0 (2.0.10.83) (http://v8.1c.ru/erp/)

При попытке сохранить настройки вылазит ошибка:

{Форма.Форма.Форма(522)}: Ошибка при вызове метода контекста (СохранитьНастройкиВФайлНаСервере)
АдресДанных = СохранитьНастройкиВФайлНаСервере();
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTree'
Оставьте свое сообщение