При переходе на новые форматы работы с маркированной продукцией (система «Честный ЗНАК») и внедрении разрешительного режима на кассах пользователи конфигурации 1С:Розница 2.3 (а также смежных решений, таких как 1С:УНФ и 1С:УТ) часто сталкиваются со следующей проблемой. В карточке номенклатуры при нажатии на гиперссылку «Виды упаковок GTIN» открывается абсолютно пустое окно, где невозможно выбрать вид упаковки или сопоставить штрихкод. Из-за этого при оформлении продажи в РМК касса блокирует отпуск товара, выдавая ошибку отсутствия сопоставления упаковок.
Самое примечательное в этой ситуации — проблема носит индивидуальный характер: у одного пользователя форма открывается пустой, а у другого (или у администратора под теми же правами) все отображается и работает корректно. В данной статье мы подробно разберем, почему возникает этот сбой, проанализируем взаимосвязь механизмов платформы с регистрами маркировки и пошагово решим проблему несколькими способами.
Для начала разберем внутреннее устройство этого механизма. Ссылка «Виды упаковок по GTIN» ведет к записям регистра сведений РегистрСведений.ОписаниеGTINИС. Программа сопоставляет считанный штрихкод формата EAN13 или EAN8 с реестром маркируемой продукции ИС МП. Для успешной продажи на кассе в этом регистре должна существовать запись, указывающая, что данный GTIN соответствует, например, потребительской упаковке в количестве 1 штуки.
Если у конкретного пользователя эта форма открывается пустой, причина кроется в одном из следующих факторов:
ОписаниеGTINИС.Рассмотрим подробнее все способы решения данной проблемы — от простых пользовательских манипуляций до административных мер и программной автоматизации.
Это самый быстрый способ вернуть отображение элементов интерфейса. Если форма открывается, но табличная часть пуста, выполним следующие шаги прямо из-под учетной записи проблемного пользователя:
После выполнения этих действий стандартный вид формы будет полностью восстановлен, сбросятся все ошибочные пользовательские группировки и скрытия колонок.
Если сброс настроек из самой формы не помог, необходимо принудительно очистить сохраненные настройки интерфейса данного пользователя в базе данных. Для этого нам понадобятся права администратора системы:
ОписаниеGTINИС (или выберем очистку всех настроек внешнего вида для этого пользователя) и нажмем кнопку «Очистить».Как показала практика обсуждения на форуме, наиболее быстрым и гарантированным решением при сильном повреждении профиля пользователя является создание его копии. Проанализируем, как правильно перенести настройки, чтобы не потерять историю работы:
F9) для создания нового пользователя на основе работающего. При этом автоматически скопируются все его группы доступа, роли и права.Если проблема не уходит даже после манипуляций с настройками внутри предприятия, велика вероятность сбоя локального кэша платформы на конкретном рабочем месте кассира (РМК). Выполним очистку кэша по шагам:
%userprofile%\AppData\Local\1C\1cv8 и %userprofile%\AppData\Roaming\1C\1cv8, удалив каталоги с длинными буквенно-цифровыми названиями (например, ascii-1234-...).Бывают ситуации, когда в карточках товаров вообще отсутствуют записи GTIN, из-за чего форма открывается пустой у абсолютно всех пользователей базы. Вводить эти данные вручную для тысяч позиций номенклатуры невозможно. Рассмотрим, как решить эту проблему программно. Для быстрого создания и привязки позиций со штрихкодами и GTIN также подойдет обработка для загрузки номенклатуры из файла выгрузки Честного знака.
Для автоматического формирования записей в регистре сведений РегистрСведений.ОписаниеGTINИС мы можем написать небольшую процедуру во внешней обработке, которая выберет все товары с заполненными штрихкодами и автоматически создаст для них привязку потребительской упаковки со значением «1 шт».
Проанализируем пример кода на языке 1С:
Процедура ЗаполнитьУпаковкиПоGTIN() Экспорт
// Выбираем штрихкоды номенклатуры, для которых ведется учет маркировки
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Штрихкоды.Номенклатура КАК Номенклатура,
| Штрихкоды.Характеристика КАК Характеристика,
| Штрихкоды.Штрихкод КАК Штрихкод
|ИЗ
| РегистрСведений.ШтрихкодыНоменклатуры КАК Штрихкоды
|ГДЕ
| Штрихкоды.Номенклатура.ДоляИмпортаМаркируемойПродукции <> ЗНАЧЕНИЕ(Перечисление.ДаНет.Нет)
| ИЛИ Штрихкоды.Номенклатура.ВидНоменклатуры.ТипНоменклатуры В (
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МаркируемаяОбувнаяПродукция),
| ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МаркируемаяТабачнаяПродукция)
| )"; // Добавьте типы под вашу специфику маркировки
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
// Формируем GTIN из штрихкода (дополняем нулями слева до 14 символов)
ИсходныйШтрихкод = СокрЛП(Выборка.Штрихкод);
GTIN = ПовторитьСимвол("0", 14 - СтрДлина(ИсходныйШтрихкод)) + ИсходныйШтрихкод;
// Создаем запись в регистре описания GTIN
МенеджерЗаписи = РегистрыСведений.ОписаниеGTINИС.СоздатьМенеджерЗаписи();
МенеджерЗаписи.GTIN = GTIN;
МенеджерЗаписи.Прочитать();
Если Не МенеджерЗаписи.Выбран() Тогда
МенеджерЗаписи.GTIN = GTIN;
МенеджерЗаписи.Номенклатура = Выборка.Номенклатура;
МенеджерЗаписи.Характеристика = Выборка.Характеристика;
МенеджерЗаписи.ВидУпаковки = Перечисления.ВидыУпаковокИП.Потребительская;
МенеджерЗаписи.КоличествоСодержимого = 1;
Попытка
МенеджерЗаписи.Записать();
Исключение
ЗаписьЖурналаРегистрации("ОшибкаЗаполненияGTIN", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
ПоказатьПредупреждение(, "Заполнение регистра Описание GTIN ИС успешно завершено!");
КонецПроцедуры
Функция ПовторитьСимвол(Символ, Количество)
Результат = "";
Для Сч = 1 По Количество Цикл
Результат = Результат + Символ;
КонецЦикла;
Возврат Результат;
КонецФункции
Этот код позволяет автоматизировать рутинную работу администратора 1С и полностью устранить проблему отсутствия упаковок для всех существующих товаров в базе. В качестве альтернативы для автоматического заполнения сведений можно использовать обработку для получения карточек товаров по GTIN и кодов марок из Честного знака.
Мы выяснили, что пустая форма видов упаковок GTIN у конкретного пользователя чаще всего вызвана повреждением персональных настроек интерфейса платформы или кэша конфигурации. Использование сброса настроек через меню «Изменить форму», очистка настроек в администрировании или создание копии пользователя гарантированно решают данную проблему и восстанавливают стабильную работу кассы в разрешительном режиме маркировки.