Как внедрить маркировку Честный ЗНАК в старую конфигурацию 1С:Управление торговлей 10.3?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Внедрение маркировки в «древние» и сильно кастомизированные базы 1С:УТ 10.3 — это вызов, с которым сталкиваются многие компании, чей бизнес завязан на сложной логистике, алкогольном учете (ЕГАИС) или специфических доработках. Переход на современную 1С:УТ 11 не всегда оправдан экономически и технически, хотя даже в случае миграции можно использовать расширение для отображения иерархии номенклатуры в стиле УТ 10.3, чтобы облегчить адаптацию персонала. В данной статье мы проанализируем опыт экспертов и разберем основные стратегии адаптации системы под требования ГИС МТ («Честный ЗНАК»).

Стратегия 1: Поэтапное обновление типового релиза

Несмотря на то, что УТ 10.3 считается устаревшей, фирма «1С» продолжает выпускать обновления для поддержки законодательства. Если ваша конфигурация не «переписана» до неузнаваемости, это самый правильный путь. Рассмотрим, как реализовать этот процесс:

  1. Обновление платформы: Для корректной работы современных механизмов криптографии и протоколов обмена с ИС МП необходимо использовать платформу версии не ниже 8.3.10 (рекомендуется 8.3.18 и выше).
  2. Последовательное обновление конфигурации: Часто требуется пройти через 10–15 промежуточных релизов. Важно на каждом этапе проверять корректность работы существующих доработок.
  3. Перенос кастомного кода: Если типовые объекты были изменены, рекомендуется вынести критически важный функционал в расширения (если платформа позволяет) или аккуратно интегрировать его в новый код после обновления всех метаданных.

Важный нюанс: Последние релизы УТ 10.3 поддерживают ФФД 1.2, что критично для продажи маркированных товаров через ККТ.

Стратегия 2: Гибридная модель («Шлюз» на базе УТ 11)

Если основная база слишком велика (например, полтерабайта) и насыщена доработками, которые невозможно обновить, мы можем рассмотреть вариант «параллельного запуска». Разберем алгоритм работы такой схемы:

  1. Рядом со старой УТ 10.3 устанавливается чистая типовая конфигурация (например, 1С:УТ 11.5 или 1С:Розница 3.0).
  2. В новой базе настраивается только блок маркировки, ЭДО и подключение оборудования. Для обеспечения качества данных в «шлюзе» рекомендуется запустить отчет для контроля заполнения полей маркированного товара, который выявит номенклатуру с отсутствующими сведениями.
  3. Настраивается обмен данными (например, через COM-соединение или HTTP-сервисы).
  4. Процесс приемки: Документы поступления приходят по ЭДО в новую УТ 11, там сверяются коды маркировки (КМ), после чего очищенные данные (номенклатура, количество, цена) перегружаются в УТ 10.3 для управленческого учета.
  5. Процесс продажи: При оформлении реализации в УТ 10.3 данные передаются в «шлюз», где происходит сканирование КМ и пробитие чека через современную библиотеку подключаемого оборудования.

Стратегия 3: Использование внешних модулей и подсистем

Для тех, кто не готов переписывать ядро системы, существуют готовые решения от сторонних разработчиков и операторов ЭДО. Проанализируем, как они работают:

Многие провайдеры (например, Тензор/СБИС или Диадок) предоставляют внешние обработки для 1С 8.3 на обычных формах. Например, для корректного документооборота можно внедрить модуль выгрузки счета-фактуры и УПД в XML для Diadoc, поддерживающий старые версии УТ 10.3. Эти решения позволяют:

Также существуют специализированные подсистемы маркировки, которые интегрируются непосредственно в конфигурацию. Особенность таких решений в том, что интерфейсная часть часто строится на Управляемых формах (УФ), которые могут запускаться внутри Обычного приложения. Это позволяет использовать современный UI для работы со сканером и камерой в старой системе.

Техническая реализация: Хранение и проверка КМ

Выясним, как методически правильно организовать хранение кодов в базе, если вы решили дорабатывать систему самостоятельно. Код маркировки DataMatrix имеет сложную структуру. В ряде случаев, например при перемаркировке или повреждении этикеток, вам может пригодиться отчет для печати кодов маркировки с криптохвостом непосредственно из заказа на эмиссию — для этого есть внешняя обработка для печати кодов маркировки с криптохвостом.

Рассмотрим пример функции для первичного разбора считанного штрихкода:


Функция РазобратьМаркировку(СчитанныйШтрихкод)
    // GS1-128 структура: (01)GTIN(21)Серия
    // Упрощенный поиск идентификаторов применения
    Результат = Новый Структура("GTIN, Серия, ПолныйКод");
    Результат.ПолныйКод = СчитанныйШтрихкод;
    
    Если СтрНачинаетсяС(СчитанныйШтрихкод, "01") Тогда
        Результат.GTIN = Сред(СчитанныйШтрихкод, 3, 14);
        Результат.Серия = Сред(СчитанныйШтрихкод, 19);
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

Для хранения КМ в УТ 10.3 рекомендуется создать новый Регистр сведений МаркировкаТоваров со следующими измерениями:

  1. Номенклатура (СправочникСсылка.Номенклатура)
  2. Характеристика (СправочникСсылка.ХарактеристикиНоменклатуры)
  3. Серия (СправочникСсылка.СерииНоменклатуры) — если используется серийный учет.
  4. КодМаркировки (Строка) — сам DataMatrix.

Особенности работы с ККТ и ФФД 1.2

Проанализируем ситуацию с розничными продажами. В формате ФД 1.2 касса должна отправить запрос в ИС МП для проверки статуса марки перед закрытием чека. В старой УТ 10.3 стандартная обработка обслуживания ККТ часто выдает ошибку "items[0].tax.type". Эту проблему, а также поддержку новых налоговых ставок, эффективно решает специализированная обработка обслуживания АТОЛ 10 для УТ 10.3 (есть обработка АТОЛ 10 для УТ 10.3 с поддержкой ФФД 1.2).

Решение: Использовать прямой вызов методов драйвера (например, АТОЛ 10.х). Рассмотрим примерный алгоритм передачи марки в чек:


// Пример логики для драйвера версии 10
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_MARKING_CODE, КодМаркировки);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_MARKING_CODE_TYPE, Драйвер.LIBFPTR_MCT12_AUTO);
Драйвер.beginMarkingCodeCheck();
// Ожидание результата проверки...
Если Драйвер.getMarkingCodeCheckResult() Тогда
    Драйвер.registration(); // Регистрация позиции
КонецЕсли;

Практические советы по категориям товаров

В зависимости от отрасли, задачи могут меняться:

Резюме: Внедрение маркировки в УТ 10.3 возможно и целесообразно, если вы хотите сохранить привычные бизнес-процессы. Оптимальным выбором для сложных систем является использование внешних модулей ЭДО для приемки и обновленной обработки обслуживания ККТ для корректного взаимодействия с современными драйверами, что минимизирует количество изменений в типовом коде конфигурации.

← На главную