DataMatrix для 1С


Компонента для создания DataMatrix (в папке при скачивании находятся 6 файлов. 4 из которых необходимы для работы и должны располагаться на пк в 1 папке, 1 — картинка с примером, 1- текстовый документ с инструкцией).

Параметры:
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 битных серверов происходит автоматически.

3 Comments

  1. Снусмумрик

    Для 7.7 нет работающего примера?

    Reply
  2. evgeny43

    (2)

    на 100% не уверен, с 7-кой уже очень давно не работал.

    КомОбъект =СоздатьОбъект(«CreateDataMatrix.MainDataMatrixCreate»);

    КомОбъект.encoding = «UTF8»;

    КомОбъект.DataCode =» ывывывФФФ22333 «;

    КомОбъект.SaveToFile = Истина ;

    Данные=КомОбъект.CreateDataMatrixFunction();

    в данном примере данные сохраняются в файл т.к на сколько помню, хотя могу и ошибаться 7.7 не поддерживает двоичные данные.

    однако ни кто вам не мешает использовать какую либо вспомогательную dll для преобразования строки base64 в файл с картинкой.

    Reply
  3. Снусмумрик

    Спасибо. Надо будет попробовать

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *