При работе с отраслевыми решениями, такими как «Штрих-М: Торговое предприятие 5.2», специалисты часто сталкиваются с тем, что привычные методы разработки в среде 1С не срабатывают. Попытка найти форму рабочего места кассира (РМК) в Конфигураторе может закончиться неудачей, так как интерфейс в этой системе строится по иным принципам, отличным от типовых конфигураций «Розница» или «Управление торговлей». В этой статье мы подробно разберем, как устроено РМК в данной программе и каким образом можно добавить новую кнопку для реализации кастомного функционала, например, интеграции с сайтом.
Первое, что нам необходимо понять: в «Штрих-М: Торговое предприятие 5.2» визуальный интерфейс кассира не является статической формой внутри дерева метаданных. Давайте проанализируем ситуацию: программа использует так называемые Логические модули и внешние компоненты для отрисовки окон и обработки событий. Большая часть кода и описаний кнопок хранится непосредственно в базе данных (в справочниках), а не в конфигурации. Именно поэтому стандартный поиск в дереве объектов 1С не дает результатов.
Рассмотрим основные способы доступа к редактированию интерфейса, от простого визуального редактора до глубокой правки кода обработчиков.
Для добавления кнопки в интерфейс регистрации продаж чаще всего не требуется заходить в Конфигуратор. Разработчики предусмотрели механизм визуальной настройки прямо в режиме «1С:Предприятие». Пройдем по шагам:
Если нам нужно просто вызвать стандартную функцию, мы выбираем её из списка. Однако, если задача стоит в запуске внешней формы или специфического кода (например, для связи с сайтом), нам потребуется назначить кнопке уникальное действие или код, который мы позже перехватим в обработчике.
Если визуальный конструктор позволяет создать «внешнюю оболочку» кнопки, то Логические модули определяют её поведение. В системе «Штрих-М» логика работы РМК вынесена в специальный справочник.
Давайте выясним причину такого решения: это позволяет обновлять логику работы кассы без изменения самой конфигурации 1С. Чтобы найти нужный код, выполним следующие действия:
Супервизор.РегистрацияПродаж или имеют префикс ПредОбработка.Пример обращения к такому модулю в коде системы выглядит следующим образом:
Обработчик = МенеджерОбъектов.ПолучитьОбщийОбъект("LogicalModules").ПолучитьОбработчик("Супервизор.РегистрацияПродаж.ПредОбработка", ЭтаФорма, Неопределено);
Чтобы добавить свое действие, нам нужно найти в тексте логического модуля условие, проверяющее код нажатой кнопки, и вставить туда вызов нашей функции или формы.
Иногда возникают сложности даже с тем, чтобы просто открыть базу в Конфигураторе, так как она запускается через специальный ярлык «Штрих-М» и отсутствует в стандартном списке баз 1С. Разберем, как это исправить:
Посмотрим на свойства ярлыка на рабочем столе. В поле «Объект» будет прописан путь к информационной базе после ключа /F (для файловой версии) или /S (для серверной). Обычно база данных располагается по пути: C:\Program Files (x86)\Штрих-М\Торговое предприятие 5.2\DB.
Скопируем этот путь, добавим базу в обычный стартер 1С и зайдем в Конфигуратор. Это позволит нам создать новую Обработку, форму которой мы и будем вызывать при нажатии нашей новой кнопки на РМК.
Если вы не можете определить, какой именно логический модуль или общая форма отвечает за работу РМК, воспользуемся проверенным инструментом отладки — Замером производительности.
В результате мы получим детальный список строк кода, которые выполнялись в этот момент. Проанализируем колонку «Объект». Если там указаны общие модули или справочник ЛогическиеМодули, мы быстро поймем, в каком именно месте программы зашита логика обработки нажатий.
Предположим, мы добавили кнопку с кодом 999 через визуальный конструктор. Теперь нам нужно, чтобы при её нажатии открывалась наша обработка ИнтеграцияССайтом. Для этого в соответствующем логическом модуле (например, в функции обработки команд) мы добавим следующий блок кода:
Если КодКоманды = 999 Тогда
// Создаем объект обработки и открываем её форму
ИмяОбработки = "Обработка.ИнтеграцияССайтом";
ОткрытьФорму(ИмяОбработки + ".Форма");
Возврат; // Прекращаем дальнейшую обработку стандартных команд
КонецЕсли;
Важный момент: при работе с РМК Штрих-М всегда учитывайте, что форма регистрации может работать в модальном режиме или иметь специфические настройки фокуса. Поэтому при открытии сторонних окон 1С может потребоваться передача владельца формы (ЭтаФорма), чтобы окно не «проваливалось» под интерфейс кассира.
Подводя итог, можно сказать, что модификация РМК в «Штрих-М: Торговое предприятие 5.2» требует понимания её гибридной архитектуры. Вместо поиска форм в Конфигураторе, следует сосредоточиться на Параметрах формы регистрации для визуальных изменений и на Логических модулях для программной логики. Такой подход позволяет гибко настраивать рабочее место без риска нарушения целостности основной конфигурации при последующих обновлениях.