Консоль запросов "Запросник" для управляемых форм с подсветкой синтаксиса

31.10.16

Разработка - Инструментарий разработчика

Вот уже много лет я использую замечательный инструмент для работы с запросами - Запросник. Однако, с переходом на управляемые формы для его использования пришлось запускать базы в устаревшем толстом клиенте, да еще и разрешать в свойствах конфигурации использование обычных форм. В 2014 году появился запросник на управляемых формах, который, к сожалению, оказался несовершенен из за ограничений платформы. Самое неприятное из них - отсутствие подсветки синтаксиса. Мне кажется, что я нашел решение этой проблемы.

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

Наименование Файл Версия Размер
Запросник2_1_4.epf
.epf 462,53Kb
237
.epf 462,53Kb 237 Скачать
Запросник2_1.epf
.epf 455,80Kb
18
.epf 455,80Kb 18 Скачать
Запросник2_1_2.epf
.epf 528,62Kb
14
.epf 528,62Kb 14 Скачать
Запросник2_1_3.epf
.epf 416,64Kb
3
.epf 416,64Kb 3 Скачать

С самого начала киллерфича - подсветка синтаксиса запроса с помощью текстового редактора CodeMirror, написанного на javascript. Редактирование запроса происходит в поле html документа, что создает некоторые трудности и ограничения, но об этом позже. На данный момент используется самый ненагруженный функционалом вариант текстового редактора, просто корректная подсветка ключевых слов и выделением текущей строки, однако возможности для развития огромные.

В планах на развитие

- Автодополнение ключевых слов

- Подсветка объектов метаданных и реквизитов

- Подсказка параметров виртуальных виртуальных таблиц

- Позиционирование на первую строку с ошибкой, подсветка строк с ошибками

- Сворачивание запросов в пакете


За основу взят запросник на управляемых формах (ссылка в конце публикации). Выражаю свою благодарность его автору, mrstomak, который проделал очень большую работу. Мою разработку прошу считать форком управляемого запросника, отдельной веткой развития.

В процессе прикручивания к запроснику текстового редактора была пофиксено парочка мелких багов и сделано с несколько небольших дополнений. Даю самые заметные кратким списком:

- Добавлено поле поиска запроса по наименованию. 

- Расположение основных кнопок приведено к более привычному виду, похожему на оригинальный запросник, с его шикарной эргономикой. Увы, полностью повторить пока невозможно,  но мысли как улучшить эргономику есть

 - При переключении версий запроса текущая версия отображается поверх поля редактирования, как в оригинале, а не появляющейся и исчезающей текстовой декорацией над редактором. Изменение видимости декорации на старых релизах может вызвать ресайз формы


Теперь о плохом. Наш мир далек от идеала, в процессе работы пришлось преодолеть множество трудностей и некоторые только с помощью костылей

- Самая главная проблема - неполноценность поля html документа как браузера, в частности оно не позволяет нормально обрабатывать нажатия некоторых клавиш, таких как кнопки со стрелками, home, end, insert. Решить ее удалось с помощью внешней компоненты, перехватывающей нажатия кнопок на клавиатуре и отдающей их напрямую скриптам. Большой костыль, но если в 1С однажды появится браузер на базе webkit (как в линукс клиенте, ага) этот костыль будет не нужен

- Еще одна проблема - странное поведение мыши при выделении текста в старых релизах. Мы ставим курсор, тянем мышь и замечаем что выделена только первая буква. Начиная с релиза 8.3.5.1385 этой проблемы не существует

- Третья серьезная проблема, привязка к версии браузера системы. Если у вас WinXP и браузер ни разу не обновлялся, то скорее всего зрелище будет печальным. Минимальная версия IE в системе при которой все должно корректно работать - IE8.

Уверен, что есть еще несколько проблем, оставшихся мной незамеченными, также я не тестировал разработку в веб-клиенте , линукс-клиенте и релизах версии 8.2. Надеюсь на обратную связь в комментариях.


В данной разработке использованы:

Запросник

Запросник на управляемых формах

CodeMirror

ВК для перехвата клавиатуры


Версия 2.1.2

