Сканирование, хранение и печать сертификатов продукции [Обновлено 17.01.2011]

Опубликовал Александр Медведев (anig99) в раздел Печать - Печатные формы документов

Сканирование с использованием WIA, хранение в справочнике Хранилище дополнительной информации и печать из документа реализации. [Обновлено] Добавил загрузку изображения из файла.

I. Сканирование.

 Сканирование происходит с помощью WIA (Windows Image Acquisition). В Windows 7 соответствующие dll уже входят в комплект, а для XP нужно качать и регистрировать (с сайта Microsoft, где в архиве есть инструкция). Код для сканирования из 1с следующий:


    Image = Новый COMОбъект("WIA.ImageFile"); //создаем объект "Изображения" в WIA для дальнейшей работы с ним
   
DevManager = Новый COMОбъект("WIA.CommonDialog"); //а это диалог сканирования
   
Image = DevManager.ShowAcquireImage(); //записываем сканированное изображение
   
IP = Новый COMОбъект("WIA.ImageProcess"); //создаем фильтр для сохранения изображения
   
IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
   
IP1 = IP.Filters(1);
    Для
К = 1 По IP1.Properties.Count Цикл
        Если
IP1.Properties(К).Name = "FormatID" Тогда
           
IP1.Properties(К).Value = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}"; //конвертируем в PNG
           
Прервать;
        КонецЕсли;
    КонецЦикла;

   
Image = IP.Apply(Image); //применяем фильтр на изображение

 

После этого можно сохранить объект Image на диск и прочитать её уже средствами 1с:


    УдалитьФайлы(ИмяФайла); //удалим старый файл
   
Image.SaveFile(ИмяФайла); //сохраним на жесткий диск объект WIA
   
ЭлементыФормы.СертификатИзображение.Картинка = Новый Картинка(ИмяФайла); // Читаем картинку с жесткого диска

Полученное изображение можно повертеть с помощью того же WIA:


    Если Image = Неопределено Тогда
        Возврат;
    КонецЕсли;

   
IP = Новый COMОбъект("WIA.ImageProcess"); //создаем объект WIA для редактирования изображения
   
IP.Filters.Add(IP.FilterInfos("RotateFlip").FilterID); //создаем WIA-фильтр для поворота
   
IP1 = IP.Filters(1);
    Для
К = 1 По IP1.Properties.Count Цикл
        Если
IP1.Properties(К).Name = "RotationAngle" Тогда
           
IP1.Properties(К).Value = Градусов//вертеть можно на 90,180 и 270 грудосов
            Прервать;
        КонецЕсли;
    КонецЦикла;

   
Image = IP.Apply(Image); //применяем фильтр на изображение

 

II. Сохранение

 Наиболее естественным местом хранения изображения сертификата - это справочник Хранилище дополнительной информации с привязкой к номенклатуре. В зависимости от разных обстоятельств один и тот же сертификат может быть привязан к различным позициям номенклатуры,  к различными характеристиками и сериями одной номенклатуры. Хранилище дополнительных данных не позволяет устанавливать соответствие между списком номенклатуры/характеристиками/сериями. Поэтому алгоритм хранения информации выглядит следующим образом:

1.Для сертификата состаляеся таблица: Номенклатура, характеристика, серия.

2.При записи сертификата изображение сохраняется в хранилище и привязывается к первой по списку номенклатуре.

3.Для каждого номенклатуры по списку ищется связанный элемент справочника Хранилище дополнительной информации под именем ТаблицаДляСертификатов (если его нет, то создается). В этом хранилище помещается таблица Номенклатура, характеристика, серия, ссылка на хранилище изображение сертификата. В эту таблицу добавляются новые данные и она снова записывается в хранилище.

Кроме того, в таблицу добавляется дополнительная информации о сертификате: дата начала, дата окончания и описание.

Таким образом, получаем 2 элемента Хранилища дополнительной информации: сами изображения сертификатов и таблицы, в которых хранится дополнительная  и более подробная о принадлежности сертификатов относительно характеристик и серий.

 

III. Печать.

Печатная форма документа Реализации товаров и услуг. Сначала составляется список номенклатуры и по нему получаются таблицы с данными о сертификатах. Потом проходя по табличной части документа происходит поиск соответствующих сертификатов, которые выводятся в табличный документ.

 

З.Ы. Вот по этим ссылкам можно посмотреть пример, что ещё можно сделать с помощью WIA с картинками.

http://msdn.microsoft.com/en-us/library/ms630819(VS.85).aspx
http://www.codeproject.com/KB/shell/resize_image_script_all.aspx

 

[Обновлено] Добавил кнопку загрузки изображения сертификата из файла.

Скачать файлы

Наименование Файл Версия Размер
СканированиеСертификатов. Версия 1.1
.epf 47,05Kb
24.07.13
562
.epf 47,05Kb 562 Скачать
ПросмотрСертификатов.epf
.epf 9,75Kb
24.07.13
141
.epf 9,75Kb 141 Скачать
ПечатьСертификатов.epf
.epf 9,35Kb
24.07.13
187
.epf 9,35Kb 187 Скачать

См. также

Вознаграждение за ответ
Показать полностью
Комментарии
1. Александр Цегельников (markers) 186 27.12.10 09:49 Сейчас в теме
Главный плюс, НЕ жадность автора!
2. Александр Медведев (anig99) 2489 27.12.10 09:52 Сейчас в теме
мммм...(1) а чего жадничать-то? вся используемая информация изначально была в свободном доступе...
3. Александр Цегельников (markers) 186 27.12.10 10:19 Сейчас в теме
Ну не знаю почему некоторые жадничают :) За мелкую обработку и проще этой обработку (В плане что мне проще написать) берут денег...
Спасибо!
4. mirco brons (mirco) 70 27.12.10 11:23 Сейчас в теме
"В Windows 7 соответствующие dll уже входят в комплект" - но работать будет только если для сканера есть драйвера twain совместимые, так ?
5. Александр Медведев (anig99) 2489 27.12.10 12:53 Сейчас в теме
(4) нет. wia и twain - это разные стандарты
6. mirco brons (mirco) 70 27.12.10 14:04 Сейчас в теме
(5) про твайн я образно...
я имел ввиду что драйвера на сканер должны стоять...
7. Александр Медведев (anig99) 2489 27.12.10 14:28 Сейчас в теме
(6) хотя бы универсальный WIA (в теории, практики такой не было)
8. VVV Vit (V_V_V) 27.12.10 15:37 Сейчас в теме
Полученное изображение можно повертеть с помощью того же WIA

А обрезать можно? А сохранить с определенным размером? Очень интересует...
9. Александр Медведев (anig99) 2489 27.12.10 16:08 Сейчас в теме
(8) Можно при сканировании обрезать. А можно через WIA согласно

http://msdn.microsoft.com/en-us/library/ms630819(VS.85).aspx
http://www.codeproject.com/KB/shell/resize_image_script_all.aspx

Дерзайте
ilya4; V_V_V; +2 Ответить
10. Сергей (Che) Коцюра (CheBurator) 3370 27.12.10 23:49 Сейчас в теме
паровозом "аналог" для 7.7
http://infostart.ru/public/15355/
.
автору - плюс! порадовал!
11. Александр Медведев (anig99) 2489 28.12.10 00:32 Сейчас в теме
(10) к сожалению scan1c.dll не работает на 8.1 )%
12. Алексей Лажанев (lalexrus) 03.01.11 12:14 Сейчас в теме
все это хорошо, а если в одном документе продается товар с несколькими сертификатами (например алкоголь, где мб разные даты розлива)?
13. Александр Медведев (anig99) 2489 03.01.11 13:54 Сейчас в теме
(12) для этого существуют Серии, которые данная обработка учитывает. А вот 1с может и не учитывать.
Программисты 1с то ли схалтурили, то ли специально оставили лазейку:

