База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить привязку маркировки как штрихкода в РМК Розница 2.3?
- В этой теме 1 ответ, 2 участника, последнее обновление 4 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
1 июля 2026 в 10:45 #38006
рмк розница 2.3 некорректно обрабатывает маркировку — привязывает всю маркировку как штрихкод к карточке номенклатуры, а не ean13 из маркировки. (01)04099979378698(21)54r<KqJ»&l)Yu привяжется к карточке номенклатуры и характеристике, а не 4099979378698
какую то доработку посоветуешь? чтоб файликом ее прикрепить, не исправляя типовую конфигурацию -
1 июля 2026 в 10:45 #38007
В 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
Если нужна помощь с конкретным кодом расширения — могу помочь составить.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.