- Поддержка долгово нажатия клавиш со стрелками на современных релизах (8.3.5.1385 и новее)

- Отображение номеров строк 

- Подчеркивание слов, совпадающих с тем, на котором установлен курсор

- Пофиксен баг с удалением корня дерева запросов

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


Версия 2.1.3

- Отрезана поддержка обычного приложения и целая гора легаси кода, связанного с ней

- Разбор запроса по временным таблицам с помощью схемы запроса, а не сомнительного анализа текста, часто дающего сбой

- Автодополнение ключевых слов по Ctrl+Пробел 

  

ВНИМАНИЕ! Из за особенностей поля html документа не получилось сделать подтверждение выбранного варианта по нажатию на Enter. Нажатие на Enter переводит курсор на следующую строку и обойти этот момент без совсем феерических костылей мне пока не удалось. Для выбора в всплывающем списке следует использовать стрелку вправо или мышь. Это непривычно только первую сотню раз (Больше неактуально, исправлено в версиии 2.1.4)

- Подсветка групп метаданных (Справочник, Документ, Регистр...) полужирным шрифтом, автодополнение их по Ctrl+Пробел

- Мгновенное обновление результата при переключении способа отображения таблица/дерево (Раньше надо было заново выполнить запрос)

- Исправлена ошибка с таблицей значений в параметрах для тонкого клиента

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


Версия 2.1.4

- Доработана внешняя компонента для перехвата клавиатуры в результате чего удалось добиться правильного поведения клавиши энтер в контекстной подсказке и более корректного поведения курсора при переходе на новую строку

Запросник Консоль запросов javascript codemirror

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 руб.

02.09.2020    119959    656    389    

701

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7016    20    6    

37

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    3253    10    1    

31

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177352    1071    0    

846

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99207    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    17921    6    8    

38

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    27949    3    10    

14

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23493    15    15    

31
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4707 19.04.16 09:58 Сейчас в теме
Много раз порывался сделать подобное, но именно изобилие необходимых костылей останавливало.
2. Darklight 32 19.04.16 12:53 Сейчас в теме
Обработка отличная. Замечательный широкий функционал. Работают конструкторы запросов, даже в тонком клиенте. Есть инструменты отладки запросов и временных таблиц. Обработки результатов запросов. Удобная настройка параметров. Форматирование текста. И т.д. Всё замечательно! Но, тем не менее, уже есть десять замечаний:
1. Не работают длительные нажатия на клавиши стрелочек на клавиатуре – фиксируется только одно нажатие. Очень неудобно!
2. Выделение текста бывает дуальным (у меня голубеньким и серо-бежевым). Серо-бежевое выделение (видимо после потери фокуса) не даёт, например, удалить текст клавишей DELETE. А выделение либо сбрасывается при восстановлении фокуса, либо фокус не восстанавливается при возврате в это поле редактирования.
3. При вертикальных перемещениях по строкам, переходит в конец строки, длинна которой меньше, текущей горизонтальной позиции. Непривычно и неудобно. 1С в этом случае подставляет в строку виртуальные пробелы и сохраняет горизонтальную позицию. А если начать вводить текст – виртуальны пробелы становятся реальными.
4. При вводе новой строки клавишей ENTER происходит автовыравнивание по предыдущей строки. Для редактора запросов это не привычно. Было бы неплохо сделать это поведение настраиваемым. А так же задействовать горячую комбинацию клавиш для обратного поведения. Например: Ctrl+Enter – причём сейчас эта комбинация уже как-то отвечает за выравнивание текущей строки. Но логику поведения я не понял.
5. Нельзя выделить часть текста запроса и только её открыть в конструкторе. Хотелось бы чтобы можно было так же открыть пустое выделение для вставки нового запроса. И чтобы такая открытая часть видела временные таблицы (описанные выше по тексту, вне выделения). Как это работает в типовой 1С.
6. Генератор алгоритма запроса не генерирует обход запроса (в т.ч. по группировкам), как это делает типовой конструктор (этот режим можно даже отдельной опцией реализовать). Так же в этом алгоритме не подставляются переменные параметров запроса (как имена этих параметров) как это происходит в типовом конструкторе 1С. Это не привычно и обычно не удобно.
7. Нет возможности вывести результат в табличный документ (таблицы или дерева). Кнопка «Просмотр результата» это что-то не то.
8. В окне списка запросов есть кнопка перемещения запроса на позицию вверх. Но нет кнопки перемещения вниз (конечно можно через клавиатуру или подменю, но всё равно не логично). Не работает циклическое перемещение между граничными позициями списка. А в подменю нет пункта перемещения на другой уровень.
9. При возврате из конструктора запросов с пустым запросом иногда выдаёт ошибку.
10. Отмена операции редактирования запроса через Alt+Backspace не работает (работает Ctrl+Z). Не работает и повтор отменённой операции. Отдельные кнопки на форме тоже бы не помешали.

Ещё пара пожеланий:
1) Чтобы в тексте запроса можно было бы вставлять расширенные описания, например для шаблонов подстановки (задаваемые например так ///Шаблон_подстановки///) – они должны настраиваться в отдельном списке и подставляться при выполнении запроса для его выполнения или запуска конструктора. Так же в таких описаниях могли бы быть заданы типы для описаний полей временных таблиц (а то в конструкторе запросов их задавать можно, но после генерации текста они теряются).
2) При генерации алгоритма запроса для модуля комментарии сохраняются – это хорошо. Но было бы здорово, если бы они сохранялись и при использовании конструктора (это очень абстрактное пожелание – т.к. тут нужно думать как их сохранять, синхронизировать, к чему привязывать, особенно когда конструктор будет сильно изменять запрос – но подумать и хоть что-то сделать можно).
В любом случае авторам (использованных оригиналов и этого решения) большой респект!
3. 1С_Мастер 61 19.04.16 13:39 Сейчас в теме
1. Не работают длительные нажатия на клавиши стрелочек на клавиатуре – фиксируется только одно нажатие. Очень неудобно!

Да, действительно, если сделать реакцию на нажатие, а не отпускание клавиши, все заработает, но в старых релизах (Проверял на 8.3.5.1248) браузер начинает вести себя неадекватно. Скорее всего я сделаю привязку к релизу, чтобы на новых долгое нажатие работало
2. Выделение текста бывает дуальным (у меня голубеньким и серо-бежевым). Серо-бежевое выделение (видимо после потери фокуса) не даёт, например, удалить текст клавишей DELETE. А выделение либо сбрасывается при восстановлении фокуса, либо фокус не восстанавливается при возврате в это поле редактирования.

Да, действительно, спасибо, добавлено в багтрек

3. При вертикальных перемещениях по строкам, переходит в конец строки, длинна которой меньше, текущей горизонтальной позиции. Непривычно и неудобно. 1С в этом случае подставляет в строку виртуальные пробелы и сохраняет горизонтальную позицию. А если начать вводить текст – виртуальны пробелы становятся реальными.

Не уверен, что это будет просто, но почему бы и не сделать

4. При вводе новой строки клавишей ENTER происходит автовыравнивание по предыдущей строки. Для редактора запросов это не привычно. Было бы неплохо сделать это поведение настраиваемым. А так же задействовать горячую комбинацию клавиш для обратного поведения. Например: Ctrl+Enter – причём сейчас эта комбинация уже как-то отвечает за выравнивание текущей строки. Но логику поведения я не понял.

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

5. Нельзя выделить часть текста запроса и только её открыть в конструкторе. Хотелось бы чтобы можно было так же открыть пустое выделение для вставки нового запроса. И чтобы такая открытая часть видела временные таблицы (описанные выше по тексту, вне выделения). Как это работает в типовой 1С.

Принято, добавлено в очередь

6. Генератор алгоритма запроса не генерирует обход запроса (в т.ч. по группировкам), как это делает типовой конструктор (этот режим можно даже отдельной опцией реализовать). Так же в этом алгоритме не подставляются переменные параметров запроса (как имена этих параметров) как это происходит в типовом конструкторе 1С. Это не привычно и обычно не удобно.

Принято, добавлено в очередь

7. Нет возможности вывести результат в табличный документ (таблицы или дерева). Кнопка «Просмотр результата» это что-то не то.

Уже в очереди