Даже если по номенклатуре не ведется учет по сериям, то в документах поступления и реализации для этой номенклатуры можно указывать серии не вызывая форму выбора, а через поле вода введя часть названия. Сами серии тоже можно вводить не через номенклатуру, а через справочник Серии номенклатуры.

В Вашем случае серии = дата розлива.
14. Алексей Лажанев (lalexrus) 04.01.11 16:38 Сейчас в теме
(13) собака с датами розлива зарыта в том, что их может быть много для одного товара. Отсюда следует главное неудобство - необходимость в одном документе разбивать одну строку на несколько в соответствии с датами розлива.
15. Александр Медведев (anig99) 2489 04.01.11 16:54 Сейчас в теме
(14) можно копнуть в сторону серийных номеров. В этом случае доработка обработок по сертификации непринципиальна.
А какие будут Ваши предложения? Ведь проблема дат розлива в алкогольки довольна спецефична и вообще требует отдельных конфигураций.
16. Алексей Лажанев (lalexrus) 04.01.11 17:07 Сейчас в теме
(15) собственно я покажу вашу обработку сертификатам нашим, что они скажут напишу (включая и мои соображения, практика показала, что я могу думать совсем другое :) )
17. VB (VBWEBMAIL) 08.01.11 13:25 Сейчас в теме
anig99! спасибо за обработку.. только не могу разобраться в чем может быть ошибка при выполнении метода Image.SaveFile(ИмяФайла), выдается ошибка Произошла исключительная ситуация (WIA.ImageFile.1): Отказано в доступе... очень странно...
Спасибо, если поможете!
18. Александр Медведев (anig99) 2489 08.01.11 13:38 Сейчас в теме
(17) windows 7? Если да, то нужно чуть менять обработку - по умолчанию она пишет на диск C:\, а доступ на него обычно закрыт. Нужно указать или доступную неадминистратору папку, или использовать функцию 1с по получению имени временного файла.
19. VB (VBWEBMAIL) 08.01.11 13:45 Сейчас в теме
:) Спасибо! все получилось. с W7 все понятно :) там все автоматом ставится.. а как быть с XP? у Вас был опыт?
20. Александр Медведев (anig99) 2489 08.01.11 17:29 Сейчас в теме
(19) в XP проблем с диском С не возникало
21. VB (VBWEBMAIL) 08.01.11 18:36 Сейчас в теме
для XP, как понимаю, нужно скачивать драйвера для WIA 2.0?
22. Александр Медведев (anig99) 2489 08.01.11 19:53 Сейчас в теме
(21) да... но проблем с этим не должно быть. Они лежат в свободном доступе на сайте мелкомягким с инструкцией по регистрации
23. Mikhail Barabanov (x_mih) 12.01.11 15:43 Сейчас в теме
Доработайте пожалуйста чтобы можно было просто указать картинку сертификата. Спасибо.
24. Александр Медведев (anig99) 2489 17.01.11 22:55 Сейчас в теме
25. Сергей (Che) Коцюра (CheBurator) 3370 18.01.11 01:38 Сейчас в теме
а не думали ли вы о таком "функционале": есть сканеры с автоподачей - кинул стопку - дивайс их пакетом отсканировал (в папочку).
Потом берем и на вход "обработки" - подаем отсканированный "пакет" - который обрезаем/выравниваем картинки и привязываем к номенклатуре (источник - любой: документ, группа справочника, список значений, массив, ТЗ...). У мну такая задача в свое время нарисовалась - но я ушел из фирмы...
26. Александр Медведев (anig99) 2489 18.01.11 07:29 Сейчас в теме
(25) нет такой потребности.
27. Sk0rp (Sk0rp) 100 09.02.11 14:19 Сейчас в теме
Как туда добавить, что бы окошко настроек сканирования не появлялось, а можно было все программно настроить и сразу начиналось сканирование?
28. Александр Медведев (anig99) 2489 09.02.11 15:04 Сейчас в теме
(27)Посмотрите ShowAcquireImage.
Точные изменения сейчас не скажу. Нет под времени и сканера под рукой.
http://msdn.microsoft.com/en-us/library/ms630772(VS.85).aspx - вот справка по данной команде
29. Sk0rp (Sk0rp) 100 09.02.11 15:55 Сейчас в теме
(28) О спасибо! Перебирал методы CommonDialog, а в параметры самого ShowAcquireImage заглянуть не додумался.
30. sdvig (sdvig) 8 03.03.11 04:12 Сейчас в теме
(29) как сделали? пишу: DevManager.ShowAcquireImage(1,4,,,ложь,ложь,); а окно все равно появляется?
31. Дмитрий Веретенников (vdv_4462) 05.04.11 14:12 Сейчас в теме
Попробовал обработку. Со сканером все прекрасно (Canoscan Lide 70 с родными драйверами)
Попробовал также с веб-камерой. И вот тут засада - не появляется никакого окошка для настройки. В результате получаются фото с размером 640*480. А камера может намного больше - и хотелось бы именно этого...

Подскажите, если не трудно, как можно получить либо окно настройки, либо (еще лучше) фиксированное разрешение, к примеру 1280*1024...
32. Александр Медведев (anig99) 2489 05.04.11 15:19 Сейчас в теме
(31) не пробовал с камерой.
но где-то здесь
http://msdn.microsoft.com/en-us/library/ms630492(v=VS.85).aspx - ShowAcquisitionWizard
Иначе нужно копаться в командах самого устройства.
33. Руслан Латыпов (levran) 193 06.04.11 16:33 Сейчас в теме
Одно время работал в торговой компании, активно использующей подобную схему хранения сертификатов. После 1,5 года запуска активной работы, база легла, из-за справочника "Хранилище дополнительной информации". (большой размер базы). Посему обработка сохранения сканов была переписана на внешний каталог. Скорость обработки сканов упала, но не сильно заметно. ИМХО.
34. Александр Медведев (anig99) 2489 06.04.11 20:32 Сейчас в теме
(33) ни того, ни другого в свободном юзабельном виде нигде нет. Никто не запрещает дописать запись и чтение изображений под хранение ссылки на файл во внешнем каталоге.
35. Евгений М (Zen13) 16.09.11 14:19 Сейчас в теме
36. Nick K (Nick5k) 24.10.11 01:02 Сейчас в теме
Добрый день! Очень нужна Ваша обработка, но нет возможности скачать, если можно вышлите на nick5k@mail.ru.
Очень надо! А изобретать своё времени нет.
37. Кирилл Раковский (RakovskiyK) 24.10.11 15:05 Сейчас в теме
уже в который раз автор осчастливливает с нужным продуктом и щедрым подходом!
Огромное спасибо!
38. Олег Шалимов (CaSH_2004) 342 06.11.11 22:22 Сейчас в теме
А в формат PDF напрямую можно или только перегонкой через виртуальный принтер и аналоги?
Поискал в нете, нашел намек в документации что можно, но не сказано как
кстати в тему: http://wiki.kint.ru/index.php/Использование_сканера_(1Cv8)
и
как обрабатывать рисунок
39. Александр Медведев (anig99) 2489 08.11.11 08:37 Сейчас в теме
(38) я не искал способа напрямую. не все сканеры поддерживают сканирование сразу в pdf. У меня в более новой версии реализована просто загрузка файлов.
40. dindzilin@yandex.ru (dindzilin) 20.11.11 13:56 Сейчас в теме
Довольно полезная обработка, раньше использовал внешние компоненты, естественно приходилось регистрировать, копировать... А тут воткнул в конфу и все работает )))
41. Кирилл Раковский (RakovskiyK) 23.11.11 10:39 Сейчас в теме
поддерживаю (39) anig99, на текущий момент не многие организации используют сканирование в PDF, так что обработка более чем актуальна.
42. Василий Ветров (404vrn) 05.12.11 09:09 Сейчас в теме
Спасибо, очень пригодилась обработочка!
43. Roman Tarasov (raym0n) 16.12.11 16:53 Сейчас в теме
Ой, огромное спасибо! Как раз встала задача реорганизации рабочего места сертефикатчиц.

Будем копать, спасибо!
44. ediks (ediks) 319 16.02.12 17:54 Сейчас в теме
Все отлично сканируется в локале и, к сожалению, не работает через Citrix. Хотя с использованием twain документы сканируются и в Citrix. Это не претензия, просто констатация факта :). Возможно, надо добавлять устройство на сервер, а при нашем зоопарке это несколько затруднительно.
45. soba (soba) 28.02.12 16:26 Сейчас в теме
По идее тоже самое и под 7-ку можно прикрутить, только обработку переписать ? только вот предпросмотр неясно как организовать. Что-то из внешних компонент надо
46. Ionmuerto 22.05.12 12:26 Сейчас в теме
Возможно ли эту обработку привязать к заявки на расходования БД денежных средств? в качестве изображений выставленные счета на оплату?
47. Татьяна Катцына (K_Tanusik) 29.05.12 14:18 Сейчас в теме
Спасибо огромное, скачала очень нужная обработка
48. Марат Кафиятуллов (mmk83) 30 09.01.13 19:48 Сейчас в теме
а есть возможность прикрутить сканирование в многостраничный тиф?
49. Kostya Zhurov (It-developer) 20 30.01.13 14:42 Сейчас в теме
Респект и уважуха! Спасибо, заюзаю у себя
50. Доржи Балбаров (Angeros) 13.08.13 12:24 Сейчас в теме
(22) anig99, поделитесь ссылкой для xp. я както не могу понять где там искать?! :)
51. Александр Медведев (anig99) 2489 13.08.13 12:40 Сейчас в теме
(50) уже убрали. Вот рабочая ссылка
http://vbnet.mvps.org/files/updates/wiaautsdk.zip
val54321; FaKer1980; Angeros; +3 Ответить
52. Евгений М (val54321) 23 28.11.13 10:23 Сейчас в теме
А есть для 64 битной системы?
53. Александр Медведев (anig99) 2489 28.11.13 10:37 Сейчас в теме
(52) В 7ке и выше WIA стоит по умолчанию. Для более старых систем вроде как нет разницы.
54. Евгений М (val54321) 23 28.11.13 11:03 Сейчас в теме
Я ставлю на сервер, при установке на 32 битный 2003 сервер, все отлично, при установке на тот же 2003 но 64 не взлетает.
Пробовал взять этут библиотеку из уже установленной вин7 64 битной, не находит процедуру loadlibrary при попытке регистрации.
55. Александр Медведев (anig99) 2489 28.11.13 11:08 Сейчас в теме
56. Евгений М (val54321) 23 28.11.13 16:11 Сейчас в теме
Проблема описана в точности как у меня, но так как там описано не взлетает. Точно так же не находит loadlibrary.
57. Надежда (user_2010) 135 12.05.14 12:18 Сейчас в теме
Как изменить размер картинки при сохранении в базу?
Какие методы COMОбъект("WIA.ImageProcess") для этого надо использовать?
Может быть есть пример кода?
58. Александр Медведев (anig99) 2489 12.05.14 12:37 Сейчас в теме
59. Петр Лунегов (pvlunegov) 93 05.06.15 21:43 Сейчас в теме
anig99
Я к тебе в гости пожаловал.
Смотрю ты тут тоже крутые статьи пишешь.
А помнишь как ты меня лохом обзывал в моей статье, нахер посылал, угрожал, приказывал прекратить печать статей?

Ну что-ж оценим твои творения!

