DataMatrix и компактный штрих код GUID

26.10.12

Учетные задачи - Печатные формы

Компактный штрих-код для GUID в стандарте CODE128 и штрих кодирование DataMatrix

Скачать файлы

Наименование Файл Версия Размер
DataMatrix
.epf 8,49Mb
230
.epf 8,49Mb 230 Скачать

Обработка объединяет в себе специфичные способы штрих-кодирования. А именно в модуле обработки реализованы следующие методы:
1. Компактный штрих-код для GUID в стандарте CODE128. Штрих код генерируется в виде картинки. Может пригодится для штрих кодирования документов по ссылкам (Документ.ПолучитьИдентификатор()).
2. То же самое что и первый пункт, только штрих код генерируется в виде специального шрифта.
3. Реализация DataMatrix - двумерного стандарта штрих кода. Штрих код генерируется в виде специального шрифта.
* для работы пунктов 2, 3 нужно установить в Windows специальные шрифты, они прилагаются в самой обработке в виде макетов и более ничего.

Так же в данной обработке предусмотрена управляемая форма для демонстрации работы.

См. также

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7293    21    6    

39

Универсальная печать по шаблонам Word (Печать договоров из 1С БП 3, УНФ 1.6, ЗУП 3, УТ 11, КА 2, ERP 2, ДО 3)

Печатные формы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Научите вашу 1C печатать из 1С в файл Word (Например: трудовые договоры, договоры с контрагентами, спецификации, дополнительные соглашения, приказы, коммерческие предложения, акты, накладные, карточки партнера или любого справочника и многие другие). Универсальная печать предназначена для формирования печатных форм на основе шаблонов в формате Word из любой конфигурации 1С. С помощью данного инструмента можно самостоятельно заполнить шаблон реквизитами справочника или документа 1С и сформировать печатные формы на основании ссылки на любой объект.

5400 руб.

08.10.2019    42697    144    88    

134

SALE! 25%

УТ 11, КА 2, ERP 2: Настраиваемые под каждую организацию печать и подпись ответственных лиц в печатных формах (ТОРГ-12, Счёт-фактура, УПД, УКД, Заказ клиента, Акт сверки, М-15 и др.)

Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Оперативный учет Управляемые формы 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

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

12000 9000 руб.

13.03.2018    56445    179    76    

112

Печатные формы КС-2 и КС-3 в "1С:Бухгалтерия 3.0"

Печатные формы Производство готовой продукции (работ, услуг) Платформа 1С v8.3 Бухгалтерский учет Оперативный учет 1С:Бухгалтерия 3.0 Строительство Россия Бухгалтерский учет Платные (руб)

Откройте для себя заполнение КС-2 и КС-3 в "1С:Бухгалтерия 3.0". Вы получаете удобство, скорость и систему, чтобы заполнить, распечатать и сохранить формы КС-2 и КС-3 из документов "Оказание производственных услуг" или "Реализация товаров услуг". Вы можете заполнить дополнительную информацию о материалах из документов "Требование-накладная" и указать сведения, которые не предусмотрены типовой конфигурацией "1С:Бухгалтерия 3.0". Так же доступно множество настроек для формирования КС-2 и КС-3.

3240 руб.

13.02.2019    88005    388    44    

371

Печать актов МХ-1, МХ-3 в 1С:Бухгалтерия 3.0

Печатные формы Логистика, склад и ТМЦ Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработки для "1С:Бухгалтерия 3.0", которые формируют акты МХ-1 и МХ-3 для документов "ПоступлениеТоваровУслуг", "Реализация товаров услуг", "Возврат товаров поставщику", "Передача материалов в эксплуатацию" соответственно. Так же можно сформировать акты с факсимиле, которая загружена в 1С:Бухгалтерия 3.0.

2520 руб.

18.02.2019    61107    170    14    

139

Путевые листы (расширение)

Печатные формы Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Транспорт, автопарки, такси Бухгалтерский учет Платные (руб)

