Доброго времени суток, уважаемые форумчане. Расскажу немного о своем опыте реализации сканирования в нетиповой самописной базе 1С.
Итак, имеем следующее:
1. Нетиповую конфигурацию 1С.
2. Жгучее и местами непреодолимое желание пользователей сканировать документы
В итоге изучения нескольких обработок и разных компонент, предоставленных нашими форумчанами, появились 2 обработки, на которых я и тестировал работу в разных режимах По итогам тестирования я лично выбрал сканирование через типовую компоненту TWAIN. Потому как она оказалась самой работоспособной и еще стабильно работает через Citrix, что являлось основным критерием выбора.
Немного резюмируя итоги всего процесса хотелось бы заметить, что:
- Если у Вас файловая или база, которая использует стандартный интерфейс 1С, без всяких цитриксов, я бы рекомендовал использовать WIA, с ним работать легко и просто, меньше вероятность ошибки
- Если же у Вас Citrix, то WIA у Вас работать не будет,(такое вот ограничение накладывает Citrix и с ним придется считаться), поэтому я бы рекомендовал использовать стандартную компоненту 1С из последнего релиза какой-нибудь типовой конфигурации( на данный момент я использовал TWAIN компоненту из UT_11.1.10.180) и играться уже с ней.
Минусы второго подхода заключаются в следующем:
1. Если у Вас в списке драйверов отражаются несколько устройств, то TWAIN драйвер не проверяет, работают они или нет. Они благополучно попадают в список доступных устройств. А далее, если вы случайно выбрали устройство, которое уже не работает или недоступно, то начинаются чудеса... Вы выбираете некорректный сканер, пытаетесь на нем отсканировать и попадаете в ошибку. Все вроде хорошо, но если вы настолько упорны, что пытаетесь отсканировать еще раз, то компонента просто "ложит" вам сеанс и вам придется заходить ещзе раз. Частично решается конечно путем запоминания последнего корректно устройства для сканирования, но определенную долю неудобства все же доставляет(Кстати в 1С я так же писал обращение по этому поводу и вроде даже что-то исправлялось, но вот как-то не до конца).
2. Так же через компоненту нельзя понять работает сканер или нет, ну вот нет такой функции,... Функция работоспособности просто возвращает вам весь список установленных драйверов. Найти же устройства через PowerShell или всякие функции Windows так же не получается, потому как большинство устройств в офисе являютс МФУ и даже названия в драйверах принтера и сканера отличаются, а лазить в реестр времени не было, да и толку наверное тоже.
Собственно, это моя первая публикация, так что надеюсь на Ваше понимание и конструктивную критику. Также рад буду поделиться опытом и более подробно объяснить, что и как я делал, а также перенять Ваш опыт :)