Как добавить кнопку Печать этикетки в РМК 1С:Розница 2.3 (Базовая) для весового товара

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

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

Анализ проблемы и ограничений базовой версии

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

Проанализируем задачу: нам нужно, чтобы после выбора номенклатуры и получения веса с электронных весов, кассир мог нажать кнопку (или сочетание клавиш) и мгновенно получить этикетку на принтере. Стандартная кнопка «Печать» в РМК не подходит, так как она предназначена для печати товарного чека уже после закрытия сделки.

Решение 1: Использование внешней обработки

Самый безопасный способ для базовой версии — создание внешней обработки. Разберем по шагам, как это работает:

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

Для реализации печати без лишних диалогов в коде обработки следует использовать объект ТабличныйДокумент с параметром ИмяПринтера и методом Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать). Это позволит этикетке выходить сразу после нажатия кнопки.

Решение 2: Использование расширений конфигурации

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

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


&НаКлиенте
Процедура Расш_ПечатьЭтикетки(Команда)
    
    ДанныеСтроки = Элементы.ТаблицаТоваров.ТекущиеДанные;
    
    Если ДанныеСтроки = Неопределено Тогда
        ПоказатьПредупреждение(, "Товар не выбран!");
        Возврат;
    КонецЕсли;
    
    // Вызываем серверную функцию для формирования этикетки
    ПечатьНаСервере(ДанныеСтроки.Номенклатура, ДанныеСтроки.Количество, ДанныеСтроки.Характеристика);
    
КонецПроцедуры

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

Настройка шаблона этикетки для весового мяса

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

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

Решение 3: Подключение весов с печатью этикеток

Рассмотрим альтернативный вариант, который часто оказывается более надежным — использование весов с внутренней памятью и принтером этикеток (режим Offline). Посмотрим на пример рабочего процесса:

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

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

Технические нюансы реализации печати через 1С

При написании обработки важно использовать стандартные процедуры БСП (Библиотеки стандартных подсистем), чтобы шаблон этикетки можно было редактировать без программиста. Разберем по шагам взаимодействие с подсистемой печати:

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

Важный момент: если вы используете принтер как Windows-принтер, убедитесь, что в настройках драйвера установлен правильный размер страницы (например, 58х40 мм), иначе текст будет смещен или напечатан на нескольких этикетках сразу.

Выводы и рекомендации

Для реализации печати этикеток в РМК 1С:Розница 2.3 Базовая мы рекомендуем следующий алгоритм действий:

  1. Проверьте возможность использования весов с печатью — это избавит от лишних манипуляций в программе.
  2. Если используются обычные весы, закажите внешнюю обработку, которая будет вызываться горячей клавишей (например, F9). Это позволит обойти ограничения базовой версии по изменению интерфейса.
  3. Убедитесь, что в карточках номенклатуры заполнены все необходимые поля: сроки хранения, условия хранения и состав, чтобы они автоматически попадали на этикетку.

Таким образом, даже в ограниченной базовой версии 1С можно построить эффективный процесс продажи весового мяса, полностью соответствующий законодательству. Совместная работа программиста по настройке обработки и администратора по настройке шаблонов этикеток обеспечит высокую скорость обслуживания покупателей на кассе.

← На главную