gifts2017

Генерация изображения штрих-кода в 1С при работе в Linux

Опубликовал Сергей Рудюк (rudjuk) в раздел Программирование - Практика программирования

Написали маленькую функцию, которая генерирует штрих-код в Linux и получает его в 1С.

 

Написали маленькую функцию, которая генерирует штрих-код в Linux и получает его в 1С.

Функция ШтрихКодПоказать(Штрихкод, Стандарт="128")
	
	Если Штрихкод="" Тогда // Если не указали штрих-код, тогда выводим в CODE 128
		Предупреждение("Не указан штрих-код!",5);
	Иначе	
		 Файл="/tmp/"+Штрихкод;
         ЗапуститьПриложение("barcode -p letter -g 200x100 -u mm -b "+Штрихкод+" -e 128 -o "+Файл+".ps | convert -density 150 -trim "+Файл+".ps "+Файл+".png");
		 Файл=Файл+".png";
	КонецЕсли;	
	 
	Возврат Файл;
	
КонецФункции


Процедура ОбработкаШтрихкодаНажатие(Элемент)
	
	S=ШтрихКодПоказать("58765", "ean13");
	
	Предупреждение("На всякий случай ждем 1 секунду", 1);
	
	ЗапуститьПриложение(S);
	
КонецПроцедуры

Параметры функции Штрих-код:

Штрих-код - буквенно-цифровое значение штрих-кода.
Стандарт - стандарт штрих-кода. Предусмотрены такие значения данного параметра, отвечающие за соответствующий стандарт:

        "ean", "ean13", "ean-13", "ean8", "ean-8"
        "upc", "upc-a", "upc-e"
        "isbn"
        "39", "code39"
        "128c", "code128c"
        "128b", "code128b"
        "128", "code128"
        "128raw"
        "i25", "interleaved 2 of 5"
        "cbr", "codabar"
        "msi"
        "pls", "plessey"
        "code93", "93"

Автор: Рудюк С . А. http://corp2.net

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Антонио (Fragster) 23.05.16 16:28
https://sourceforge.net/projects/zint/ поддерживает больше типов ШК, умеет генерить сразу в нужном формате и более кроссплатформенный
2. Евгений Сосна (pumbaE) 23.05.16 17:14
3. q_i 24.05.16 14:05
Главное не напороться на шутника, который в поле штрихкод сумеет ввести что-нибудь вроде
;rm -rf /;
amoarok; 1cmax; +2 Ответить 2
4. Антонио (Fragster) 24.05.16 17:30
5. Sergey Andreev (starik-2005) 24.05.16 18:09
Нативная компонента для линуха уже лет пять живет во всех современных 1С-ных конфах, и меня немало удивляют подобные публикации, размещенные в 2016-м году. В чем смысл-то хоть?
6. Сергей Рудюк (rudjuk) 25.05.16 08:48
(5) starik-2005, Никто не мешает написать альтернативное решение в комментах или в отдельной статье.
7. Сергей Рудюк (rudjuk) 25.05.16 08:50
(3) q_i, Да, интересная шутка бы получилась :). Теоретически, нужно предусматривать защиту от таких шутников. Но, не факт, что такая фраза запишется в штрих-код. Это же не QR-код, куда пишешь, что захочешь...
8. Maximilian Alekseevich (1cmax) 25.05.16 09:07
(7) rudjuk, здесь вопрос в том, чтобы при генерации штрихкода винт почистить )))
9. Сергей Рудюк (rudjuk) 25.05.16 13:04
(8) 1cmax, Это то понятно. Нужно теоретически предусматривать защиту от таких вещей. На практике, врядли вам удастся сгенерировать штрих-код просто словом. Хотя. возможно в некоторых из стандартов...
10. Sergey Andreev (starik-2005) 25.05.16 16:04
(6) rudjuk, да вроде как на ИТС уже понаписано. Чем стандартный вариант не устраивает?
11. Сергей Рудюк (rudjuk) 25.05.16 19:54
(10) starik-2005, Ну я видел Windows-решение. Когда писал данную статью в прошлом году, возможно, что и не увидел решение под Linux.
12. Sergey Andreev (starik-2005) 25.05.16 21:44
(11) rudjuk, общий макет "КомпонентаПечатиШтрихКода":
<?xml version="1.0" encoding="UTF-8" ?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle">
        <component os="Windows" path="1CBarCodWin32_8_2_3_1.dll" type="native" arch="i386" />
        <component os="Windows" path="1CBarCodWin64_8_2_3_1.dll" type="native" arch="x86_64" />
        <component os="Linux" path="lib1CBarCodLin32_8_2_3_1.so" type="native" arch="i386" />
        <component os="Linux" path="lib1CBarCodLin64_8_2_3_1.so" type="native" arch="x86_64" />
</bundle>
...Показать Скрыть


Для QR-кодов вот:
<?xml version="1.0" encoding="UTF-8"?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle">
	<component os="Windows" path="1CQRCodeWin32_008.dll" type="native" arch="i386"/>
	<component os="Windows" path="1CQRCodeWin64_008.dll" type="native" arch="x86_64"/>
	<component os="Linux" path="lib1CQRCodeLin32_008.so" type="native" arch="i386"/>
	<component os="Linux" path="lib1CQRCodeLin64_008.so" type="native" arch="x86_64"/>
</bundle>
...Показать Скрыть


Поглядите общие макеты конфигураций, основанных на БСП - будете удивлены.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа