В современной розничной торговле, особенно при реализации мясной продукции, требования государственных органов (Россельхознадзор, Роспотребнадзор) становятся всё строже. Одной из ключевых задач является маркировка весового товара непосредственно в момент продажи или предпродажной подготовки. Кассиру необходимо не просто взвесить товар, но и получить этикетку со сроками годности, весом и составом. Рассмотрим, как реализовать этот функционал в программе 1С:Розница 2.3 (Базовая), учитывая её технические ограничения.
Базовая версия 1С имеет существенное ограничение: в ней невозможно вносить изменения в конфигурацию через «Конфигуратор». Это означает, что мы не можем просто зайти в форму РМК и добавить туда новую кнопку. Однако система предоставляет нам другие механизмы расширения функционала, такие как внешние обработки и расширения конфигурации (с определенными оговорками для базовых версий).
Проанализируем задачу: нам нужно, чтобы после выбора номенклатуры и получения веса с электронных весов, кассир мог нажать кнопку (или сочетание клавиш) и мгновенно получить этикетку на принтере. Стандартная кнопка «Печать» в РМК не подходит, так как она предназначена для печати товарного чека уже после закрытия сделки.
Самый безопасный способ для базовой версии — создание внешней обработки. Разберем по шагам, как это работает:
ТекущиеДанные) и отправлять данные на принтер этикеток.Для реализации печати без лишних диалогов в коде обработки следует использовать объект ТабличныйДокумент с параметром ИмяПринтера и методом Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать). Это позволит этикетке выходить сразу после нажатия кнопки.
Хотя официально базовые версии ограничены в использовании расширений, современные версии платформы 8.3 позволяют подключать расширения, которые не изменяют структуру данных (не добавляют новые справочники или документы), а лишь корректируют интерфейс и программную логику. Рассмотрим подробнее, как реализовать кнопку через расширение:
В расширении создается заимствованная форма РМК (ФормаПродаж). В командную панель добавляется новая команда «ПечатьЭтикетки». Проанализируем программный код, который должен стоять за этой кнопкой:
&НаКлиенте
Процедура Расш_ПечатьЭтикетки(Команда)
ДанныеСтроки = Элементы.ТаблицаТоваров.ТекущиеДанные;
Если ДанныеСтроки = Неопределено Тогда
ПоказатьПредупреждение(, "Товар не выбран!");
Возврат;
КонецЕсли;
// Вызываем серверную функцию для формирования этикетки
ПечатьНаСервере(ДанныеСтроки.Номенклатура, ДанныеСтроки.Количество, ДанныеСтроки.Характеристика);
КонецПроцедуры
Такой подход позволяет добавить кнопку визуально в нижнюю панель РМК, где расположены стандартные команды «Оплата», «Возврат» и другие.
Для выполнения требований Роспотребнадзора на этикетке должны присутствовать специфические данные. Выясним причину необходимости детальной настройки шаблона: для весового мяса критичны дата упаковки и срок годности. Рассмотрим, какие поля необходимо добавить в шаблон этикетки в разделе «Продажи» — «Печать этикеток и ценников»:
Количество).ТекущаяДата() + Номенклатура.СрокХранения.Проанализируем ситуацию со штрихкодом: чтобы весы и 1С понимали друг друга, используется весовой префикс. Если мы печатаем этикетку для того, чтобы потом её считали на кассе другого магазина — это одна задача. Но в нашем случае мы печатаем её в процессе продажи. Это нужно для маркировки уже взвешенного куска, который отдается покупателю в руки.
Рассмотрим альтернативный вариант, который часто оказывается более надежным — использование весов с внутренней памятью и принтером этикеток (режим Offline). Посмотрим на пример рабочего процесса:
Этот способ не требует доработки кода программы и является стандартным для крупных сетей. Однако, если весы уже куплены без принтера (обычные настольные весы), то вариант с внешней обработкой и Windows-принтером этикеток остается единственным верным.
При написании обработки важно использовать стандартные процедуры БСП (Библиотеки стандартных подсистем), чтобы шаблон этикетки можно было редактировать без программиста. Разберем по шагам взаимодействие с подсистемой печати:
Программа 1С:Розница использует общие модули для формирования печатных форм. В коде вашей кнопки следует обращаться к функции ПодготовитьМакетЭтикетки. Выясним, почему это важно: это гарантирует, что если пользователь завтра решит изменить шрифт или добавить логотип компании на этикетку, ему не придется снова платить за правку кода обработки.
Важный момент: если вы используете принтер как Windows-принтер, убедитесь, что в настройках драйвера установлен правильный размер страницы (например, 58х40 мм), иначе текст будет смещен или напечатан на нескольких этикетках сразу.
Для реализации печати этикеток в РМК 1С:Розница 2.3 Базовая мы рекомендуем следующий алгоритм действий:
F9). Это позволит обойти ограничения базовой версии по изменению интерфейса.Таким образом, даже в ограниченной базовой версии 1С можно построить эффективный процесс продажи весового мяса, полностью соответствующий законодательству. Совместная работа программиста по настройке обработки и администратора по настройке шаблонов этикеток обеспечит высокую скорость обслуживания покупателей на кассе.