Установка сканера изображения

1. yurowski 33 28.03.11 12:39 Сейчас в теме
Всем привет.
Столкнулся с такой проблемой. Никак не хочет устанавливаться компонента twain для сканера.
УТ 11 есть возможность сканирования документов с последующим добавлением в БД, но эта функция не работает.
Ну я пошел по коду и увидел, что код ссылается на метаданные, которые вообще не созданы. В частности это ОбщийМакет.КомпонентаTWAIN , который по идее должен хранить zip акрих с компонентой для сканирования.
Вот код процедуры которая работает с тем, чего нет в конфигурации:

/ Устанавливает компоненту сканирования
Процедура УстановитьКомпоненту() Экспорт

Если КомпонентаTwain = Неопределено Тогда
КодВозврата = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTWAIN", "twain", ТипВнешнейКомпоненты.Native);
Если КодВозврата Тогда
Состояние(НСтр("ru = 'Компонента сканирования уже установлена!'"));
Иначе
УстановитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTWAIN");
КодВозврата = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTWAIN", "twain", ТипВнешнейКомпоненты.Native);
Если КодВозврата Тогда
РаботаСФайлами.ОчиститьНастройкиФормНовогоФайла();
ОбновитьПовторноИспользуемыеЗначения();
Оповестить("КомпонентаСканированияУстановлена");
КонецЕсли;
КонецЕсли;
КомпонентаTwain = Новый("AddIn.twain.AddInNativeExtension");
Иначе
Состояние(НСтр("ru = 'Компонента сканирования уже установлена!'"));
КонецЕсли;

КонецПроцедуры

Ну я не расстроился. Почитал справку.... и создал этот общий макет двоичных данных. загрузил в неё компоненту twain (предварительно поместив её в zip архив с тем же именем) и всё равно ничего не работает. Пробовал прописывать всё руками, обходя макет и .... четно. Что дальше делать не знаю.

Может чего посоветуете???
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. yurowski 33 28.03.11 16:43 Сейчас в теме
Проблема решена! Как:

Был скопирован ОбщийМакет.КомпонентаTWAIN из 1С:Документооборот 8 КОРП, редакция 1.1 (1.1.2.2) и вставлен в УТ 11.
Далее было переписано:

//КомпонентаTwain.НачатьСканирование(ПоказыватьДиалог, ВыбранноеУстройство, ФорматКартинки, Разрешение, Цветность, Поворот, РазмерБумаги);

Добавлены два пустых параметра ->
КомпонентаTwain.НачатьСканирование(ПоказыватьДиалогСканера, ВыбранноеУстройство, ФорматКартинки, Разрешение, Цветность, Поворот, РазмерБумаги, , );

Всё. Наслаждаемся работой сканера и внесением изображения в БД напрямую с него!!!

Прикрепляю рабочий twain (выгрузил его из Документооборота)!!!!!!
Прикрепленные файлы:
Twain 82 .zip
ja-maik-a; KAV2; Gang031; Gю®z@; a-f-k; +5 Ответить
3. kolp821 20.10.11 10:27 Сейчас в теме
Чтобы не создавать новую тему, спрошу тут.
Как можно к самописной конфигурации добавить возможность сканирование? с чего начать? Пробовал покопаться в типовой конфигурации (УТ) нечего не понял.
4. SuhoffGV 20.10.11 13:55 Сейчас в теме
kolp821 пишет:

Чтобы не создавать новую тему, спрошу тут.
Как можно к самописной конфигурации добавить возможность сканирование? с чего начать? Пробовал покопаться в типовой конфигурации (УТ) нечего не понял.


Дописывал в конфу на базе УТ (Ювелирная торговля). Привожу как есть. Код не оптимален, писался давно.
Запускался по кнопке на форме номенклатуры для получения фото с документ-сканера (фото ювелирных изделий).
Имеет смысл вынести загрузку внешней компоненты в процедуру ПриНачалеРаботыСистемы(). В текущем варианте кода 1с жрет память при сканировании и через некоторое время падает. Переписать не успел.

//Обработчик кнопки получения фото на форме спр.Номенклатура
Процедура ПолучитьФотоНажатие(Элемент)
	// Вставить содержимое обработчика.
	Если Не РаботаСДиалогами.ЗаписатьНовыйОбъектВФорме(ЭтаФорма) Тогда
		Возврат;
	КонецЕсли;
	УниверсальныеМеханизмы.ОткрытьФормуИзображенияСкан(ЭтаФорма, ОсновноеИзображение, Ссылка);
КонецПроцедуры