Учет путевых листов выполнен в виде расширения. Предназначен для учета путевых листов в конфигурации Бухгалтерия предприятия 3.0. и Комплексная автоматизация 2. Печатная форма: Типовая межотраслевая форма № 3. Утверждена постановлением Госкомстата России от 28.11.97 № 78. Типовая межотраслевая форма № 4-П от 18.09.2008 г. N 152 с учетом изменений указанных в Приказе Министерства транспорта Российской Федерации №368 от 11 сентября 2020 г. №368, Типовая межотраслевая форма № ЭСМ-7, и др. ЭСМ-2, 4-С, 3 спец., 6 спец., ПЛ для Автомобильного крана. .

2000 руб.

14.10.2019    36521    224    215    

139
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. alsky-2003 29 23.05.12 06:29 Сейчас в теме
Скажи, пожалуйста - обработка подходит для УТ 10,3 на 8.1 и 8.2 ?
2. olezhe 21 25.09.12 10:26 Сейчас в теме
Ошибка при выполнении файловой операции 'E:\_Разработка\Чужие\DataMatrix.epf'
по причине:
Неверный формат хранилища данных 'file://E:/_Разработка/Чужие/DataMatrix.epf'

Файл протух?
4. scompany 41 25.09.12 22:03 Сейчас в теме
(2) olezhe,
Это в режиме "Тонкий клиент" или "Конфигуратор"?
7. scompany 41 28.09.12 14:04 Сейчас в теме
(2) olezhe,
1. файл проверил у себя: работает
2. заново выложил свой файл с обработкой.

P.S. обработка написана только для тонкого клиента.
3. Loe 25.09.12 16:21 Сейчас в теме
Да, при открытии ругается.
"Ошибка при выполнении файловой операции '....\DataMatrix.epf'
по причине:
Неверный формат хранилища данных 'file://..../DataMatrix.epf'"

Как быть, что делать?
5. scompany 41 25.09.12 22:05 Сейчас в теме
6. Loe 26.09.12 21:21 Сейчас в теме
В Конфигураторе и Жирном клиенте. Это файловая ошибка, а не ошибка 1С. Пару битов не залито, файл не может быть прочтен.
8. Loe 28.09.12 16:03 Сейчас в теме
Все работает, отл.
Шрифты сохраняем в файлы *.ttf и копируем в папку шрифтов и формируем шрифт.

Скажите, scompany, если я захочу использовать Вашу наработку (точнее, Вами созданный шрифт), как мне ее/его заполучить в пользование?
9. scompany 41 28.09.12 18:22 Сейчас в теме
(8) Loe,
шрифты которые используются в обработке взяты на этом сайте:
http://grandzebu.net/informatique/codbar-en/codbar.htm
на саму обработку не накладываются никаких ограничений.
10. ksai 24.10.12 14:27 Сейчас в теме
Конфигурация УПП 1.3
При попытке нажатия на кнопку "Вывести GUID" вылетает ошибка. Посмотрел в модуле, там прописано:

ОбъектШтрихКода = Обработки.дхФормированиеШтрихКодов.Создать();
Возврат ОбъектШтрихКода.ПолучитьКартинкуШтрихКода(ШтрихКод, ТипКода, ПредставлениеКода, УголПоворота);

Обработки "дхФормированиеШтрихКодов" в типовой УПП не наблюдается.
Автор, как быть?
12. scompany 41 25.10.12 08:46 Сейчас в теме
(10) ksai,
Вместо
ОбъектШтрихКода = Обработки.дхФормированиеШтрихКодов.Создать();

напишите
ОбъектШтрихКода = ЭтотОбъект;
14. ksai 25.10.12 09:08 Сейчас в теме
(12)
Вот вся функция

Функция ПолучитьКартинкуШтрихКода(ШтрихКод, ТипКода = Неопределено, ПредставлениеКода = Неопределено, УголПоворота = 0) Экспорт

