Если вы думаете, что на картинке наше отечественное убожество, какая-то провинциальная больничка, так - нет.
Там идеально ровный пол!
А яма просто на нем нарисована.
Зачем?
А зачем вы покупаете снеговика?
На самом деле, все просто и замечательно здорово придумано.
Это сделано в одной европейской клинике чтобы маленькие дети не носились как угорелые по коридорам.
Понимаете разницу в подходах к решению проблемы?
Сравните с нашими общеобразовательными школами, например.
Что там твориться на переменах, знаете?
Маркетплейс Беру.ру вынудил окончательно решить еще одну старую задачу - печать штрих-кода стандарта code 128 https://ru.wikipedia.org/wiki/Code_128
Вот тут немного моих восторгов про Беру - https://www.klerk.ru/buh/articles/49...omment__765766 и общее впечатление.
Но, как говорится, есть и хорошие новости.
Эти паразиты в Беру требуют на каждую коробку наклеить ярлык, который нужно и самим же сформировать и напечатать.
На ярлыке три штрих-кода (первый бестолковый, а третий вообще бессмысленный) и обязательный стандарт - code 128.
Не понятно, чего они так к нему прикопались - тот же С39 (значительно более простой стандарт) вполне подошел бы по своим возможностям для задач Беру.
А сканерам, тем вообще все равно какой стандарт штрих-кода - они их все читают одинаково.
Не самый плохой стандарт, кстати, этот code 128 и большой его плюс в том, что он может "печатать" не только цифры и символы (как Ean'ы, например), но и латинские буквы и даже строчные и прописные.
И еще он хорош тем, что достаточно компактный. "Многа букв" умещаются на маленькой площади. Это часто бывает критично, например, для упаковок лекарств - блистер или коробочка могут быть такими маленькими, что там не только Ean-13, а даже Ean-8 не куда воткнуть. Хотя там всего 7 значащих цифр.
Для печати штрих-кодов из 1С я пользуюсь специальными шрифтами.
Они доступны, спросите поисковик про нужный стандарт, он выдаст вам море ссылок.
Ean - шрифт лежит в каждом каталоге квартальной отчетности 1С - чтобы печатать штрих-код формы в левом верхнем углу.
С помощью этих шрифтов можно печатать штрих-коды из любого текстового и не только редактора.
И лидер здесь - C39. У него каждый символ как на клавиатуре, так же и в шрифте. Только надо стартовый и финишный символ добавить, чтобы сканер видел, где начало, где конец этого штрих-кода. У С39 это один и тот же символ - *.
Т.е. чтобы вывести на печать штрих-код типа С39, просто ставите шрифт и пишете *123456789* и он так и будет изображен. Такое изображение прекрасно считает любой сканер.
Совсем другое дело печать шрифтами Ean.
Во-первых, там есть контрольное число (последняя цифра), которая вычисляется по довольно заумному алгоритму, совершенно не понятно почему.
Во-вторых, одна и та же цифра в штрих-коде Ean печатается разными символами, в зависимости от того, где она находится. Там нельзя просто набирать цифры с клавиатуры, цифры вообще печатаются буквами и символами, а изображение получается в виде в т.ч. и цифр.
У Code 128 тоже есть контрольное число (трехзначное в общем случае).
Вычисляется оно достаточно легко (см. в описании в Википедии).
К коду стартового символа (103, 104 или 105) прибавляются произведения порядкового номера символа кода (1, 2, 3, 4, 5 ...) на порядковый номер символа в таблице кода. Остаток от деления полученной суммы на 103 и будет контрольным числом (т.е., контрольное число в code 128 от 0 до 102), которое изображается в штрих-коде символом у которого порядковый код в таблице символов равен контрольному числу.
Вроде, все легко и просто, но в чем и оказался тупик, который не позволял мне до вчерашнего дня печатать этот штрих-код.
Дело в следующем:
Например, напечатаем такой штрих-код: CATS RULIAT.
Коды символов дает выражение на встроенном языке КодСимв(Символ).
Вы и сами можете в этом убедиться - в своей рабочей базе (или любой другой) откройте Табло (меню Сервис-Табло). Здесь можно писать формулы на встроенном языке 1С, окно вычислит его и покажет. Пишем в табло руками или копипастим отсюда: КодСимв("") и подставляем в кавычки любой символ, какой найдете на клавиатуре или в оперативной памяти. Например, заглавную латинскую си - C.
У вас все получится, даже не сомневайтесь!
Составим таблицу кодов:
C - 67
A - 65
T - 84
S - 83
пробел - 32
R - 82
U - 85
L - 76
I - 73
Контрольная сумма равна 2859, а контрольное число (пишем в табло: 2859%103, получаем ответ -->) 78.
Пишем в табло Симв(110) и узнаём, что это .... барабанная дробь ... ТА-ДАМММ ... английская буква эн - n.
Получилось?
Ну, как же нет?
Контрольная сумма = 104 + 1*67 + 2*65 + 3*84 + 4*83 + 5*32 + 6*82 + 7*85 + 8*76 + 9*73 + 10*65 + 11*84
Вставьте эту строку в табло и оно вам быстренько подсчитает.
Или берите калькулятор.
Т.е. чтобы напечатать CATS RULIAT штрих-кодом системы code 128, вы должны выбрать шрифт Code 128
и набрать с клавиатуры строку МCATS RULIATnО
получится вот так, как у меня в обработке:
Вы можете сделать это в любой программе, в которой можно вводить текст и выбирать шрифт.
Хоть в 1С, хоть в ворде, экселе или даже в блокноте
Такой штрих-код уверенно считает любой сканер штрих-кодов.
Чтобы убедиться, что у меня правильное изображение (неверно сформированный штрих-код сканер не считает и выдаст ошибку), можно открыть любой онлайн генератор штрих-кодов и сравнить картинки.
Вот первый попавшийся: https://barcode.tec-it.com/ru/Code12...=CATS%20RULIAT
Выдал такую картинку:
Видите, расположение белых полос совпадает.
Если кто не в теме: сканеры штрих-кодов "смотрят" на белые полоски в штрих-коде, а не на черные.
Сканер вычисляет на изображении штрих-кода доли ширин белых полос и по их сочетанию, ищет такое же в таблице кодов соответствующей системы кодировки.
Именно доли, а не миллиметры, поэтому масштаб, сжатие - растяжение, наклоны, повороты, вид под углом не имеют для сканера никакого значения, т.к. при этом изменяется только абсолютное значение ширины, а относительное остается неизменным.
Потому, что если все сделать так как написано выше, контрольное число будет вычислено не верно и символ, ему соответствующий будет задан с ошибкой. Такой штрих-код из-за неверного контрольного числа не считает ни один сканер. Все сканеры будут выдавать ошибку.
Вернемся еще раз в табло, уж оно-то не ошибается!
Такого символа даже на клавиатуре нет.
Казалось бы, все делаю по описанию стандарта, а получаю полную .... фигню и совершенно не понятно что с этим делать.
Ларчик открылся, как всегда просто.
Надо было просто посмотреть кодовую таблицу шрифта code 128.
Проще всего, это можно сделать в Word'е.
Идем в меню Вставка - Символ, выбираем шрифт и видим там вот такую картину:
Сейчас курсор стоит на последнем символе в таблице (дальше там пустые места, они другого цвета и все одинаковые), справа внизу показан код символа, слева внизу - описание.
Первое, что бросается в глаза - код 207. ???? НО! Согласно стандарта в шрифте только 107 символов:
И еще, если коды начинаются с 32, то какой же символ соответствует контрольному числу меньше 32? Например, если оно оказалось равно 20? Или и вовсе 0?
Агата Кристи и Шерлок Холмс нервно курят в сторонке, время от времени, давая затянуться пляшущим человечкам, которые трутся вокруг них.
Итак, контрольную сумму, по этим правилам, нужно вычислять следующим образом (скорректируем формулу выше с учетом правил):
Контрольная сумма = 104 + 1*(67-32) + 2*(65-32) + 3*(84-32) + 4*(83-32) + 5*(32-32) + 6*(82-32) + 7*(85-32) + 8*(76-32) + 9*(73-32) + 10*(65-32) + 11*(84-32)
Остаток от деления контрольной суммы на 103 даст Контрольное число - 78.
Ему соответствует символ с кодом 78+32 = 110
Одинесное Табло, как всегда, не даст соврать:
Стартовый (первый) и стоповый (последний) символ штрих кода формируются по этим же правилам: 104+100=204, 106+100=206.
Сколько нужно времени, чтобы написать такую обработку?
29 строк кода - это около минуты моего времени.
Я пользуюсь при формировании программного кода замечательным Телепатом великого автора Александра Орефкова, который по праву заслужил памятник при жизни.
И если когда-нибудь в светлой России будущего этот памятник будет установлен, я обязательно буду в этом участвовать в виде доната.
У меня и сейчас поиск работает. Но на "краффин" действительно ничего не находит.
Потыкалась в поиске. Ощущение, будто выдает посты примерно до 2022 года, а более свежие не показывает. Надо более детально потыкаться, но мне лень.
Там идеально ровный пол!
А яма просто на нем нарисована.
Зачем?
А зачем вы покупаете снеговика?