Ну что-ж, неплохо для старичка. Потянет на пятерку. Но вот скачивать не буду, хотя вещь хорошая.
Жалко мне на тебя тратить свои мани.
Человек ты вроде неплохой, но плохо обзываешься и ведешь себя, я с тобой неиграю!
60. Александр Медведев (anig99) 2489 05.06.15 21:55 Сейчас в теме
(59) pvlunegov, если внимательно и без эмоций прочитаете написанное мною, то личных оскорблений там нет. Есть оценка Вашей работы и моё личное отношение к тем, кто берёт деньги за такое.
61. Игорь Панченко (igorekpanchenko) 27.07.15 09:15 Сейчас в теме
Добрый день!
Подскажите как можно сканированную картинку сразу вывести на экран в форму?
62. Александр Медведев (anig99) 2489 27.07.15 10:21 Сейчас в теме
63. Игорь Панченко (igorekpanchenko) 27.07.15 11:35 Сейчас в теме
Помогите разобраться где я ошибся. Выскакивает ошибка:
{Справочник.ХранилищеДопИнформации.Форма.ФормаЭлемента.Форма(92)}: Поле объекта не обнаружено (Картинка)
Элементы.КартинкаСкан.Картинка = Новый Картинка(ИмяФайла);

Код:

&НаКлиенте
Процедура Сканировать(Команда)
	
	Image = Новый COMОбъект("WIA.ImageFile"); 
	DevManager = Новый COMОбъект("WIA.CommonDialog"); 
	Image = DevManager.ShowAcquireImage();
	IP = Новый COMОбъект("WIA.ImageProcess");
	IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
	IP1 = IP.Filters(1);
	Для К = 1 По IP1.Properties.Count Цикл
		Если IP1.Properties(К).Name = "FormatID" Тогда
			IP1.Properties(К).Value = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
			Прервать;
		КонецЕсли;
	КонецЦикла;
	Image = IP.Apply(Image);
	СохранитьИВывестиИзображение();
	
КонецПроцедуры

&НаКлиенте
Процедура СохранитьИВывестиИзображение()

	УдалитьФайлы(ИмяФайла);
	Image.SaveFile(ИмяФайла);
	Элементы.КартинкаСкан.Картинка = Новый Картинка(ИмяФайла);
	Элементы.КартинкаСкан.Видимость = Истина;

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

ИмяФайла =  "C:\CurCertificate.png";
Image = Неопределено;
...Показать Скрыть
Прикрепленные файлы:
64. Игорь Панченко (igorekpanchenko) 27.07.15 11:36 Сейчас в теме
Сканирует, потом выводит ошибку.
65. Александр Медведев (anig99) 2489 27.07.15 13:08 Сейчас в теме
(64) igorekpanchenko, а на форме есть элемент типа картинка с именем КартинкаСкан?
66. Игорь Панченко (igorekpanchenko) 27.07.15 13:17 Сейчас в теме
(65) anig99, Присутствует.
Вид: поле картинки
Путь К Данным: АдресКартинки
67. Игорь Панченко (igorekpanchenko) 27.07.15 13:19 Сейчас в теме
(65) anig99, Кнопка загрузки работает таким способом:

&НаКлиенте
Процедура Загрузить(Команда)

	файл = "" ;
	ПоместитьФайл(файл,,,Истина,УникальныйИдентификатор);
	Если файл<>"" Тогда 
		АдресКартинки = файл;
	КонецЕсли;

КонецПроцедуры
...Показать Скрыть

68. Александр Медведев (anig99) 2489 27.07.15 16:15 Сейчас в теме
Элементы.КартинкаСкан.АдресКартинки = Файл
не так должно быть?
69. Игорь Панченко (igorekpanchenko) 28.07.15 08:52 Сейчас в теме
Не получается вставить картинку. Выдает ошибку: Поле объекта недоступно для записи (Картинка)

&НаКлиенте
Перем Image;

&НаКлиенте
Перем ЭлементыФормы; 

&НаКлиенте
Перем ИмяФайла;  

&НаКлиенте
Процедура Загрузить(Команда)
	файл = "" ;
	ПоместитьФайл(файл,,,Истина,УникальныйИдентификатор);
	Если файл<>"" Тогда 
		АдресКартинки = файл;
	КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	Если АдресКартинки <> Неопределено Тогда 
		Данные = ПолучитьИзВременногоХранилища(АдресКартинки);
		ТекущийОбъект.Файл = Новый ХранилищеЗначения(Данные);
	КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	ЭтотОбъект = РеквизитФормыВЗначение("Объект");
	АдресКартинки = ПоместитьВоВременноеХранилище(ЭтотОбъект.Файл.Получить(), Новый УникальныйИдентификатор);	
КонецПроцедуры

&НаКлиенте
Процедура Сканировать(Команда)
	
	Image = Новый COMОбъект("WIA.ImageFile"); 
	DevManager = Новый COMОбъект("WIA.CommonDialog"); 
	Image = DevManager.ShowAcquireImage();
	IP = Новый COMОбъект("WIA.ImageProcess");
	IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
	IP1 = IP.Filters(1);
	Для К = 1 По IP1.Properties.Count Цикл
		Если IP1.Properties(К).Name = "FormatID" Тогда
			IP1.Properties(К).Value = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
			Прервать;
		КонецЕсли;
	КонецЦикла;
	Image = IP.Apply(Image);
	СохранитьИВывестиИзображение();
			
КонецПроцедуры

&НаКлиенте
Процедура СохранитьИВывестиИзображение()
	УдалитьФайлы(ИмяФайла); //удалим старый файл
    Image.SaveFile(ИмяФайла); //сохраним на жесткий диск объект WIA
	Элементы.Картинка = Новый Картинка(ИмяФайла);
КонецПроцедуры

ИмяФайла =  "C:\CurCertificate.png";
Image = Неопределено;
...Показать Скрыть
70. Игорь Панченко (igorekpanchenko) 28.07.15 09:31 Сейчас в теме
Заработало, спасибо за помощь.
&НаКлиенте
Процедура Сканировать(Команда)
	
	Image = Новый COMОбъект("WIA.ImageFile"); 
	DevManager = Новый COMОбъект("WIA.CommonDialog"); 
	Image = DevManager.ShowAcquireImage();
	IP = Новый COMОбъект("WIA.ImageProcess");
	IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
	IP1 = IP.Filters(1);
	Для К = 1 По IP1.Properties.Count Цикл
		Если IP1.Properties(К).Name = "FormatID" Тогда
			IP1.Properties(К).Value = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
			Прервать;
		КонецЕсли;
	КонецЦикла;
	Image = IP.Apply(Image);
	СохранитьИВывестиИзображение();
			
КонецПроцедуры

&НаКлиенте
Процедура СохранитьИВывестиИзображение()
	УдалитьФайлы(ИмяФайла); //удалим старый файл
    Image.SaveFile(ИмяФайла); //сохраним на жесткий диск объект WIA		
	АдресВХранилище = ""; //Помещаем картинку в хранилище
	ПоместитьФайл (АдресВХранилище, "C:\CurCertificate.png", , Ложь) ; //Помещаем картинку в хранилище
	АдресКартинки = АдресВХранилище; //Вставляем из хранилища
КонецПроцедуры



ИмяФайла =  "C:\CurCertificate.png";
Image = Неопределено;
...Показать Скрыть
71. Al (al_zzz) 33 30.09.15 07:41 Сейчас в теме
Подскажите пожалуйста, как сделать сканирование с автоподачей в один файл?
72. Владимир Кирин (info1ctart) 03.03.16 03:34 Сейчас в теме
Можно ли как-то задать имя сканера, или сделать выбор? А то их несколько, и сканирует не с того.