Как настроить форму и добавить колонки в новом РМК в 1С:УНФ?

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

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

Почему в новом РМК скрыта кнопка «Еще»

Выясним причину отсутствия стандартных элементов управления. Интерфейс современного РМК спроектирован по концепции специализированного POS-терминала («режим киоска»). Разработчики намеренно минимизировали элементы стандартных управляемых форм по нескольким причинам:

  1. Оптимизация под сенсорные экраны и клавиатурный ввод: интерфейс рассчитан на быстрое обслуживание покупателей, где лишние служебные кнопки только загромождают полезную площадь экрана и провоцируют ошибочные нажатия.
  2. Защита от сбоя кассовой зоны: если кассир случайно скроет колонку цен, скидок или итоговой суммы, работа узла расчета может быть парализована. Поэтому свойство автозаполнения командных панелей отключено разработчиками типовой конфигурации.
  3. Ограничение прав профиля: у типовой роли кассира часто отключено право СохранениеДанныхПользователя, что на уровне платформы «1С:Предприятие» блокирует сохранение пользовательских настроек экранных форм.

Штатный способ включения колонок без изменения конфигурации

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

  1. Перейдем в раздел «Настройки» → «Поддержка оборудования» → «Настройки РМК» (или запустим «Помощник настройки РМК»).
  2. Откроем карточку используемой кассовой настройки и перейдем на вкладку «Интерфейс».
  3. Проверим доступные флаги отображения колонок корзины и окна поиска номенклатуры: здесь можно включить вывод артикула, кода товара, нумерации строк, остатков и других стандартных параметров.

Если нужного реквизита в списке типовых настроек интерфейса нет, потребуется использовать расширение конфигурации.

Возврат кнопки «Изменить форму» через расширение

Разберем вариант, когда требуется вернуть пользователю стандартный диалог управления видимостью элементов. Для этого добавим форму РМК в расширение и настроим элементы интерфейса:

  1. Подключим форму рабочего места кассира в расширение конфигурации.
  2. В палитре свойств самой формы убедимся, что для свойства «Разрешить изменять форму» установлено значение Да.
  3. Посмотрим на командную панель формы. В новом РМК свойство Автозаполнение командной панели часто отключено. Если включить автозаполнение, на форму выведется множество лишних служебных команд. Правильнее добавить отдельную пользовательскую кнопку в командную панель вручную.
  4. В свойствах созданной кнопки в поле «ИмяКоманды» выберем стандартную команду ИзменитьФорму.

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

Программное добавление произвольных колонок через расширение

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

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

Перехватим событие ПриСозданииНаСервере формы РМК в модуле расширения с директивой &После. Добавим колонку в реквизит-таблицу корзины через платформенный метод ИзменитьРеквизиты, а затем разместим элемент на форме:


&После("ПриСозданииНаСервере")
Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Создаем массив описаний новых реквизитов
    МассивНовыхРеквизитов = Новый Массив;
    ТипСтрока = Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(50));
    
    // Добавляем колонку в существующую таблицу корзины (например, КорзинаТоваров)
    НовыйРеквизит = Новый РеквизитФормы("ШтрихкодТовара", ТипСтрока, "КорзинаТоваров", "Штрихкод", Истина);
    МассивНовыхРеквизитов.Добавить(НовыйРеквизит);
    
    ИзменитьРеквизиты(МассивНовыхРеквизитов);
    
    // Создаем элемент управления в табличной части на форме
    ЭлементТаблица = Элементы.КорзинаТоваров;
    НовоеПоле = Элементы.Добавить("КорзинаТоваровШтрихкодТовара", Тип("ПолеФормы"), ЭлементТаблица);
    НовоеПоле.Вид = ВидПоляФормы.ПолеНадписи;
    НовоеПоле.ПутьКДанным = "КорзинаТоваров.ШтрихкодТовара";
    НовоеПоле.Заголовок = "Штрихкод";
    
КонецПроцедуры

Шаг 2. Заполнение данных при добавлении строки

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


&После("ОбработатьДобавлениеСтрокиВКорзину")
Процедура Расш_ОбработатьДобавлениеСтрокиВКорзину(СтрокаКорзины, ДанныеНоменклатуры)
    
    // Заполняем созданную колонку данными
    Если ДанныеНоменклатуры.Свойство("Штрихкод") Тогда
        СтрокаКорзины.ШтрихкодТовара = ДанныеНоменклатуры.Штрихкод;
    КонецЕсли;
    
КонецПроцедуры

Шаг 3. Перенос данных в чек ККМ

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

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

← На главную