Удобство разработки в 8.2, тонкий клиент.

09.06.10

Разработка - Механизмы платформы 1С

Приглашение к разговору о комфортной работе в конфигураторе.

 

Операции отладки запросов, кода встречаются очень часто.  Например, каждые 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 - дополнительное.

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4531    dsdred    53    

72

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    5294    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6410    dsdred    36    

112

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18475    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12088    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.08.2023    8822    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

20.08.2023    6279    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15986    SeiOkami    31    

103
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. detec 136 10.06.10 09:46 Сейчас в теме
Плюс за креативность. Однако:

1) Если используется WSH, то будет работать только в XP.

2) жаль, что нет нормальных средств автоматизации рутинных действий в Конфигураторе 8-ки (насчёт 7.7 - не знаю, не работал) (((
2. cruse 6 10.06.10 10:46 Сейчас в теме
(1) Не, WSH тут не используется, если надо что-то "припрограмить", то это можно делать прямо в скрипте. У меня тут по сути только используется Send, а можно свои функций писать. На форуме AutoHotkey выкладывали инструкцию как C# прикручивать. У меня все хозяйство пашет на Win7, глюков не обнаружил.

По поводу 2: Не хватает, согласен. Не паханное поле. Я например пока не знаю как сделать такую вещь. В УТ 11 логично сделали, что во всех списках первым идет номер документа, потом дата. Их ширина 10, 14 явно прописаны в свойствах. Это отличается от того, что создается по умолчанию. Таких правил порядком набирается. Хотелось бы иметь такой инструмент (может в виде отдельной ИБ), который перед выпуском клиенту проверит соответствие на прописанные правила. Ведь хочется, чтоб результат был чистым, без досадных косяков.
10. orefkov 1152 16.06.10 11:02 Сейчас в теме
(1)
2) жаль, что нет нормальных средств автоматизации рутинных действий в Конфигураторе 8-ки (насчёт 7.7 - не знаю, не работал) (((

Эх, отнюдь не от хорошей жизни бывшие продвинутые семорочники все пытаются AutoHotKey к 8ке прикрутить. Тяжело отвыкать от наркотиков.
3. Душелов 4013 10.06.10 10:56 Сейчас в теме
>Консоль запросов на текущий момент может быть запущена только в режиме обычного приложения

Не совсем понятна эта фраза... Есть уже несколько консолей, которые прекрасно работают в управляемом приложении.
4. cruse 6 10.06.10 14:04 Сейчас в теме
(3) Можно ссылочку для ознакомления :) И еще, есть ли в этих консолях редактирование запроса в конструкторе?
5. cruse 6 10.06.10 14:07 Сейчас в теме
(3) Есть ли там редактирование запроса в конструкторе?
6. coach 102 10.06.10 17:40 Сейчас в теме
(5) нужно консоль запускать в толстом клиенте управляемом приложении, тогда и будет конструктор доступен..
8. Kettle 16.06.10 03:51 Сейчас в теме
Ну почему, почему автор так ненавидит русский язык?
Товарищ, зачем мы ЭМИТИРУЕМ кнопки?! Не повлечёт ли это за собой падения биржи? Не проще ли их ИМИТИРОВАТЬ?

И есть одно "но" - автор не ставит "но" в кавычки в подобных оборотах! А ещё он ненавидит пунктуацию...

И, да, dushelov уже всё сказал...
9. cruse 6 16.06.10 10:30 Сейчас в теме
(8) Спасибо, добрый человек!
Оставьте свое сообщение