Как добавить свою кнопку в нижнюю панель РМК в «1С:Розница 2.3» и избежать ошибок при нажатии?

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

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

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

Почему стандартный подход добавления кнопки не работает?

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

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

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

---

Пошаговый алгоритм добавления кнопки в нижнюю панель РМК

Рассмотрим подробнее каждый этап разработки — от создания метаданных в конфигураторе до финальной настройки в режиме «1С:Предприятие».

Шаг 1. Создание команды формы в конфигураторе

Для начала нам необходимо открыть форму обработки РМКУправляемыйРежим (рекомендуется делать это через расширение конфигурации, чтобы сохранить поддержку и облегчить будущие обновления).

  1. Перейдем на вкладку Команды управляемой формы.
  2. Добавим новую команду формы.
  3. Критически важно: имя команды должно строго соответствовать системному шаблону: КомандаПО[ИдентификаторВашейКнопки]. Например, назовем команду КомандаПОМояКнопка.
  4. Обратите внимание: создавать стандартное действие (обработчик команды в свойствах метаданных) на этом шаге не требуется. Если связать команду напрямую со стандартным методом, это может вызвать конфликт при динамической отрисовке интерфейса.

Шаг 2. Написание обработчика нажатия в модуле формы

Поскольку кнопки нижней панели отрисовываются как декорации-картинки, при их нажатии платформа ищет в модуле формы процедуру, имя которой формируется по строгому правилу: КартинкаПО[ИдентификаторВашейКнопки]Нажатие.

Проанализируем пример кода, который необходимо добавить в модуль управляемой формы РМК:


&НаКлиенте
Процедура КартинкаПОМояКнопкаНажатие(Элемент, СтандартнаяОбработка)
    
    // 1. Отменяем стандартное поведение системы для этой картинки
    СтандартнаяОбработка = Ложь; 
    
    // 2. Описываем наше кастомное действие
    ВыполнитьНашеПроизвольноеДействие();
    
КонецПроцедуры

Разберем, почему строка СтандартнаяОбработка = Ложь; является ключевой. Если её пропустить или забыть написать, платформа после выполнения нашего кода попытается продолжить стандартную обработку клика по декорации. Так как система «не знает» назначения нашей кнопки, это приведет к ошибке выполнения.

Шаг 3. Регистрация кнопки в макете настроек кнопок

Чтобы система «увидела» нашу кнопку и позволила кассирам или администраторам настраивать её видимость, кнопку нужно прописать в специальном макете.

В конфигураторе найдем справочник НастройкиРМК. В его составе есть макет с именем СтандартныеДействияКнопокНижнейПанели. Этот макет представляет собой таблицу (макет табличного документа), в которой перечислены все доступные команды интерфейса кассира.

Добавим в эту таблицу новую строку и заполним её колонки следующими данными:

Шаг 4. Активация и настройка видимости в «1С:Предприятие»

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

Выполним следующие шаги в режиме предприятия под правами администратора:

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

Теперь при запуске рабочего места кассира на нижней панели отобразится новая кнопка, а при нажатии на неё (или при нажатии настроенной быстрой клавиши) корректно отработает наш алгоритм без каких-либо ошибок и пустых окон.

← На главную