[8.2] Управляемая консоль запросов (только управляемые формы)









Разрабатывал практически с нуля, старался максимально использовать возможности новой платформы.
Ничего особенно выдающегося… просто шаг вперед

Из интересного (то чего нет и консолях для 8.1):
Сообщения привязанные к полю для ошибок в тексте запроса
Сохранение настроек в базе (в хранилище настроек)
«Управляемый интерфейс» изменение пользователем формы, уведомления.
Более информативное оформление результата (на скриншотах)
Выделение значений в таблице NULL, ПустаяСсылка и т.д.

Данная обработка устарела рекомендуем использовать

[8.3] Управляемая консоль отчетов (расширение)

 

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

Данная версия предназначена исключительно для платформы 8.2 (управляемые формы) и требует платформу версии 8.2.11 и старше. Не поддерживается работа в режиме клиент-сервер для 64-разрядного сервера 1С Предприятие.

Является идейным продолжением //infostart.ru/public/16782/ (использовался опыт и код)

Особенность функционала более подробно:

Изменен интерфейс относительно стандартного консольного. Теперь настройки находятся на одной закладке, а результат на другой во весь размер формы. Это дает больше места на экране для просмотра результата и настройки запроса (параметры, редактирование текста запроса).
На это натолкнули меня некоторые ошибки платформы 8.2 и консоль http://www.infostart.ru/public/57704/

Сохранение настройка запросов в хранилище базы
В 8.2 появились ХранилищаНастроек (данные хранятся в базе) т.е. теперь можно в любой конфигурации сохранять настройки запросов в базе, это работает быстро и по идее менее проблемно в Веб-клиенте (не тестировал).

Подцветка значений
Выделяются значения: NULL, Неопределено, ПустаяСтрока, ПустойУникальныйИдентификатор, ПустаяДата, ПустоеВремя, ПустаяСсылка: Х
Есть проблемы с подцветкой NULL значений в платформе 8.2.13.165, 180 версии тестовые надеюсь в релизе исправлят.

В результате запроса, в заголовке колонки отображается картинка тип поля запроса.

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

Замер времени выполнения запроса (информация о количестве строк в результате)

Удобное редактирование списка запросов (группы, выделение, перенос)

Параметр список значений

Делал "внутренности" с учетом пред. опыта гибко и универсально. Параметры — возможны типы МоментВремени, Граница (нужно будет для отладки)

p.s.

Публикую чтобы отловить ошибки, собрать замечания и идеи.

Поддержку СКД добавлю значительно позже т.к. не собираюсь часто публиковать версии.

Другие консоли 8.2:
//infostart.ru/public/64522/
//infostart.ru/public/21925/
http://nashe1c.ru/materials-view.jsp?id=307
http://www.infostart.ru/public/57704/

76 Comments

  1. Stepa86

    Не хочешь совместить с версией для 8.1? Так чтобы в упр. режиме открывалась упр. форма, а в обычном режиме — версия из 8.1 сконвертированная под 8.2?

    Reply ↓
  2. Evg-Lylyk

    (1) Не планировал… запустить ведь не трудно. Они будут очень разные.

    Reply ↓
  3. detec

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

    {ВнешняяОбработка.УправляемаяКонсольОтчетов.МодульОбъекта(18)}: Ошибка при вызове конструктора (COMОбъект)

    JavaScript = Новый COMОбъект(«MSScriptControl.ScriptControl»);

    по причине:

    Class not registered

    ОС: Windows Server 2008 R2 x64.

    Reply ↓
  4. Evg-Lylyk

    (3) Попробуйте установить MSScriptControl — sct10en.exe. В вашей ОС не зарегестрирован этот класс возможно имеет другое имя.

    Reply ↓
  5. detec

    (4)

    Поставил файл, рестартовал службу. Не помогло.

    Reply ↓
  6. detec

    Выяснил попыткой запуска с Windows Powershell x64 и x32. Компонент («MSScriptControl.ScriptControl») совместим только с 32-битным окружением. Сервер 1С:Предприятие x64 не поддерживеат вашу разработку.

    Reply ↓
  7. Evg-Lylyk

    (5) Извините, даже не знаю что сделать. Проблема в том что в вашей ОС нет MSScriptControl, а он нужен для работы обработки (конкретно замера времени выполнения в мс). Возможно другое имя класса.

    Reply ↓
  8. Evg-Lylyk

    (6) Плохо 🙁 Спасибо за подсказку, буду думать чем заменить.

    Reply ↓
  9. nikolega

    Все просто решается — делайте оболочку для запуска 32 битного приложения по х64.

    Reply ↓
  10. nikolega

    (8) Как сие делается:

    1. запустите утилиту Component Services

    2. создайте пустое COM+ приложение со следующими параметрами:

    — с Activation type — Server application

    — с именем MSScriptControl

    — укажите имя пользователя Windows, от имени которого компонента будет запускаться — выбрать System или Система

    — при запросе членов Роли CreatorOwner, помимо сущуствующей учетки, добавить туда System или Система

    — в ветке Components добавьте новую компоненту <путь к DLLке>

    Reply ↓
  11. Душелов

    💡 хорошо 🙂

    Reply ↓
  12. Eternalsun

    {ВнешняяОбработка.УправляемаяКонсольОтчетов.МодульОбъекта(18)}: Ошибка при вызове конструктора (COMОбъект)

    JavaScript = Новый COMОбъект(«MSScriptControl.ScriptControl»);

    по причине:

    Класс не зарегистрирован

    Reply ↓
  13. Eternalsun

    И что предлагаете — каждому пользователю прописывать? Нет, то не выход

    Reply ↓
  14. zeal

    Eternalsun, Павлик, ты чтоль?!

    Reply ↓
  15. CyberCerber

    Спасибо за обработку! Жаль, конечно, что в клиент-серверном варианте контсруктор запроса не работает.

    Reply ↓
  16. sumixam

    Спасибо буду тестировать….

    Reply ↓
  17. Saint

    (15)

    CyberCerber пишет:

    Жаль, конечно, что в клиент-серверном варианте контсруктор запроса не работает

    Чё это вдруг? В толстом клиенте пробовал запускать?

    Reply ↓
  18. Evg-Lylyk

    (17) Если сервер 1С 64 битный там есть проблемы т.к. используется COMОбъект «MSScriptControl.ScriptControl»

    прочитайте комментарии с 3


    Извините это не в тему

    Reply ↓
  19. Evg-Lylyk

    (15) Запускайте в режиме толстого клиента и конструктор будет доступен (смотрите картинку)

    Reply ↓
  20. Евгения Сон

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

    Reply ↓
  21. ICPROFI

    Огромное спасибо! А то надоело переключаться то в упр, то в толстый клиент.

    Reply ↓
  22. girlochka

    полезная штука!

    Reply ↓
  23. isn

    Очень полезный инструмент.

    К нему бы прикрутить СКД — и было бы просто верх мечтаний

    Reply ↓
  24. Ledok

    В свое время делала самописную для 8.1, а вот до упр. форм так и не добралась..

    Спасибо! Очень удобная вещь!

    Reply ↓
  25. Kesr

    подниму, нужно прикрепить СКД как в версии для 8.1. очень помогает

    Reply ↓
  26. SNT

    Полезная обработка.Спасибо!

    Reply ↓
  27. Гость

    Полезная обработка, спасибо

    Reply ↓
  28. pulpik

    Добрый день.

    Скачал, в тонком клиенте не активна кнопка конструктор. Не подскажите в чем проблема?

    Reply ↓
  29. Evg-Lylyk

    (28) Чтобы был доступен конструктор запросов необходимо запускать в режиме толстого клиента.

    В конфигураторе — Сервис — Параметры — Запуск 1С:Предприятия — (Приложение — Толстый клиент (управляемое приложение))

    Reply ↓
  30. Nika-cat

    Спасибо очень ждала

    Reply ↓
  31. Alexey55

    Спасибо большое! очень полезная вещь!

    Reply ↓
  32. TRansgen

    Шикарно! Вещь номер 1 необходимая программисту! Работает четко!

    Reply ↓
  33. JohnyDeath

    Кстати о вашей консоли.

    Почему мало кто из разработчиков консолей добавляет мегаполезную кнопочку под названием «Добавить/Убрать |» (которая добавляет/удаляет символ | в начало каждой строки текста запроса)? Ведь это же очень удобно — копировать запрос в конфигуратор или вставлять в консоль из конфигуратора. Неужели вы пишите запросы только что б посмотреть результат в ТЗ/ТабДоке?

    Reply ↓
  34. Evg-Lylyk

    (34) В старой консоли это было… как пожелание записал… может позже. Все работают по разному кто то пишет запросы вручную кто то не пользуется консолью и т.д. мне как то эта функция не особо была нужна (я нажимаю ПКМ — Конструктор — Копирую текст запроса).

    Reply ↓
  35. Ledok

    Да, обработка классная, только.. постоянно из-за неё 1С-ка вылетает.

    Так что есть тут какая-то проблемка.

    Причем больше связано с действиями на клавиатуре, например когда копирую и вставляю текст, или надо прокрутить большой текст.

    Пишешь — пишешь запрос, а тут раз и всё заново надо начинать,

    никто с таким не сталкивался?

    з.ы. пробовала на разных базах (УТ, УНФ)

    Reply ↓
  36. Evg-Lylyk

    (35) Да, наблюдал такое иногда какие то непонятные вылеты… в коде вроде никакого криминала. Да я сам не знаю как такое программно делать.

    Reply ↓
  37. kernst

    а текст модуля будет закрыт всегда? или планируешь его открыть?

    если встраивать в конфигурацию, то потом не удобно делать поиск глобальный, при поиске он будет всегда останавливаться на этой обработке

    Reply ↓
  38. Evg-Lylyk

    (37) пока закрыт, потом может открою

    Reply ↓
  39. Sam13

    Спасибо. Очень помогло. Респект и + автору

    Reply ↓
  40. dour-dead

    //Формирование подсказки по колонке

    Элемент.Подсказка = Гл.ПолучитьПодсказкуДляОписанияТипа(Реквизит.Имя, ТипРеквизита);

    Элемент.ПутьКДанным = ПутьКДанным;

    {Форма.ОсновнаяФорма.Форма(1712)}: Ошибка при установке значения атрибута контекста (ПутьКДанным): Недопустимое значение

    Reply ↓
  41. Sairys

    Вот это как раз то что я и искал, сейчас будем тестить, и сравнивать что лучше всё хуже.

    Reply ↓
  42. Sairys

    Кстати по поводу. (Выделяются значения: NULL, Неопределено, ПустаяСтрока, ПустойУникальныйИдентификатор, ПустаяДата, ПустоеВремя, ПустаяСсылка: Х) отдельный респект.

    Reply ↓
  43. Sairys

    {ВнешняяОбработка.УправляемаяКонсольОтчетов.МодульОбъекта(18)}: Ошибка при вызове конструктора (COMОбъект)

    по причине:

    Класс не зарегистрирован

    Reply ↓
  44. Evg-Lylyk

    (44) Возможно у вас x64 server почитайте коменты там разбиралась эта проблема.

    Как вариант закоментить этот код. Он отвечает за замер времени выполнения запроса

    Reply ↓
  45. Sairys

    Понятно, спасибо за ответ.

    Reply ↓
  46. kirillkr

    При повторном выполнении запроса, возникает коллизия

    {Форма.ОсновнаяФорма.Форма(1667)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)

    ИзменитьРеквизиты(МассивДобавляемыеРеквизиты, РезультатВДеревеДобавленныеРеквизиты.ВыгрузитьЗначения());

    по причине:

    Неуникальное имя реквизита. Имя: «Значение»
    Reply ↓
  47. DMSDeveloper

    (10) А вот фиг там.

    Не помогает такой финт. Уже мозг себе сломал, как обойти.

    Немного не в тему. Может кто нибудь подсказать, как можно на стороне сервере (регламентное задание) запустить некий батник.

    Суть в том, что есть острая необходимость в использовании спец. софта, который написан на Java (мать её так…)

    и запуск возможен только через Bat-файлы.

    Reply ↓
  48. all_i_ance

    Запрос:

    «ВЫБРАТЬ

    Контрагенты.Наименование

    ИЗ

    Справочник.Контрагенты КАК Контрагенты»

    Вышла ошибка: «Класс не зарегистрирован» !!!!

    Подскажите в чем же собственно проблема???

    Reply ↓
  49. all_i_ance

    (16) sumixam, каковы результаты теста?

    Reply ↓
  50. sumixam

    (50) all_i_ance, в общем проверил я обработку никаких у меня серьезных косяков не вылезло!!!

    Reply ↓
  51. all_i_ance

    А по моей ошибке кто-нибудь ответит? 🙂

    Reply ↓
  52. Evg-Lylyk

    (52) Почитай в начальных комментах… Там есть замер времени он работает от COM объекта закоментируйте код. Замера времени не будет, но должно работать.

    Reply ↓
  53. all_i_ance

    (53) благодарю!

    Reply ↓
  54. plevakin

    Пользуюсь версией 1.0.8 и хотел бы узнать чем 1.0.9 отличается от 1.0.8? Вынесен ли блок Java в настройки, чтоб не использовать его тем, у кого это не работает?

    Reply ↓
  55. Evg-Lylyk

    (55) извините сейчас не развиваю. Нет времени

    Reply ↓
  56. suvolod

    нет режима просмотра временных таблиц, который реализован в большинстве аналогичных обработок. Жаль.. только из-за этого отнесу эту обработку к разряду «прочих»

    Reply ↓
  57. DikovSV

    Не увидел оформление NULL, а очень хотелось бы. Через вид сравнения «равно» или «содержит» null не обрабатывается.

    Reply ↓
  58. Evg-Lylyk

    (58) в ранних версиях платформы я делал… позже если не ошибаюсь 15 не работает. На сайте 1С заинтересованность в решении проблемы не проявили. Теперь не сделать, а возможность была интересная

    Reply ↓
  59. sbv2005

    Все таки люди путают консоль запросов с консолью отчетов. Здесь нет СКД, как в консоли отчетов. Вообщем это консоль запросов. Автор меняй название, иначе поставлю минус

    Reply ↓
  60. Evg-Lylyk

    (60) «Вообщем это консоль запросов. Автор меняй название»

    По названию согласен.

    Reply ↓
  61. Bukaska

    (61) Здравствуйте! А ваша консоль для тонкого или для толстого клиента?

    Reply ↓
  62. Evg-Lylyk

    (62) Да работает в обоих клиентах, только конструктор запросов работает только в толстом клиенте

    Reply ↓
  63. Bukaska

    (63) Но текст запроса можно вставлять на исполнение? если я правильно поняла

    И параметры можно задавать в тонком клиенте?

    Reply ↓
  64. Evg-Lylyk

    (64) Да конечно! Редактировать можно.

    Reply ↓
  65. Yran

    (45) Вы пишите, что можно закоментировать в модуле объекта замер времени и будет работать под 64-разрядном сервере но модуль объекта под паролем!!! как быть?

    Reply ↓
  66. Evg-Lylyk

    (66) Обновил файл, убрал пароль с модуля

    Reply ↓
  67. Bukaska

    (67) Больше нигде паролей не стоит?)))))

    Reply ↓
  68. Manticor

    При добавлении в данную консоль запроса — 1с-ка отваливается через раз с записью дампа памяти. Может есть уже более работающий релиз?

    Reply ↓
  69. Evg-Lylyk

    (70) К сожалению нет. Развивать пока не планирую

    Напишите конкретнее что за запрос. Мне нужно воспроизвести ошибку

    Reply ↓
  70. Manticor

    (71) ну вот например такой запрос http://forum.infostart.ru/forum26/topic101149/message1044374/#message1044374

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

    Reply ↓
  71. Evg-Lylyk

    (72) у меня работает на платформах версий 8.2.19, 8.3.4

    такой запрос воспроизвести проблематично т.к. у меня нет вашей конфигурации

    Reply ↓
  72. Bajo

    Обработка умеет трансформировать запрос 1с в T-SQL?

    Reply ↓
  73. Rustig

    удобно, что результат запроса выведен на все окно в отдельной закладке

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

    Reply ↓
  74. Kamikadze

    После обновления сервера выдает ошибку:

    {ВнешняяОбработка.Запросник2_0.Форма.Форма.Форма(2799)}: Ошибка при вызове конструктора (COMОбъект)

    обMSScriptControl = Новый COMОбъект(«MSScriptControl.ScriptControl»);

    по причине:

    -2147221164(0x80040154): Class not registered

    Кто знает что делать?

    Reply ↓
  75. Evg-Lylyk

    (74) Нет

    (76) Вопрос не по моей консоли

    Предположу что этот код используется для замера длительности выполнения запроса в мс, сейчас в платформе есть функции для решения этой проблемы

    Reply ↓
  76. Kamikadze

    (77), Проблема была с криво установлденными обновлениями Виндовса

    Reply ↓

Leave a Comment

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