Штрихкоды в 1С, как создать и напечатать?
Нет сомнений, что механизм автоматической идентификации товаров, производимой продукции, различного имущества организации при помощи штрихкодов повышает эффективность работы, позволяет минимизировать количество ошибок и уменьшить трудозатраты, быстрее обслуживать клиентов.
В программных продуктах 1С уже имеется встроенная система для возможности печати штрихкодов для номенклатуры. Штрихкоды возможно отображать на различным печатных формах или специализированных бирках, ценниках и пр.
Как создать и напечатать штрихкоды в 1С?
Для того, чтобы работал механизм печати, должен быть установлена компонента печати “1С:Печать штрихкодов (ActiveX)”. Скачать ее можно с сайта с обновлениями 1С.
После установки диструбутива в программе появится возможность использовать штрихкоды следующих форматов: EAN8, EAN13, EAN13 AddOn 2, EAN13 AddOn 5, ITF14, RSS14, EAN128, Code39, Code39 Full ASCII, Code93, Code128, Code16k, Industrial 2 of 5, Interleaved 2 of 5, CodaBar, PDF417.
После этого для формирования ценников и этикеток откроем обработку “Печать ценников и этикеток”. Далее в табличной части выберем нужные нам позиции номенклатуры. Поскольку в нашем примере нам понадобиться печатать и этикетки и ценники, то установим соответствующий режим печати по кнопке в шапке.
В табличной части выберем шаблон ценника и этикетки. Обратите внимание, что в шаблоне должно содержаться поле со штрихкодом, а также для выбранной номенклатуры должен быть определен сам штрихкод.
После этого при выводе на печать у нас будут сформированы ценники и этикетки в том количестве экземпляров, которое было указано в поле “Кол. Ценников (шт)” и “Кол. этикетов(шт)” соответственно.
Генерация штрихкодов с помощью стандартных подсистем 1с для программистов
Привет всем! В данной статье предлагаю небольшой обзор возможностей актуальной библиотеки стандартных подсистем (БСП) на предмет формирования большинства существующих штрихкодов.
Для чего это нужно и чем может быть полезная эта статья? Поскольку, у нас в России сейчас активно наращивает обороты маркировка продукции (сигареты, обуви, текстиля и т.п), функционал формирования штрихкодов был включен в основу всех типовых конфигураций — БСП.
Основные возможности БСП инструментов разработчика «Генерация штрихкодов»
Базовой «входящей» серверной функцией-структурой для вывода штрих-кода является функция ПараметрыГенерацииШтрихкода() Экспорт
Выглядит она вот так:
Обратите внимание на параметр структуры «ТипКода». Поддерживаются следующие типы кодов:
Далее, все достаточно просто — мы отправляем структуру параметров в серверную функцию ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода) через экспортную функцию ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт
выглядит это так:
Данная функция возвращает структуру РезультатОперации следующего содержания:
Так же, обратите внимание, что Внешняя компонента — основной объект для формирования «картинки» штрихкода, встроенный в ОбщийМакет.КомпонентаПечатиШтрихкодов конфигурации БСП. Получить его можно вот так:
Собственно, на этом базовых знаний достаточно, чтобы перейти от теории к практике — в следующем разделе привожу рабочий пример использования данного функционала.
Рабочий пример использования функционала БСП для формирования штрихкода
Здесь я привожу набор процедур и функций для формирования штрихкода:
Заключение и выводы
В даннойрассмотрели основную выжимку настройки и применения методов генерации штрихкодов с системе БСП. Данные методы вы можете использовать в любой стандартной конфигурации 1с, основой которой является библиотека стандартных подсистем. Спасибо за прочтение. В качестве благодарности, вы можете поддержать автора статьи любым желаемым способом
1С 8.3 : Простое штрихкодирование документов
Была поставлена задача на предприятии, где ежедневно выписывается по 300-500 накладных организовать штрихкодирование документов, для более удобной работы с бумажным носителем в дальнейшем. И вот результат…
Конфигурация “Торговля и склад”. Хотелось сделать как можно проще и быстрее, и в тоже время надежно. На решение задачи ушло 1,5 часа. И так приступим….
У нас будет использоваться штрихкод EAN13. Создаем общий реквизит документов:
Общий реквизит документов "EAN13"
Тип – “Строка”, длина – 13, отбор по реквизиту
Добавляем в глобальный модуль процедуру
Код 1C v 7.x
После этого в документы, которым будут присваиваться штрихкоды добавляем вызов
вышеописанного в процедуру "ПриЗаписи()"
Код 1C v 7.x
В результате при первой записи документа ему будет присвоен штрихкод состоящий
из следующих блоков:
1. год документа (2 символа);
2. семь цифр справа от номера документа;
3. код вида документа (3 символа);
4. контрольный символ;
Осталось только вставить в печатную форму объект ActiveBarcode и настроить
необходимые свойства у него.
А вот и результат
1С 8 — Печать штрихкода
Пример печати штрихкодов в табличном документе 1С:Предприятие предназначен для самостоятельной модификации и для последующего применения в режиме управляемого приложения. Ниже приведены примеры для EAN-13, GS1-128, QR-кода и других распространенныхформатов штрихкодов.
Пожалуйста, обратите внимание — пример рассчитан на работу с ПО StrokeScribe версии 4.0.4 или старше.
Подготовка макета для вывода штрихкода
1. Создайте новый отчет в конструкторе 1С:Предприятия 8.2 и дайте ему имя ОтчетШтрихкод(это имя будет использовано в модуле ниже).
2. Для отчета ОтчетШтрихкод создайте макет табличного документа под именем МакетШтрихкод.
3. В макете создайте область произвольного размера с именем ОбластьШтрихкод.
4. Поместите в область картинку (меню Таблица->Рисунки->Картинка) с размерами будущего штрихкода. В свойствах картинки укажите имя — РисунокШтрихкод.
В результате всех действий должен получиться макет отчета, похожий на показанный на рисунке:
Модуль отчета
Добавьте приведенный ниже код в модуль отчета. Самостоятельно смодифицируйте пользовательский интерфейс отчета для вызова обработчика команды. Данная реализация модуля создает единичный QR-код и легко модифицируется под создание нескольких штрихкодов разных форматов внутри одной области.
Результат работы данного модуля — таблица с внедренной картинкой 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 должно происходить с отдельным именем файла для каждого штрихкода внутри одной области до вызова ТабДок.Вывести(). После вывода области файлы могут быть удалены.
Примеры создания штрихкодов в отчете 1С 8.2
Ниже даны примеры создания некоторых распространенных форматов штрихкодов. Так как некоторые из форматов имеют дополнительные настройки, рекомендуем обратиться к страницам, ориентированным на определенный формат штрихкода (см. меню сайта слева) и к документации по свойствам StrokeScribe.
Пожалуйста, обратите внимание — версия 1С:Предприятия 8.2.12.96, на которой производилось тестирование, некорректно центрирует изображения WMF, сдвигая их вправо. Поэтому не рекомендуется уменьшать чистые зоны штрихкодов (свойства HBorderSize и QuietZone2D) во избежание потери части линий штрихкода.
EAN-13
Для вывода EAN-13, установите свойство Alphabet=3. В свойство Text запишите цифровой 12-значный код товара (или 13-значный, если известна контрольная сумма). Вычисление и проверка контрольной суммы выполняется автоматически. При передаче 13-значного кода с неверной контрольной суммой, соответствующий код ошибки будет выставлен в свойстве Error.
Смодифицируйте исходный текст модуля, как показано ниже:
CODE 128
Штрихкод CODE 128 формируется при установке свойства Alphabet=5. В свойство Text можно записать любые символы ASCII, в том числе и управляющие коды. Обратите внимание — CODE 128 не поддерживает кириллицу. При записи недопустимых символов в свойство Text, в свойстве Error будет выставлен соответствующий код ошибки.
Смодифицируйте исходный текст модуля, как показано ниже:
Символ(9) — функция языка 1C — кодирует символ табуляции (ASCII TAB). Все нечитаемые символы отображаются, как * в подписи под штрихкодом. CODE 128 позволяет задать произвольный текст подписи, который будет выведен под штрихкодом вместо стандартного отображения закодированных данных:
ITF-14
Формат штрихкода ITF-14 задается установкой свойства Alphabet=7. В свойство Text запишите цифровой 13-значный цифровой код (или 14-значный, если известна контрольная сумма). Вычисление и проверка контрольной суммы выполняется автоматически. При передаче 14-значного кода с неверной контрольной суммой, соответствующий код ошибки будет выставлен в свойстве Error.
Смодифицируйте исходный текст модуля, как показано ниже:
Свойство ITF14BearerBox выводит ITF-14 с прямоугольной рамкой, обычно присутствующей на штампах для гофрированной тары. Для вывода штрихкода только с горизонтальными защитными линиями, укажите ITF14BearerBox = 0.
GS1-128 (ранее EAN-128)
Для печати штрихкода GS1-128, установите свойство Alphabet=17. В свойство Text запишите последовательность данных и идентификаторов AI. Пример: идентификатор партии = 1234; масса брутто = 12345.6Кг; годность до 17/05/2001. Результирующая строка: «10» + «1234» + GS + «3301» + «123456» + «17» + «010517». Для ограничения параметров переменной длины используется ASCII GS (десятичный код 29).
Смодифицируйте исходный текст модуля, как показано ниже:
Большие объемы данных в формате GS1 можно хранить в двумерных штрихкодах GS1 DATAMATRIX.
Data Matrix
Формат штрихкода Data Matrix задается установкой свойства Alphabet=8. Data Matrix позволяет кодировать любые данные, включая двоичные. Передача кириллицы в кодовой странице CP1251 не разрешается стандартом, но фактически используется в штрихкодах Почты России и некоторых банков. Создание Data Matrix, содержащих ECI=22 допустимо, если достоверно известно, что сканирующее оборудование и считывающее ПО поддерживают ECI. Для распознавания Data Matrix с кириллицей на мобильных телефонах, требуется кодирование в UTF-8.
Смодифицируйте исходный текст модуля, как показано ниже:
Aztec
Штрихкод Aztec задается установкой свойства Alphabet=33. Aztec позволяет кодировать любые данные, включая двоичные. Кириллица в кодовой странице CP1251, по установившейся практике, передается в режиме кодирования двоичных данных. Стандарт требует указания идентификатора ECI=22 перед использованием кириллицы, но тем не менее, не все современное оборудование и ПО поддерживают ECI. Распознавание Aztec не поддерживается почти всеми мобильными телефонами, за исключением специализированных моделей для складского применения.
Для печати кода Aztec, смодифицируйте исходный текст модуля, как показано ниже:
QR Code
QR Code генерируется при установке свойства Alphabet=25. Данный формат позволяет кодировать текстовые и двоичные данные. Кодирование кириллицы для распознавания на мобильных телефонах должно осуществляться в кодировке UTF-8. Применение идентификаторов ECI должно осуществляться только при уверенности, что считывающее оборудование и ПО поддерживают индикацию ECI. Для изменения уровня коррекции ошибок используйте свойство QrECL.
Приведенный здесь пример предназначен для создания QR-кода для мобильных приложений. Большинство складских и офисных применений в России (при распознавании специализированными сканерами) требуют прямой передачи текста в кодовой странице CP1251. Для этого установите UTF8=0. Установка QrECL приведена здесь в качестве примера и не является обязательной.
ТОП ПРОДАЖ