Параметры:
string(строковое поле)encoding — (" возможные значения : ASCII,UTF8,Unicode") поле указывает тип кодировки , если не заданное, то принимается кодировка текущей рабочей станции.
int (Число) MarginSize — параметр отступа от края; по умолчанию 10
int (Число) ModuleSize — параметр общего размера картинки; по умолчанию 5
string(строковое поле) Scheme — варианты DataMatrix. Возможные значение(DmtxSchemeAscii
DmtxSchemeAsciiGS1
DmtxSchemeAutoBest
DmtxSchemeAutoFast
DmtxSchemeBase256
DmtxSchemeC40
DmtxSchemeEdifact
DmtxSchemeText
DmtxSchemeX12) Значение по умолчанию DmtxSchemeAscii;
string(строковое поле) SizeIdx — еще 1 поле отвечающие за качество и маштаб рисунка ( по умолчанию SquareAuto) возможные значения
(104:104
10:10
120:120
12:12
12:26
12:36
132:132
144:144
14:14
16:16
16:48
18:18
20:20
22:22
24:24
26:26
32:32
36:36
40:40
44:44
48:48
52:52
64:64
72:72
80:80
88:88
8:18
8:32
96:96
RectAuto
ShapeAuto
SquareAuto)
string(строковое поле) DataCode — поле штрихкода( по умолчанию значение Test );
bool (Истина;ложь) SaveToFile — поле отвечающе за тип возвращаемых данных ; По умолчанию ложь;
если истина возвращает место располежения файла Jpeg с результатом ( имя файла формироуется динамически);
если ложь возвращает строку в кодировке base64 в 1с ее можно приобразовать к двоичным данным <<ДвоичныеДанныеКартинки=Base64Значение(Данные);>>.
Методы:
CreateDataMatrixFunction(); — генерирует DataMatrix согласно заданным параметрам.Имя для ком соединения -"CreateDataMatrix.MainDataMatrixCreate";
код на 1с
Гуиды Библиотеки :
2d944d5b-7018-4845-945c-e7d3ce69152a — интерфейс;
720ca81c-9d85-4692-99e4-bb2a15e89ffd — класс реализиующий функциональность интерфейса;
Регистрация :
вместо regsvr32 ( это для ++ библиотек) — C:WINDOWSMicrosoft.NETFrameworkv2.0.50727RegAsm.exe "Путь к файлу"
пример : C:WINDOWSMicrosoft.NETFrameworkv2.0.50727RegAsm.exe "C:UsersuserDocumentscomponent1cCreateDataMatrix.dll"
пример 2 : C:WINDOWSMicrosoft.NETFrameworkv2.0.50727RegAsm.exe "C:UsersuserDocumentscomponent1cCreateDataMatrix.dll" /codebase
Дорегистрация для 64 битного сервера:
1. создаем раздел с именем "{720CA81C-9D85-4692-99E4-BB2A15E89FFD}" в ветке HKEY_CLASSES_ROOTwow6432nodeappid. Для этого раздела создаем строковое свойство "DllSurrogate" с пустым значением.
2. Находим HKEY_CLASSES_ROOTwow6432nodeCLSID{720CA81C-9D85-4692-99E4-BB2A15E89FFD} и добавляем строковое свойство "AppID" со значением "{720CA81C-9D85-4692-99E4-BB2A15E89FFD}".
где
{720CA81C-9D85-4692-99E4-BB2A15E89FFD} гуид приложения
Как пользоваться:
копируем папку lib из архива в любое место, желательно, чтобы путь к ней не содержал кириллицу.
Регистрируем CreateDataMatrix.dll по аналогии указанной выше.
Пример с папкой lib: C:WINDOWSMicrosoft.NETFrameworkv2.0.50727RegAsm.exe "C:UsersuserDocumentslibCreateDataMatrix.dll" /codebase >>>> это пишется в командной строке от имени администратора.
После этого можно работать как с обычным com объектом в 1С.
Формат картинки всегда Jpeg.
Чувствительности к регистру в значениях параметров во время тестирования замечено не было.
Примеры из 1С:
КомОбъект = новый COMОбъект("CreateDataMatrix.MainDataMatrixCreate");
КомОбъект.encoding = "UTF8";
КомОбъект.DataCode =" ывывывФФФ22333 ";
Данные=КомОбъект.CreateDataMatrixFunction();//при таком использовании в переменной Данные храниться строка Base64 с закодированной //в ней картинкой .
ДвоичныеДанныеКартинки=Base64Значение(Данные);/// преобразуем в двоичные данные
ДвоичныеДанныеКартинки.Записать("C:UsersUserDesktop1.Jpeg");// здесь я записываю двоичные данные в файл , но никто вам не мешает //отправить их в макет и т.д аналогично тому как работает типовой механизм в 1с на УФ в новых конфигурациях .
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
КомОбъект = новый COMОбъект("CreateDataMatrix.MainDataMatrixCreate");
КомОбъект.encoding = "UTF8";
КомОбъект.DataCode =" ывывывФФФ22333 ";
КомОбъект.SaveToFile = Истина ;
Данные=КомОбъект.CreateDataMatrixFunction();
//Данные - Содержит путь до файла ;
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
КомОбъект = новый COMОбъект("CreateDataMatrix.MainDataMatrixCreate");
КомОбъект.encoding = "UTF8";
КомОбъект.DataCode =" ывывывФФФ22333 ";
КомОбъект.ModuleSize = 20 ; //увеличивает размер картинки .
КомОбъект.SizeIdx= "88:88"; /// т.к картинка размером 20 велика для такого расширения - как итог произошло дублирование 1 квадрата несколько раз на картинке ( см пример в изображениях).
Данные=КомОбъект.CreateDataMatrixFunction(); // в переменной Данные хранится строка Base64
Проверено на КА 1.1. Толстый клиент , Сервер (64 — бит 1с предприятие ). (PS Скорее всего работает на всех типах клиента ОС Windows);
10.08.19 Добавлен MSI для авто установки . Проверенно на 2 ух серверах, до регистрация для 64 битных серверов происходит автоматически.
Для 7.7 нет работающего примера?
(2)
на 100% не уверен, с 7-кой уже очень давно не работал.
КомОбъект =СоздатьОбъект(«CreateDataMatrix.MainDataMatrixCreate»);
КомОбъект.encoding = «UTF8»;
КомОбъект.DataCode =» ывывывФФФ22333 «;
КомОбъект.SaveToFile = Истина ;
Данные=КомОбъект.CreateDataMatrixFunction();
в данном примере данные сохраняются в файл т.к на сколько помню, хотя могу и ошибаться 7.7 не поддерживает двоичные данные.
однако ни кто вам не мешает использовать какую либо вспомогательную dll для преобразования строки base64 в файл с картинкой.
Спасибо. Надо будет попробовать