Консоль запросов для управляемого приложения 1С 8.2 — 8.3 (Такси)



Обработка Консоль запросов 8.2 — 8.3 реализует большую часть функционала стандартной Консоли запросов с диска ИТС. Варианты для платформы 8.3.5 и 8.3.6 выполнены для интерфейса Такси и включают возможность вызова Конструктора запроса в тонком клиенте.
Вариант для 8.3.5 может работать в безмодальном режиме.
Вариант для 8.3.6 вообще не использует "нерекомендуемые синхронные вызовы" (полностью асинхронный режим).

 

Обработка Консоль запросов для управляемого приложения повторяет привычный интерфейс и большинство функционала обработки Консоль запросов для 1С 8.1. Она также позволяет получать результаты пакетных запросов и временных таблиц. Нужный состав результата выполнения выбирается в поле выбора Получать результаты из трех вариантов: Только запросов, Запросов и временных таблиц, Только временных таблиц.

Запросы исполняются как под толстым, так и под тонким клиентом, поскольку для выполнения запроса по-любому происходит обращение к серверу.

Файл запросов

Файл запросов  (.sel) для Консоли запросов управляемого режима аналогичен файлу для Консоли запросов платформы 8.1; можно открывать имеющиеся файлы запросов, разработанные в 8.1. Аналогично, файлы, созданные в Консоли управляемого режима, можно открывать в Консоли 8.1.

Конструктор запроса

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

Конструктор запроса для тонкого клиента открывается как в тонком, так и в толстом клиенте нажатием на специальную кнопку на панели команд.

Параметры запроса

Параметры текущего запроса вводятся на закладке Параметры запроса в левой верхней части формы Консоли, на внутренней закладке Общие. По кнопке Заполнить производится автоматическое заполнение списка параметров из текста запроса.

Можно задавать параметр типа Тип. Для этого нужно назначить тип параметра ОписаниеТипов и задать требуемый тип. Если будет задан составной тип, то будет использоваться только первое значение из состава типов.

Параметры запроса типа Граница и МоментВремени

Параметры запроса этих типов редактируются на внутренней закладке Особые закладки Параметры запроса (она имеет специальный цветовой стиль). Их можно вводить вручную по кнопке Добавить, а также переводить в категорию «особых» параметры с внутренней закладки Общие, выполнив щелчок по флажку в колонке Особый тип — при щелчке по флажку выдается предупреждающее сообщение, и при положительном ответе на него параметр будет переведен на закладку Особые. (При автозаполнении списка параметров по кнопке Заполнить все параметры попадают на закладку Общие).

Для редактирования параметров этих типов открывается специальная форма Редактирование параметра особого типа, в которой есть поля для редактирования имени параметра и указания типа параметра (пока доступны типы Граница и МоментВремени; в дальнейшем предполагается добавить тип ТаблицаЗначений). При выборе типа из списка Тип параметра на форме появляются поля для задания значения параметра выбранного типа. Для задания значения параметра типа МоментВремени нужно указать документ, а для задания параметра типа Граница нужно указать значение и тип границы (Включая или Исключая). Для задания значения границы можно указать дату либо момент времени (выбирается при помощи радиокнопки Способ задания; в случае задания способа Дата нужно задать дату, а в случае задания способа Момент времени нужно задать документ).

Редактирование параметра завершается нажатием кнопки Завершить.

Поле результата запроса

Для отображения результата запроса в управляемом режиме используется поле табличного документа. Поскольку автоматически выровнять ширину таблицы результата по правому краю поля затруднительно, применяется визуальное выравнивание при помощи полосы регулирования (слайдера) Ширина колонок внизу формы: при перемещении ползунка вправо или влево меняется ширина сразу всех колонок таблицы результата, таким образом, можно подогнать правую границу таблицы результата под правый край формы. Ширина колонок каждого запроса сохраняется в файле запросов (.sel).

Вложенные таблицы

Вложенные таблицы (когда поле результата запроса само имеет тип РезультатЗапроса) отображаются зеленой надписью <РЕЗУЛЬТАТ ЗАПРОСА> в ячейке поля результата. Вложенная таблица открывается двойным щелчком в виде табличного документа.

Пакетные запросы

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

Временные таблицы

Если выбрано получение временных таблиц, то после выполнения запроса в тексте запросов ищутся все имена временных таблиц, и для каждой поочередно выполняется выборка, результат которой выводится. Если в пакетном запросе имеются предложения УНИЧТОЖИТЬ,  то для уничтоженных таблиц выводится сообщение об ошибке.

Выполнение выделенного текста

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

Переподчинение запроса в дереве запросов

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

 

99 Comments

  1. Душелов

    Хороший вариант. Но стоило бы тип значения параметров присваивать автоматом, а то каждый раз спрашивает (хорошо, что позиционирует на нужном)…

    Reply
  2. boln

    (1) Пробовал, не удалось — в модуле обработки делается попытка приведения типа. Буду еще копать.

    Reply
  3. Душелов

    (2) Покопай в сторону создания элементов управления на форме и реквизитов формы с нужным типом (как вариант).

    Reply
  4. boln

    (3) Угу, спасибо. Посмотрю.

    Reply
  5. Evg-Lylyk

    + За еще одну консоль 8.2 🙂

    на счет параметров и типов посмотри приложенный файл

    Reply
  6. dolter

    народ, у меня местная прокся не дает скачать файл… киньте на мыл, плз

    vakhrin собака pecom точка ru

    Reply
  7. Трактор

    (6) Ушло

    Reply
  8. 4ish

    Полезная вещь. Плюсанул. 🙂

    Reply
  9. boln

    (5) Нет, не получается. Единственное различие с твоим вариантом — у меня это поле связано с элементом формы, а не с реквизитом, поскольку параметры хранятся для каждого запроса, и связь возможна только через ТекущиеДанные грида дерева запросов.

    Ну, ничего, я 8.2 только третью неделю занимаюсь, авось, придумаю 🙂

    Reply
  10. boln

    (5) Победил. Но через прямую кишку — играя обработчиками событий. Почему не получается напрямую, как у тебя, так и не въехал. Специальные картинки кнопки выбора параметра (календарь, калькулятор) тоже не появляются.

    Обновил файл.

    Reply
  11. EvgeniuXP

    а у меня она вообще не работает в 8.2.9… конструктор не нажимается, если справа ввожу вручную запрос — он исчезает… как работать с такой консолью?

    Reply
  12. Душелов

    (11) Конструктор не нажимается в тонком клиенте?

    Reply
  13. EvgeniuXP

    (12) в толстом она вообще не открывается. Открывается в режиме управляемого приложения — тонкий клиент, но конструктор нажать не могу, он заблокирован.

    Reply
  14. Душелов

    (13) В тонком конструктор не доступен.

    Другие консоли как открываются?

    Reply
  15. EvgeniuXP

    ошибся с версией 8.2, не работает в 8.2.10.73, в младших (8.2.9 и ниже) не пробовал…

    Reply
  16. EvgeniuXP

    (14) всё, понял 🙂 работает в толстом режиме управляемом приложении.

    спасибо.

    Reply
  17. boln

    Добавил работу с пакетными запросами и временными таблицами (см. описание).

    (11) Что значит «запрос исчезает»?

    Reply
  18. EvgeniuXP

    (17) в тонком клиенте пытался вручную ввести запрос и хотел нажать кнопку «Выполнить», только не успел дописать до конца, как всё поле оказалось пустым. Сейчас смотрел, вроде нормально — написал и выполнил в тонком клиенте.

    Но есть другой глюк, если переместить нижний ползунок в самое начало (влево), то он там и остается и больше не двигается (в тонком клиенте). И загрузка процессора — 100% — 1С 8.2 висит.

    Reply
  19. boln

    (18) Угу, точно. Поставил минимум 5. Теперь вроде не зависает. Обновил.

    Кстати, здесь еще надо работать с обменом файлами списков запросов между клиентом и сервером. Это пока не сделано. Постараюсь сделать в ближайшее время, как разберусь с передачей файлов туда-сюда.

    Reply
  20. boln

    Реализовал файловое взаимодействие между клиентом и сервером через временное хранилище — т.е. полный клиент-серверный вариант.

    Reply
  21. Душелов

    (20) Кстати, у меня уже давно проявилась идея, написать свой аналог конструктора для тонкого клиента, хотя бы с минимальным набором функционала…

    Reply
  22. Душелов

    (20) Только возьми в расчет то, что в веб-клиенте другие методы работы с файлами.

    Reply
  23. boln

    (22) Угу, я о веб-клиенте как-то и не подумал. Надо как-нибудь доделать, спасибо за совет.

    Да, идеи насчет тонкого конструктора бродят среди коллег. Поднять метаданные на сервере и через XML/XDTO передать на клиент, а там код сделать для создания запроса. Конечно, работа тонкая и объемная, много свободного времени надо.

    Reply
  24. zeek

    При нажатии на DEL удаляется весь запрос. 👿 Можеш убрать фокус с дерева запросов. Меня это аж бесит.

    Reply
  25. boln

    (24) Запретил удаление запроса по DEL. На кнопку «Удалить запрос» повесил Ctrl+BackSpace.

    Reply
  26. EvgeniuXP

    >> При нажатии на DEL удаляется весь запрос. smile:evil:

    >> Можеш убрать фокус с дерева запросов. Меня это аж

    >> бесит.

    так вот в чем была проблема 🙂 (пост 11, ответ на 17 пост) 🙂

    тоже нажимал Del

    Reply
  27. detec

    Что-то не получается сохранять и открывать файлы *.sel. При открытии такого файла вообще ругается.

    Reply
  28. boln

    (27) Можно подробнее? И файл на анализ, плз.

    Reply
  29. detec

    Файл пытался брать от 8.1. Я немного ковырял код обработки: получилось, что ЗначениевФайл() даёт ложь. Равно как и ЗначениеИзФайла().

    Конфигурация — УТ 11, самая последняя, толстый клиент в режиме 3-х звенки, всё на одной машине.

    Всё, написал и сразу же понял. Если всё это будет выполняться &НаСервере, и пытаться сохранить в каталог пользователя, то Windows рубит через NTFS такие попытки. У меня сервер 1С:Предпряитие работает под обычной учётной записью специально созданного для него пользователя.

    Reply
  30. detec

    Т.е. нужно так её переписать, чтобы строка файла приезжала с сервера, а клиент уже сохранял бы уже под правами пользователя Windows, под которым запущен толстый клиент.

    Reply
  31. boln

    (30) Не уверен, что правильно понял. У тебя последний вариант, с файловым взаимодействием между клиентом и сервером через временное хранилище? Если нет — скачай последний, если да, то тогда действительно нужно что-то думать.

    Reply
  32. detec

    (31) Обновил консоль до последней версии: всё заработало. Спасибо!

    Reply
  33. boln

    (32) И Вам спасибо, коллега! 🙂

    Reply
  34. Душелов

    Ну и стоит добавить конструктор запроса в контекстное меню.

    Reply
  35. boln

    (34) Угу, добавил.

    Еще сделал возможность выполнить выделенный текст из контекстного меню, как в старой Консоли, чтобы вложенные запросы отдельно выполнять.

    Обновил.

    Reply
  36. EvgeniuXP

    Добавил комментарий к консоли 8.1, если интересует, могу выслать свои наработки для переделки под 8.2 🙂 http://infostart.ru/public/64616/?PAGEN_1=1#tab_new_forum (34 пост). Мой емайл evgeniuxp@yandex.ru.

    Reply
  37. boln

    (36) Да не, спасибо, мне щаз работенку подкинули срочную — так что долго руки чесаться не будут 🙂

    Reply
  38. V_V_V

    (37) Хорошая консоль, только что очень выручила. Но есть один вопросик — нет в планах доработки параметров, чтоб можно было выбирать Тип (Значение, Выражение, Список) и Тип значения (конкретный или составной), как в консоли Инструментов разработчика 8.1? И по файлу запросов — каждый раз при открытии приходится его вручную выбирать, можно чтоб сохранялся последний?

    Reply
  39. boln

    (38) Насчет Типа значения — хорошая мысль, постараюсь в ближайшие дни доработать, забыл как-то, что в запросах 8.2 типы появились. А вот про Тип (Значение, Выражение, Список) — не понял. Как это? Список значений вроде и сейчас можно выбирать.

    Сохранение файла запросов — да, тоже надо доделать.

    Reply
  40. V_V_V

    (39) Ой, со списком значений я действительно протупил — не заметил эту строку в полном списке объектов, сейчас досмотрел. Именно его мне и не хватало, по большому счету. Спасибо за отличную консоль! 🙂

    Reply
  41. boln

    (38) Не так-то все просто с параметром-типом. Реквизит формы может иметь тип ОписаниеТипов, но не Тип, а нужно именно Тип, причем конкретный.

    Надо еще подумать.

    P.S. Гы, пока писал — придумал. 😀 Буду при присвоении параметра обрабатывать тип ОписаниеТипов отдельно.

    Reply
  42. boln

    Новая версия.

    1. Добавлена возможность изменения родителя в дереве запросов — перетаскиванием на нового родителя.

    2. Добавлена возможность задавать параметр типа Тип.

    Reply
  43. boln

    Исправлена ошибка перетаскивания.

    Reply
  44. Sol

    В тестовом релизе платформы 8.2.11.201 перестали заполнятся (да и вообще добавляться и редактироваться) Параметры запроса.

    Reply
  45. boln

    (44) Пока еще не юзал 8.2.11. Посмотрю на той неделе.

    Reply
  46. boln

    (44) На версии 8.2.11 слетает связь таблицы параметров с табличным полем. Исправил. Но эта новая версия уже не работает в 8.2.10. Поместил в архив обе версии — для 8.2.10 и для 8.2.11.

    Reply
  47. vadver

    В процедуре «ТонкийКлиент()» ошибка — неправильно опознается режим запуска. Если у меня режим запуска «Толстый клиент» и в конфигурации включена возможность использования управляемых форм в обычном приложении — в заголовке формы все равно пишется «(тонкий клиент)». Исправление очевидно.

    Reply
  48. boln

    (47) Странно, у меня все в порядке. Проверил на 10 и на 11 релизе, специально включил Использовать управляемые формы в обычном приложении. Запускал из отладчика.

    Можно подробнее?

    Reply
  49. vadver

    (48) Основной режим запуска — обычное приложение. Флаг использования управляемых форм в обычном приложении -установлен. Релиз 8.2.11.229

    Собсно, там ошибка такого рода: стоит проверка

    #Если НЕ ТолстыйКлиентУправляемоеПриложение Тогда

    А надо:

    #Если ТонкийКлиент ИЛИ ВебКлиент Тогда

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

    Reply
  50. boln

    (47) А, понял. Вы запускаете толстый клиент — обычное приложение.

    Да, действительно, надо исправить условие инструкции препроцессору.

    Reply
  51. boln

    При создании нового запроса по нажатию Insert создавался неинициализированный элемент. Теперь с клавиатуры новый запрос создается по нажатию F11.

    Reply
  52. boln

    Продолжаем исправлять сволочные ошибки перехода на версию 8.2.11.

    В таблице параметров у поля значения оторвались кнопки очистки и выбора. Исправил.

    Reply
  53. boln

    Еще одна — при переходе на 8.2.11 оторвались обработчики событий у поля значения параметра. Исправил.

    Reply
  54. ut2k5

    не заполняются параметры (платформа 8.2.11.235)

    Reply
  55. boln

    (54) См. посты 46 и 52.

    Reply
  56. REA

    Добрый день! Не открывается программа в 8.2.11.236. Что нужно сделать, чтобы пользоваться Вашей программой (может быть какие-то настройки).

    Reply
  57. boln

    (56) Добрый день! А в каком режиме Вы открываете, не в обычном ли? Если в управляемом, то что именно происходит?

    Reply
  58. boln

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

    Сделал возможность выводить вместо представления значение ГУИД ссылки — получение ГУИД ссылки не требует обращения к информационной базе.

    Reply
  59. boln

    Ребята, последние дни прямо не успеваю вынимать из ящика письма о «плюсах» 😀

    Всем плюсовавшим — огромное спасибо! Всем с благодарностью жму руки.

    Reply
  60. milanse

    Неплохая разработка, но что-то долго открывается.

    Я пока пользуюсь другой, давно поставил, теперь лень перетаскивать запросы из нее.

    Из пожеланий:

    Длинный синоним, может просто «Консоль запросов» ?

    Ни к чему отдельно выполнить выделенное. Просто выполнить, если выделено то только его, так работает мс кверианализер и в постгри по-моему так.

    Забайндить какую-нить кнопку на выполнить, может «f5» ?

    Лишние вопросы сохранять, не сохранять…

    Reply
  61. boln

    (60)

    Благодарю за анализ.

    На скорость открытия вроде никто еще не жаловался. Канал с сервером как, в порядке? Искуссвенная задержка не установлена?

    По пожеланиям.

    1. Да, синоним уже можно сократить.

    2. Нет. В старой Консоли это задрало: забыл снять выделение с какого-то слова — сразу ошибка выполнения запроса.

    3. Согласен. Сам давно хочу горячую клавишу на Выполнить повесить, все забываю.

    4. Не согласен, эти вопросы лишними не бывают.

    Reply
  62. boln

    По просьбе коллеги сделал, чтобы Консоль также показывала временные таблицы англоязычных запросов (когда вместо ПОМЕСТИТЬ стоит INTO).

    Reply
  63. vitonya

    Конструктор запросов хорошо бы еще сюда…

    Reply
  64. boln

    (63)

    vitonya пишет:

    Конструктор запросов хорошо бы еще сюда…

    Смею предложить первый опыт помощника для создания запросов в тонком клиенте:

    http://infostart.ru/public/83529/

    Reply
  65. GUOhelen

    Я легко внем разобралась, очень пригодился

    Reply
  66. zahar33

    Прикольненько

    Reply
  67. sergey1280

    Неплохо бы кнопку с конструктором вынести на панель, это первое, а второе сделать вариант сохранения теста запроса в отформатированном для 1С виде, т.е. с символами «|» в начале каждой строки. А то добавлять их потом вручную сильно лениво…

    Reply
  68. boln

    (67)

    Кнопка вызова Конструктора на панели есть, только она невидима. Можно самостоятельно установить флажок видимости.

    Копировать в модуль предпочитаю через Конструктор запроса. Он не только расставляет символы «|», но и удваивает кавычки в строковых литералах.

    А для автоматической расстановки символов «|» есть специальная кнопочка «Добавить перенос строки», она находится в категории «Текст модуля» на закладке «Команды» формы настройки панелей. Нужно просто перетащить ее в одну из панелей Конфигуратора. Выделяем фрагмент, нажимаем кнопочку — и символы «|» появляются в начале каждой строки выделенного фрагмента.

    Reply
  69. Borisych

    А чем-то отличается от консоли что в составе каркасной конфигурации для сдачи СПЕЦа по платформе?

    Reply
  70. boln

    (69)

    Там 1С-овская Консоль запросов для работы в обычном режиме.

    Reply
  71. Borisych

    (70) консоль как и вся каркасная в управляемом. Работы с ВТ нету как обычно.

    Reply
  72. boln

    (71)

    Borisych, а где это?

    Я скачивал отсюда:

    http://www.1c.ru/rus/partners/training/questions.htm

    Reply
  73. Borisych

    (73) и правда косяк вышел. Когда задачку по спецу решал — видел в интерфейсе, а конфа только в УП, думал 1С-цы сделали консоль под 8.2 УП. Оказывается нет 🙂

    Reply
  74. Borisych

    (73) и правда косяк вышел. Когда задачку по спецу решал — видел в интерфейсе, а конфа только в УП, думал 1С-цы сделали консоль под 8.2 УП. Оказывается нет 🙂

    Reply
  75. boln

    (74)

    Borisych, да они сделали под УП — на последнем ИТС есть. Там есть работа с ВТ. Похоже, слизали все, что можно, у меня и у Чистова :))

    Только вот нахрен они сделали файл запросов в формате XML? Все равно ведь этот файл никто, кроме этой Консоли запросов, не читает. И в результате совместимость пропала.

    Reply
  76. Borisych

    (76) пришли пожалуйста на почту grigorievab@list.ru и ещё обработку «Создание нового пользователя ИБ» или что-то в этом духе. До ИТС-ника наверно ток через неделю доберусь

    Reply
  77. boln

    (77)

    См. почту.

    Reply
  78. Kaatinga

    Как только не извращаются… Чем вам обычный не нравится??

    Reply
  79. angy

    однозначна плюс

    Reply
  80. Масянька

    Хорошая штука,главное полезная

    Reply
  81. arthur2003

    очено удобная штука. Долго искал, наконец то нашел. Держите плюс!

    Reply
  82. Katerina_S

    автору плюс

    Reply
  83. ms200999

    Использую эту консоль давно, пора автору плюс поставить. 🙂

    Reply
  84. ASoft

    Автору + и спасибо.

    Reply
  85. westinka

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

    Reply
  86. bssat

    Спасибо за обработку. Пробовал несколько подключать в разных режимах, открывается форма с одной кнопкой и все. Никаких запросов. А эта обработка заработала сразу. Вроде пока нареканий нет.

    Reply
  87. Поручик

    (0) А сам файлик с обработкой последней версии?

    Консоль запросов для управляемого приложения 8.2 / Версия 5

    Reply
  88. Altair777

    А есть такое же красивое для 8.1? Конкретно для толстого НЕ управляемого 8.2.13.202 с включенной эмуляцией 8.1 🙂

    Reply
  89. boln

    (89) Поручик, дык вроде здесь у меня всегда последняя…

    Reply
  90. boln

    (90) Altair777, для обычного режима вроде Чистов делал.

    http://infostart.ru/profile/1437/

    Reply
  91. Altair777

    (92) я ее пользуюсь сейчас, но она не такая красивая 🙂

    Reply
  92. Поручик

    (91) Здесь дата обновления 29.07.2010 20:02, на странице Консоль запросов для управляемого приложения 8.2 / Версия 5 — март 2011 года.

    Reply
  93. Поручик

    (93) Вам шашечки или ехать? Я например в конфигурациях на УФ 8.2 в обычном режиме успешно пользуюсь консолью от Лавелина.

    Reply
  94. Altair777

    (96) Консоль от Чистова не очень удобная, а эта мне показалась получше (по скриншотам)

    Reply
  95. boln

    (97) Altair777, не, я не делал для обычного режима. Уже почти два года, как вожусь только с управляемым — работа такая.

    Как сказал в частном разговоре тов. Радченко, «обычный режим — это атавизм» 🙂

    Reply
  96. Поручик

    (99) Джэкпот

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

    Reply
  97. boln

    (100) Поручик, да я сам с ним не общаюсь, это один из наших преподов их разговор передал.

    А вкратце, какие там проблемы с реализацией?

    Reply
  98. AlexO

    (101)

    А вкратце, какие там проблемы с реализацией?

    точно такие же, как и в остальных — УФ не ориентированы на создание качественного, компактного и информативного интерфейса.

    Reply
  99. boln

    (21) dushelov, прощай, Василий.

    Только что случайно прочитал на Т1С, что тебя больше нет с нами.

    Reply

Leave a Comment

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