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


По теме из базы знаний
- Конфигурация "Весовая ред. 3.0" для Платформы 1С 8.3
- Конфигурация-основа для мобильного приложения - сканер штрихкода (фото сканер и ТСД) + фото
- Сканирование документов и штрихкодов через мобильное приложение в информационную базу. Заменяем сканеры на смартфон
- Сканирование изображений, используя TWAIN компоненту WIA
- Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Проблема решена! Как:
Был скопирован ОбщийМакет.КомпонентаTWAIN из 1С:Документооборот 8 КОРП, редакция 1.1 (1.1.2.2) и вставлен в УТ 11.
Далее было переписано:
//КомпонентаTwain.НачатьСканирование(ПоказыватьДиалог, ВыбранноеУстройство, ФорматКартинки, Разрешение, Цветность, Поворот, РазмерБумаги);
Добавлены два пустых параметра ->
КомпонентаTwain.НачатьСканирование(ПоказыватьДиалогСканера, ВыбранноеУстройство, ФорматКартинки, Разрешение, Цветность, Поворот, РазмерБумаги, , );
Всё. Наслаждаемся работой сканера и внесением изображения в БД напрямую с него!!!
Прикрепляю рабочий twain (выгрузил его из Документооборота)!!!!!!
Был скопирован ОбщийМакет.КомпонентаTWAIN из 1С:Документооборот 8 КОРП, редакция 1.1 (1.1.2.2) и вставлен в УТ 11.
Далее было переписано:
//КомпонентаTwain.НачатьСканирование(ПоказыватьДиалог, ВыбранноеУстройство, ФорматКартинки, Разрешение, Цветность, Поворот, РазмерБумаги);
Добавлены два пустых параметра ->
КомпонентаTwain.НачатьСканирование(ПоказыватьДиалогСканера, ВыбранноеУстройство, ФорматКартинки, Разрешение, Цветность, Поворот, РазмерБумаги, , );
Всё. Наслаждаемся работой сканера и внесением изображения в БД напрямую с него!!!
Прикрепляю рабочий twain (выгрузил его из Документооборота)!!!!!!
Прикрепленные файлы:
Twain 82 .zip
kolp821 пишет:
Чтобы не создавать новую тему, спрошу тут.
Как можно к самописной конфигурации добавить возможность сканирование? с чего начать? Пробовал покопаться в типовой конфигурации (УТ) нечего не понял.
Чтобы не создавать новую тему, спрошу тут.
Как можно к самописной конфигурации добавить возможность сканирование? с чего начать? Пробовал покопаться в типовой конфигурации (УТ) нечего не понял.
Дописывал в конфу на базе УТ (Ювелирная торговля). Привожу как есть. Код не оптимален, писался давно.
Запускался по кнопке на форме номенклатуры для получения фото с документ-сканера (фото ювелирных изделий).
Имеет смысл вынести загрузку внешней компоненты в процедуру ПриНачалеРаботыСистемы(). В текущем варианте кода 1с жрет память при сканировании и через некоторое время падает. Переписать не успел.
//Обработчик кнопки получения фото на форме спр.Номенклатура
Процедура ПолучитьФотоНажатие(Элемент)
// Вставить содержимое обработчика.
Если Не РаботаСДиалогами.ЗаписатьНовыйОбъектВФорме(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
УниверсальныеМеханизмы.ОткрытьФормуИзображенияСкан(ЭтаФорма, ОсновноеИзображение, Ссылка);
КонецПроцедуры
//Общий модуль "УниверсальныеМеханизмы"
// Открывает форму основного изображения объекта (если картинки нет, получаем со сканера)
//
// Параметры
// ФормаВладелец – Форма – определяет форму владельца открываемой формы
// ОсновноеИзображение – СправочникСсылка.ХранилищеДополнительнойИнформации – содержит
// ссылку на основное изображение объеата
//
Процедура ОткрытьФормуИзображенияСкан(ФормаВладелец, ОсновноеИзображение, ОбъектВладелец) Экспорт
ИмяФайла="C:\temp\DelFoto.jpg";
ВыбФайл=Новый Файл(ИмяФайла);
Сканировать=Истина;
Если НЕ ((ОсновноеИзображение = Неопределено) ИЛИ ОсновноеИзображение.Пустая()) Тогда
Если Вопрос("Изображение уже существует. Заменить новым?",РежимДиалогаВопрос.ДаНет,5,КодВозвратаДиалога.Нет)=КодВозвратаДиалога.Да
Тогда
Сканировать=Истина;
Иначе
Сканировать=Ложь;
КонецЕсли;
КонецЕсли;
Если Сканировать тогда
//Имя файла куда сканируем
//Проверим не остался ли он на винте от предыдущего сканирования
Если ВыбФайл.Существует() тогда
Попытка
//Удалим если остался
УдалитьФайлы(ВыбФайл.Путь,ВыбФайл.Имя);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
//Попробуем получить изображение со сканера
Попытка
ЗагрузитьВнешнююКомпоненту("sp.dll");
Сообщить("Компонента для сканера загружена");
СканВК=Новый("Addin.ScanPrint");
СканВК.Сканировать(ИмяФайла,1,70);
Исключение
Сообщить("Компонента для сканера не загружена");
Возврат;
КонецПопытки;
//Если файл создался то начнем его пихать в базу
Если ВыбФайл.Существует() тогда
ВыбранноеИзображение = Новый Картинка(ВыбФайл.ПолноеИмя, Ложь);
Иначе
Сообщить("Сканирование прервано или отменено.");
Возврат;
КонецЕсли;
НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
НовыйОбъект.Объект = ОбъектВладелец;
//
НовыйОбъект.Записать();
//
ФормаИзображения = НовыйОбъект.ПолучитьФорму("ФормаИзображения");
Иначе
ФормаИзображения = ОсновноеИзображение.ПолучитьФорму("ФормаИзображения");
КонецЕсли;
ФормаИзображения.ВладелецФормы = ФормаВладелец;
ФормаИзображения.РежимВыбора = Истина;
ФормаИзображения.ЗакрыватьПриВыборе = Ложь;
ФормаИзображения.Открыть();
//Проверим не остался ли он на винте от предыдущего сканирования
Если ВыбФайл.Существует() тогда
Попытка
//Удалим если остался
УдалитьФайлы(ВыбФайл.Путь,ВыбФайл.Имя);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецПроцедуры // ОткрытьФормуИзображения()
ПоказатьСама компонента с описаниями:
Добрый день! у меня такая задачка: нужно реализовать сканирование из 1с 8.2 без всяких лишних настроек, чтобы просто люди могли нажать на кнопку сканировать и сканер сканировал)))сканирование происходит из формы документа)))
Помогите плиз реализовать такое)))
Я не особо знаком с 1с программирование, поэтому если не трудно опишите что где описать)))
Заранее спасибо!
Помогите плиз реализовать такое)))
Я не особо знаком с 1с программирование, поэтому если не трудно опишите что где описать)))
Заранее спасибо!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот