gifts2017

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

Опубликовал Алексей Штепа (unknownDaemon) в раздел Программирование - Инструментарий

Консоль запросов/отчетов, СКД, 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
514
.epf 3.3 57,08Kb 514 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Еще раз огромное спасибо!
15. OBEH (OBEH) 19.03.14 14:57
А есть в природе консоль отчетов для управляемых форм?
16. Максим Тюшков (tushich) 19.03.14 18:55
Желательно отвязаться от типовых модулей (ДополнительныеОтчетыИОбработки, ДополнительныеОтчетыИОбработкиКлиентСервер и т.д.) т.к. конфигурация может их не иметь) + прикрутить время выполнения запроса(ТекущаяУниверсальнаяДатаВМиллисекундах())
17. Алексей Штепа (unknownDaemon) 19.03.14 22:35
(15) OBEH, так вот она ж и есть ))))
18. Алексей Штепа (unknownDaemon) 19.03.14 22:38
(16) tushich,

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


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

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


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

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

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

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


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

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

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

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

ЗЫ. Как дела, дружище?
54. Алексей Штепа (unknownDaemon) 28.09.14 22:20
55. Алексей Штепа (unknownDaemon) 28.09.14 22:20
56. Алексей Штепа (unknownDaemon) 28.09.14 22:20
57. Михаил (ZMGMSC) 29.09.14 10:29
Не видно на скринах настройки структуры отчета СКД, т.е. настройка вывода строк и колонок и группировок.
И есть ли возможность сохранить схему отчета СКД в файл , для открытия его в новом отчете на СКД в конфигураторе?
58. Алексей Штепа (unknownDaemon) 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) 29.01.15 17:03
(59) OBEH, ну если "что-то типа" -- то и эта сойдет. Вывод в табличный документ я добавил. Но(!) это справедливо только для СКД, а конструктор СКД я использовал штатный, поэтому (редактирование) только в толстом клиенте. А так не встречал.
Есть разные консоли для отладки СКД, они тоже вполне себе могут использоваться, как консоль отчетов.

А вот именно с таки "обвесом", который Вы показали - не встречал еще пока.
61. Александр Дуганов (sashs1980) 29.01.15 18:06
При восстановлении настроек, теряется вид запроса он же тип настройки (проверял для ADODB).
62. Алексей Штепа (unknownDaemon) 29.01.15 19:49
(61) sashs1980, с какой версии на какую? Настройки восстанавливаются копированием рекурсивным. Если структура настроек поменялась -- то при восстановлении сохраненых данных из деревьев и таблиц полученых из сохраненнки возьмется то что можно вопхнуть.
63. OBEH (OBEH) 30.01.15 05:22
(60) unknownDaemon, ну я пользуюсь сейчас этим. Просто встраиваю в любую конфигурацию. Вроде, работает. Другие попытки реализации, пока, не устраивают.
64. Александр Дуганов (sashs1980) 30.01.15 10:33
(62) Я про сохранение списка запросов в файл и при последующем открытии теряется тип настройки ADODB
65. Алексей Штепа (unknownDaemon) 30.01.15 17:38
(64) sashs1980, и это странно. У меня не воспроизводится
66. борян петров (TODD22) 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'
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа