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