База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать произвольный штрихкод Code39 в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 дня, 1 час назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
12 мая 2026 в 13:15 #37092
нужен код генерации произвольного штрихкода code39
-
12 мая 2026 в 13:15 #37093
Для генерации произвольного штрихкода формата Code39 в 1С можно использовать несколько подходов.
Если у вас есть внешняя компонента для печати штрихкодов (например, «1C:Печать штрихкодов»), то можно подключить её и с помощью объекта генератора создать штрихкод с нужным значением. Такой способ удобен и даёт готовое изображение штрихкода.
Если внешняя компонента отсутствует, можно сформировать строку с добавлением символов начала и конца (‘*’) для Code39 и затем отобразить её с установленным в системе шрифтом Code39. В этом случае важно, чтобы шрифт Code39 был установлен на компьютере.
Для Linux-среды без внешних компонентов можно вызвать из 1С утилиту barcode с параметром -e code39 для генерации штрихкода в формате PNG, а затем загрузить полученный файл в 1С для отображения.
Ниже приведены примеры кода для каждого из этих вариантов.
Если нужно, уточните, какой способ вам подходит, и я помогу с деталями.
1С (Код)123456789101112131415161718192021222324252627// Подключаем внешнюю компоненту (укажите правильное имя компоненты)РезультатПодключения = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "BarcodeSymbolicName", , ТипПодключенияВнешнейКомпоненты.Изолированно);Если НЕ РезультатПодключения ТогдаСообщить("Не удалось подключить компоненту печати штрихкодов");Возврат;КонецЕсли;// Создаем объект генератораГенератор = Новый("AddIn.BarcodeSymbolicName.Barcode");// Настраиваем генератор для Code39Генератор.ТипКода = 3; // Code39Генератор.АвтоТип = Ложь;Генератор.ЗначениеКода = "123ABC789"; // Ваш произвольный кодГенератор.ОтображатьТекст = Истина;Генератор.Ширина = 400;Генератор.Высота = 130;Генератор.ПрозрачныйФон = Истина;// Генерируем штрихкодШтрихкодДанные = Генератор.ПолучитьШтрихкод();// Создаем картинку из двоичных данныхКартинкаШтрихкода = Новый Картинка(ШтрихкодДанные);// Отобразить картинку (например, в форме)ПоказатьЗначение(, КартинкаШтрихкода);1С (Код)12345678Функция СформироватьCode39(СтрокаКода)// В Code39 стартовый и стоповый символ - '*'Возврат "*" + СтрокаКода + "*";КонецФункции// Пример использованияКодДляШтрихКода = "123ABC789";Сообщить(СформироватьCode39(КодДляШтрихКода));1С (Код)1234567891011Функция СгенерироватьCode39Linux(Штрихкод)Если ПустаяСтрока(Штрихкод) ТогдаПредупреждение("Не указан штрихкод!", Константы.ОчередьОшибокМаксимум);Возврат "";КонецЕсли;АдресВременнойПапки = ВременныеФайлы.ПутьВременнойПапки();Файл = АдресВременнойПапки + "" + Штрихкод;Команда = "barcode -p letter -g 200x100 -u mm -b " + Штрихкод + " -e code39 -o " + Файл + ".ps | convert -density 150 -trim " + Файл + ".ps " + Файл + ".png";ВнешниеПрограммы.ВыполнитьКоманду(Команда);Возврат Файл + ".png";КонецФункции
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.