8. В окне списка запросов есть кнопка перемещения запроса на позицию вверх. Но нет кнопки перемещения вниз (конечно можно через клавиатуру или подменю, но всё равно не логично). Не работает циклическое перемещение между граничными позициями списка. А в подменю нет пункта перемещения на другой уровень.

Да, действительно, начиная с версии 8.3.8 эти кнопки перестали помещаться на командной панели, добавлено в багтрек

9. При возврате из конструктора запросов с пустым запросом иногда выдаёт ошибку.

Добавлено в багтрек

10. Отмена операции редактирования запроса через Alt+Backspace не работает (работает Ctrl+Z). Не работает и повтор отменённой операции. Отдельные кнопки на форме тоже бы не помешали.

Вы первый человек на моей памяти, кто использует это сочетание клавиш, но почему бы его и не реализовать, дело нехитрое. Добавлено в очередь
4. Darklight 32 19.04.16 16:12 Сейчас в теме
Не уверен, что это будет просто, но почему бы и не сделать

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

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

Тогда хотя бы настройку включения/выключения такого выравнивания. Просто в синтаксисе языка запросов это удобство не всегда очевидно и непривычно.

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

Повтор отменённой операции тоже неплохо бы: Ctrl+Y, Ctrl+Shift+Z, Alt+Shift+Backspace и кнопочки на форме (провёл на работе опрос коллег пропорция 60%/20%/20% Ctrl+Z/Alt+Backspace/только через кнопки меню и прочее)

Ещё десять ;) багов, замечаний и предложений:
11. Ошибка при попытке удалить корень в списке запросов (когда он не последний)
12. В форме настройки параметров не работает задание списка параметров (не сохраняется настроенный в форме список в значении параметра)!!!
13. В форме настройки параметров не работает задание параметра как таблицы. После добавления первой колонки заблокировалась колонка с именем колонки - больше не удалось настраивать имя колонок. Даже открыв форму заново.
14. В форме настройки параметров как таблицы - нельзя у колонки выбрать групповой тип, например "все документы", "все справочники", "все ссылки".
15. Хочется иметь возможность вставить содержимое таблицы параметра из буфера обмена (например из EXCEL). Хочется, чтобы колонки добавились автоматически (с типами строк хотя бы). Хочется быструю генерацию запроса выборки из такого параметра во временную таблицу.
16. Хочется иметь возможность загрузить данные параметра из файла (как простого текстового, так и xml (либо простого одномерного произвольного списка-массива, либо сериализованной таблицы значений 1С), excel (в таблицу); в т.ч. с возможностью опционально распознавать ссылки 1С (из UUID) и загружать их как ссылочные значения; или иметь возмдность подлкюбчить произвольный алгоритмы: как алгоритм персональной конвертации, отдельных значений; так и общий алгоритм чтения файла.
17. Хочется иметь возможность в одном запросе ссылаться на результат (и, возможно, параметры) другого запроса из этого же файла или даже другого файла (подключаемые запросы), который автоматически будет помещаться во временную таблицу. Чтобы разбивать большие запросы на кусочки и не дублировать их в копиях запросов.
18. Хочется подключаться к другим базам через OLE (а потом ещё и через WEB-сервисы), выполнять в них запросы и получать результат во временную таблицу (включая возможность размещения их в отдельных запросах дерева запросов как указано в пред пункте).
19. Хочется кнопку для быстрой генерации условий для оператора "ССЫЛКА" для проверки на типы (чтобы можно быстро мультивыделением выбрать нужны типы, так и обратное прочтение сгенерированного текста для настройки такого конструктора). Круто было бы и такие конструкции писать "///Поле Ссылка Документ.*///" и это автоматически разворачивалось бы в длинное условие на проверку типа поля "ПОЛЕ", что он является одним из документов конфигурации.
20. В подменю (и в командной панели) редактора запроса нет стандартных команд работы с буфером обмена, очистки, выделения (и отмены/повтора операции редактирования)
5. 1С_Мастер 61 19.04.16 16:33 Сейчас в теме
(4) Darklight, Не буду отвечать на каждый пункт, предложения по большей части вкусные и частично уже находятся в todo листе. Отвечу только на то, что сам первоначально принял за баг взятой за основу разработки

12. В форме настройки параметров не работает задание списка параметров (не сохраняется настроенный в форме список в значении параметра)!!!

На самом деле все работает, но кнопка "Сохранить" не помещается на форме редактирования списка значений, надо растянуть форму пошире и кнопка появится.
Такое случается в такси на формах изначально сделанных под старые УФ. Конечно, логичнее было бы, сохраняйся список при закрытии, доберусь и до этого
6. Darklight 32 19.04.16 16:49 Сейчас в теме
Ещё десяток багов и замечаний :))))
21. Криво работает поиск в тексте запроса. При поиске вниз ищет только самое первое вхождение. Причём всегда сверху. Поиск ищет перебирая слова снизу вверх как и положено, но тоже не умеет определять текущую позицию начала поиска. Странно работает поиск по выделенному фрагменту. Вроде как ищет. Но даже при поиске назад сбивается. Выделение при этом тоже может сбиться. Если в выделенном блоке нет искомой подстроки поиск идёт далее по коду.
22. Есть проблема и с обратным поиском (к текущему направлению) по комбинации Shift+F3
23. Поиск с учетом регистра регистр не учитывает (но вроде это только при поиске назад).
24. Кнопки команд поиска не вынесены ни на форму ни в подменю. Работают только горячит клавиши Ctrl+F, F3, Shift+F3 (ещё какие-то, какие я не знаю?)
25. Нет "Поиска и замены" (вообще нет, даже Ctrl+H, Ctrl+R не помогает)
26. Горячие комбинации не показаны в меню и подсказках к кнопкам
27. Нет номеров строк по вертикали (нигде нельзя посмотреть даже текущую позицию курсора)
28. Нет команды перехода к строке №
29. Я бы выполнение запроса поставил бы на клавишу F5 - привычнее для 1С. А на клавишу F7 вызов конструктора запроса. А аа F10 переход к выполнению алгоритма
30. В некоторых окнах (например окне работы с типами или списками) нет кнопки "Закрыть"/"Применить"/"ВЫБРАТЬ"/"ОК" - не хватает для удобного восприятия/использования. (а лучше бы пара кнопок включая "ОТМЕНА").
8. cleaner_it 220 22.04.16 04:18 Сейчас в теме
(6) Darklight, в 29 пункте F7 - это стандартный запуск исполнения запроса в консоли. Изменять на F5 не нужно
15. 1С_Мастер 61 06.05.16 15:03 Сейчас в теме
(6)
36. Ещё одна серьёзная ошибка - возникает при изменении (существующего) параметра типа "ГраницаЗначений" ...


