Преобразовать документ в штрихкод EAN13 #554402


#0 by palm1c
Добрый день. Есть задачка, интересуют способы решения. Есть документ РасходнаяНакладная. В номере документа может быть все, что угодно - буквы, цифры, буквы без цифр и т.д. Нужно сформировать уникальный штрихкод EAN13 накладной. Какие есть предложения по реализации?
#1 by ДенисЧ
нет. Буквы в ЕАН-13 не влезут.
#2 by ДенисЧ
Хотя... Если посчитать хэш какой-нибудь... Но 12^10 значений - маловато будет...
#3 by palm1c
Предложения по хэш-функции?
#4 by palm1c
По количеству значений будет нормально :)
#5 by ДенисЧ
например, через _StrToId от ID документа
#6 by Джинн
Есть, делали. Хэш-функция. Делали псевдоуникальную солянку, складывая номер-дату-код контрагента-сумму (что еще точно не помню), кормили хэш-функции и получали набор цифр. Там задача сбора из разных база была, сключая SAP и OEBS, посему так реализовали.
#7 by Denp
если номер не длинный, можно заморочиться через кода символов
#8 by palm1c
Псевдоуникальная, я думаю, подойдет. Буду смотреть на данные свои, что-то придумаю. Спасибо, гуд.
#9 by palm1c
Коды символов тоже гляну. Спасибо.
#10 by palm1c
В общем, я попробую оба варианта, и отпишусь, как решил вопрос.
#11 by palm1c
Третий выриант придумал. Делаю константу, в ней хранится число присвоеных штрихкодов. НачалоТранзакции. Читаю константу, это и есть штрихкод. добавляю 1. Записываю все. КонецТранзакции. Как-то так?
#12 by ДенисЧ
а не подойдёт?
#13 by Джинн
В рамках одной базы пойдет. Но надежнее.
#14 by КонецЦикла
Можно посмотреть как МОД делает, писать число в константу Я это переделывал под себя ибо были блокировки констант Надежнее , или Meta.ЗначениеВСтрокуБД(ВыбДок), можно сразу получить гарантированно (ну практически) уникальную ссылку на документ (2 зайца убиваюццо) А кодировать в code 128 Мало ли, потом захочется номер коробки добавить или еще что
#15 by Mikeware
для ид-строки достаточно. Только один нюанс - распределенка с русскими дбсигнами баз (я, конечно, давно предложил за такое убивать, но, возможно, недобитки остались...)Если латиница, причем в верхнем регистре - вполне хватит кода39
#16 by Kuzen
Как то так в типовых и используется. Если используются разные базы и между ними обмен идет тогда используется уникальный префикс. Как пример реализации: 26 (глобальный префикс что бы с промышленными штрихкодами не путать и отличать весовой товар) 00 (уникальный префикс в каждой базе в случае обмена между базами) 00000001 (счетчик через константу) (контрольный символ вычисляется на основе предыдущих символов) результат - 2601000000014
#17 by Kuzen
Через номер документа имхо не верно, так как уникальность номера документа обычно в пределах года.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С