При работе с алкогольной продукцией в программе 1С:Розница 2.2 пользователи часто сталкиваются с неприятной ситуацией: после завершения сканирования марок в документе приемки система выдает сообщение «Есть упаковки, которые требуют перемаркировки». Однако, вопреки ожиданиям и официальным инструкциям, сама кнопка Перемаркировка на форме отсутствует, что блокирует дальнейшее оформление поступления. В данной статье мы подробно разберем причины этой ошибки и рассмотрим несколько способов ее решения — от простых настроек до изменения программного кода.
Для начала проанализируем ситуацию с точки зрения логики взаимодействия 1С и ЕГАИС. Ошибка обычно возникает при работе с форматом ЕГАИС 3.0, где критически важна иерархия упаковок. Когда поставщик присылает товар в групповой таре (коробах), в электронной накладной (ТТН) зафиксирована жесткая связь: «Марка бутылки А находится внутри короба Б».
Если в процессе приемки кладовщик сканирует только бутылки, игнорируя штрихкоды упаковок, или если фактически считанная марка по данным системы числится в другом коробе, возникает логический конфликт. Система 1С понимает, что текущая «упаковка» не соответствует данным документа, и требует провести процедуру перемаркировки (программного переподчинения марок новым или существующим упаковкам). Баг конкретных релизов 1С:Розница (например, 2.2.10 и 2.2.11) заключался в том, что условие проверки срабатывало, а элемент интерфейса для исправления ситуации не отображался.
Прежде чем приступать к сложным манипуляциям, рассмотрим самый очевидный способ. Проблема признана разработчиками 1С как программная ошибка. В более поздних версиях ветки 2.2 (начиная с 2.2.12) и при переходе на редакцию 2.3 логика работы с групповой тарой была пересмотрена.
Многие пользователи опасались обновляться в периоды пиковых нагрузок (например, перед Новым годом) из-за сопутствующих изменений, таких как переход на ставку НДС 20%. Однако, если техническая возможность есть, обновление до актуального релиза — это наиболее правильный и стабильный метод решения вопроса.
Если обновление в данный момент невозможно, разберем пользовательские способы обхода блокировки. Иногда кнопка Перемаркировка не появляется из-за неверно выбранного режима отображения данных в форме проверки.
Для розничных магазинов, которые не планируют в дальнейшем заниматься оптовыми отгрузками или перемещениями целыми коробами, использование групповых упаковок в учете часто является избыточным. Проанализируем, как можно упростить процесс:
Если никакие настройки не помогают, а завершить приемку нужно «здесь и сейчас», мы можем прибегнуть к редактированию кода. Нам необходимо найти место, где система принимает решение о необходимости перемаркировки, и принудительно отключить эту проверку.
Разберем по шагам, где именно вносить правки:
ПроверкаПоступившейАлкогольнойПродукции.ПроверитьНаличиеУпаковокТребующихПеремаркировки или имеет схожее название, связанное с ТребуетПереупаковки.Рассмотрим пример того, как можно модифицировать код, чтобы обойти ошибку. Нам нужно, чтобы функция всегда возвращала Ложь (то есть «перемаркировка не требуется»):
// В модуле обработки ПроверкаПоступившейАлкогольнойПродукции
&НаСервере
Функция ПроверитьНаличиеУпаковокТребующихПеремаркировки()
// Оригинальная логика 1С может быть ошибочной в данном релизе
// РезультатПроверки = ВыполнитьСтандартнуюПроверку();
// Принудительно возвращаем Ложь, чтобы пропустить блокировку
Возврат Ложь;
КонецФункции
Также проанализируем ситуацию, когда необходимо закомментировать вызов в процедуре завершения проверки. Найдем процедуру ЗавершитьПроверку (или ЗавершитьПроверкуВыполнить) и посмотрим на условие:
&НаКлиенте
Процедура ЗавершитьПроверку(Команда)
// Если ТребуетсяПеремаркировка(Объект) Тогда
// ТекстСообщения = "Есть упаковки, которые требуют перемаркировки";
// ПоказатьПредупреждение(, ТекстСообщения);
// Возврат;
// КонецЕсли;
// Продолжение стандартного алгоритма завершения
...
КонецПроцедуры
Важный момент: Мы рекомендуем использовать Расширения конфигурации для подобных правок. Это позволит не снимать основную конфигурацию с поддержки и легко откатить изменения после обновления программы на исправленный релиз.
Выясним, какие еще настройки могут влиять на поведение системы при проверке алкоголя:
Подводя итог, можно сказать, что данная проблема является классическим примером «бага» интерфейса, когда логическая проверка опережает возможность пользователя исправить ошибку. Использование расширения для подавления этой проверки или временное изменение детализации до бутылок — самые эффективные способы решения задачи в условиях ограниченного времени на приемку товара.