Хотелось бы уточнить в виду имелась Граница или Таблица Значений. Если таблица значений, то этот баг я только что пофиксил в тестовой версии, он был связан с недоступностью ТЗ в тонком клиенте, а если Граница, то повторить его мне не удалось.
7. Darklight 32 19.04.16 16:54 Сейчас в теме
На самом деле все работает, но кнопка "Сохранить" не помещается на форме редактирования списка значений, надо растянуть форму пошире и кнопка появится.

Да, не заметил. Как и большинство, скорее всего не заметит сразу. Может перенести эту ОЧЕНЬ важную кнопку левее! И вообще перейти на кнопки с иконками, вместо текста.
Или можно просто у формы "СписокЗначенийУпр" увеличить ширину в конфигураторе с 50 до 60. И сделать кнопку "Сохранить" кнопкой по умолчанию (соотв. флагом) - будет работать по Ctrl+Enter

Пункты 11 и 13 это баги - нужно исправлять ;)
9. Darklight 32 25.04.16 14:36 Сейчас в теме
31. Обнаружил серьёзную ошибку - плохо отрабатывается текст запроса в комменатриях (т.е. некоторые внутренние алгоритмы обработки не видят, что текст закомменатирован и пытаютя выполняться - что приводит к ошибкам). Например такой запрос

ВЫБРАТЬ 1 как поле
//ПОМЕСТИТЬ тмп

приводит к такой ошибке

