Операции отладки запросов, кода встречаются очень часто. Например, каждые 1-5 строк кода проходят проверку в отладчике, а средняя конфигурация содержит от нескольких тысяч таких строк. Большая часть запросов предварительно проверяются в консоли запросов. Вот некоторые приемы позволяющие внести удобство в процесс создания управляемого приложения на платформе 8.2:
1. Запуск консоли запросов:
Консоль запросов на текущий момент может быть запущена только в режиме обычного приложения. В конфигураторе Сервис-Параметры-Запуск 1С:Предприятия устанавим галочку напротив «Толстый клиент (обычное приложение). При необходимости выносим на командную панель команду запуска 1С без отладки. Теперь по этой кнопке можно будет запустить 1С, а там консоль запросов. При этом параллельно отлаживать тонкий клиент. Если изменения не касаются структуры базы, то и закрывать обычное приложение не обязательно, можно просто ответить конфигуратору "обновить динамически".
2. Запуск отладки для тонкого клиента:
Однако в результате такой операции становиться не доступным запуск отладки в режиме тонкого клиента по горячей клавише (F5). Не знаю почему, но и раньше использование F5 у меня не пользовалось популярность. Однако есть способ быстро запустить отладку с помощью программы AutoHotKey. Эта программа позволяет по установленному в ней скрипту «отлавливать» нажатие клавиш с клавиатуры, мыши, джойстика и с эмитировать какие-либо другие нажатия.
Примечание: Мы могли бы эмитировать, например, alt-c - меню сервиса, потом пара нажатий в лево, пара вниз, вправо и ввод. Работает быстро , незаметно, как родное. Только одно но, в зависимости от того где находишься в конфигураторе состав меню меняется и не понятно сколько точно раз влево надо отойти, чтоб попасть на меню "Отладка". А своей комбинации это меню не имеет.
Поэтому я вывел кнопку запуска тонкого клиента прямо в главном меню, перед меню "Файл". Нажимаем правой кнопкой по главному меню и выбираем настроить, когда откроется окно настройки, на закладке "команды" в пункте "все действия" находим кнопку и просто перетаскиваем ее в главное меню перед файл. Теперь запуск тонкого клиента с клавиатуры будет всегда срабатывать по нажать+отпустить alt, нажать ввод.
Вот скрипт AutoHotkey, который делает это по Control+Правая кнопка мыши.
#SingleInstance force
#InstallKeybdHook
#InstallMouseHook
#NoEnv
SendMode, Input
SetTimer, KeepRunning
return
KeepRunning:
;
; Запускать скрипт только когда приложение активно
;
; Получить имя процесса для активного окна (например, Notepad.exe)
WinGet, szProcessName, ProcessName, A
if szProcessName = 1cv8.exe
{
Suspend, off
}
else
{
Suspend, on
}
return
^RButton::Send {F7}{Alt Down}{Alt Up}{Enter}
Что в этом скрипте? В первой части инициализация и проверка применимости, скрипт работает только в окне конфигуратора (в 8.2 это процесс 1cv8.exe). Вторая часть – последняя строчка, в которой перехватывается нажатие Control+Правая кнопка мыши и выполняется команда путем имитации нажатий на клавиатуре. F7 в начале последовательности нажатий сохраняет конфигурацию, чтоб не вылезали диалоги типа "Вы хотите обновить конфигурацию базы? Да/Нет". То есть получается такой "Турбо-запуск".
Теперь кликнув в любом месте конфигуратора правой мышью с зажатым контролом запуститься отладка в режиме тонкого клиента.
3. Окно свойств:
Окно свойств используется очень часто при редактировании реквизитов, полей формы и т.д. Особенно часто при редактировании макетов печатных форм. Стандартно для этого нужно встать на необходимый реквизит и нажать Alt+Enter или правая кнопка мыши, затем свойства. Двойной клик не всегда вызвает свойства элемента, а например, при клике на форме в дереве метаданных появляется окно редактирования формы. С помощью AutoHotKey сделаем так, что бы окно свойств вызывалось при нажатии левой кнопкой мыши с зажатым контролом (правая кнопка с контролом для отладчика). Для реализации этого добавим в скрипт еще строчку:
^LButton::Send {LButton}!{Enter}
Чтоб было понятно в скрипте символ "^" - Control, "!" - Alt, "+" - Shift.
Полный список команд, которые у меня выполняются:
^LButton::Send {LButton}!{Enter} ; Вызывает окно свойств
!LButton::Send {LButton}!+{Enter} ; Вызывает окно "дополнительно", например, редактировать вхождение в подсистемы.
^RButton::Send {F7}{Alt Down}{Alt Up}{Enter} ; Запускает тонкий клиент
!RButton::Send {F7}^{F5} ; Запускает обычное приложения, например, для консоли запросов.
Т.е. левая кнопка для конфигуратора, правая для отладчика. Control - прямое действие, Alt - дополнительное.