Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 06:36
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Формирование штрих-кода 22 символов.  (Прочитано 16739 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Коллеги, доброго дня.
Задача: сформировать штрих-код, зашифровав в него определенные параметры.

Формат штрих-кода:
1.       Код товара, 8 символов
2.       Код вида единицы хранения (штука, коробка, мешок) – 1 символ
3.       Срок годности, 8 символов, формат: ГГГГММДДЧ– 4 цифры года, 2 цифры месяца, 2 цифры дня  (дата с точностью до дня, часы, минуты и секунды нас не интересуют, поэтому при расшифровке в 1С будем просто добавлять «000000»)
4.       Вес с точностью до грамма для весового товара, 5 символов. Для штучного товара заполнять нулями.

ИТОГО: 22 символа
Кодировать EAN 128 (предположительно).

Теперь пытаюсь сформировать собственно код. Использую компоненту «1С:Печать штрихкодов». Написал примерно такой программный код:
ТабДок = Новый ТабличныйДокумент;

Макет = ПолучитьМакет("ШК");
РисунокШтрихкод = Макет.Рисунки.ШК;

РисунокШтрихкод.Объект.ТипКода = ТипШтрихкода;//УправлениеРозничнойТорговлей.ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипШтрихкода);
РисунокШтрихкод.Объект.Сообщение = ШтрихКод;

ТабДок.Вывести(Макет);

ТабДок.ТолькоПросмотр      = Истина;
ТабДок.ОтображатьСетку     = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать("Этикетка");

С формированием кодов EAN 13 (при длине 13 смимв.), CODE 128 и других проблем нет. Попытка сформировать EAN 128 результата не дает – поле штрихкода заполняется красными диагональными штрихами.

Для иллюстрации результата прикладываю обработки. Первая предназначена для типовой конфигурации, где есть нужные объекты, вторая не использует ни общие модули, ни объекты – все переделано на простые типы, чтобы работало в любой конфе. Расшифровка типов штрихкодов:
// Возвращает значение типа штрихкода для использования в ЭУ
// "1С:Печать штрихкодов"
//
// Параметры
// ТипКода - ПланыВидовХарактеристик.ТипыШтрихкодов - тип, значение для которого
// нужно получить
//
// Возвращаемое значение:
//   Число, которое может быть присвоено свойству ЭУ "ТипКода"
//
Функция ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипКода) Экспорт
Перем Значение;

Если ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8 Тогда
Значение = 0;
ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
Значение = 1;
ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN128 Тогда
Значение = 2;
ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code39 Тогда
Значение = 3;
ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code128 Тогда
Значение = 4;
ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.ITF14 Тогда
Значение = 11;
Иначе
Значение = -1;
КонецЕсли;

Возврат Значение;
КонецФункции // ПолучитьЗначениеТипаШтрихкодаДляЭУ()
Добавлено: 16 Сен 2013, 11:33

да, чтобы было понятно, CODE 128 формируется нормально, но не подходит по той причине, что сканер его не читает.
Добавлено: 16 Сен 2013, 11:39

да и еще вопрос: существует в природе документация по компоненте "печать штрихкодов"? я не нашел ничего, код пишу основываясь на логике, именах свойств объекта, по аналогии с найденными примерами


Оффлайн LordWizard

  • "Иди учи бухгалтерский учет и не беспокой просьбами господа Бога!"
  • *****
  • Сообщений: 1463
  • РЕПУТАЦИЯ: 221
  • КПД: 15%
  • Пишу, консультирую, да и так - по клавишам...
  • Регистрация: 2011-07-25
    • Skype: warlock02121968
  • Сайт: 
  • Профессия: Консультант 1С
Думаю тебе лучше выйти на спеца из Штрих-М. они практически неплохо работают со штрих-кодами. +79164177675 (зовут Михаил). скажи что от Константина - программера 1С.
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Оффлайн svrider

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-09-16
  • Сайт: 
  • Профессия: Программист 1С
На сколько я понимаю ты используешь компоненту которая не выводится в макет, просто она может формировать двоичные данные картинки штрих кода.
Я чтобы её использовать писал примерно такой код:

   ВнешняяКомпонента = Новый("AddIn.КартинкаШтрихкода.Barcode");
   ВнешняяКомпонента.Шрифт = "Tahoma";
   ВнешняяКомпонента.РазмерШрифта = 12;
   ВнешняяКомпонента.Ширина = Окр(ПараметрыШтрихкода.Ширина);
   ВнешняяКомпонента.Высота = Окр(ПараметрыШтрихкода.Высота);
   ВнешняяКомпонента.АвтоТип = Ложь;
   ВнешняяКомпонента.ТипКода = 4;
   ВнешняяКомпонента.ОтображатьТекст = Истина;
   ВнешняяКомпонента.ЗначениеКода = Штрихкод;

// Сформируем картинку
ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод();
Картинка = Новый Картинка(ДвоичныеДанныеКартинки);
ОбластьПечати = Макет.ПолучитьОбласть("ИмяОбластиПечати");
Рисунок = ОбластьПечати.Рисунки.Штрихкод1с;
Рисунок.Картинка = Картинка;

По поводу типа кода:
1 - EAN13
2 - EAN128
3 - Code39
4 - Code128

Вообще это в формировании этикеток в 11ой торговле есть

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
У EAN128 штрих кажется должен быть типа - (8)3423445345345
Добавлено: 17 Сен 2013, 02:05

да и еще вопрос: существует в природе документация по компоненте "печать штрихкодов"? я не нашел ничего, код пишу основываясь на логике, именах свойств объекта, по аналогии с найденными примерами
Правой кнопкой мыши по штрих коду - справка. Там и по свойствам и примеры штрих кодов найдешь.

Добавлено: 17 Сен 2013, 02:18

Текст скопировать не получилось
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Последний раз редактировалось: Dethmontt; 17 Сен 2013, 02:18. Причина: Объединение сообщений

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
svrider, общие принципы работы понятны и кажется я явно написал об этом в стартпосте.
проблема именно с формированием кода длинной 22 символа.
CODE 128 не воспринимается сканером - почему? - может кто подскажет? это проблема оборудования или ШК неверно сформирован? на сколько я знаю, контрольного символа в CODE 128 быть не должно, тогда почему не считывается??.
EAN 128 не могу сформировать теми же методами - прикладывал обработки для экспериментов, если кто скачивал и смотрел, там видно, что все другие варианты кроме EAN 128 формируются при указании произвольного набора цифр (скажем, 1234567890). пусть не всегда правильно - т.к. например для EAN 13 нужно контрольную цифру рассчитать, но главное формируются, ШК создается. EAN 128 не хочет. почему?
У EAN128 штрих кажется должен быть типа - (8)3423445345345
мне не принципиально, пусть выглядит так. мне надо решить задачу - обеспечить формирование и считывание сканером ШК набора цифр длинной 22 символа. считывание например EAN 13 дает нужный мне результат, но длинна мала. учитывая размер мне теоретически подходят CODE 128 и EAN 128. Первый не читается, второй не формируется. По этому поводу и тема.
Правой кнопкой мыши по штрих коду - справка. Там и по свойствам и примеры штрих кодов найдешь.
у меня эта справка не открывается :) 1С-ка закрывается аварийно с записью дампа. пробовал в разных базах и в конфигураторе и в предприятии, результат один.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
У тебя фактически получается вот такой штрих для EAN128
(8)8-цифр(1)1-Цифра(8)8-цифр(5)5-цифр
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
ок, пусть будет так. внешний вид мне не важен.
мне надо добиться результата, а именно: сформировать и считать.

как это сделать?

в любом виде, пусть так
(8)8-цифр(1)1-Цифра(8)8-цифр(5)5-цифр

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Эээ... С помощью твоей обработки -
ПечатьПроизвольныхШтрихКодов1.epf
нормально формируется шрих код


Добавлено: 17 Сен 2013, 09:48

Щас проверить читается он или нет не могу...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
ха, прикольно. работает :zebzdr:
Dethmontt, спасибо!
Добавлено: 17 Сен 2013, 10:55

EAN 128 тоже не читается...значит все таки придется сканер мучить.

Последний раз редактировалось: mixqn; 17 Сен 2013, 10:55. Причина: Объединение сообщений

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
спешу поделиться идиотизмом, который стоил мне массы потраченного времени. оказалось, я давно мок прекратить свои изыскания и остановиться на CODE 128, с формированием которого никаких проблем не было изначально.

проблема чтения была из за РАМКИ!!! при добавлении объекта "1С:Печать штрихкодов" в макет он "по умолчанию" обведен рамкой (что видно на скрине выше). так вот эта самая рамка и вызывала проблему считывания. убрал рамку - все прекрасно работает.

люди, не повторяйте моих ошибок! :)


Теги:
 

Формирование отчёта "Задолженость по контрагентам" 1С:Предприятие 8.2 "Торговля для частных предпринимателей базовая", редакция 1.0

Автор casper009Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 2990
Последний ответ 27 Май 2015, 10:02
от casper009
Некорректное формирование "ведомости в кассу"

Автор Евгения ЛеликоваРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 799
Последний ответ 02 Окт 2015, 07:12
от Евгения Леликова
"ШТРИХ-ПРИНТ" ФI 15-2,5 Префикс товара

Автор Rust2016Раздел Беседка

Ответов: 0
Просмотров: 1615
Последний ответ 14 Фев 2017, 20:12
от Rust2016
Конфигурация "Деканат", формирование шкалы оценивания

Автор akexkbykovРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1542
Последний ответ 13 Июн 2014, 12:01
от cska-fanat-kz
Третье субконто счета 19.08 в проводках "Формирование записей книги покупок"

Автор NataliaKoroleva72Раздел Пользователям "1С - Предприятие 8"

Ответов: 4
Просмотров: 6753
Последний ответ 29 Мар 2013, 10:25
от MuI_I_Ika

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 251
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal