v8: Размещение штрихкода в макете #527514


#0 by mikecool
Собсно надо штрихкодировать документы. Нарисовал ШК как в макете текстовое поле с шрифтом EanGnivc, ШК выводится в печатную форму, но сканером не читается. зы: ШК длиной 13 символов чяднт?
#1 by mikecool
пинг
#2 by lxs
сканер в принципе настроен на ean13?
#3 by mikecool
да, с заводской упаковки ШК читает но щас еще уточню
#4 by BayoNet
Контрольую цифру правильно считает?
#5 by mikecool
а вот тут - я хз, пользуюсь типовым механизмом )
#6 by Grusswelle
Не играет роли здесь контрольная цифра.
#7 by BayoNet
ИМХО штрихкод EanGnivc обычным сканером не прочтешь.
#8 by BayoNet
Зачем тебе EanGnivc? Это же не EAN-13
#9 by Fragster
используй компоненту 1с баркод с ИТС
#10 by mikecool
а как ее втулить в печатную форму?
#11 by mikecool
+10 это ж типа активикса, как я понял
#12 by Любопытная
картинкой
#13 by BayoNet
Если контрольная цифра пральна, то все равно прочтется?
#14 by BayoNet
Вместо . Я хотель спросить если КЦ не правильная, разве Сканер сработает?
#15 by mikecool
хрень какая-то - включил поддержку ЕАН у сканера, перестали распозаваться 14-значные штрихи
#16 by Ненавижу 1С
сканеру плевать на контрольную цифру, имхо
#17 by mikecool
есть у кого примерчик - как впихнуть 1с баркод в макет печатной формы?
#18 by BayoNet
А зачем тебе 14 значные штрихи, если ты EAN 13 хочешь использовать. Я тебе посоветую вернуть заводские настройки сканеру. А для печати ШК можно воспользоваться советом или найти Barcode.ocx, или просто шрифт EAN-13, скачать и добавить в шрифты
#19 by Fragster
стандартная УТ
#20 by Vovan1975
а ты уверен что размер штрихкода в печатной форме "правильный"? Просто штрихкоды должны иметь строго определенную ширину...
#21 by СноваЗдорова
добавь спереди и сзади "*"
#22 by mikecool
четырнадцать знаков - это я взял с заводской упаковки товара, которым торгуем - нормально ищется по нему в справочнике
#23 by BayoNet
имхо  "*" только для шрифта CODE нужны.
#24 by mikecool
да чета я уже ни в чем не уверен ) 40 еангнивом нарисовал, не растягивая в ширину...
#25 by Vovan1975
просто у меня однажды подобная проблема была из-за того что при печати штрихкод изменялся - ширина штрихкода в миллиметрах изменялась - и из-за этого сканер штрихкод не воспринимал.
#26 by СноваЗдорова
Странно, я еще в 2000 году для еан13 добавлял =)
#27 by СноваЗдорова
Сканеру все равно, хоть 200 знаков
#28 by Vovan1975
+ там достаточно включенного автомасштабирования - и привет. Просто для штрихкодов есть стандартные типоразмеры. В общем, моя версия - он у тебя при выводе на печать искажается.
#29 by rotting
может просто сильно мелко было распечатано?
#30 by СноваЗдорова
просто попробуй спереди и сзади добавить знак "*"
#31 by mikecool
вот новый прикол: в макете рисую текст, шрифт гнивик, тулю туда из регл отчета текст "!0740-eabg!" - читается прямо с экрана а если свю последовательность цифирей - фик
#32 by Vovan1975
не, там разница в ширине была миллиметра 2. Пока не добился чтобы он на печати не получался строго определенной ширины - не взлетало.
#33 by mikecool
через актив икс формируется ШК нормально
#34 by rotting
странно, у меня было все равно какая ширина, главное чтоб не сильно мелко было
#35 by СноваЗдорова
заметил, там воскл знаки спереди и сзади?..
#36 by mikecool
пофик на воск знаки, через актив икс и без них нормально формируется-читается... активиксы в макеты пихать нельзя? )
#37 by СноваЗдорова
+ можно и воскл знаки ставить, знак больше, знак меньше, я звездочки по привычке предлагал...
#38 by СноваЗдорова
ты спрашивал как через шрифт печатать, я тебе рассказываю...
#39 by mikecool
через шрифт ШК получается "ровный", а через активикс - слева, посредине и в конце - зубцы ниже, чем остальные линии
#40 by lxs
пробовал вводить тот же код, который сканер читает с какой-нибудь упаковки?
#41 by mikecool
да, он рисунком  вообще отличается
#42 by mikecool
на данный момент - только 1с-баркод компонент нормально сформировал ШК
#43 by lxs
ну, тогда у тебя не ean13
#44 by mikecool
а 1с баркод формирует еан13 вот только методов работы с ним - особо и нет, в картинку не впихнешь
#45 by lxs
почему не впихнешь?
#46 by mikecool
знал бы как... у 1с баркода нет метода Сохранить куда либо
#47 by lxs
Погоди. В макете (табличный документ) добавляешь рисунок(текст), шрифт выбираешь EanGnivc, затем через Рисунок.Текст загоняешь штрих-код.
#48 by mikecool
сделал, он не читается сканером
#49 by lxs
скачай отсюда, попробуй.
#50 by Irbis
Если КЦ неверная и сканер не пищит, то скорее всего выставлен аппаратный контроль чтения. Ну, и разумеется, если размеры и качество печати самого ШК позволяют сканеру его распознать.
#51 by lxs
проблема печати единична, у меня ни разу не было проблем с чтением отпечатанного ШК.
#52 by mikecool
ыыы, я научился объекты вставлять в макеты ))))
#53 by mikecool
итого... в макете делаем Таблица - Рисунки - Объект... выбираем галку "Элемент управления" и из списка объектов "1С.V8.Печать штрих-кодов" (должен быть установлен) в полученном объекте для проверки можно зайти: ПКМ на объекте, выбираем "Элемент управления..." - "Свойства" задаем кодируемое сообщение и получаем ШК в макете и прямо с экрана можно проверять - читается ли код сканером, тут же растягиваем и сжимаем до нужного размера, проверяем... программно в коде значение сообщения устанавливается так:
#54 by СноваЗдорова
или просто добавляем к цифрам штрихкода спереди и сзади один из знаков (одинаковые должны быть): ! * < > и печатаешь через шрифт. Сканер в итоге получает только цифры
#55 by mikecool
как ни странно - но нифига, пробовал добавлять и "!" и "*" сначала и в конце - не читает воспользовался активиксом - при том же коде штрих получается совсем другого вида
#56 by Anderson
Тоже пробовал шрифты на 2-х сканерах не прочитались. Так что использовать компоненту.
#57 by Anderson
+кстати они даже по рисунку не похожи.
#58 by mikecool
я про это в и пишу..
#59 by СноваЗдорова
По рисунку могут быть не похожими это ничего страшного. Этот текст вы можете десятком шрифтов распечатать со баркодами и все будут разные и должны сканером читаться. Вот нет под рукой сканера...
#60 by AlteZ
тупо цифрами, (с !,* и без) не читает, алгоритм нужен походу, и существует такой для 13+5? По ссылке в становится ясно, что не просто всё How the barcodes are created: One of our font tools are used to convert the data that is to be encoded in the barcode to a character string, that when combined with the barcode font, will create a correct barcode.  The online font encoder at was used to generate the barcodes in this document, which encode the data of “32456289093”.  A complete list of font tools and encoders is available at: IDAutomation USB Scanner available from:
#61 by GreenS
Контрольная сумма критична, сканер не прочитает. Ширина критична, при Непропорциональном изменении ширины, сканер не понимает и не читает. Поиграй с маштабом...
#62 by AlteZ
джентльмен в с суммой не согласен кодирую 200000000008400001, активикс справлеятся, макрос пока не очень (в шрифте разрывы, но разобраться интересно, тупо символами и еангнивц 2000000000084 из ворда ну никак не сканирует) [code] Public Function EAN13(DataToEncode As String) As String '********************************************************************* '*  VB Functions for IDAutomation Barcode Fonts v2006.2 '*  Copyright, IDAutomation.com, Inc. 2000-2006. All rights reserved. '* '*  Visit for more '*  information about the functions in this file. '* '*  You may incorporate our Source Code in your application '*  only if you own a valid license from IDAutomation.com, Inc. '*  for the associated font and this text and the copyright notices '*  are not removed from the source code. '* '*  Distributing our source code or fonts outside your '*  organization requires a Developer License. '*********************************************************************      OnlyCorrectData = ""    'Check to make sure data is numeric and remove dashes, etc.    StringLength = Len(DataToEncode)    For I = 1 To StringLength         'Add all numbers to OnlyCorrectData string         '2006.2 BDA modified the next 3 lines for compatibility with different office versions         'If IsNumeric(Mid(DataToEncode, I, 1)) Then OnlyCorrectData = OnlyCorrectData & Mid(DataToEncode, I, 1)         CurrentCharNum = Asc(Mid(DataToEncode, I, 1))         If CurrentCharNum > 47 And CurrentCharNum < 58 Then OnlyCorrectData = OnlyCorrectData & Mid(DataToEncode, I, 1)    Next I    '2006.2 BDA added the next line for general compatibility    StringLength = Len(OnlyCorrectData)          If StringLength < 12 Then OnlyCorrectData = "0000000000000"    If StringLength = 16 Then OnlyCorrectData = "0000000000000"    If StringLength = 13 Then OnlyCorrectData = Mid(OnlyCorrectData, 1, 12)    If StringLength = 15 Then OnlyCorrectData = (Mid(OnlyCorrectData, 1, 12) & Mid(OnlyCorrectData, 14, 2))    If StringLength > 17 Then OnlyCorrectData = (Mid(OnlyCorrectData, 1, 12) & Mid(OnlyCorrectData, 14, 5))    Dim EAN2AddOn As String    Dim EAN5AddOn As String    EAN5AddOn = ""    '2006.2 BDA added the next line for general compatibility    StringLength = Len(OnlyCorrectData)          If StringLength = 17 Then EAN5AddOn = Mid(OnlyCorrectData, 13, 5)    If StringLength = 14 Then EAN2AddOn = Mid(OnlyCorrectData, 13, 2)    'Remove digit number from add-ons and check digit    DataToEncode = Mid(OnlyCorrectData, 1, 12)    'Calculate Check Digit    For I = Len(DataToEncode) To 1 Step -1        'Get the value of each number starting at the end        CurrentCharNum = Mid(DataToEncode, I, 1)        'Multiply by the weighting factor which is 3,1,3,1...        'and add the sum together        WeightedTotal = WeightedTotal + CurrentCharNum * Factor        'Change factor for next calculation    Next I    'Find the CheckDigit by finding the number + WeightedTotal that = a multiple of 10    'Divide by 10, get the remainder and subtract from 10    I = (WeightedTotal Mod 10)    If I <> 0 Then        CheckDigit = (10 - I)    End If    'Encode the leading digit into the left half of the EAN-13 symbol    'by using variable parity between character sets A and B    LeadingDigit = Mid(DataToEncode, 1, 1)    Select Case LeadingDigit    End Select    'Add the check digit to the end of the barcode & remove the leading digit    DataToEncode = Mid(DataToEncode, 2, 11) & CheckDigit    'Determine character to print for proper barcoding    StringLength = Len(DataToEncode)    For I = 1 To StringLength    'Get the ASCII value of each number excluding the first number because    'it is encoded with variable parity    CurrentEncoding = Mid(Encoding, I, 1)    'Print different barcodes according to the location of the CurrentChar and CurrentEncoding    Select Case CurrentEncoding    'Add in the 1st character along with guard patterns    Select Case I    Case 1        'For the LeadingDigit, print the human readable character,        'the normal guard pattern, and then the rest of the barcode        If LeadingDigit > 4 Then DataToPrint = Chr((LeadingDigit + 48) + 64) & "(" & DataToPrint        If LeadingDigit < 5 Then DataToPrint = Chr((LeadingDigit + 48) + 37) & "(" & DataToPrint    Case 6        'Print the center guard pattern after the 6th character    Case 12        'For the last character , print the the normal guard pattern after the barcode    'Process add-ons if they exist    If Len(EAN2AddOn) = 2 Then DataToPrint = DataToPrint & " " & ProcessEAN2AddOn(EAN2AddOn)    If Len(EAN5AddOn) = 5 Then DataToPrint = DataToPrint & " " & ProcessEAN5AddOn(EAN5AddOn) [/code]
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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