Как организовать хранение кодов маркировки товаров в 1С 7.7?

Программист 1С v7.7 1С:Комплексная автоматизация Управленческий учет Торговля и дистрибуция
← На главную

Переход на обязательную маркировку товаров для пользователей 1С 7.7 ставит перед разработчиками сложную задачу. Стандартные механизмы платформы не рассчитаны на хранение длинных уникальных кодов DataMatrix (до 31 символа и более), а ограничение длины кода элемента справочника в 24 символа делает классический подход невозможным. Рассмотрим, как эффективно решить эту проблему, используя возможности SQL-сервера.

Анализ архитектуры хранения кодов маркировки

Первым делом проанализируем, нужно ли вести полноценный складской учет по каждой марке. Если вы производитель или участник цепочки поставок, необходимость фиксировать движение каждой единицы товара очевидна. Однако создание отдельного справочника в 1С 7.7 приведет к чрезмерному раздуванию базы и проблемам с быстродействием. Вместо этого предлагается вынести хранение кодов маркировки во внешнюю SQL-таблицу. Это решение позволяет хранить любые объемы данных, не затрагивая структуру DBF-файлов конфигурации.

Создание вспомогательной таблицы в SQL

Для хранения кодов маркировки создадим специализированную таблицу в базе данных. В ней мы будем хранить не только сам код маркировки, но и его статус, а также связь с документами 1С. Это обеспечит высокую скорость поиска и удобство при формировании УПД для электронного документооборота.

Рассмотрим пример создания таблицы s_marki:


CREATE TABLE dbo.s_marki (
    ROW_ID        int NOT NULL IDENTITY(1, 1),
    ID_marki      nchar(35),
    ID_reference  nchar(13) NOT NULL,
    ID_document   nchar(13),
    status_km     numeric(1),
    DATE_mercury  smalldatetime,
    PRIMARY KEY (ROW_ID), 
    UNIQUE (ID_marki)
)

CREATE INDEX IND_doc_s_marki ON dbo.s_marki (ID_document)
CREATE INDEX IND_ref_s_marki ON dbo.s_marki (ID_reference)

Такая структура позволяет связать марку с товаром и документом через ID-ссылки, которые 1С использует для идентификации объектов. Поля status_km и DATE_mercury помогут вам отслеживать текущее состояние маркировки: от эмиссии до вывода из оборота.

Реализация процесса отгрузки товара

При отгрузке товара в документе Реализация вам не потребуется переписывать структуру табличной части самого документа. Достаточно реализовать механизм сканирования кодов, при котором кладовщик считывает DataMatrix, а система записывает их в связке с текущим документом в созданную таблицу.

  1. Признак маркировки: В справочнике Номенклатура добавьте реквизит-флаг, определяющий, подлежит ли товар маркировке.
  2. Сканирование: В форме документа реализации при подборе товара используйте сканер штрих-кода. Считанный код записывается в таблицу s_marki, где он привязывается к текущему документу.
  3. Связь с ЭДО: При формировании УПД используйте данные из таблицы s_marki. Поскольку все марки привязаны к конкретному ID_document, вы сможете легко выгрузить список кодов для передачи в электронном виде.

Преимущества выбранного подхода

Разобрав данную схему, мы видим несколько ключевых преимуществ для 1С 7.7:

Помните, что при работе с DataMatrix крайне важно проверять структуру кода. Код содержит GTIN, серийный номер и криптографическую часть, включающую спецсимволы. Убедитесь, что ваш алгоритм считывания корректно обрабатывает все символы, предусмотренные стандартом GS1, в том числе такие, как !\"%&'()*+-./_.

Используя этот подход, вы сможете успешно внедрить маркировку даже в сильно переписанной комплексной конфигурации 1С 7.7, сохранив при этом стабильность и производительность системы.

← На главную