trad писал(а) 19. Января 2011 :: 15:23:Интересно, что возвращает метод Template::ToArray()
Если массив байт, то все что до
var bufferTemplate1 = temp1.ToArray();
, можно попробовать написать в модуле 1с без скрипта.
Потом .ToArray() выполнить через OleExSup.
Далее массив переложить в BinaryData и отправить в таблицу mssql
Сначало я так и написал, но когда дошел до temp1.ToArray(); то тут все померло.
Пыталсся его и в BinaryData присвоить и в поток закинуть, и передать в JScript но 1С наотрез отказалась что ли бос ним делать. Причем выполняя в коде temp1.ToArray(); 1С проходила нормально, но как только пытался его присвоить хоть чему, вылетал.
Вариант на 1С который был №1
//======================================================================
Функция ScanImage(scanner)
image = factory.CreateImage();
Пока (image.expressQuality < 20) Цикл
Если (ПустоеЗначение(image)=0) Тогда
image.Dispose();
image = scanner.AcquireImage();
expressQuality = image.ExpressQuality();
КонецЕсли;
КонецЦикла;
Возврат image;
КонецФункции // ScanImage
//======================================================================
Процедура Сформировать()
factory = СоздатьОбъект("Biolink.Biometrics2.Factory");
license = factory.CreateLicense();
deviceList = factory.CreateDeviceList();
Если (deviceList.Size = 0) Тогда
Сообщить("Сканер не подключен","!!!");
Возврат;
КонецЕсли;
Сообщить("Сканер подключен.");
deviceDescriptor = deviceList.DeviceDescriptor(0);
scanner = factory.CreateScanner(deviceDescriptor);
Предупреждение("Поднесите палец");
image1 = ScanImage(scanner);
Предупреждение("Отсканировали");
//bmp1 = image1.Bitmap();
//bmp1.Save("c:\finger.bmp");
//
//Пикт.загрузить("c:\finger.bmp");
imageSet = factory.CreateImageSet();
imageSet.AddImage(image1, 1);
Сообщить("Creation template from scaned image");
imgPrc = factory.CreateImageProcessor();
templ = imgPrc.CreateTemplate(imageSet);
Бин = СоздатьОбъект("BinaryData");
Бин = templ.ToArray();
//ttt=Строка(templ.toArray());
//Size = templ.Size();
//templ.Save(templ.toArray(),0,size);
Бин.СохранитьВФайл("c:\bin1.sav",0);
//Сотр = СоздатьОбъект("Справочник.Сотрудник");
//Сотр.Новый();
//Сотр.ФИО = "Тест 1";
//Сотр.Темплате = Данные;
//Сотр.Записать();
license.Dispose();
factory=0
КонецПроцедуры // Сформировать
Если бы что-то подобное
Бин = СоздатьОбъект("BinaryData");
Бин.Получить(templ.ToArray());
отработать, то было бы гораздо интереснее.