Простое штрихкодирование документов

Публикация № 62629

Администрирование - Торговое оборудование - Сканер штрих-кода

12
Была поставлена задача на предприятии, где ежедневно выписывается по 300-500 накладных организовать штрихкодирование документов, для более удобной работы с бумажным носителем в дальнейшем. И вот результат...

Конфигурация "Торговля и склад". Хотелось сделать как можно проще и быстрее, и в тоже время надежно. На решение задачи ушло 1,5 часа. И так приступим....

У нас будет использоваться штрихкод EAN13. Создаем общий реквизит документов.

Тип - "Строка", длина - 13, отбор по реквизиту.

Добавляем в глобальный модуль процедуру:

//******************************************************************************
// глСформироватьШтрихкодДокумента(Конт)
//
// Параметры:
//  Конт - контекст документа для которого необходимо сформировать штрихкод
//    EAN13- реквизит документа содержащий штрихкод
// Возвращаемое значение:
//  Нет                 
//
// Описание:
//  На основании номера документа и вида документа формирует штрихкод в формате EAN
//
Процедура глСформироватьШтрихкодДокумента(Конт, EAN13) Экспорт
	
	Если ПустаяСтрока(EAN13) = 1 Тогда
		
		ПрефиксыДокументов = СоздатьОбъект("СписокЗначений");
		ПрефиксыДокументов.ДобавитьЗначение("001", "Реализация");
		ПрефиксыДокументов.ДобавитьЗначение("002", "СчетФактураВыданный");                
		// и т.д
		КодДокумента        = СокрЛП(Прав(Конт.НомерДок,7));
		КодВидаДокумента    = Строка(Константа.ПрефиксВидаДокумента) + ПрефиксыДокументов.Получить(Конт.Вид());
		
		Префикс = Прав(ДатаГод(Конт.ДатаДок), 2);
		
		ИспКолво = 10;
		
		Штрихкод = СимволыВЦифры(Прав(СокрЛП(КодДокумента+КодВидаДокумента), ИспКолво));
		Штрихкод = Префикс + глДополнитьСтрокуЛ(Штрихкод, "0", ИспКолво);
		
		EAN13 = Штрихкод + глКонтрольныйСимволEAN(Штрихкод, 13);
	КонецЕсли;
	
КонецПроцедуры // глСформироватьШтрихкодДокумента()

После этого в документы, которым будут присваиваться штрихкоды добавляем вызов вышеописанного в процедуру:

Процедура ПриЗаписи()
	//..............................
	глСформироватьШтрихкодДокумента(Контекст, EAN13);
КонецПроцедуры

В результате при первой записи документа ему будет присвоен штрихкод состоящий из следующих блоков:

1) год документа (2 символа);

2) семь цифр справа от номера документа;

3) код вида документа (3 символа);

4) контрольный символ;

Осталось только вставить в печатную форму объект ActiveBarcode и настроить необходимые свойства у него.

А вот и результат Smile

Штрихкод на печатной форме документа

Минус у данного подхода несомненно есть - при совпадении префикса  штучного(весового) товара и последних двух цифр года документа возможно создание одинаковых штрихкодов для этих разных объектов базы.

http://shkuraev.ru

12

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Дата
1. Sherlock_kmw 26 15.12.09 11:52 Сейчас в теме
Заманчивая конечно идея использовать EAN13,
но
1. неуникальность кода ты укзал
2. необходимость создания еще одного общего реквизита
3. парево с его присвоением и хранением.

вывод:
я всегда штрихкодировал доки на основании внутреннего представления объекта в базе. за основу бралась не моя идея, я лишь прикручивал ее к практике, если интересно могу вечером выложить кусок кода

ЗЫ. в моем случае ессно используется EAN128
2. salexdv 15.12.09 12:04 Сейчас в теме
(1) Согласен, EAN128 удобнее будет. EAN13 - как вариант.
Пиши статью про 128 ;)
3. braynt 55 15.12.09 12:18 Сейчас в теме
а можно code 39. Как раз подходит для служебного штрихкодирования
4. Арчибальд 2708 15.12.09 12:24 Сейчас в теме
возможно создание одинаковых штрихкодов для этих разных объектов базы

