Данный класс предназначен для того, чтобы использовать данную библиотеку под 1С 7.7
Класс имеет пока только 2 метода (их должно быть достаточно для предназначения класса):
ЗакодироватьВФайл(ЧтоКодировать, спПараметров) — представляет кодируемые данные в виде файла с изображением штрих-кода
ПерекодировкаВ_BMP(Файл, УдалятьИсходныйФайл = 1) — для перекодирования файла изображения в формат BMP — понятный объекту 1С «Картинка».
Во вложении запаковано все, что требуется — все библиотеки dll, класс и обработка для тестирования функционала.
Есть один минус у библиотеки zint.dll — она не предоставляет методов для проверки кодируемых данных ДО начала процесса кодирования. В результате этого часто возникает ситуация, когда введенные некорректные данные для выбранного стандарта штрих-кода являются некорректными, и обработка вызывает «падение» 1С.
Поэтому проверка на корректность кодируемых данных ложится на плечи программиста, который использует данный класс.
Необходимость в создании данного класса возникла из-за невозможности получать штрих-коды по стандарту «фармакод» при помощи других доступных в интернете инструментов. При помощи данного класса я решил свои проблемы.
Пользуйтесь на здоровье!
ЗЫ: для работы класса нужна библиотека dynwrapx.dll, которая должна быть зарегистрирована в системе (ее месторасположение не важно)!
Папка zint с файлами: zint.dll, zlib1.dll, libpng15.dll, zint.sha1 должна находиться в папке БД, папке программы 1С либо в папке класса.
Также требуется служебная библиотека msvcrt.dll (она должны находиться в папке c:windowssystem32, если у Вас Windows установлен в папку c:windows). Тестировал работоспособность только под Windows XP.
Все вышеуказанные библиотеки я включил в файл для скачивания.
Скажите как дела с русскими буквами?
Нужны кодировки win-1251 , utf-8
Автор напиши пожалуйста как ты объявляешь класс ШтрихКод в DefCls. Я сделал так:
класс ШтрихКод=КлассШтрихКод@MD
{
Строка ЗакодироватьВФайл(ЧтоКодировать, спПараметров);
Строка ПерекодировкаВ_BMP(Файл, Число УдалятьИсходныйФайл = 1);
};
При запуске теста у меня выходит ошибка:
ШтрихКод::ЗарегистрироватьФункцииБиблиотек(Строка DllName=F:!editzazintzint.dll) : Неизвестная ошибка
Враппер.Register(DllName, «ZBarcode_Create» , «r=p»);
{КлассШтрихКод@MD(20) }
в чем может быть проблема?
Я давно не работаю с 7.7 и у меня не осталось этих файлов.
Помнится, я объявлял все классы без указания методов.
И «@MD» — это для классов, включенных в метаданные?
А по сути… Судя из текста модуля, который привел к ошибке, проблема возникает при регистрации враппером функции из dll (zint).
Скорее всего неправильный путь или что-то с правами.
Этот класс тестировался еще на Windows XP, когда не было заморочек с правами, как у современных ОС.
последние версии Формекса уже содержат в себе этот zint и позволяют формировать ШК с использованием формекса
(3) путь правильный, пробовал указать ошибочный путь — появляется другая ошибка
проблема именно с zint.dll из вашего архива, т.к. пробовал выполнить код по найденному примеру
Враппер = СоздатьОбъект(«DynamicWrapperX»);
Враппер.Register(«user32», «GetWindow», «i=hu», «r=h»);
все работает.
windows 2003 server, я работаю под админом.
(4)
http://www.forum.mista.ru/topic.php?id=788786&page=1) от Альфа
нашел упоминание про процедуру НарисоватьШтрихкод() в formex (
но не нашел информацию о ней в последней документации, скаченной с сайта dorex.pro
Вот пример от Альфа:https://yadi.sk/d/GIhFnh7w38aDvG
(7)
я уже разобрался по ссылки с мисты: там была эта ссылка + от Альфа был выложен архив с formex с обновленной документацией в als (может кому понадобится, прикрепил доку к данному сообщению).
Вообще конечно странно что Альф на dorex.pro не выкладывает обновление документации по formex
А формех для 8-ки можно использовать? Будет печатать штрихкоды?
(9) нет, Formex только для 7.7