Внедрение маркировки в «древние» и сильно кастомизированные базы 1С:УТ 10.3 — это вызов, с которым сталкиваются многие компании, чей бизнес завязан на сложной логистике, алкогольном учете (ЕГАИС) или специфических доработках. Переход на современную 1С:УТ 11 не всегда оправдан экономически и технически, хотя даже в случае миграции можно использовать расширение для отображения иерархии номенклатуры в стиле УТ 10.3, чтобы облегчить адаптацию персонала. В данной статье мы проанализируем опыт экспертов и разберем основные стратегии адаптации системы под требования ГИС МТ («Честный ЗНАК»).
Несмотря на то, что УТ 10.3 считается устаревшей, фирма «1С» продолжает выпускать обновления для поддержки законодательства. Если ваша конфигурация не «переписана» до неузнаваемости, это самый правильный путь. Рассмотрим, как реализовать этот процесс:
Важный нюанс: Последние релизы УТ 10.3 поддерживают ФФД 1.2, что критично для продажи маркированных товаров через ККТ.
Если основная база слишком велика (например, полтерабайта) и насыщена доработками, которые невозможно обновить, мы можем рассмотреть вариант «параллельного запуска». Разберем алгоритм работы такой схемы:
COM-соединение или HTTP-сервисы).Для тех, кто не готов переписывать ядро системы, существуют готовые решения от сторонних разработчиков и операторов ЭДО. Проанализируем, как они работают:
Многие провайдеры (например, Тензор/СБИС или Диадок) предоставляют внешние обработки для 1С 8.3 на обычных формах. Например, для корректного документооборота можно внедрить модуль выгрузки счета-фактуры и УПД в XML для Diadoc, поддерживающий старые версии УТ 10.3. Эти решения позволяют:
ПоступлениеТоваровУслуг в УТ 10.3.Также существуют специализированные подсистемы маркировки, которые интегрируются непосредственно в конфигурацию. Особенность таких решений в том, что интерфейсная часть часто строится на Управляемых формах (УФ), которые могут запускаться внутри Обычного приложения. Это позволяет использовать современный UI для работы со сканером и камерой в старой системе.
Выясним, как методически правильно организовать хранение кодов в базе, если вы решили дорабатывать систему самостоятельно. Код маркировки DataMatrix имеет сложную структуру. В ряде случаев, например при перемаркировке или повреждении этикеток, вам может пригодиться отчет для печати кодов маркировки с криптохвостом непосредственно из заказа на эмиссию — для этого есть внешняя обработка для печати кодов маркировки с криптохвостом.
Рассмотрим пример функции для первичного разбора считанного штрихкода:
Функция РазобратьМаркировку(СчитанныйШтрихкод)
// GS1-128 структура: (01)GTIN(21)Серия
// Упрощенный поиск идентификаторов применения
Результат = Новый Структура("GTIN, Серия, ПолныйКод");
Результат.ПолныйКод = СчитанныйШтрихкод;
Если СтрНачинаетсяС(СчитанныйШтрихкод, "01") Тогда
Результат.GTIN = Сред(СчитанныйШтрихкод, 3, 14);
Результат.Серия = Сред(СчитанныйШтрихкод, 19);
КонецЕсли;
Возврат Результат;
КонецФункции
Для хранения КМ в УТ 10.3 рекомендуется создать новый Регистр сведений МаркировкаТоваров со следующими измерениями:
Номенклатура (СправочникСсылка.Номенклатура)Характеристика (СправочникСсылка.ХарактеристикиНоменклатуры)Серия (СправочникСсылка.СерииНоменклатуры) — если используется серийный учет.КодМаркировки (Строка) — сам DataMatrix.Проанализируем ситуацию с розничными продажами. В формате ФД 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 возможно и целесообразно, если вы хотите сохранить привычные бизнес-процессы. Оптимальным выбором для сложных систем является использование внешних модулей ЭДО для приемки и обновленной обработки обслуживания ККТ для корректного взаимодействия с современными драйверами, что минимизирует количество изменений в типовом коде конфигурации.