Во-первых, ничего страшного. Уж как нибудь отличить можно Документ от товара.
Во-вторых, вполне можно настрогать уникальных префиксов видов документов, отличных от всех префиксов товаров и поставить их впереди, а цифры года загнать в конец кода.
Что касается других замечаний в (1) - не думаю, что это существенно. Дополнительный общий реквизит проходит вполне безболезненно. А вот для формирования штрихкода я бы вместо глобальной процедуры взял обработку. Или вообще поручил бы это дело ВПФ, ведь пока штрихкод не напечатан, он все равно ни к чему.
5. salexdv 15.12.09 12:36 Сейчас в теме
(4)
А вот для формирования штрихкода я бы вместо глобальной процедуры взял обработку. Или вообще поручил бы это дело ВПФ, ведь пока штрихкод не напечатан, он все равно ни к чему.


На мой взгляд, процедура все-таки глобальная и размещаться должна рядом с процедурой "глСформироватьШтрихкод()" :-)
6. Арчибальд 2708 15.12.09 12:42 Сейчас в теме
(5) Мое кредо - "неразрушающее конфигурирование". Т.е. если можно обойтись только дополнением конфигурации, без изменения - так я и делаю. Вариант с ВПФ, которую все равно допиливать надо, тем и хорош, что на обновления конфигурации вообще никак не повлияет.
7. salexdv 15.12.09 12:46 Сейчас в теме
(6) Все упирается в частности :) И ты, конечно, по-своему прав
8. Арчибальд 2708 15.12.09 12:51 Сейчас в теме
+6 Доходит до смешного - даже вставляя штрихкодирование документов (правда, только одного вида) в собственную самописную конфу, я не стал трогать глобальный модуль. :D Все в обработке http://infostart.ru/public/19400/
9. salexdv 15.12.09 12:56 Сейчас в теме
(8) Это называется правильный подход к делу :D
10. Vix 27 16.12.09 08:15 Сейчас в теме
Дело конечно каждого, но как вариант штрих-код документа можно формировать из номера документа, даты и кода базы, т.к. помимо центральной есть еще и переферийные базы, тогда точно штрих-код будет уникальным. А насчет того, чтобы присваивать штрих-код документу, я это делал во время его создания, и процедуру лучше сделать в глобальном модуле, чтобы не напрягать лишними движениями пипла который этим делом будет заниматься. Это конечно мой подход, все мы любим творить и каждый творит по своему :)
11. hren 17.12.09 03:15 Сейчас в теме
А как штрикод в дкоумент вставить?
12. Vix 27 17.12.09 06:30 Сейчас в теме
(11) Если говорить о печатных формах то автор написал, что необходимо вставить обьект ActiveBarcode. А в самом документе вставляется общий реквизит для документов, как показано на рисунке EAN13, а в модуле формы в процедуре "ПриЗаписи()" прописывается эта строчка глСформироватьШтрихкодДокумента(Контекст, EAN13);
13. salexdv 17.12.09 08:44 Сейчас в теме
(11) В типовой конфигурации "Торговля и склад" есть обработка ПечатьЭтикетки, объект ActiveBarcode можно скопировать оттуда. И еще, в операционной системе необходимо зарегистрировать Barcode.ocx
14. hren 17.12.09 08:46 Сейчас в теме
В восьмерке в пункте "Вставить -- Объект" есть 3 переключателя, и можно втавить объект. А в семерке всего два переключателя и вставить объект нельзя. Можно вставить только лист Excel и прочую дребедень, а объектов ActiveX нет.
15. salexdv 17.12.09 09:27 Сейчас в теме
(14) Ctrl+C Ctrl+V см. сообщение 13
16. hren 17.12.09 09:28 Сейчас в теме
Чувак, это беспонтовый совет. Из восьмерки в семерку CTRL+C не прокатит. А если у меня вообще документа со штрихкодом нет, что делать? Откуда копировать?
17. salexdv 17.12.09 09:49 Сейчас в теме
(16) Да причем тут восьмерка. Русским языком написал

В типовой конфигурации "Торговля и склад" есть обработка ПечатьЭтикетки, объект ActiveBarcode можно скопировать оттуда
18. hren 17.12.09 09:50 Сейчас в теме
У меня нет типовой конфигурации "Торговля и склад". Штрихкод че там, родился чтоли? Как его вставить без копирования?
19. salexdv 17.12.09 09:57 Сейчас в теме
(18) Его там родили разработчики конфигурации. Роды происходили так: :) Excel -> Вставка -> Объект... -> ActiveBarcode
Объект выделяется Ctrl+С, 1С - Ctrl+V
20. hren 17.12.09 10:03 Сейчас в теме
Не работает. Я уже и "regsvr32.exe barcode.dll" делал. Захожу в Excel во вставку и вижу (на прикрепеленном файле).
Прикрепленные файлы:
21. salexdv 17.12.09 10:07 Сейчас в теме
22. Арчибальд 2708 17.12.09 10:07 Сейчас в теме
(20)
Я уже и "regsvr32.exe barcode.dll" делал.

Вообще-то компонента называется "barcode.ocx" :o
23. hren 17.12.09 10:09 Сейчас в теме
Ну да, описка. Но все равно сделал, и он мне показал окошко, что все зарегено успешно. В списке объектов них не появилось. Что еще может быть? Попробую перезагрузиться
24. artbear 1165 17.12.09 11:11 Сейчас в теме
Лично у меня в штрихкоде помимо данных документа хранится еще сумма документа. Ее удобно использовать для сверки данных документа - типа не нахимичил ли кто с распечаткой.
25. "Я" 04.02.10 16:29 Сейчас в теме
26. salexdv 04.02.10 16:43 Сейчас в теме
27. hren 05.02.10 03:33 Сейчас в теме
Ну что, расскажет кто-нибудь как без копирования в чистую базу на пустой лист вставить этот компонент баркода? Копирование из другой базы не канает, у меня ее нет.
28. Арчибальд 2708 05.02.10 07:33 Сейчас в теме
(27) Ну возьми у меня в профиле нумератор и скопируй из обработки
29. hren 05.02.10 07:46 Сейчас в теме
Товарищи, 4-ый раз говорю, что меня интересует не копипаст, а технология вставки в пустую базу. Просто может случиться такая ситуация, когда у меня под рукой не будет обработок, откуда можно скопировать баркод. Я хочу узнать как его вставить, имея только .ocx файл
30. "Я" 05.02.10 09:10 Сейчас в теме
(26) Sherlock_kmw писал:
вывод:
я всегда штрихкодировал доки на основании внутреннего представления объекта в базе. за основу бралась не моя идея, я лишь прикручивал ее к практике, если интересно могу вечером выложить кусок кода

31. advocatus2007 25.06.10 08:45 Сейчас в теме
:cry: В глобальный текст вставил, реквизит создал, в документе в модуле строку добавил, баркод скопипастил с этикетки, а вот что писать в его своийствах? кто поможет
32. salexdv 25.06.10 09:05 Сейчас в теме
33. advocatus2007 25.06.10 10:41 Сейчас в теме
Text <<?>>= EAN13
Переменная не определена (Text)
34. salexdv 25.06.10 11:43 Сейчас в теме
(33) <ИмяТвоейТаблицы>.ТекущийОбъект.Text = EAN13
35. advocatus2007 25.06.10 18:19 Сейчас в теме
36. MrDen 441 25.06.10 19:35 Сейчас в теме
(0) А хватает ли 12 цифр для унификации документа???
37. CheBurator 3403 25.06.10 19:46 Сейчас в теме
буквально месяц назад делал аналогичную задачу. в шк дока кодировался также контрагент, сумма, и еще что-то + рабочее место для проверки доков. Отвественный запускает рабочее место и щелкает доки перед сканером - правильные в одну кучку, неправильные в другую - связано с тем, что много переоформлений документов и идет рассогласование инфы в базе с имеющимися печатными копиями. того: клиент доволен...
38. salexdv 25.06.10 21:43 Сейчас в теме
39. CheBurator 3403 25.06.10 22:02 Сейчас в теме
(38) угумс... тут еще надо смотреть что если делать все совсем по уму - то линейный код может и не подойти - тупо по стандартам размеров не влезет.
40. salexdv 25.06.10 23:47 Сейчас в теме
41. advocatus2007 26.06.10 15:13 Сейчас в теме
42. advocatus2007 26.06.10 16:33 Сейчас в теме
Оставьте свое сообщение

См. также

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

Эмуляция работы сканера штрих-кода. Настройка подключения сканера штрих-кода в 1С 7.7 и 1С 8. 86

Статья Системный администратор Нет файла v7.7 v8 1cv8.cf 1cv7.md Россия Windows Бесплатно (free) Сканер штрих-кода

Если под рукой нет сканера штрих-кода, а нужно проверить, отладить, работу программы. Работу сканера штрих-кода можно эмулировать с помощью программ. Описан пример эмуляции: настройка используемых программ и настройка подключения сканера штрих-кода в 1С 7.7 и 1С 8.

21.05.2013    80066    1st    29       

Генератор серийных номеров и печать их в виде штрих-кода 31

Инструменты и обработки Программист Конфигурация (md, cf) v77::ОУ v77::БУ 1cv7.md Windows Производство готовой продукции (работ, услуг) Бесплатно (free) Сканер штрих-кода

Конфигурация была создана для облегчения создания серийных номеров, также их печати и наклеивания на устройства (продукцию) Описание внутри архива.

13.11.2007    23162    590    d.snissarenko    7       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Эмулятор сканера ШтрихКода 46

Инструменты и обработки no Компонента, плагин (dll, vbs,..) v77::ОУ 1cv7.md Россия Бесплатно (free) Сканер штрих-кода

Позволяет эмулировать события от сканера штрих кода. Нужно в основном, если учет ведется по штрихам и серийным номерам, а сканеры есть не на всех машинах. А бывает просто штрих-код не читается, вот тогда и нужна эта компонента.

19.01.2007    27776    1305    PaNick    24       

Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.127.х! Промо

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

24700 руб.

Сканер штрих-кода для работы по сети (терминальных сессиях) 27

Инструменты и обработки no Архив с данными v77::ОУ v77::БУ v77::Расчет 1С7:ТиС Россия Бесплатно (free) Сканер штрих-кода

Версия 1.0.0.1 (01.05.2006). Работает на Win98,Win2000,WinXP,Win2000 Server,Win2003 Server. Платформа: 1С: Предприятие 7.7 Конфигурации: (тестировалось на "1С:Торговля + Склад редакции 9.2", 939...941 релизах) Основные возможности: ------------------------------- Передача считанного штрих-кода с рабочей станции клиента в 1С, запущенной в терминальной сессии (на сервере терминалов).

24.07.2006    22881    442    slavapil    31       

Подключение сканера к 1С:Торговля и Склад 7.7 8

Статья no Нет файла v7.7 1С7:ТиС Россия Бесплатно (free) Сканер штрих-кода

Пошаговая инструкция подключения стандартного сканера.

18.07.2006    37086    support    8       

Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо

Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.

7500 рублей

Deposit - комплекс для учета на удаленном складе с использованием терминала сбора данных Psion Workabout MX со сканером штрихкод 1

Инструменты и обработки no Архив с данными v7.7 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free) Сканер штрих-кода Терминал сбора данных

Комплекс предназначен для удаленной работы на складе с использованием терминала сбора данных Psion Workabout MX со встроенным сканером штрихкода, а именно: выполнения сверки (создания) приходных, проверки наборки (создания) расходных документов, а так же инвентаризации, списания и перемещения.

24.05.2006    12300    45    nnn    3       

Поступление товаров от контрагентов (заполнение с помощью сканера штрих-кодов) 6

Инструменты и обработки no Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет Россия Бесплатно (free) Универсальные обработки Сканер штрих-кода

Универсальная обработка, предназначенная для фиксации поступлений товаров от контрагентов на определенную дату по штрих-коду.

17.05.2006    11889    117    ARTiFact    3       

Перенос данных УПП 1.3 => ERP 2 (ЕРП) / УТ 11 / КА 2.х (обработка переноса документов, остатков и справочников из "1С:Управление производственным предприятием, ред. 1.3" в ERP / УТ 11 / КА 2). Обновлен до УПП 1.3.127.х, КА 2.4.10.х и ERP 2.4.10.х! Промо

Обработка позволяет переносить из УПП 1.3 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления при выходе новых релизов конфигураций 1С.

29700 руб.

Формирование штрихкодов (EAN-13) 54

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Розничная торговля Учет ТМЦ Бесплатно (free) Сканер штрих-кода Ценники Универсальные функции

Один из наиболее простых алгоритмов формирования штрихкодов с использованием специализированных шрифтов (BearRock). Обработка автоматически вычисляет контрольную цифру по коду и показывает на экране образец сформированного штрихкода.

10.04.2006    30116    1163    imsoftware    13