26 июня 1974 г. в 8:01 была продана упаковка жевательной резинки Wrigley’s. Она стала первым товаром со штрихкодом и теперь хранится в музее. В наши дни штриховая маркировка (barcode) наносится практически на каждый товар.
Существуют разные стандарты кодировки, но в торговле общепринятым считается код EAN/UPC. Он состоит из 13 цифр, которые условно разделены на 5 групп:
Первое поле не совсем правильно называют кодом страны-производителя. На самом деле оно указывает только на то, какая национальная организация зарегистрировала штрихкод. Национальные организации-регистраторы выдают каждой обратившейся к ним фирме уникальный внутри страны номер, который занимает второе поле. Фирма самостоятельно присваивает каждому производимому ей товару номер, который становится третьей частью кода. В результате код в целом является уникальным для каждого товара. В базы данных он прописывается именно как целое 13-значное число.
Префиксы с 200 по 299 являются особыми. Они не принадлежат ни одной организации-регистратору. Штрихкоды, начинающиеся с цифры 2, вообще не подлежат регистрации, но предназначены только для внутренних нужд фирм. Например, если вы решили маркировать пакеты с развесным товаром в своем магазине, то можете использовать произвольные коды, начинающиеся с двойки. Они гарантированно «не пересекутся» ни с какими зарегистрированными штрихкодами от производителей товаров.
Сканеры для считывания штрихкодов бывают стационарные (встраиваемые в прилавок или конвейер) и портативные. Последние обычно комплектуются настольным штативом. К компьютерам или другим устройствам сканер штрихкода подключается последовательным кабелем для COM-порта (RS-232) либо кабелем USB. Некоторые модели включаются в «разрыв клавиатуры»: на конце кабеля есть вилка и гнездо. Вилка вставляется в разъем PS/2 компьютера, а клавиатура подключается к гнезду. Модели отличаются углами обзора, чувствительностью, поддержкой различных стандартов кодирования. Со спецификацией EAN/UPC работают все сканеры, а другие варианты в торговле особенно и не нужны. Как можно использовать такое устройство?
Самое очевидное решение - подключить сканер к компьютеру, на котором установлена программа учета, и считывать коды с этикеток при заполнении накладных. С точки зрения системы и приложений сканер является почти таким же устройством ввода, как клавиатура. Когда в окне программы выбрано текстовое поле ввода, и вы провели сканером над штрихкодом, сканер пискнет и введет в это поле число, прочитанное им с этикетки. Все предельно просто! С тем же успехом вы могли бы набрать число и вручную, но сканер делает это намного быстрее и безошибочно.
Чтобы происходил поиск и подбор, в справочнике товаров каждой единице номенклатуры должен быть заранее присвоен штрихкод. Заполняя табличную часть, не нужно выбирать и вводить товары вручную - достаточно провести сканером, и нужная позиция добавится в список. Останется только указать количество!
На примере «1С:Управление торговлей» это выглядит примерно следующим образом. Детали зависят от версий программы и редакций конфигурации, поэтому приведу только общий порядок действий:
Бывает, что первый пункт проигнорировали, и купили то, что предложил не совсем грамотный консультант. Многие сканеры все равно нормально работают, если при настройке указать, что это стандартный «Сканер штрихкода: Общий». В крайнем случае хороший специалист по 1С путем некоторых «плясок с бубном» заставит работать в программе почти любую модель, но цена вопроса может быть сравнима с ценой самого устройства.
В 11-й редакции «1С:Управление торговлей» интерфейс пользователя организован иначе, а функция подключения оборудования по умолчанию скрыта. Сначала нужно ее включить: на вкладке Администрирование в группе Настройки выберите пункт Настройка параметров учета . В открывшемся диалоговом окне в группе Общие установите флажок Использовать подключаемое оборудование . Теперь на вкладке Администрирование станет доступен пункт Подключаемое оборудование .
Когда взаимодействие программы с устройством налажено, пора заняться справочником товаров. Скорее всего, номенклатура была заполнена раньше, нужно только присвоить позициям штрихкоды. Их мы возьмем прямо с коробок или этикеток.
Что делать, если тапочки шились на абсолютно подпольной фабрике и лишены не то что штрихкода, а этикетки как таковой? Либо будем, как раньше, выбирать их из списка вручную, либо придется присвоить им штрихкод самостоятельно. Вместо того чтобы водить сканером над несуществующей этикеткой, нажмите кнопку Новый штрихкод . Программа сама его сгенерирует. Начинаться код будет с двойки, и программа проследит, чтобы в этой базе все коды были уникальными. Нажмите кнопку OK .
Таким образом, в базу данных можно внести код, которым товар уже снабдил производитель, а можно присвоить товару новый штрихкод, и пользоваться им в пределах своего склада и магазина. Чуть дальше мы рассмотрим, как физически нанести маркировку на сами тапочки.
При заполнении табличной части любого документа (реализация, прием товара на склад и т. д.) проведите сканером над этикеткой со штрихкодом. Соответствующий товар будет добавлен в таблицу новой строкой. Это намного быстрее и проще, чем вручную выбирать товар из справочника номенклатуры.
Где и кому подойдет схема работы «сканер плюс компьютер с программой учета»? Варианта два.
В любом случае, со сканером в руках удобно принимать товары на склад. Если такой же товар раньше уже заносился в базу, это выяснится по штрихкоду. В табличной части документа «Поступление товаров и услуг» щелкните в новой строке в поле Номенклатура и проведите сканером над этикеткой.
Если такой штрихкод в базе есть, строка будет заполнена. Если же ничего не произошло, скорее всего, нужно завести новый элемент номенклатуры. Однако не исключено, что он существует, просто штрихкод для него еще не задавали. Тогда оперативно исправьте это упущение и продолжайте заполнять приходный документ.
Чаще всего используются CODE39 и EAN13.
Штрихкоды можно применять при работе с номенклатурой, подарочными сертификатами, информационными картами.
Штрихкоды облегчают работу с номенклатурой. Они помoгут вам быстро находить и подбирать нужные товары при продаже, оформлении поступлений на склад и т.д.
В 1С вы можете присвоить номенклатуре штрихкод производителя или же вести свою систему кодирования. Можно использовать часть своих штрихкодов, часть – производителей.
Как назначить штрихкод конкретной позиции номенклатуры?
Переходим в справочник номенклатуры: НСИ – Номенклатура.
У данной позиции Шоколад Sladkoff черный, 100 гр
еще нет присвоенных штрихкодов. Для добавления штрихкода нажимаем Создать.
В открытой карточке штрихкода заполняем поля Штрихкод и выбираем Тип штрихкода , например, EAN13.
Если вы хотите использовать собственные штрихкоды, а не производителей, просто нажмите Новый штрихкод . Программа автоматически сгенерирует штрихкод с типом EAN13. Такие штрихкоды будут уникальными, они в диапазоне, который не используется производителями товаров.
Чтобы кассиру было еще удобнее работать, в 1С: Рознице можно напечатать ценники уже со штрихкодами и подключить сканер штрихкодов.
Пример печати штрихкодов в табличном документе 1С:Предприятия 8.2 предназначен для самостоятельной модификации и для последующего применения в режиме управляемого приложения. Ниже приведены примеры для EAN-13, GS1-128, QR-кода и других распространенныхформатов штрихкодов.
Пример рассчитан на работу с ПО StrokeScribe версии 4.0.4 или старше.
1. Создайте новый отчет в конструкторе 1С:Предприятия 8.2 и дайте ему имя ОтчетШтрихкод (это имя будет использовано в модуле ниже).
2. Для отчета ОтчетШтрихкод создайте макет табличного документа под именем МакетШтрихкод .
3. В макете создайте область произвольного размера с именем ОбластьШтрихкод .
4. Поместите в область картинку (меню Таблица->Рисунки->Картинка) с размерами будущего штрихкода. В свойствах картинки укажите имя - РисунокШтрихкод .
В результате всех действий должен получиться макет отчета, похожий на показанный на рисунке:
Добавьте приведенный ниже код в модуль отчета. Самостоятельно смодифицируйте пользовательский интерфейс отчета для вызова обработчика команды. Данная реализация модуля создает единичный QR-код и легко модифицируется под создание нескольких штрихкодов разных форматов внутри одной области.
&НаСервере
Функция ДокНаСервере()
ТабДок = Новый ТабличныйДокумент;
Макет = Отчеты.ОтчетШтрихкод.ПолучитьМакет("МакетШтрихкод");
Область = Макет.ПолучитьОбласть("ОбластьШтрихкод");
//Обратите внимание на совпадение имен отчета, макета и области
в модуле и в дизайне
barcode = ПолучитьCOMОбъект("","STROKESCRIBE.StrokeScribeClass.1");
//Вы не забыли установить StrokeScribe?
ИмяФайла=ПолучитьИмяВременногоФайла("wmf");
//Временный файл во временном каталоге с расширением.wmf
barcode.Alphabet>=25;//QR CODE
barcode.Text="123ABCD";//Данные для штрихкода
код=barcode.SavePicture(ИмяФайла, 7, //7=WMF
100, //Ширина картинки штрихкода
100); //Высота штрихкода
Если код<>0 Тогда //Проверка результата генерации штрихкода
Сообщить(строка(код) + " - " + barcode.ErrorDescription);
Возврат Ложь;
КонецЕсли;
//Убедитесь в совпадении имени объекта рисунка здесь и в дизайне
рис=Область.Рисунки.РисунокШтрихкод;
рис.РазмерКартинки=РазмерКартинки.Пропорционально;
рис.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
//Вокруг штрихкода не должно быть рамки
рис.Картинка = Новый Картинка(ИмяФайла);
//Указывается то же имя файла, что и в SavePicture
ТабДок.Вывести(Область);
УдалитьФайлы(ИмяФайла);//Стереть временный файл с картинкой
Возврат ТабДок;
КонецФункции
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ТабДок1=ДокНаСервере();
Если ТабДок1<>Ложь Тогда
ТабДок1.Показать();
КонецЕсли;
КонецПроцедуры
Результат работы данного модуля - таблица с внедренной картинкой QR Code. Для выбора формата штрихкода, укажите другую константу в свойстве Alphabet. Для наиболее распространенных форматов штрихкодов ниже приведены специализированные примеры.
Для успешного выполнения вызова ПолучитьCOMОбъект() не забудьте установить ПО StrokeScribe. При работе в режиме клиент-сервер, ПО StrokeScribe должно быть установлено на сервере. На клиентских ПК установка StrokeScribe не требуется.
Вызов ПолучитьИмяВременногоФайла() требуется для получения произвольного имени промежуточного файла, в котором будет сохранено изображение штрихкода перед передачей его в табличный документ. Файл должен существовать до вызова ТабДок.Вывести(Область) . После этого временный файл может быть удален. Если планируется создание нескольких штрихкодов в одной области, то для каждого штрихкода должен быть создан свой временный файл. Так как SavePicture сохраняет штрихкод в формате WMF, то создаваемому файлу присваивается соответствующее расширение.
При желании, может быть использовано и фиксированное имя файла, например: ИмяФайла="c:\temp\barcode.wmf" . Разумеется, что папка "c:\temp" должна существовать и быть доступной для создания файлов.
Присваивание barcode.Alphabet= задает формат штрихкода. Константы типов штрихкодов доступны в документации. Примеры создания наиболее распространенных штрихкодов приведены ниже.
Данные, присваиваемые barcode.Text , зависят от формата штрихкода. Например, EAN-13 не может отображать буквы и имеет фиксированную длину, а CODE 128 не работает с кириллицей. Если StrokeScribe не может обработать строку, то в свойство Error будет записано ненулевое значение. В модуле используется упрощенная проверка ошибок - результат всех операций вместе помещается в переменную код : код=barcode.SavePicture() .
Вызов SavePicture() сохраняет изображение штрихкода во временном файле. Указание 7 во втором параметре вызова SavePicture() создаст векторное масштабируемое изображение в формате WMF. В коммерческой версии StrokeScribe доступны также форматы JPG, PNG, GIF, BMP24 и EMF. Создание растровых изображений штрихкода не рекомендуется из-за большого объема данных и плохой приспособленности к масштабированию, но может применяться в случае, если тонкий клиент не поддерживает WMF.
В конструкции Если код<>0 проверяется результат сохранения картинки штрихкода в файле. Код будет ненулевым и в том случае, если указан несуществующий тип штрихкода или в свойство Text посланы данные, не отображаемые штрихкодом выбранного типа. Текстовое пояснение к коду ошибки доступно в свойстве ErrorDescription . Результат каждой операции с объектом штрихкода можно дополнительно контролировать проверкой значения свойства Error.
Для вывода множества штрихкодов достаточно организовать циклическое присваивание Text= , Alphabet= (опционально) и обращение к методу SavePicture . Каждое обращение к SavePicture должно происходить с отдельным именем файла для каждого штрихкода внутри одной области до вызова ТабДок.Вывести() . После вывода области файлы могут быть удалены.
Ниже даны примеры создания некоторых распространенных форматов штрихкодов. Так как некоторые из форматов имеют дополнительные настройки, рекомендуем обратиться к страницам, ориентированным на определенный формат штрихкода (см. меню сайта слева) и к документации по свойствам StrokeScribe.
Пожалуйста, обратите внимание - версия 1С:Предприятия 8.2.12.96, на которой производилось тестирование, некорректно центрирует изображения WMF, сдвигая их вправо. Поэтому не рекомендуется уменьшать чистые зоны штрихкодов (свойства HBorderSize и QuietZone2D) во избежание потери части линий штрихкода.
Для вывода EAN-13, установите свойство Alphabet=3 . В свойство Text запишите цифровой 12-значный код товара (или 13-значный, если известна контрольная сумма). Вычисление и проверка контрольной суммы выполняется автоматически. При передаче 13-значного кода с неверной контрольной суммой, соответствующий код ошибки будет выставлен в свойстве Error.
Barcode.Alphabet=3; //EAN13 barcode.Text="123456789012"; код=barcode.SavePicture(ИмяФайла, 7, 100, 60);
Штрихкод CODE 128 формируется при установке свойства Alphabet=5 . В свойство Text можно записать любые символы ASCII, в том числе и управляющие коды. Обратите внимание - CODE 128 не поддерживает кириллицу. При записи недопустимых символов в свойство Text, в свойстве Error будет выставлен соответствующий код ошибки.
Смодифицируйте исходный текст модуля, как показано ниже:
Barcode.Alphabet=5; //CODE128 barcode.Text="123ABC" + Символ(9) + "def"; код=barcode.SavePicture(ИмяФайла, 7, 100, 60);
Символ(9) - функция языка 1C - кодирует символ табуляции (ASCII TAB). Все нечитаемые символы отображаются, как * в подписи под штрихкодом. CODE 128 позволяет задать произвольный текст подписи, который будет выведен под штрихкодом вместо стандартного отображения закодированных данных:
Barcode.Alphabet=5; barcode.Text="123ABC" + Символ(9) + "def"; barcode.TextBelow="моя подпись";
Формат штрихкода ITF-14 задается установкой свойства Alphabet=7 . В свойство Text запишите цифровой 13-значный цифровой код (или 14-значный, если известна контрольная сумма). Вычисление и проверка контрольной суммы выполняется автоматически. При передаче 14-значного кода с неверной контрольной суммой, соответствующий код ошибки будет выставлен в свойстве Error.
Смодифицируйте исходный текст модуля, как показано ниже:
Barcode.Alphabet=7; //ITF14 barcode.Text="1234567890123"; barcode.ITF14BearerBox=1; код=barcode.SavePicture(ИмяФайла, 7, 100, 30);
Свойство ITF14BearerBox выводит ITF-14 с прямоугольной рамкой, обычно присутствующей на штампах для гофрированной тары. Для вывода штрихкода только с горизонтальными защитными линиями, укажите ITF14BearerBox = 0 .
Формат штрихкода Data Matrix задается установкой свойства Alphabet=8 . Data Matrix позволяет кодировать любые данные, включая двоичные. Передача кириллицы в кодовой странице CP1251 не разрешается стандартом, но фактически используется в штрихкодах Почты России и некоторых банков. Создание Data Matrix, содержащих ECI=22 допустимо, если достоверно известно, что сканирующее оборудование и считывающее ПО поддерживают ECI. Для распознавания Data Matrix с кириллицей на мобильных телефонах, требуется кодирование в UTF-8.
Смодифицируйте исходный текст модуля, как показано ниже:
Barcode.Alphabet=8; //DATAMATRIX barcode.Text="123abcDEF"; код=barcode.SavePicture(ИмяФайла, 7, 100, 100);
Штрихкод Aztec задается установкой свойства Alphabet=33 . Aztec позволяет кодировать любые данные, включая двоичные. Кириллица в кодовой странице CP1251, по установившейся практике, передается в режиме кодирования двоичных данных. Стандарт требует указания идентификатора ECI=22 перед использованием кириллицы, но тем не менее, не все современное оборудование и ПО поддерживают ECI. Распознавание Aztec не поддерживается почти всеми мобильными телефонами, за исключением специализированных моделей для складского применения.
Для печати кода Aztec, смодифицируйте исходный текст модуля, как показано ниже:
Barcode.Alphabet=33; //AZTEC barcode.Text="123ABcd"; код=barcode.SavePicture(ИмяФайла, 7, 100, 100);
QR Code генерируется при установке свойства Alphabet=25 . Данный формат позволяет кодировать текстовые и двоичные данные. Кодирование кириллицы для распознавания на мобильных телефонах должно осуществляться в кодировке UTF-8. Применение идентификаторов ECI должно осуществляться только при уверенности, что считывающее оборудование и ПО поддерживают индикацию ECI. Для изменения уровня коррекции ошибок используйте свойство QrECL.
Приведенный здесь пример предназначен для создания QR-кода для мобильных приложений. Большинство складских и офисных применений в России (при распознавании специализированными сканерами) требуют прямой передачи текста в кодовой странице CP1251. Для этого установите UTF8=0
"Программа 1С Бухгалтерия 8 создана для автоматизации бухгалтерского и налогового учета, включая подготовку обязательной регламентированной отчетности, на коммерческих предприятиях: оптовую и розничную торговлю, комиссионную торговлю, оказание услуг, производство и тому подобное.
Программа "1С:Предприниматель 8" - создана для ведения бухгалтерского учета и составления отчетности индивидуальными предпринимателями ИП, ЧП, ПБОЮЛ. Программа позволяет вести Книгу учета доходов и расходов и хозяйственных операций индивидуальных предпринимателей, являющихся плательщиками налога на доходы физических лиц (НДФЛ).
При необходимости работать с программой 1С более чем на одном компьютере (это может быть локальная сеть), а также при работе в одной базе 1С, возникает необходимость купить лицензии 1С. Лицензии 1С - это дополнительные ключи защиты программ 1С, которые покупаются отдельно и дают право пользоваться на несколько компьютеров.
Версия 8.0.16.4.
Если при формировании квитанций выходит сообщение «Компонента 1С:Печать штрихкодов не установлена на данном компьютере! Подробную информацию об установке компоненты можете найти на нашем сайте. это значит, что необходимо установить Компонента 1С:Печать штрихкодов1CBarCode.exe
Компонента для печати штрихкодов 1CBarCode.exe поставляется на дисках ИТС или можете скачать по следующей ссылке 1CBarCode_8.0.16.4.exe.
Инструкция по установке компоненты 1CBarCode.exe:
1. Скачиваем файл 1CBarCode_8.0.16.4.rar по ссылке сверху, сохраняем на компьютер и разархивируем файл.
2. Нажимаем по файлу и выбираем язык установки, жмем кнопку «Ок»
3. Выйдет окно приветствия и предупреждения установки, жмем кнопку «Далее»
4. После выйдет окно лицензионного соглашения Компоненты 1С:Печати штрихкодов, выбираем пункт «Я принимаю условия лицензионного соглашения» и жмем кнопку «Далее»
5. Для продолжения необходимо выбрать вид установки:
Полная – будут установлены все компоненты программы (ставится по умолчанию для обычных пользователей)
Выборочная – выбор необходимых компонентов программы и папки, в которой они будут установлены. (рассчитана на опытных пользователей)
6. Подтверждаем готовность установки программы, жмем кнопку «Установить». Чтобы просмотреть или изменить параметры установки жмем кнопку «Назад» или кнопку «Отмена» для выхода программы.
7. Ждем окончания установки и жмем кнопку «Готово»
При формировании квитанций будут выходиться штрихкоды «Одномерный» или «Двумерный», в зависимости от выбора в настройке «Учетной политики (ЖКХ)» (Учет в ЖКХ - Учетная политика (ЖКХ)» - Штрихкод)