1С 8.3 Штрих-код (barcode), QRCod - Програміст 1С Мінськ. Автоматизація бізнесу.
Штрих-код та QRCod в 1С 8.3 використовується для друку цінників, маркування товарів/матеріалів для обліку та контролю, спрощення інвентаризації основних засобів, ідентифікація інших ТМЦ за допомогою етикеток. В останніх релізах різних типових конфігурацій штрих-код формується за допомогою загального макета метаданих КомпонентаДруку Штрихкодів, а також допоміжних функцій і процедур: Підключити ЗовнішнюКомпонентуДруку Штрихкоду, ВизначитиТипШтрихкоду,ОтриматиКартинкуТтри. epf
Файл установки компоненти доступний за підпискою на сайті ІТС. У разі помилки 1CBarCode: "Помилка зовнішньої компоненти" некоректне значення властивості "Шрифт" - необхідно оновити 1CBarCode.exe до останньої версії. Робота з QR-кодом здійснюється за допомогою функцій у модулі об'єкта Отримати Генератор QR коду () та Отримати QR код (). Типовий друк QR-коду в 1С 8.3 реалізований на рівні Бібліотеки стандартних підсистем, що відповідає національному стандарту штрихкодування платіжних реквізитів та доступний при підписці на ІТС.
Найменший (версія №1) розмір = 21×21 піксель (без урахування полів)
Найбільший (версія №40) розмір = 177×177 пікселів (без урахування полів)
Важливо! Для зчитування деякими ТСД символи мають бути латинські
&На Клієнті
Функція ПідключенняЗовнішньоїКомпонентиДрукуШтрихКоду ()
Підключено = Підключити ЗовнішнюКомпоненту ("ЗагальнийМакет.КомпонентаДрукуШтрихкодів" , "КартинкаШтрихкоду" , ТипЗовнішньоїКомпоненти . Native );
Якщо підключено тоді // Створення об'єкта зовнішньої компоненти
Компонента_Barcode = Новий("AddIn.КартинкаШтрихкода.Barcode");
Інакше
Повернення Невизначено;
КінецьЯкщо;
Якщо НЕ Компонента_Barcode . ГрафікаВстановлена
// Картинка не може бути сформована
Повернення Невизначено;
Інакше
// Установка параметрів компонентів
Якщо Компонента_Barcode . ЗнайтиШрифт ( "Tahoma" )
Компонента_Barcode. Шрифт = "Tahoma"; // Вибрано шрифт для формування картинки
Інакше
// Обхід доступних компонентів шрифтів
Для Сч = 0 За Компонентом_Barcode . КількістьШрифтів - 1 Цикл
ПоточнийШрифтШК = Компонента_Barcode. ШрифтПоІндексу (Сч);
Якщо ПоточнийШрифтШК <> Невизначено Тоді
Компонента_Barcode. Шрифт = ПоточнийШрифтШК; // Вибрано шрифт для формування картинки
Перервати;
КінецьЯкщо;
КінецьЦикл;
КінецьЯкщо;
Компонента_Barcode. Розмір Шрифту = 14;
Повернення Компонента_Barcode ;
КінецьЯкщо;
&На Клієнті
Функція Визначити ТипШтрихКоду (текШтрихКод)
Тип_ШтрихКоду = "";
Довжина_ШтрихКоду = СтрДліна (текШтрихКод);
СумаШтрихКоду = 0;
Якщо Довжина_ШтрихКоду = 0 Тоді
Повернення Тип_ШтрихКоду;
КінецьЯкщо;
Якщо Довжина_ШтрихКоду = 14, тоді // ITF14
Коефіцієнт ШК = 1;
Для Сч = 1 По 13 Цикл
// таблиця символів 1С доступна тут: https://koder.by/tablica_simvolov_1s.php
ВремКодСимволу = КодСимволу (текШтрихКод, Сч);
Якщо ВремКодСимволу < 48 Або ВремКодСимволу >57 Тоді
Перервати;
КінецьЯкщо;
СумаШтрихКоду = СуммаШтрихКоду + КоефіцієнтШК * ( ВремКодСимволу - 48 );
Коефіцієнт ШК = 4 - Коефіцієнт ШК;
КінецьЦикл;
СумаШтрихКоду = (10 - СумаШтрихКоду % 10) % 10;
Якщо КодСимволу (текШтрихКод, 14) = СуммаШтрихКода + 48 Тоді
Тип_ШтрихКоду = "ITF14";
КінецьЯкщо;
ІнакшеЯкщо Довжина_ШтрихКоду = 13 Тоді // EAN13
EAN 13 _Булево = Істина;
Коефіцієнт ШК = 1;
Для Сч = 1 По 12 Цикл
ВремКодСимволу = КодСимволу (текШтрихКод, Сч);
Якщо ВремКодСимволу < 48 Або ВремКодСимволу >57 Тоді
EAN 13 _Булево = Брехня;
Перервати;
КінецьЯкщо;
СумаШтрихКоду = СуммаШтрихКоду + КоефіцієнтШК * ( ВремКодСимволу - 48 );
Коефіцієнт ШК = 4 - Коефіцієнт ШК;
КінецьЦикл;
СумаШтрихКоду = (10 - СумаШтрихКоду % 10) % 10;
ПеревірочнийСимвол = Символ (СумаШтрихКода + 48);
Якщо EAN 13 _Булево І ПеревірочнийСимвол = Прав (текШтрихКод, 1) Тоді
Тип_ШтрихКоду = "EAN13";
КінецьЯкщо;
ІнакшеЯкщо Довжина_ШтрихКоду = 8 Тоді // EAN8
EAN 8 _Булево = Істина;
Коефіцієнт ШК = 3;
Для Сч = 1 По 7 Цикл
ВремКодСимволу = КодСимволу (текШтрихКод, Сч);
Якщо ВремКодСимволу < 48 Або ВремКодСимволу >57 Тоді
EAN 8 _Булево = Брехня;
Перервати;
КінецьЯкщо;
СумаШтрихКоду = СуммаШтрихКоду + КоефіцієнтШК * ( ВремКодСимволу - 48 );
Коефіцієнт ШК = 4 - Коефіцієнт ШК;
КінецьЦикл;
СумаШтрихКоду = (10 - СумаШтрихКоду %10) %10;
Якщо EAN 8 _Булево І (КодСимволу (текШтрихКод, 8) = СуммаШтрихКода + 48) Тоді
Тип_ШтрихКоду = "EAN8";
КінецьЯкщо;
Якщо Тип_ШтрихКоду = "" Тоді // CODE39
CODE 39 _Булево = Істина;
Для Сч = 1 По Довжина_ШтрихКоду Цикл
ВремКодСимволу = КодСимволу (текШтрихКод, Сч);
Якщо ( ВремКодСимволу <> 32 )
І ( ВремКодСимволу < 36 Або ВремКодСимволу > 37 )
І ( ВремКодСимволу <> 43 )
І ( ВремКодСимволу < 45 Або ВремКодСимволу > 57 )
І ( ВремКодСимволу < 65 Або ВремКодСимволу > 90 )
CODE 39 _Булево = Брехня;
Перервати;
КінецьЯкщо;
КінецьЦикл;
Якщо CODE 39 _Булеве Тоді
Тип_ШтрихКоду = "CODE39" ;
КінецьЯкщо
Якщо Тип_ШтрихКоду = "" Тоді // CODE128
// CODE128 символи ASCII від 0 до 127
// (цифри від 0 до 9, літери від A до Z та від a до z) та спеціальні символи
CODE 128 _Булево = Істина;
Для Сч = 1 По Довжина_ШтрихКоду Цикл
ВремКодСимволу = КодСимволу (текШтрихКод, Сч);
Якщо ( ВремКодСимволу > 127 ) Тоді
CODE 128 _Булево = Брехня;
Перервати;
КінецьЯкщо;
КінецьЦикл;
Якщо CODE 128 _Булеве Тоді
Тип_ШтрихКоду = "CODE128";
КінецьЯкщо
Якщо Тип_ШтрихКоду = "CODE128", тоді // EAN128
// У коді EAN128 регламентований словник CODE128
//але регламентовані групи кодів
Якщо КодСимволу (текШтрихКод, 1) = 40 Тоді
Тип_ШтрихКоду = "EAN128";
КінецьЯкщо;
КінецьЯкщо;
&На Клієнті
Функція ОтриматиКартинкуШтрихкоду (ПараметриШК)
Якщо КомпонентаШК = Невизначено Тоді
Викликати Виключення НСТ ( "ru = 'Помилка підключення зовнішньої компоненти друку штрих-коду.'" );
КінецьЯкщо;
// Розмір формується картинки
КомпонентаШК. Ширина = Окр (ПараметриШК. Ширина);
КомпонентаШК. Висота = Окр (ПараметриШК. Висота);
КомпонентаШК. АвтоТип = Брехня;
Якщо ПараметриШК. ТипКода = 99 Тоді
Тип ШК = Визначити Тип Штрихкоду (Параметри ШК. Штрихкод);
Якщо ТипШК = "EAN8" Тоді
КомпонентаШК. Тип Коду = 0;
ІнакшеЯкщо ТипШК = "EAN13" Тоді
КомпонентаШК. Тип Коду = 1;
// Якщо код містить контрольний символ, обов'язково вказуємо.
КомпонентаШК. Містить КС = СтрДліна (Параметри ШК. Штрихкод) = 13;
ІнакшеЯкщо ТипШК = "EAN128" Тоді
КомпонентаШК. Тип Коду = 2;
ІнакшеЯкщо ТипШК = "CODE39" Тоді
КомпонентаШК. Тип Коду = 3;
ІнакшеЯкщо ТипШК = "CODE128" Тоді
КомпонентаШК. Тип Коду = 4;
ІнакшеЯкщо ТипШК = "ITF14" Тоді
КомпонентаШК. Тип Коду = 11;
ІнакшеЯкщо ТипШК = "QR" Тоді
КомпонентаШК. Тип Коду = 16;
ІнакшеЯкщо ТипШК = "EAN13Addon2" Тоді
КомпонентаШК. Тип Коду = 14;
ІнакшеЯкщо ТипШК = "EAN13Addon5" Тоді
КомпонентаШК. Тип Коду = 15;
ІнакшеЯкщо ТипШК = "QR" Тоді
КомпонентаШК. Тип Коду = 16;
ІнакшеЯкщо ТипШК = "GS1DatabarExtendedStacked" Тоді
КомпонентаШК. Тип Коду = 17;
ІнакшеЯкщо ТипШК = "DataMatrixASCII" Тоді
КомпонентаШК. Тип Коду = 18;
ІнакшеЯкщо ТипШК = "DataMatrixBase256" Тоді
КомпонентаШК. Тип Коду = 19;
ІнакшеЯкщо ТипШК = "DataMatrixText" Тоді
КомпонентаШК. Тип Коду = 20;
ІнакшеЯкщо ТипШК = "DataMatrixC40" Тоді
КомпонентаШК. Тип Коду = 21;
ІнакшеЯкщо ТипШК = "DataMatrixX12" Тоді
КомпонентаШК. Тип Коду = 22;
ІнакшеЯкщо ТипШК = "DataMatrixEdifact" Тоді
КомпонентаШК. Тип Коду = 23;
Інакше
КомпонентаШК. АвтоТип = Істина;
КінецьЯкщо;
Інакше
КомпонентаШК. ТипКода = ПараметриШК. ТипКоду;
КомпонентаШК. АвтоТип = Брехня;
КінецьЯкщо;
Якщо ПараметриШК. Властивість ( "Прозорий Фон")
КомпонентаШК. Прозорий Фон = Параметри ШК. Прозорий Фон;
КінецьЯкщо;
КомпонентаШК. Відображати Текст = ПараметриШК. Відображати Текст;
// Картинка штрих-коду
КомпонентаШК. ЗначенняКода = ПараметриШК. Штрихкод;
// Кут повороту штрих-коду
КомпонентаШК. КутПовороту = ?( ПараметриШК . Властивість ( "КутПоворота" ), ПараметриШК .
// Рівень корекції QR коду (L=0, M=1, Q=2, H=3)
КомпонентаШК. РівеньКорекції QR =? (ПараметриШК. Властивість ("РівеньКорекціїQR"), ПараметриШК.
// Якщо встановлена нами ширина менше мінімально допустимої для цього штрих-коду
Якщо КомпонентаШК. Ширина КомпонентаШК. МінімальнаШиринаКода Тоді
КомпонентаШК. Ширина = КомпонентаШК. МінімальнаШирінаКода;
КінецьЯкщо;
// Якщо встановлена нами висота менша за мінімально допустиму для цього штрих-коду
Якщо КомпонентаШК .
КомпонентаШК .
КінецьЯкщо;
Якщо ПараметриШК .
І ( Параметри ШК . Відображати Текст ) І ( Компонента ШК . Розмір Шрифту <> Параметри ШК . Розмір Шрифту ) Тоді
КомпонентаШК .
КінецьЯкщо;
// Формування картинки
ДвійковіДані Картинки = КомпонентаШК .
Якщо ДвійковіДані Картинки <> Невизначено Тоді
// Формуємо із двійкових даних.
Повернення Новий Картинка (Двійкові Дані Картинки);
КінецьЯкщо;
Штриходування товарів у 1C:Підприємство Документообіг
1. Штрихкодування документів 2. Виведення штрихкоду в 1С 8.3 за шаблонами документа 3. Інші переваги штрихкодування в 1С 4. Пошук по штрихкоду 5. Компонента друку штрихкоду на документі 6. Підключення сканера штрихкодів на 1С (чорних і білих смуг або інших фігур) на поверхню, тим самим надаючи можливість технічними засобами зчитувати «код».
Система штрихкодування призначена для того, щоб максимально прискорити та спростити процес пошуку файлів та документів у системі. Адже штрихкод можна присвоїти кожному документу та файлу в програмі.
Штрихкодування в 1С виконується за допомогою програмного коду системи, а також спеціалізованої компоненти (працює під ОС Windows та Linux), яка виконує візуалізацію штрих-коду у зображення у форматах bmp, gif, jpeg, jpg, png, tiff, tif, wmf, emf, pdf .
1. Штрихкодування документів
Для включення можливості використання штрих-кодів, необхідно встановити прапор: Налаштування та адміністрування → Налаштування програми → Діловодство → Штрихкодування документів.
Після включення штрихкодування в 1С з'являється можливість налаштувати сканер, у тому числі вказати ⅭOM-порт, швидкість та інші параметри.
У системі документообігу СЕД передбачено кілька варіантів організації штрихкодування, кожен з яких буде докладно описаний.
Зовсім необов'язково друкувати документ із «1С:Документообігу ПРОФ». Документ вже може бути у вас на руках, а роздруковувати його повторно – це витрачання паперу та часу. Більше того, документ може бути підписано. Тоді його повторне роздрукування неможливе. Для цього необхідно вибрати в меню документа «Друк» пункт «Реєстраційний штамп» або «штрих-код на наклейці», або «штрих-код на сторінці».
Розглянемо основні відмінності пунктів меню «Друк»: 1. Пункт "Реєстраційний штамп". У цьому способі виведення зображення штрих-коду додатково виводиться інформація про реєстраційний номер і дату реєстрації документа (дані із закладки «Реєстрація» документа).
При зміні налаштувань область попереднього перегляду відразу показує, як дані штрих-коду будуть вставлені в документ. Можливі два варіанти: ■ з відображенням цифр; ■ без відображення цифр.
Щоб друкувати цифри в нижній частині штрих-коду, необхідно встановити прапорець «Вставляти цифри в штрих-код».За замовчуванням прапорець знято і цифри друкуватись не будуть.
Якщо встановити прапорець "Більше не показувати, відразу друкувати", то вибрані налаштування будуть використовуватися надалі автоматично.
Зображення штрих-коду міститься у файлі з параметром обтікання «Над текстом». При цьому створюється нова версія файлу з коментарем Вставка штрих-коду.
2. Пункт «Штрихкод на наклейці». При виведенні на друк наклейки на сторінку буде виведено лише штрих-код. Вибрати місце розташування штрих-коду неможливо, оскільки воно не має значення (наклейка розміщується на аркуші з даними вручну).
3. Пункт "Штрихкод на сторінці". Можна надрукувати штрих-код на аркуш вже підписаного документа. Для того, щоб не зіпсувати оригінал, виконуйте цю операцію тільки у разі повної впевненості, що ви передбачили всі супутні моменти (положення аркуша, орієнтація аркуша, налаштування розміщення штрих-коду тощо). Доступно з меню Друк командної панелі картки документа. Всі викладені варіанти дозволяють друкувати штрихкод на будь-якому паперовому носії.
2. Виведення штрих-коду в 1С 8.3 за шаблонами документа
У програмі передбачена можливість автоматичної вставки штрих-кодів у 1С 8.3 у файли, створювані з шаблонів.
Автоматично вставляється штрих-код у файл: ■ якщо файл був створений із шаблону; ■ якщо у шаблоні файлу є рядок ">". У цьому випадку зображення штрих-коду замінює собою цей рядок.
3. Інші переваги штрихкодування в 1С
Система документообігу СЕД також дає можливість надавати штрихкод, який був сформований в інших системах. Вони можуть бути отримані з документами інших програм, що використовуються контрагентами.Наприклад, може скластися така ситуація: організація отримала документ, на якому вже є зображення штрих-коду.
Щоб мати змогу знайти документ за цим штрихкодом, можна нанести сторонній штрихкод, за допомогою меню «Ще» пункт «Штрихкод - Додати штрихкод».
Після присвоєння документу стороннього штрих-коду, користувач зможе почати пошук по штрих-коду.
На одному документі може бути надрукована будь-яка кількість сторонніх штрих-кодів. Сторонні штрих-коди використовують лише для пошуку документів і файлів, вони не беруть участь при друкуванні та вивантаженні зображення штрих-коду на диск. Якщо до копіюваного документа прикріплений файл, до якого автозаповненням було вставлено штрих-код, то при записі копії документа штрих-код у файлі буде автоматично перезаповнено новим значенням.
У файли деяких форматів автоматична та ручна вставка штрих-коду засобами системи неможлива. Для цього в групі команд Штрих-коди (меню Ще списків та карток документів та файлів) передбачена команда Зберегти штрих-код.
Команда відкриває стандартне вікно операційної системи для вказівки шляхів збереження зображення штрих-коду. Штрих-код зберігається на локальному диску у форматі JPEG.
4. Пошук по штрихкоду
Пошук по штрих-коду можливий як у ручному, так і в автоматичному режимі. Для ручного пошуку необхідно використовувати клавіші Ctrl+Shift+I. Після цього з'явиться вікно для введення коду.
У системі може бути кілька однакових штрих-кодів за документами. Користувачеві буде запропоновано список усіх документів на вибір. Поодинокі штрих-коди можуть відображатися в системі, якщо документи були отримані з таким же кодом від різних постачальників.
5. Компонента друку штрих-коду на документі
У програмі 1С:Підприємство Документообіг передбачено компонент друку штрих-коду на звичайному аркуші за допомогою звичайного принтера. Для цього необхідно: ■ з картки документа виконати команду Штрихкод на сторінці, розташовану у групі Друк панелі процесів; ■ зі списку документів виконати команду Друк штрих-коду на сторінці, розташовану в меню Ще – Штрихкоди. Перед друком буде запропоновано вибрати положення штрих-коду на сторінці та принтер, на якому необхідно виконати друк сторінки. Для відображення вікна вибору положення штрих-коду на закладці Штрихкодування у персональних налаштуваннях програми потрібно увімкнути такі налаштування: ■ Відкрити налаштування під час штрихкодування – для вибору розташування штрих-коду на сторінці під час виконання операцій Вставити штрих-код та Друк реєстраційного штампу; ■ Положення штрих-коду – для встановлення положення штрих-коду за замовчуванням.
6. Підключення сканера штрих-кодів для 1С
Сканер штрих-кодів для 1С - найважливіший елемент системи, що використовує штрих-кодування. Без нього не буде можливості повною мірою продати всі плюси штрихкодування. Для того щоб почати працювати зі сканером, необхідно виконати налаштування: Персональні налаштування → Штрихкодування та натиснути кнопку Підключення сканера штрих-кодів. Після цього вибираємо одну з налаштувань сканера. Якщо в системі не встановлено налаштування, їх необхідно буде створити. Для цього потрібно заповнити поля, вказані на малюнку:
Ім'я порту, до якого підключено сканер штрих-кодів, необхідно переглянути у списку обладнання системи (DeviceManager). У списку COМ-портів буде вказано порт, до якого підключено сканер. Детальнішу інформацію про підключення сканера до комп'ютера можна отримати у виробника сканера.
Фахівець компанії ТОВ "Кодерлайн" Ілона Матей.