Как назначить горячую клавишу для функции «Отложить чек» в РМК 1С:УНФ

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Торговля и дистрибуция
← На главную

В конфигурациях 1С, работающих на платформе 1С:УНФ, функционал Рабочего места кассира (РМК) является достаточно жестко регламентированным. Пользователи часто сталкиваются с ситуацией, когда стандартный набор горячих клавиш не включает в себя все необходимые команды, например, часто используемую функцию «Отложить чек». Давайте разберем, почему это происходит и как мы можем самостоятельно внедрить нужную комбинацию клавиш, не нарушая целостность типовой конфигурации.

Почему нельзя настроить горячие клавиши в пользовательском режиме?

При анализе настроек рабочего места в режиме «1С:Предприятие» мы видим, что доступный список функций ограничен разработчиками конфигурации. Назначение горячих клавиш в 1С привязано к конкретным командам формы, которые были заранее предусмотрены в коде. В типовых решениях УНФ команда «Отложить чек» не выведена в список доступных для пользовательской настройки. Попытки изменить конфигурацию напрямую (снятие с поддержки) — это путь, который мы крайне не рекомендуем, так как это усложнит последующие обновления программы.

Решение задачи с помощью расширения конфигурации

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

Рассмотрим по шагам, как мы реализуем эту задачу:

  1. Создание расширения: Создаем новое расширение конфигурации, добавив в него форму, в которой находится кнопка «Отложить чек» (обычно это форма РМК).
  2. Захват формы: Добавляем форму в расширение, используя функцию «Заимствовать форму».
  3. Создание команды: Внутри расширения создаем новую команду формы. В свойствах этой команды мы можем назначить Сочетание клавиш, например, Ctrl+F12.
  4. Привязка кода: В обработчике нажатия нашей новой команды мы вызываем ту процедуру, которая отвечает за выполнение откладывания чека в типовом коде.

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


&НаКлиенте
Процедура КомандаОтложитьЧекНажатие(Команда)
    // Вызываем стандартную процедуру формы, отвечающую за откладывание чека
    ОтложитьЧекНаСервере();
КонецПроцедуры

Важно помнить, что при использовании такого подхода мы должны внимательно следить за тем, чтобы выбранная комбинация клавиш не пересекалась с системными сочетаниями Windows или другими горячими клавишами, которые уже используются внутри 1С, такими как Alt+F4 или стандартные клавиши управления таблицами.

Проблема фокуса ввода и панели быстрых товаров

Часто пользователи замечают, что горячие клавиши срабатывают только тогда, когда открыта панель быстрых товаров. Это связано с архитектурой 1С: «горячие» клавиши в 1С часто привязываются к элементам управления, которые имеют Фокус ввода. Если фокус находится в поле ввода штрихкода, форма может «не видеть» команду, если она не описана как Глобальная команда формы.

Чтобы наша клавиша работала независимо от того, где стоит курсор, мы должны убедиться, что команда, созданная в расширении, добавлена в коллекцию Команды формы и имеет свойство Использование установленное в Авто, а в настройках самого Сочетания клавиш указана правильная привязка к действию формы.

Рекомендации по реализации

При разработке расширения учитывайте следующие важные аспекты:

Подводя итог, можно сказать, что хотя типовой функционал 1С:УНФ не дает нам гибкости в настройке кнопок через «Галочки», архитектура системы позволяет нам легко расширить возможности программы через Расширения. Это сохраняет стабильность системы и дает нам полный контроль над интерфейсом кассира.

← На главную