ОбъектШтрихКода = Обработки.дхФормированиеШтрихКодов.Создать();

Возврат ОбъектШтрихКода.ПолучитьКартинкуШтрихКода(ШтрихКод, ТипКода, ПредставлениеКода, УголПоворота);

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

Если я напишу в ней ОбъектШтрихКода = ЭтотОбъект , то получится бесконечная рекурсия. Или я туплю, или что-то тут не так.
17. scompany 41 25.10.12 12:56 Сейчас в теме
(14) ksai,
Все нормально будет
18. ksai 25.10.12 16:04 Сейчас в теме
(17)
Наверно мы друг друга не поняли(

В форме обработки есть процедура:

&НаСервере
Функция ВывестиGUIDСервер()

ЭтотОбъект = РеквизитФормыВЗначение("Объект");
СтрокаКодирования1 = ЭтотОбъект.ПолучитьШтрихКодОбъекта(СокрЛП(ИдентификаторОбъекта), "Идентификатор упаковки");
ШтрихКодКартинка = ЭтотОбъект.ПолучитьКартинкуШтрихКода(СтрокаКодирования1);

Результат = Новый ТабличныйДокумент;
Макет = ЭтотОбъект.ПолучитьМакет("Макет");
ОбластьТест = Макет.ПолучитьОбласть("Тест1");
ОбластьТест.Рисунки.ШтрихКод.Картинка = ШтрихКодКартинка;
Результат.Вывести(ОбластьТест);


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

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

Здесь идет вызов функции из модуля объекта:

ШтрихКодКартинка = ЭтотОбъект.ПолучитьКартинкуШтрихКода(СтрокаКодирования1);

Листинг вызываемой функции я уже приводил:

Функция ПолучитьКартинкуШтрихКода(ШтрихКод, ТипКода = Неопределено, ПредставлениеКода = Неопределено, УголПоворота = 0) Экспорт

ОбъектШтрихКода = Обработки.дхФормированиеШтрихКодов.Создать();

Возврат ОбъектШтрихКода.ПолучитьКартинкуШтрихКода(ШтрихКод, ТипКода, ПредставлениеКода, УголПоворота);

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

Если в этой функции по вашему совету я меняю строчку:
ОбъектШтрихКода = Обработки.дхФормированиеШтрихКодов.Создать();
на строчку:
ОбъектШтрихКода = ЭтотОбъект;
то получается, что эта функция бесконечное количество раз вызывает сама себя из самой себя, что есть рекурсия без выхода.

Так что всё нормально не получается.
19. scompany 41 26.10.12 23:27 Сейчас в теме
(18) ksai,
обновил файл, можно проверить
20. ksai 30.10.12 09:34 Сейчас в теме
(19)

Проверил, теперь всё в порядке, спасибо!
11. ksai 24.10.12 14:36 Сейчас в теме
И еще один момент.
В каком формате нужно выгружать макеты КомпонентаПечатиШтрихкодов%?
13. scompany 41 25.10.12 08:48 Сейчас в теме
(11) ksai,
Это типовые компоненты от 1С (native) они в формате ".dll"
15. ksai 25.10.12 09:09 Сейчас в теме
(13)
Понял, спасибо. А свежие версии где взять? Они на ИТС идут или в гугле искать?
16. scompany 41 25.10.12 12:55 Сейчас в теме
(15) ksai,
ИТС E:\1CIts\EXE\Demo82
или в последней УТ
21. dablack 06.06.13 00:10 Сейчас в теме
Можно ли каким либо образом в штрих код Code128 загнать помимо гуида информацию о версии данных (Ссылка.ВерсияДанных вида "AAAAFQAAAIE="), просто есть потребность помимо документа получить его версию и проверить совпадает ли она с тем, что в базе.
23. scompany 41 06.06.13 12:17 Сейчас в теме
(21) dablack,
Конечно можно, только надо модифицировать алгоритмы подготовки кода и последующей расшифровки.
Сложность будет на этапе кодировки, так там используется преобразование из 16 в 93 систему.
Надо будет приводит реквизит "Версия" к 16 основанию или иначе снизиться эффективность упаковки.
22. Loe 06.06.13 09:27 Сейчас в теме
Гм, а кто мешает? Просто создайте себе алгоритм расшифровки полученной при сканировании вашего кода строки - и пользуйтесь на здоровье.
24. dablack 06.06.13 20:33 Сейчас в теме
То, что надо делать алгоритмы зашифровки/расшифровки это понятно, я наверное не совсем корректно задал вопрос, хватит ли длины кода чтобы в один штрих засунуть Версию + ГУИД. Просто смутили строки в вашем коде:

// задобрим вид числа
Если лВидОбъекта > 255 Тогда
Возврат Неопределено;
КонецЕсли;
и

// можно закодировать не более 255 видов объектов
Результат = Новый Соответствие;
Результат.Вставить(Метаданные.НайтиПоПолномуИмени("Документ.ЗаказПокупателя"), 1);

Почему 255? Я потому и решил, что длина кончилась так сказать. Прошу прощения если не совсем корректно задаю вопросы, просто раньше не приходилось иметь дело со штрих кодированием глубже того, что есть в типовых типа печати ценников и пр. Однако спасибо вашей разработке кодирование ГУИДа уже работает в продакшене.
25. scompany 41 07.06.13 08:47 Сейчас в теме
1. Это ограничение на количество кодируемых видов объектов 1С (Документы, Справочники и т.д.). 255 видов объектов 1С или логических сущностей, что вполне избыточно. Но и это можно доработать, если нужно.
2. Cтандарт штрихкода CODE128 (EAN128) имеет свои ограничения длины, точнее явных ограничений не имеет. (штрихкод переменной длины)
3. При этом надо не забывать про другие ограничения:
- техническую возможность луча сканеров читать такие "широкие" штрихкоды
- возможность уместить на листе "широкие" штрихкоды при печати.
- чем "шире" штрихкод, тем более возрастает вероятность его порчи в процессе работы (замятия бумаги, качество печати и т.д.)

Сообственно разработка служит для обхода ограничения пункта #3.
26. dablack 07.06.13 12:46 Сейчас в теме
Спасибо. Теперь все стало ясно.
27. dablack 15.08.13 14:55 Сейчас в теме
Уважаемый scompany
Задавал пару месяцев вопрос про то как в штрих встроить №версии документа, но острой необходимости в реализации пока не было. Но вот настал тот день... Стал делать под свои нужды и вот на что наткнулся:
В Вашем коде как есть при определенных GUID-ах и КодовОбъектов штрих формируется, но считывается только его кусок(без конца или середины) , т.е. например:
GUID=7cbf5440-f94b-11e2-bbfb-001e671a3b56, код объекта = 14 (как в примере "Идентификатор упаковки") при переводе из GUIDв93 получается вот такая строка - 29|g[6:t;Edzg7'U`aXc)", а считано будет 29[6:;E7'UX) . Причем проблема замечена только у тех штрихов у которых при переводе из GUIDв93 на второй позиции число. Запустил маленькую обработку по докам за период, чтобы увидеть проблемные штрихи. Вот выдержка:

7cbf543c-f94b-11e2-bbfb-001e671a3b56 2PI,,$j'|a+kSTRZ_aXc)" C032560221980056056485<5049400;40=944=401281:090229004=40=:01<0554855104=@

7cbf543d-f94b-11e2-bbfb-001e671a3b56 23VRf(^#lZ"oXdGp_aXc)" C2122032099020=4854;0044950<290551830:01<4118804704=40=:01<05548551128@

7cbf543e-f94b-11e2-bbfb-001e671a3b56 2sbxC-R|[Svr]t<)`aXc)" C0325600744<174088141690200;:101283444435<04346145480<540=:01<05548551092@

7cbf543f-f94b-11e2-bbfb-001e671a3b56 2VoA!2FxKLmvb'2?`aXc)" C0325602098300895155608907400928123203444<14945601910<540=:01<05548551506@