{ВнешняяОбработка.КонсольЗапросовИОбработчик.Форма.ФормаУпр.Форма(933)}: Ошибка при вызове метода контекста (Выполнить)
ТЗ = Запрос.Выполнить().Выгрузить();
по причине:
{(1, 14)}: Таблица не найдена "тм"
Выбрать * Из <<?>>тм


Это только пример - в других случаях могут быть другие ошибки (я наталкивался пока на ошибки связанные с временными таблицами).

Ещё ошибка
32. Когда в выборке нет строк и нажать гиперссылку "Выполнить алгоритм":
{ВнешняяОбработка.КонсольЗапросовИОбработчик.Форма.ФормаУпр.Форма(2001)}: Значение не является значением объектного типа (Колонки)
СтруктураКолонок = РезультатОбъект.Колонки;


И ещё три мелких замечания:
33. При открытии файла запросов *.sel (в т.ч. автооткрытие последнего при открытии обработки) если в нём несколько запросов - нужно сразу открывать список дерева запросов (чтобы было видно, что их там несколько). А я бы всегда открывал этот список (по умолчанию).
34. Двойным кликом по запросу в дереве - нужно выполнять его (а не входить в режим редактирования имени)
35. Сделать иконку у пункта "Конструктор запросов" подменю поля текста редактируемого запроса (это единственный пункт там без иконки). Можно было бы туда и пункт выполнеия запроса добавить (в т.ч. только выделенной части). Про нехватку остальных пунктов для этого подменю я уже писал.

