База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить привязку маркировки как штрихкода в РМК Розница 2.3? › Ответ в теме: Как исправить привязку маркировки как штрихкода в РМК Розница 2.3?
В 1С:Розница 2.3 типовая обработка маркировки в РМК действительно иногда привязывает полный DataMatrix (например, (01)04099979378698(21)54r<KqJ»&l)Yu) как штрихкод к номенклатуре, а не выделяет из него EAN13 (4099979378698). Чтобы исправить это без правки типовой конфигурации, можно сделать внешнюю обработку или расширение, которое будет перехватывать ввод марки и преобразовывать её в нужный EAN13.
Что сделать:
1. Создать внешнюю обработку (или расширение) с процедурой, которая будет принимать строку маркировки DataMatrix.
2. В этой процедуре выделять из маркировки EAN13 — это 14 цифр после идентификатора (01), но без ведущего нуля (т.е. 13 цифр EAN13).
3. По выделенному EAN13 искать номенклатуру и характеристику.
4. Возвращать найденную номенклатуру и характеристику в РМК вместо полной маркировки.
Пример кода для выделения EAN13 из маркировки:
|Функция ПолучитьEAN13ИзМаркировки(Маркировка)
| // Пример маркировки: (01)04099979378698(21)54r<KqJ»&l)Yu
| // Нужно взять 14 цифр после (01), убрать ведущий 0
| Паттерн = «(s01s)(d{14})»;
| Результат = РегулярныеВыражения.Найти(Маркировка, Паттерн);
| Если Результат = Неопределено Тогда
| Возврат Неопределено;
| КонецЕсли;
| Код = Результат.Получить(1);
| // Убираем ведущий 0
| Если Лев(Код,1) = «0» Тогда
| Код = Сред(Код,2);
| КонецЕсли;
| Возврат Код;
|КонецФункции
Дальше в обработке по этому коду ищите номенклатуру и характеристику через стандартные методы (например, по штрихкоду).
Как подключить:
— Вариант 1: Внедрить обработку как расширение, которое перехватывает событие сканирования марки в РМК и заменяет полное значение на EAN13.
— Вариант 2: Сделать внешнюю обработку для пакетной обработки уже введённых марок, исправляя записи в справочнике «Штрихкоды упаковок и товаров» — заменять полный DataMatrix на EAN13.
Так вы не меняете типовую конфигурацию, а добавляете отдельный файл с логикой.
Рекомендую посмотреть пример расширения и работу с маркировкой здесь:
https://infostart.ru/public/2232757/ — обработка исправления распределения марок
https://infostart.ru/articles/1325823/ — пример работы с маркировкой и выделением EAN13
Если нужна помощь с конкретным кодом расширения — могу помочь составить.