7cbf5440-f94b-11e2-bbfb-001e671a3b56 29|g[6:t;Edzg7'U`aXc)" C65020300;41<:10524641434254818<4113141<2124941220<540=:01<055485514=0@

7cbf5441-f94b-11e2-bbfb-001e671a3b56 2y+19;.p+>[!mGyj`aXc)" C032560113944461605254452047944119:10515320188113<500<540=:01<05548551548@

7cbf5442-f94b-11e2-bbfb-001e671a3b56 2\8Ws?"lx6R%rWn#aaXc)" C03256023024528107419155150<740524902845443281=0444940=40=:01<05548551443@

7cbf5443-f94b-11e2-bbfb-001e671a3b56 2?E QDsgh/I)wgc9aaXc)" C03256019181815518209807441<4=006598054870441<<0560540=40=:01<05548551548@

7cbf5444-f94b-11e2-bbfb-001e671a3b56 2"RF.IgcX(@-|wXOaaXc)" C03256055190289045298041<<05:0185491141600;704:0182140=40=:01<055485514=0@

7cbf5445-f94b-11e2-bbfb-001e671a3b56 2b^lhM[_H!71$+NeaaXc)" C0325604<1;0050<4=0029:1004=90851521246 14859440:105<40=40=:01<055485510:1@

Если попробовать кодировать под другим кодом объекта, например "1" проблема вылезает, но уже на других штрихах...
В исходниках покапался, но проблему решить не смог...
28. scompany 41 16.08.13 21:06 Сейчас в теме
(27) dablack,
Добрый вечер.
Для печати используете штрих кодов какой способ используете?
1. Печать шрифтом
2. Печать компонентой 1С
3. Печать сторонней компонентой.
29. dablack 18.08.13 14:01 Сейчас в теме
30. dablack 19.08.13 09:45 Сейчас в теме
Да, действительно, если печать штрих шрифтом, то при считывании код обрезается, если печатаю стандартной компонентой, то все ок.
31. scompany 41 19.08.13 17:35 Сейчас в теме
Вот как раз печать шрифтом тестировалось не полностью.
32. azubar 45 05.04.18 14:23 Сейчас в теме
Для формирования ШК лучше использовать компоненту "КомпонентаПечатиШтрихкодов" из библиотеки работы с оборудованием (УТ11/УНФ) она на нейтив апи и одинаково хорошо работает как на винде так и на линуксе.

Для штрихкодирования по GUID объектов ИМХО удобен PDF417, это двухмерный компактный штрихкод который читают практически все сканеры с функцией 2D, учитывая что 2D сканеры сравнялись по цене с 1D заморачиваться с перекодированием длинного гуида формат одномерного шк не целеособразно.
33. evgeny43 32 26.04.18 16:40 Сейчас в теме
(32) КомпонентаПечатиШтрихкодов не умеет помоему DataMatrix , а он сейчас на мировром рынке много где используется ( в частности на фармакологии ).
если кому интересно сделал com библиотеку чисто для Data Matrix https://infostart.ru/public/823893/ мб кому поможет .
34. azubar 45 26.04.18 21:21 Сейчас в теме
(33) стандартная умеет QR, компонента которая умеет DataMatrix есть в конфигурациях Медицина https://infostart.ru/public/458889/ и вот http://cortes.ru/shtrihcode/components.php
36. evgeny43 32 27.04.18 11:18 Сейчас в теме
(34) Видел похожие варианты, перед тек как сам написал попробовал парочку , к сожалению работали только на клиенте , + мне необходимо печать с веб сервиса (т.е только серверный контекст) , ну конечно 1с не умеет печатать при серверном контексте, но это отдельная тема, для этого то же dll написал.
35. scompany 41 27.04.18 07:37 Сейчас в теме
(32)
В первую очередь обработка служит примером для реализации алгоритмов:
- пересчет из разных систем исчисления для больших чисел (на тот момент платформа имела ограничение)
- один из вариантов как можно организовать штрих-кодирование документов по GUID (на тот момент такой функции не было)
- формирование штрихкодов без использования внешних средств, кроме шрифта (как метод борьбы со "злыми администраторами")

По прошествии 5 лет, актуальность данной обработки почти исчезла
- платформу доработали
- добавили компоненты (кстати в типовых перекодирование GUID тоже используют из 16-ой в 10-ую).
DataMatrix так и нет, хотя он востребован на производствах.
- в наличие много альтернативных компонент, в т.ч. бесплатных, админы стали добрее

P.S.
Мое мнение по-поводу всех этих танцов с бубном:
Давно уже напрашивается реализация штрихкодирования на уровне платформы, без всяких компонент. (типовые натив компоненты подозрительно большие)
Например как это сделано в похожих системах: FastReport, CrystalReport и т.п.
Можно сделать специальный вид картинок в табличном документе.
37. evgeny43 32 27.04.18 11:21 Сейчас в теме
(35) <<Давно уже напрашивается реализация штрихкодирования на уровне платформы, без всяких компонент. (типовые натив компоненты подозрительно большие) >>
я с вами согласен. Но если вы хорошо разбираетесь в алгоритмах кодирования, то можете сами написать на 1с , без всяких компонент штрих кодирование, просто это очень геморойно , картинку придется рисовать массивом чисел . http://catalog.mista.ru/public/310668/ ссылка пример, как это кто то уже сделал))
38. scompany 41 27.04.18 15:48 Сейчас в теме
1. Когда-то в своей практике для формирования картинки-штрихкода на стороне сервера использовал StrokeScribe (), доп. кодом

tbc 			= Новый COMОбъект("STROKESCRIBE.StrokeScribeClass.1");
		tbc.Alphabet 	= ТипШрихКода;
		tbc.Text 		= ДанныеКода;
		
		Если ТипШрихКода = 33 Тогда
			tbc.AztecECL= УровеньКоррекции;
		Иначе	
			tbc.QrECL 	= УровеньКоррекции;
		КонецЕсли;	
		
		Если ПустаяСтрока(Подпись) = Ложь Тогда
			tbc.TextBelow	= Подпись;
		КонецЕсли;

		tbc.Rotation	= УголПоворота;
		tbc.UTF8		= Истина;
		tbc.ShowText	= ПоказыватьТекст;
		Массив	 		= tbc.GetPictureArray(2, Высота, Ширина);
		
		objXML 			= Новый COMОбъект("MSXml2.DOMDocument");
		objXML.loadXML("<Ba se64Data />");
		objDocElem 		= objXML.documentElement;
		objDocElem.dataType = "bin.base64";
		objDocElem.nodeTypedValue = Массив;
		textBase64 		= objDocElem.text;
		
		Двоичные 	= Base64Значение(textBase64);
		Результат	= Новый Картинка(Двоичные);
Показать


2. Если бы имел больше опыта, то можно было бы доработать эту компоненту:
http://ocvita.ru/ocvita-barcode
39. anig99 2843 07.09.18 22:41 Сейчас в теме
Решение хорошее. Пользуюсь уже несколько лет. Но с расширением сферы использования (другие цели, ТСД, софт) выявилась небольшая проблема. Некоторые символы в штрихкодах Code128 иногда используются как служебные. Например "|" может использоваться как разделить полей. Или первая цифра "2" в штрихкоде - признак весового штрихкода. Отловить такие баги на этапе разработки бывает сложно. Я нашел пока такое решение: ПереводИзGUIDв93 оставляет два резервных символа - "}" и "~". Я просто добавил функции, которые меняют запретные символы на два этих. Тестирую. Но если появится какой-то третий служебный символ - надо думать дальше.
Оставьте свое сообщение