36. Ещё одна серьёзная ошибка - возникает при изменении (существующего) параметра типа "ГраницаЗначений" (в момент выполнения запроса и часто, но не всегда, в момент сохранения в файл - при этом сохранение не происходит, а имя файла сбрасывается на ZaprTemp.sel (в директории TEMP), который и открывается далее при перезапуске обработки.
Заметил, что имя файла сбивается ещё до возникновения ошибки (при закрытии окна редактирования параметров после изменения параметра "ГраницаЗначений")
В общем-то, изменение даже может не требоваться, бывает достаточно просто повторно открыть и зкарыть форму с параметров "ГраницаЗначений".

{Форма.ФормаУпр.Форма(312)}: Ошибка при вызове метода контекста (СохранитьДеревоЗапросовВФайлНаСервере)
АдресВХранилище = СохранитьДеревоЗапросовВФайлНаСервере();
по причине:
При работе формы произошла системная ошибка (нарушена синхронизация состояния формы на клиенте и сервере).: "Различаются значения счётчиков для данных форм: 10.2931 != 10.2689"


При этом другой запрос из списка (в т.ч. с параметром "ГраницаЗначений") вполне может нормалльно работать.
И БОЛЕЕ ТОГО, если будет выбран этот (другой) запрос как активный, то и в файл будет сохраняться без ошибки.

Ошибка вощникает только в клиент-серверной ИБ. Проверено на релизе платформы 1С 8.3.6.2449

37. Так же бывает при редактировании параметра ГраницыЗначений видно одно значения (оно используется в запросе), в поле строки списка параметров - другое. И, по-моему, это как раз бывает после ПЕРЕОТКРЫТИЯ файла запросов и всей обработки.
10. 1С_Мастер 61 25.04.16 15:49 Сейчас в теме
Мда, легаси код кроме плюсов того, что его не надо писать имеет свои недостатки.

Я планирую переделать работу с анализом временных таблиц на СхемуЗапроса, баг уйдет. При этом, правда, отвалится поддержка релизов, старше чем 8.3.5, но не думаю что на них сидит так уж много народа.

Второй баг "исправлен в тестовой версии"
11. Darklight 32 25.04.16 16:13 Сейчас в теме
(10) в предыдущем комментарии я добавил ещё одну важную ошибку (после Вашего ответа на него)
12. Darklight 32 25.04.16 16:16 Сейчас в теме
Использование объекта "СхемаЗапроса" это, конечно, хорошо, но... уж больно он кривой. ОЧЕНЬ КРИВОЙ и чувствительный к изменениям структуры запроса (особенно при работе с временными таблицами). Хотя в режиме "Только чтение" работает хорошо! Но его API очень сырой и неудобный!
13. Darklight 32 29.04.16 11:16 Сейчас в теме
38. Нашёл внтури вот такую функцию АлгоритмВыполняетсяНаСервере()
ну и процедуру ВыполнитьАлгоритм(Команда)

Это что за фигня такая там написана?
То есть, если алгоритм не выполняется в транзакции и весь находится внутри цикла ("Для Каждого СтрокаРезультата Из РезультатТаблица Цикл"), то он выполняется построчным перебором на клиенте с серверным вызовом на каждую обрабатываемую строку. НА КАЖДУЮ! А если их будет миллион.... будет миллион серверных вызовов!
Это просто кошмар! И жуткое падение производительности.

Я уж промолчу про возможность распараллеливания на фоновых процессах....

Нужно просто сделать переключатель, говорящий где нужно обрабатывать алгоритм: на сервере или на клиенте.
Ну у расппаралелливание тоже не помешало бы (как один из вариантов серверной обработки алгоритма)
14. 1С_Мастер 61 29.04.16 11:43 Сейчас в теме
Нашёл внтури вот такую функцию АлгоритмВыполняетсяНаСервере()
ну и процедуру ВыполнитьАлгоритм(Команда)
Это что за фигня такая там написана?

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

Ну у расппаралелливание тоже не помешало бы (как один из вариантов серверной обработки алгоритма)

Таки да, это запланировано, наравне с фоновым выполнением самих запросов
16. kddvad1m 2 17.08.16 13:42 Сейчас в теме
Есть ли возможность выгрузить результат запроса в файл?
17. YuraMatasov 18 25.08.16 13:10 Сейчас в теме
Можете пожалуйста скинуть на: j21r01a91@mail.ru
18. YuraMatasov 18 25.08.16 13:12 Сейчас в теме
Можете пожалуйста скинуть на: j21r01a91 (собака)майл.ру
19. Serg2000mr 310 26.10.16 15:39 Сейчас в теме
в обработке отсутствует Модуль объекта и Модуль менеджера. Соответственно нет обещанной функции отладки Дамп
ВнешниеОбработки.Создать("d:\zapr.epf",Ложь).Дамп(Запрос)
20. viplelik 34 12.11.16 01:37 Сейчас в теме
Можете поделиться Вашей разработкой (в личку)? К сожалению еще не набрал 1$m
Спасибо.
21. viplelik 34 15.11.16 12:11 Сейчас в теме
А можете сделать подсветку синтаксиса в "Выполнить алгоритм" как у Тезина?
и довести функционал до его последней версии?
22. 1С_Мастер 61 15.11.16 12:21 Сейчас в теме
(21) viplelik, Дайте ссылку на публикацию, посмотрю что возможно
23. viplelik 34 15.11.16 12:24 Сейчас в теме
http://infostart.ru/public/72969/ tezin Тезин (tezin)
Сайт Запросника: https://sites.google.com/site/vtezin/zaprosnik-1s
Основа - консоль запросов ИТС
24. 1С_Мастер 61 15.11.16 12:42 Сейчас в теме
(23) viplelik, Понял о чем вы. Цели полностью повторить функционал оригиального запросника на управляемых формах я себе не ставил. Целью было именно реализовать подсветку синтаксиса для управляемых форм. Прикрутить недостающие фишки, конечно, можно но, отнимет слишком много свободного времени, столько энтузиазма у меня нет. Да и взял за основу я далеко не лучшую консоль для управляемых форм. По хорошему стоит начать разработку с нуля, а не бороться с наследственными болезнями, но тут снова проблема мотивации. С подсветкой синтаксиса в поле для выполнения кода та же проблема
25. ybatiaev 58 11.12.17 11:20 Сейчас в теме
Вошёл. Нажал СКАЧАТЬ за стартмани. С меня списалось $m и нет ничего. ((((
HELP!
26. starik-2005 3031 11.12.17 11:31 Сейчас в теме
(25)
HELP!
На почту письмо пришло со ссылкой на скачивание?
ybatiaev; +1 Ответить
27. ybatiaev 58 11.12.17 11:33 Сейчас в теме
(26) Вот только что... скачал. Просто привык к нормальному, что приходит в течении 2-3 минут. Извините!
Если удастся удалить эти файлы, чтобы других не смущать, удалите плиз!
28. karpik666 3759 11.12.17 11:41 Сейчас в теме
Идея хорошая, но перехватчик клавиатуры работает ужасно, передвижение курсора по стрелочке работает через раз, либо курсор может перескакивать через слова, нажатие ctrl+пробел может сработать, а может передвинуть курсор на символ вправо, а затем обработка может вообще на некоторое время зависнуть, очень жаль, что нужно теперь самому копаться в коде.
29. KandKonst 32 11.04.18 17:28 Сейчас в теме
Запросник2_1_4
В верхнем окне где должно быть поле ввода запроса ошибка:
Не удается отобразить эту страницу

{ВнешняяОбработка.КонсольЗапросовИОбработчик.Форма.ФормаУпр.Форма(167)}: Метод объекта не обнаружен (GetQuery)
ТекстЗапроса.УстановитьТекст(ОкноБраузера().GetQuery(""));

Что не так?
30. KandKonst 32 13.04.18 08:02 Сейчас в теме
(29) проблема устранилась ручной чисткой папки temp. Видимо проблема в некорректном завершении работы 1с.
31. DC 149 13.04.18 12:05 Сейчас в теме
Не хочет регистрировать компоненту...

{Обработка.КонсольЗапросовИОбработчик.Форма.ФормаУпр.Форма(42)}: Тип не определен (AddIn.Hook.KeyboardHook)
мКомпонентаKeyBoardHook = Новый("AddIn.Hook.KeyboardHook");
32. DC 149 13.04.18 15:58 Сейчас в теме
33. lepth 09.08.18 15:14 Сейчас в теме
(31)
Не хочет регистрировать компоненту...

Такая же беда
34. shurkav 11 20.08.18 16:49 Сейчас в теме
Так же "Тип не определен" (платформа 8.3.11, если важно)
35. Demitry 22.08.18 12:03 Сейчас в теме
Что делать с ошибкой Тип не определен (AddIn.Hook.KeyboardHook)?
JohnConnor; +1 Ответить
40. InWith 26 20.11.18 13:32 Сейчас в теме
41. JohnConnor 64 22.01.19 08:14 Сейчас в теме
36. 1С_Мастер 61 22.08.18 14:59 Сейчас в теме
Тип не определен (AddIn.Hook.KeyboardHook)


Подозреваю, что у вас x64 клиент

Компонента писалась во времена, когда его не существовало. Попробуйте клиент х32
37. Demitry 22.08.18 17:29 Сейчас в теме
(36)
На клиенте х32 та же ошибка.
38. Demitry 22.08.18 17:34 Сейчас в теме
(36)
Что еще может быть? Такая ошибка не только у меня.
39. Demitry 23.08.18 07:11 Сейчас в теме
Итого, пробовали на разных ПК, на разных системах, пытались вручную зарегистрировать компоненту - результата не достигли. Закомментировали процедуру по подключению внешней компоненты, удалось запустить обработку, однако работать с ней невозможно по следующим причинам:
1. Не работают горячие клавиши от слова "Совсем".
2. Не работают стрелки перемещения по тексту.
3. При нажатии на enter курсор устанавливается в начало строки всегда.
Полагаю, за все эти функции как раз и отвечает внешняя компонента.
Пока проблема с компонентой не будет устранена - пользоваться невозможно.
Пробовали на платформах 8.3.11 и 8.3.12.
PowerBoy; p.ugrumov; JohnConnor; +3 Ответить
42. p.ugrumov 171 24.01.19 11:19 Сейчас в теме
Не работает.
1С:Предприятие 8.3 (8.3.12.1714)
{ВнешняяОбработка.КонсольЗапросовИОбработчик.Форма.ФормаУпр.Форма(43)}: Тип не определен (AddIn.Hook.KeyboardHook)
мКомпонентаKeyBoardHook = Новый("AddIn.Hook.KeyboardHook");

И 1с зависает и больше не реагирует.
43. пользователь 04.12.19 07:45
Сообщение было скрыто модератором.
...
Оставьте свое сообщение