1с предприятие штрих код. Замечания по модулю отчета




Пример создания штрихкодов в табличном документе 1С:Предприятия 8.2/8.3 в режиме управляемого приложения. Ниже приведены примеры для EAN-13, GS1-128, QR-кода и других распространенных форматов штрихкодов.

Для работы с примером Вам потребуется установить ПО StrokeScribe.

Пример предназначен только для режима управляемого приложения и протестирован на совместимость с версиями 1С 8.2/8.3.

Для работы с примером потребуется установка ПО StrokeScribe версии 4.2 или старше.

Подготовка макета для вывода штрихкода

1. Создайте новый отчет в конструкторе 1С:Предприятия 8.2 и дайте ему имя ОтчетШтрихкод (это имя будет использовано в модуле ниже).

2. Для отчета ОтчетШтрихкод создайте макет табличного документа под именем МакетШтрихкод .

3. В макете создайте область произвольного размера с именем ОбластьШтрихкод .

4. Поместите в область картинку (меню Таблица->Рисунки->Картинка) с размерами будущего штрихкода. В свойствах картинки укажите имя - РисунокШтрихкод .

В результате всех действий должен получиться макет отчета, похожий на показанный на рисунке:

Модуль отчета

&НаСервере Функция ДокНаСервере() ТабДок = Новый ТабличныйДокумент; Макет = Отчеты.ОтчетШтрихкод.ПолучитьМакет("МакетШтрихкод"); Область = Макет.ПолучитьОбласть("ОбластьШтрихкод"); //Обратите внимание на совпадение имен отчета, макета и области в модуле и в дизайне 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.Показать(); КонецЕсли; КонецПроцедуры

Замечания по модулю отчета:

Для успешного выполнения вызова Получить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) во избежание потери части линий штрихкода.

Barcode.Alphabet=3; //EAN13 barcode.Text="123456789012"; код=barcode.SavePicture(ИмяФайла, 7, 100, 60);

Barcode.Alphabet=5; //CODE128 barcode.Text="123ABC" + Символ(9) + "def"; код=barcode.SavePicture(ИмяФайла, 7, 100, 60);

Символ(9) - функция языка 1C - кодирует символ табуляции (ASCII TAB). Все нечитаемые символы отображаются, как * в подписи под штрихкодом. CODE 128 позволяет задать произвольный текст подписи, который будет выведен под штрихкодом вместо стандартного отображения закодированных данных:

Barcode.Alphabet=7; //ITF14 barcode.Text="1234567890123"; barcode.ITF14BearerBox=1; код=barcode.SavePicture(ИмяФайла, 7, 100, 30);

Свойство ITF14BearerBox выводит ITF-14 с прямоугольной рамкой, обычно присутствующей на штампах для гофрированной тары. Для вывода штрихкода только с горизонтальными защитными линиями, укажите ITF14BearerBox = 0 .

Подробные примеры по созданию строк GS1 можно найти здесь. С списком форматами подерживаемых идентификаторв GS1 можно ознакомиться в списке совместимости.

Смодифицируйте исходный текст модуля, как показано ниже:

Barcode.Alphabet=17; //EAN128 GS = Символ(29); barcode.Text="10" + "1234" + GS + "3301" + "123456" + "17" + "010517"; barcode.ITF14BearerBox=1; код=barcode.SavePicture(ИмяФайла, 7, 100, 30);

Большие объемы данных в формате GS1 можно хранить в двумерных штрихкодах GS1 DATAMATRIX.

Barcode.Alphabet=8; //DATAMATRIX barcode.Text="123abcDEF"; код=barcode.SavePicture(ИмяФайла, 7, 100, 100);

Для печати кода Aztec, смодифицируйте исходный текст модуля, как показано ниже:

Barcode.Alphabet=33; //AZTEC barcode.Text="123ABcd"; код=barcode.SavePicture(ИмяФайла, 7, 100, 100);

Приведенный здесь пример предназначен для создания QR-кода для мобильных приложений. Большинство складских и офисных применений в России (при распознавании специализированными сканерами) требуют прямой передачи текста в кодовой странице CP1251. Для этого установите UTF8=0 . Установка QrECL приведена здесь в качестве примера и не является обязательной.

Barcode.Alphabet=25; //QRCODE barcode.Text="кириллица"; barcode.UTF8=1; barcode.QrECL=2; код=barcode.SavePicture(ИмяФайла, 7, 100, 100);

Версия 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. Ждем окончания установки и жмем кнопку «Готово»
При формировании квитанций будут выходиться штрихкоды «Одномерный» или «Двумерный», в зависимости от выбора в настройке «Учетной политики (ЖКХ)» (Учет в ЖКХ - Учетная политика (ЖКХ)» - Штрихкод)

Версия 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. Ждем окончания установки и жмем кнопку «Готово»
При формировании квитанций будут выходиться штрихкоды «Одномерный» или «Двумерный», в зависимости от выбора в настройке «Учетной политики (ЖКХ)» (Учет в ЖКХ - Учетная политика (ЖКХ)» - Штрихкод)

Порою в рамках штрихкодирования документов или этикеток на печатную форму 1С 8.2 (8.3) необходимо вывести произвольный штрих-код.

Как это сделать, рассмотрим ниже.

Для вывода штрих-кода обязательно (кроме конфигураций на базе БСП 2 и выше) необходима установка компонента . Найти его можно на диске ИТС или на пользовательском портале 1С.

Вставка штрих-кода на печатную форму 1С

Первый шаг — необходимо создать новый объект — рисунок. Для этого в макете необходимо нажать Таблица — Рисунки — Вставить объект… Система предложит выбрать тип объекта:

Получите 267 видеоуроков по 1С бесплатно:

Нужно выбрать Элемент управления 1С.V8.Печать штрих-кодов . Допустим, назовём рисунок-объект «Штрихкод». Для программного вывода на печатную форму можно воспользоваться следующим кодом:

ТипКода = ПолучитьЗначениеТипаШтрихкодаДляЭУ(ПланыВидовХарактеристик. ТипыШтрихкодов. Code39) ; Если ТипКода = - 1 Тогда ОбщегоНазначения. СообщитьОбОшибке("Для штрихкода формата " "" + ПланыВидовХарактеристик. ТипыШтрихкодов. EAN13 + "" " не существует соответствующего типа в ЭУ " "1С:Печать штрихкодов" ". | Позиция будет пропущена" ) ; КонецЕсли ; Область. Рисунки. Штрихкод. Объект. ТипКода = ТипКода; Область. Рисунки. Штрихкод. Объект. Сообщение = ? (ПустаяСтрока("" ) , Штрихкод, "" ) ; Область. Рисунки. Штрихкод. Объект. ТекстКода = Штрихкод;