//Общий модуль "УниверсальныеМеханизмы"
// Открывает форму основного изображения объекта (если картинки нет, получаем со сканера)
//
// Параметры
//  ФормаВладелец – Форма – определяет форму владельца открываемой формы
//  ОсновноеИзображение – СправочникСсылка.ХранилищеДополнительнойИнформации – содержит 
//                 ссылку на основное изображение объеата
//
Процедура ОткрытьФормуИзображенияСкан(ФормаВладелец, ОсновноеИзображение, ОбъектВладелец) Экспорт
	
	ИмяФайла="C:\temp\DelFoto.jpg";
	ВыбФайл=Новый Файл(ИмяФайла);
	
	Сканировать=Истина;
	Если НЕ ((ОсновноеИзображение = Неопределено) ИЛИ ОсновноеИзображение.Пустая()) Тогда
		Если Вопрос("Изображение уже существует. Заменить новым?",РежимДиалогаВопрос.ДаНет,5,КодВозвратаДиалога.Нет)=КодВозвратаДиалога.Да	
		Тогда
			Сканировать=Истина;
		Иначе 
		    Сканировать=Ложь; 
		КонецЕсли;
	КонецЕсли; 
	
	Если Сканировать тогда			
    	//Имя файла куда сканируем
		//Проверим не остался ли он на винте от предыдущего сканирования
		Если ВыбФайл.Существует() тогда
			Попытка
				//Удалим если остался
				УдалитьФайлы(ВыбФайл.Путь,ВыбФайл.Имя); 
			Исключение
    			Сообщить(ОписаниеОшибки());
			КонецПопытки;
		КонецЕсли;
    	//Попробуем получить изображение со сканера
		Попытка
			ЗагрузитьВнешнююКомпоненту("sp.dll");
    		Сообщить("Компонента для сканера загружена");
			СканВК=Новый("Addin.ScanPrint");
						СканВК.Сканировать(ИмяФайла,1,70);
		Исключение
    		Сообщить("Компонента для сканера не загружена");
			Возврат;
		КонецПопытки;
		
		//Если файл создался то начнем его пихать в базу
		Если ВыбФайл.Существует() тогда
				ВыбранноеИзображение = Новый Картинка(ВыбФайл.ПолноеИмя, Ложь);
		Иначе
			Сообщить("Сканирование прервано или отменено.");
			Возврат;
		КонецЕсли;
		НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
		НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
		НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
		НовыйОбъект.Объект = ОбъектВладелец;
		//
		НовыйОбъект.Записать();
		//
		ФормаИзображения = НовыйОбъект.ПолучитьФорму("ФормаИзображения");
		
	Иначе 
		ФормаИзображения = ОсновноеИзображение.ПолучитьФорму("ФормаИзображения");		
	КонецЕсли;
	
	ФормаИзображения.ВладелецФормы = ФормаВладелец;
	ФормаИзображения.РежимВыбора = Истина;
	ФормаИзображения.ЗакрыватьПриВыборе = Ложь;
	ФормаИзображения.Открыть();
	
	//Проверим не остался ли он на винте от предыдущего сканирования
	Если ВыбФайл.Существует() тогда
		Попытка
			//Удалим если остался
			УдалитьФайлы(ВыбФайл.Путь,ВыбФайл.Имя); 
		Исключение
   			Сообщить(ОписаниеОшибки());
		КонецПопытки;
	КонецЕсли;
КонецПроцедуры // ОткрытьФормуИзображения()
Показать


Сама компонента с описаниями:
scanprint
5. Nick5k 26.10.11 20:54 Сейчас в теме
6. Gю®z@ 12.12.11 14:13 Сейчас в теме
Добрый день! у меня такая задачка: нужно реализовать сканирование из 1с 8.2 без всяких лишних настроек, чтобы просто люди могли нажать на кнопку сканировать и сканер сканировал)))сканирование происходит из формы документа)))
Помогите плиз реализовать такое)))
Я не особо знаком с 1с программирование, поэтому если не трудно опишите что где описать)))
Заранее спасибо!
8. SuhoffGV 17.01.12 15:05 Сейчас в теме
Ты хочешь готовое решение?
(6) Gю®z@, начни хотя бы с (4).

Ну и познакомься с 1с программированием :)
7. Gю®z@ 13.01.12 13:42 Сейчас в теме
всем привет! я так понимаю что мне ни кто не может помочь.... жаль.....
9. alljoke 18.01.12 10:11 Сейчас в теме
На кнопку сканировать из 1С или просто на сканере? Если второе, то замучаетесь.
SuhoffGV; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот