При работе с маркированной продукцией в конфигурации 1С:Розница 2.3 пользователи часто сталкиваются с ситуацией, когда требуется изменить ошибочно указанный или сопоставленный 14-значный код GTIN у карточки товара. Однако при попытке внести правки непосредственно в карточке номенклатуры или связанной таблице выясняется, что форма доступна только для чтения. Выясним причину такого поведения системы и подробно разберем все способы решения этой задачи.
Проанализируем архитектуру хранения данных подсистемы маркировки (ГИС МТ / Честный ЗНАК). Основная информация об упаковках и кодах фиксируется в специализированном регистре сведений Описание GTIN ИС. В этом регистре ключевое поле GTIN выступает в роли измерения. По правилам платформы 1С:Предприятие изменить значение измерения у существующей записи невозможно: для этого требуется физически удалить старую запись и добавить новую.
Кроме того, если данные были загружены в результате синхронизации с Национальным каталогом (GS1 / КЦ), они считаются входящей нормативно-справочной информацией от оператора маркировки и по умолчанию блокируются от прямого редактирования в типовых пользовательских формах.
Посмотрим на структуру конфигурации, где могут присутствовать сведения о GTIN:
Описание GTIN ИС — базовое хранилище связок 14-значного кода GTIN, номенклатуры, характеристики, вида упаковки (потребительская, групповая и т.д.) и коэффициента.Штрихкоды номенклатуры — стандартный регистр штрихкодов. В процессах обмена с ИС МП 13-значные штрихкоды EAN-13 автоматически преобразуются в GTIN путем добавления лидирующего нуля.Штрихкоды упаковок и товаров — хранит уже считанные уникальные коды маркировки DataMatrix, в структуре которых также присутствует идентификатор GTIN.Разберем по шагам самый быстрый способ исправления данных в пользовательском режиме при наличии полных прав доступа:
Описание GTIN ИС.GTIN является измерением, выделим ошибочную строку и удалим ее клавишей Delete или через контекстное меню.Рассмотрим альтернативный вариант, когда сопоставление формируется на основании штрихкода товара:
Штрихкоды номенклатуры).Если доступ к непосредственному редактированию регистров закрыт или требуется массово обновить данные, применим программный метод с использованием внешней обработки или консоли кода. Посмотрим на пример кода, выполняющего корректную замену записи в регистре Описание GTIN ИС:
// Удаляем старую запись по измерению
СтарыйМенеджер = РегистрыСведений.ОписаниеGTINИС.СоздатьМенеджерЗаписи();
СтарыйМенеджер.GTIN = "04600000000000";
СтарыйМенеджер.Прочитать();
Если СтарыйМенеджер.Выбран() Тогда
СтарыйМенеджер.Удалить();
КонецЕсли;
// Создаем новую корректную запись
НовыйМенеджер = РегистрыСведений.ОписаниеGTINИС.СоздатьМенеджерЗаписи();
НовыйМенеджер.GTIN = "04609999999999";
НовыйМенеджер.Номенклатура = ВыбраннаяНоменклатура;
НовыйМенеджер.Характеристика = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
НовыйМенеджер.ВидУпаковки = Перечисления.ВидыУпаковокИС.Потребительская;
НовыйМенеджер.Коэффициент = 1;
НовыйМенеджер.Записать(Истина);
Такой подход гарантирует соблюдение целостности ключа записи регистра и исключает дублирование записей с разными измерениями.
Разберем вариант исправления, если номенклатура ранее была сопоставлена через функционал взаимодействия с Национальным каталогом:
Проанализируем ограничения, о которых необходимо помнить перед сменой идентификатора: