Внедрения системы штрихкодирования товаров и документов для автоматизации учета. Штрихкодирование в «1С»: как просто загрузить документы в базу Как работает штрихкодирование

Решение задачи обработки и сбора информации штрихкодированного товара нередко приходится производить в условиях большой удаленности объектов считывания от рабочего места оператора. В этих случаях возможно использование переносных устройств с оперативной памятью (терминалы сбора данных), промышленных сканеров штрих-кода, сканеров, использующих радиоканал для передачи данных на расстояние.

К сожалению, стоимость подобных устройств оставляет желать лучшего. Организация удаленного считывания штрихкодов с использованием вышеперечисленных устройств составляет от $600 до $1200 за ОДНУ удаленную точку и зависит от расстояние до компьютера-приемника.
Наша разработка позволяет организовать считывание и обработку информации в 1с со штрих-кодов, расположенных на значительном (до 1 км.) расстоянии от компьютера-приемника. Система легко интегрируется в 1С:Предприятие версия 8 (любая конфигурация 1с 8 , 8.1 - Управление Торговлей, УПП, Розница 8) и не требует использования нестандартного оборудования. Дистрибутив системы - небольшой файл объемом 1MB. Возможно использование КПК.

В пользу этого решения говорит прежде всего его низкая стоимость. Совокупные затраты на установку и программное обеспечение составляют $400-$500, стоимость подключения одного удаленного сканера штрих-кода - $30-$40.

Для сравнения - такое же решение на основе терминала сбора данных составляет $600 только для одной точки! Стоимость решения с использованием сканеров на радиоканале уже приближается к $1000-1200 для одной удаленной точки.

Система успешно внедрена и применяется на крупном оптовом складе электроники, расположенном в г.Щелково.

На рис.1 приведена типичная структурная схема решения с использованием следующей аппаратной базы:

  • ПК Pentium 1500 Mhz;
  • Плата расширения;
  • Конвертеры удаленного сбора данных
  • Сканеры штрих-кодов Cypher
  • Программное обеспечение для оранизации обработки информации
  • Ниже приведена примерная смета по расходам на оборудование и программное обеспечение,установку 1с предприятия, необходимое для подключения 10 удаленных сканеров штрих-кодов.

    Статья Кол-во Стоимость
    Мультипортовая плата расширения 1 $100
    Конвертеры удаленного сбора данных 20 $400
    Сканеры штрих-кодов Cipher Lab. 10 $600
    Установка программного обеспечения. 1 $400
    Монтаж и прокладка кабеля 1 $100

    ИТОГО

    $1 600


    Вид на склад из окна операторской комнаты


    Монтажный шкаф


    Монтажный шкаф с мультипортовой платой.


    Склад из окна операторской комнаты


    Контроллеры подключения сканеров штрих-кода.

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

    Сегодня штрихкодирование используется во многих областях деятельности компании: на складе (при приемке, инвентаризации и отпуске товара), в магазине (для реализации товаров конечному покупателю), а также в документообороте (для более быстрого поиска электронных документов в системе).

    При всей несомненной эффективности штрихкодирования, его внедрение в компании является достаточно затратным мероприятием. Поэтому предлагаем разобраться в предмете штрихкодирования подробнее, чтобы решить, насколько его внедрение будет полезным для компании.

    Как работает штрихкодирование

    Думаем, каждый, кто хоть раз покупал товар в супермаркете, приблизительно представляет себе, как работает штрихкодирование. Каждой товарной категории (документу) присваивается свой штрихкод, сканируя который можно найти данный товар (документ) в системе. Быстрый поиск товара, документа и является главной целью штрихкодирования. К тому же, это исключает возможность ошибки: отсканированный штрих-код явно укажет человеку, какой товар выбрать, тогда, как при ручном поиске может быть выбрана неподходящая позиция.

    Программа для штрихкодирования. Штрихкодирование в 1С.

    На российском рынке существует достаточно много программ, позволяющих осуществлять штрихкодирование товаров и документов. Но безусловным лидером среди них на протяжении многих лет остаются программы 1С. Они поддерживают как штрихкодирование товаров, так и документов. Если вы решили внедрить у себя штрихкодирование товаров на складе и в магазине, то хорошо подойдет программа . Сегодня именно она автоматизирует деятельность большинства торговых компаний. В программах 1С штрих-код присваивается напрямую в карточке товара (вкладка штрих-код в карточке товара в справочнике «Номенклатура»). Штрихкоды также можно распечатать с помощью обработки «Печать этикеток».

    Выбор и покупка оборудования для штрихкодирования

    Важный вопрос, который нужно решить при внедрении штрихкодирования – это выбор оборудования. Для считывания штрихкода вам потребуется или (позволяет удаленно считывать штрихкоды и накапливать их в своей памяти). Для печати штрихкодов существуют специальные . Они печатают штрихкод на . Этикетки с напечатанным штрихкодом наклеиваются на товар.

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

    Внедрение системы штрихкодирования для автоматизации склада

    Самый частый запрос в нашей компании – это внедрение системы штрихкодирования именно на складе. Почему? Потому что именно в условиях большого количества товаров требуется максимальная автоматизация учета и стандартизация операций. И этому способствует внедрение штрихкодирования. Конечно, оно требуется не на каждом складе. Например, для маленького склада с недорогим товаром внедрение штрихкодирования может и не окупиться.

    Если у вас крупный склад, на котором вам необходимо внедрить штрихкодирование, вам придется задуматься не только о нем, но и о комплексной автоматизации учета в компании. На складе же мы советуем вам внедрить специальную WMS систему или, как более недорогое решение, более простую программу для управления складом, например, 1С:Управление торговлей 11 .

    Штрихкодирование товаров в магазине

    В автоматизированном магазине для продажи товаров тоже используется технология штрихкодирования. Она решает сразу несколько задач. Во-первых, это ускорение продажи товара (кассиру не нужно искать товар вручную, чтобы оформить продажу). Во-вторых, это исключение человеческого фактора при оформлении документа продажи. В-третьих, внедрение штрихкодирования способствует предотвращению хищений в торговой точке.

    Давайте рассмотрим процесс продажи на примере супермаркета. Скажем, в супермаркет поступает товар «А». На нем уже есть штрихкод от поставщика. Штрих-код считывается товароведом при приемке товара и заносится в базу. При продаже товара кассир снова считывает штрихкод товара, система его находит в базе и подставляет в документ продажи. После продажи товар списывается.

    Штрихкодирование документов 1с для автоматизации учета в компании

    Штрихкодирование также нашло свое применение в автоматизации документооборота. Теперь, чтобы найти электронный экземпляр документа достаточно считать штрихкод с его бумажного оригинала. Это удобно, например, когда на к вам пришел человек с распечатанным счетом, и вы можете сосканировав штрихкод с него найти соответствующий заказ покупателя. Это может значительно ускорить работу менеджера.

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

    В целом внедрение штрихкодирования определенно будет полезно для компании. Оно поможет вам не только избежать множества ошибок, связанных с человеческим фактором, но сократить время на проведение множество торговых и складских операций.

    Система «Корпоративный документооборот» содержит механизм штрихкодирования документов предприятия. Штрихкодирование осуществляется с помощью программного кода системы, а также специализированной компоненты (работает под ОС Windows и Linux) которая выполняет рендеринг штрихкода в изображение в формате jpg.

    Для включения возможности использовать штрих-коды в системе документооборота необходимо в настройках подсистемы «Администрирование системы» включить флажок «Использовать штрихкоды». После включения штрихкодирования появляется возможность настроить сканер, в том числе указать COM порт, скорость и другие параметры. Флажок находится в форме «Настройка параметров: Система», закладка «Общие параметры».

    нажмите на картинку для увеличения

    Примечание: Если вы используете простой сканер штрихкодов, эмулирующий нажатия цифровой клавиатуры и не подключенный по COM порту (или через его эмуляцию), то настраивать оборудование не потребуется. Но в таком случае не будет возможности автоматически вызывать обработки внешнего события от сканера при сканировании кода, такие обработки нужно будет предварительно запускать вручную (например, нажатием Shift+I) в интерфейсе системы документооборота.

    На рисунке ниже показан пример размещения тега для вывода изображения штрихкода документа.

    После размещения тега в тексте шаблона можно выполнять обычное формирование содержимого документа при открытии файла из корпоративного документа.

    На рисунке ниже приведен пример сформированного по шаблону документа. В данном документе заполнены не только обычные параметры, но и выведен штрихкод (в указанном в шаблоне месте).

    Аналогично осуществляется ввод данных и в OpenOffice Writer.

    Прочие возможности штрихкодирования

    Система документооборота поддерживает возможность присвоения штрих-кодов, сформированных в других системах. Такие штрихкоды могут быть получены с документами из сторонних систем, например от контрагентов.

    Для присвоения штрихкода документу можно необходимо выбрать в меню «Все действия» пункт «Штрихкоды Добавить внешний штрихкод». Пример расположения такого пункта приведен на рисунке, расположенном ниже.

    Существует возможность сохранения присвоенного штрихкода в файл формата jpg. Для этого необходимо выбрать пункт «Штрихкоды Сохранить штрихкод».

    Связанные с объектами штрихкоды начинаются с зарезервированного префикса «2». При необходимости все штрихкоды системы можно посмотреть в регистре сведений «Штрихкоды».

    Для поиска документов по штрихкоду в системе можно воспользоваться специальной обработкой, открыть её можно либо в подсистеме «Актуальные документы» либо нажав в любом месте программы сочетание клавиш «Shift+I».

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

    На написание данной статьи меня побудили 2 факта:

    Начну я с наверно самого распространенного способа штрихкодирования – составление штрихкода «на лету» на основе параметров документа . Этот метод я называю «классическим». Основной принцип этого подхода заключается в том, что штрихкод (далее по тексту может использоваться сокращение ШК) формируется из некоторого набора ключевых полей, под каждое из которых отводится сколько-то символов. «Классический» вариант структуры штрихкода:

    • Код вида документа (заказ, реализация, доверенность и т.п.) – обычно от 1 до 3-х символов.
    • Код организации (по сути, замена кириллического префикса в номере документа) – обычно от 1 до 3-х символов.
    • Номер документа без префикса – от 6 до 9 символов.
    • Дата документа – от 6 до 8 символов в зависимости от варианта представления (год кодируется 2-мя или 4-мя цифрами).
    В целом на первый взгляд все здорово: учли все многообразие видов документов, различные организации, нумерацию, дату - на выходе получим уникальный ШК, который однозначно идентифицирует документ. Но сразу же очевидны и минусы: при обработке штрихкода требуется его обратное преобразование, расшифровка, получение тех самых ключевых полей, который изначально в него зашифровали. И обычно никто не заморачивается на тему реализации универсального алгоритма, настраиваемого параметрически в пользовательском режиме. Хотя вообще то никто не мешает создать некую структуру данных с указанием соответствия цифрового кода объекту метаданных, в организациях можно добавить поле с названием например «код организации для штрихкода» и т.п. Обычно все делается на скорую руку и эти вещи полностью или частично описываются хардкодом. Ну то есть прямо в коде написано что-то типа:

    ДокументТип = "000";
    Если ТипЗнч(Документ)=Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
    ДокументТип = "001";
    ИначеЕсли ТипЗнч(Документ)=Тип("ДокументСсылка.ЗаказПокупателя") Тогда
    ДокументТип = "002";
    КонецЕсли;

    К чему все это приводит? Очевидно: к тому, что при любом изменении набора ключевых параметров (как то необходимость вывести штрихкод на новый тип документа, появление новой организации и т.п.) нужно править код. А если есть еще и обмен с другими базами и там тоже нужен поиск документа по штрихкоду, то количество мест, где надо изменить код растет, а вместе с ним растет и вероятность ошибки – забыли адаптировать код, адаптировали но с ошибкой и т.д. и т.п.
    Мало того. Бывает еще и такое, что например менеджер ошибся при заведении заказа в базу, указал не ту организацию, после чего зашел бухгалтер (ну или любой другой пользователь с соответствующими правами) и организацию изменил. Очевидно, что теперь при печати документа штрихкод будет уже совершенно другим и по ранее распечатанной бумаге документ в базе найти не удастся. В течение нескольких дней после изменения организации это может и не вызвать проблем, а через полгода кто вспомнит об этом случае?

    Основная идея метода, который я предлагаю и который успешно используется в нескольких организациях заключается в следующем: штрихкод должен быть отдельным полем и он должен храниться в базе . Не нужно привязывать его ни к номеру ни к дате ни к другим полям, так как значения этих полей в принципе могут измениться. Понятно, что нужно гарантировать уникальность штрихкодов, поэтому добавление реквизита «штрихкод» в документ – плохая идея. Да и к тому же выше я уже писал, что штрихкодировать надо разные виды документов – добавлять реквизит во все просто глупо. Очевидное решение: регистр сведений с единственным измерением типа строка – Штрихкод и ресурсом Документ составного типа. Можно указать фиксированный набор документов, либо же тип ДокументСсылка, либо вообще ЛюбаяСсылка. Явным преимуществом такой архитектуры является гарантия уникальности штрихкода на уровне платформы – ни при каких обстоятельствах не получится записать в базу 2 строки с одинаковым ШК и разными документами. Другой вопрос конечно, что можно изменить существующую запись (то есть фактически переприсвоить штрихкод другому документу и таким образом можно получить бумажные варианты 2-ух различных документов с одинаковым ШК) – но тут уже вопрос ограничения прав доступа + грамотно написанный код, который не допустит такого развития событий.

    Итак, архитектура понятна, теперь детали: как получить уникальный ШК? Можно конечно попробовать использовать просто сквозной нумератор, начать с 1 и каждый раз прибавлять на единичку – так тоже можно, но я решил использовать произвольный набор цифр. Точнее не совсем произвольный. ШК получается из уникального идентификатора документа, коим является . Как известно, GUID состоит из 32 значимых символов (цифры и буквы латинского алфавита) + разделители (тире), общая длина 36 символов. По этой причине запихнуть в ШК весь GUID не представляется возможным – потому что на документе ШК заведомо ограниченного размера, могут возникнуть сложности при считывании столь длинного ШК. К тому же, если использовать кодировку GODE128, то количество штрихов на любые символы кроме цифр ровно в 2 раза больше, чем на кодирование цифры. Да и кроме того, ШК такой длины видится избыточным, обычно должно хватать 12-15 символов чтобы обеспечить запас для кодирования документов. Соответственно, решение такое: из GIUD убрать все кроме цифр. Полученный набор цифр довести до нужной длины. В зависимости от количества документов на единицу времени в организации обычно должно хватить 12-15 символов. Полученный таким образом ШК при помощи запроса предварительно проверяется на уникальность – ведь мы же обрезали GUID, уникальность которого гарантирована, стало быть, полученный обрезанный набор цифр уже может оказаться неуникальным и его надо предварительно проверить. Если проверка пройдена – отлично, мы получили искомый ШК, если нет – генерируем ШК на основе произвольного GUID до тех пор, пока не получим уникальный ШК. В конце статьи приведен код, который все это реализует. Сама запись штрихкода происходит по подписке на событие.

    При обмене данными с другими системами передается так же и ШК в числе прочих полей. Кстати, учитывая, что ШК уникален, по нему можно вести синхронизацию. В базе-приемнике ШК может быть реквизитом документа. Естественно, уникальность ШК проверяется только в головной базе, база-приемник просто получает готовый ШК и сохраняет его.

    О плюсах данного полхода . Главный плюс – это универсальность. Нет зависимости от количества организаций в базе, добавление штрихкодирования нового вида документов делается легко и просто. При желании, можно управлять этим параметрически в режиме пользователя – создать структуру данных, где будет храниться перечень документов, к которым нужно генерировать штрихкод. То же самое и при поиске документа по ШК – никакого разбора не требуется, ведется поиск на равенство, сам алгоритм поиска универсальный и не потребует доработок. При чем во всех базах, участвующих в обмене (опять таки, оговорюсь: при условии, что существует «головная» база, которая генерирует ШК и гарантирует их уникальность, в базах-приемниках ШК генерироваться не должны, только получаться вместе с обменом).

    Исходный код:

    Функция ПроверитьЗаписатьШтрихкодДокумента(СсылкаНаОбъект) Экспорт

    Результат = Ложь;

    // первое: получим штрихкод из GUID-а, чтобы сразу в запросе проверить его уникальность, дабы убрать лишний запрос к БД
    GUID = СсылкаНаОбъект.УникальныйИдентификатор();
    Штрихкод = ПодготовитьШтрихКодИзGIUDа(GUID);

    // второе: проверяем наличие штрихкода, а так же уникальность кода в пакетном запросе
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |ИЗ
    |ГДЕ
    | ШтрихкодыДокументов.Документ = &Документ
    |;
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    | ШтрихкодыДокументов.Штрихкод
    |ИЗ
    | РегистрСведений.ШтрихкодыДокументов КАК ШтрихкодыДокументов
    |ГДЕ

    Результат = Запрос.ВыполнитьПакет();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    // штрихкод есть - возвращаем Истину
    Возврат Истина
    КонецЕсли;

    // третье: штрихкода нет - запишем
    // сначала проверим ШК на основе GUID на уникальность:
    ВыборкаУникальность = Результат.Выбрать();
    Если ВыборкаУникальность.Следующий() Тогда
    // ШК не уникален. генерируем новый
    КодУникален = Ложь;
    Пока НЕ КодУникален Цикл
    Штрихкод = ПодготовитьШтрихКодИзGIUDа(Новый УникальныйИдентификатор);

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ШтрихкодыДокументов.Штрихкод
    |ИЗ
    | РегистрСведений.ШтрихкодыДокументов КАК ШтрихкодыДокументов
    |ГДЕ
    | ШтрихкодыДокументов.Штрихкод = &Штрихкод";

    Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
    Результат = Запрос.Выполнить();
    КодУникален = Результат.Пустой();
    КонецЦикла;
    КонецЕсли;

    ЗаписьРегистра = РегистрыСведений.ШтрихкодыДокументов.СоздатьМенеджерЗаписи();
    ЗаписьРегистра.Документ = СсылкаНаОбъект;
    ЗаписьРегистра.Штрихкод = Штрихкод;
    ЗаписьРегистра.GUID = GUID;
    ЗаписьРегистра.ДатаСоздания = ТекущаяДата();
    ЗаписьРегистра.Пользователь = ПараметрыСеанса.ТекущийПользователь;
    Попытка
    ЗаписьРегистра.Записать();
    Результат = Истина;
    Исключение
    Результат = Ложь;
    КонецПопытки;

    Возврат Результат;

    КонецФункции

    Функция ПодготовитьШтрихКодИзGIUDа(фGIUD, фДлина = 12)

    ФШтрихКод = фGIUD;

    ФШтрихКод = СтрЗаменить(фШтрихКод, "-", "");
    фШтрихКод = СтрЗаменить(фШтрихКод, "a", "");
    фШтрихКод = СтрЗаменить(фШтрихКод, "b", "");
    фШтрихКод = СтрЗаменить(фШтрихКод, "c", "");
    фШтрихКод = СтрЗаменить(фШтрихКод, "d", "");
    фШтрихКод = СтрЗаменить(фШтрихКод, "e", "");
    фШтрихКод = СтрЗаменить(фШтрихКод, "f", "");

    ФШтрихКод = Лев(фШтрихКод, фДлина);

    // на случай, если штрихкод оказался меньше нужной длины, дополняем его ведущими нулями
    Пока СтрДлина(фШтрихКод) < фДлина Цикл
    фШтрихКод = "0" + фШтрихКод;
    КонецЦикла;

    Возврат фШтрихКод;

    КонецФункции //ШтрихКодНовый()

    Тем, кто начинает работу с электронным архивом, первый этап будет самым загруженным: нужно будет внести в базу все уже имеющиеся документы, что означает объемную работу по распознаванию документов.

    Зато работа с внесением в базу тех документов, которые были созданы уже с участием «Скан-Архива», будет гораздо проще: в программе это реализовано за счет штрихкодирования документов в «1С».

    Как работает штрихкодирование в «1С»

    После установки «Скан-Архива» штрихкодирование начинает работать автоматически. Каждый документ при печати автоматически помечается штрихкодом. Когда он вернется к вам от контрагента и вы отсканируете его, «Скан-Архив» распознает свой штрихкод и мгновенно прикрепит скан-копию к нужному документу в базе.

    Эта функция доступна во всех версиях программы «Скан-Архив». Пример документа, на который при печати из «1С» добавлен штрихкод:


    Смотрите подробнее на видео, как это работает

    Штрихкодирование группы документов

    Это же касается и группы документов. В информационных базах, работающих в управляемом режиме на платформе 1С:Предприятие 8.3, имеется возможность выделить несколько документов в списке и отправить их на печать. В этом случае печатные формы всех выбранных документов перед выводом на печать объединяются в один печатный документ. И, чтобы штрихкод печатался корректно, необходимо подключить в базу и использовать при печати дополнительную печатную форму «СА: Печать документов со штрихкодами»: она выполняет массовую печать без объединения печатных форм в одну печатную форму.

    Для использования печатной формы «СА: Печать документов со штрихкодами» ее надо предварительно подключить в базу как дополнительную обработку. После подключения допобработки она появляется в подменю «Печать» для тех документов, которым она назначена при подключении.

    Далее при выборе этой печатной формы открывается окно, в котором перечислены все выбранные документы. В этом окне расположена кнопка «Печатные формы», в которой перечислены все печатные формы, доступные для выбранных документов. Необходимо выбрать подходящую печатную форму - для каждого выбранного документа в списке появится соответствующий печатный документ «Скан-Архив».

    Чтобы все сформированные документы вышли на печать с правильными штрихкодами, нужно проставить параметры печати каждого печатного документа (или оставить параметры по умолчанию) и нажать кнопку «Печать».

    Не печатаются штрихкоды для документа в «1С»

    Если «Скан-Архив» установлен, а штрихкодирование в «1С» не настроено, следует зайти в настройки «Скан-Архива» и на вкладке «Штрихкодирование» проверить: есть ли те документы, которые печатаются. Если есть, то зайти в настройки и проверить печатные формы.

    Если печатные формы в порядке, то проверяем следующее: при печати документа, нажимаем «Предварительный просмотр», потом «Параметры страницы», где поля и колонтитулы должны быть по 10 п.

    Если с данными настройками также все в порядке, то проверяем модуль «Общие модули» - «Универсальные механизмы» - «Управление печатью». В вызове функции «Сформировать печатные формы» добавленный код от нашей инструкции должен быть размещен до возврата значения из функции.