Twain invalid source name ошибка 1с

Обновлено: 17.05.2024

Добрый день, дорогие друзья, я в своей работе часто сталкивался с рядом ошибок связанных с com объектами. Когда я только начинал работать в сфере ИТ, то подобные ошибки о которых пойдет речь ниже, вызывали у меня недоумение и я отправлял пользователей к программистам, но потом шло время и опыт мой рос, такие проблемы начал решать самостоятельно, теперь хочу поделиться решениями с вами.

Рассмотрим первый пример - ошибка связана с внешней обработкой EDI

Данная ошибка устраняется очень просто, вам нужно зарегистрировать excon.dll. Для этого открываем cmd от имени администратора и прописываем следующие команды

Решается не сложно, но для решения есть несколько методов и в разных ситуациях спасает тот или иной метод решения. Ниже рассмотрим примеры данной ошибки и решения.

Первое что нужно попробовать сделать на машине пользователя - это зарегистрировать comcntr.dll

Для этого открываем cmd от имени администратора и прописываем следующие команды

regsvr32 "C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
cd c:\Windows\SysWOW64 regsvr32 "C:\Program Files\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться

Если данное решение не помогает, то нужно проверить на сервере 1С возникает такая же ошибка или нет, если возникает при тех же действиях, то сделать следующие действия в cmd от имени администратора

"C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver - Все что выделено жирным шрифтом, в вашем случае может отличаться
"C:\Program Files\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver " - Все что выделено жирным шрифтом, в вашем случае может отличаться

Можно создать данное com соединение с помощью "Службы Компонентов Windows" , об этом рассказывать не буду в данной статье, если вам нужна информация, пишите комменты, я свяжусь с вами и все расскажу. Если будет много пожеланий, сделаю отдельную статью на эту тему.

Третья ошибка связана с компонентой MSScript

Данные ошибки возникают обычно при печати из 1С. Две разные базы часто бывают связаны между собой средствами различных компонент. В моем случае это торговля и сертификация. И при печати комплектов документов иногда возникает данная ошибка.

Решение не сложное и данное решение можно автоматизировать если проблема массовая (массовая может быть из-за обновления релиза 1С)

Давайте начнем по порядку и зайдем в "Службы Компонентов Windows" от имени администратора на пользовательской машине где возникает данная ошибка и найдем там " Приложения COM+ "

Теперь нужно нажать правой клавишей мыши по " Приложения COM+ " и выбрать " Создать-->Приложение "

Откроется мастер установки в котором нужно проделать все что показано на скринах ниже

У вас в основном окне появится только что созданное приложение и его нужно настроить, для этого щелкаем по нему правой кнопкой мыши и выбираем " Свойства " и переходим во вкладку " Безопасность " в которой настраиваем все один в один как на скрине ниже

Теперь необходимо для него создать компоненту и запустить ее в работу, снова предлагаю наглядно посмотреть на скрины ниже.

Осталось только запустить компоненту и ошибку в 1С вы устранили. Для запуска вам нужно перейти в " Приложения COM+ ", в центральном окне найти Msscript и нажать правой кнопкой мыши, затем нажать " Пуск " и ваша компонента начнет работать.

Теперь пару слов об автоматизации данного процесса т.к. бывают массовые случаи когда слетает данная компонента. Наша задача сделать msi файл и затем его разлить с помощью групповых политик или с помощью kaspersky security center (если конечно вы им пользуетесь - в моем случае удобнее было воспользоваться именно касперским)

Для создания файла msi необходимо выполнить все рекомендации со скринов ниже

Столкнулся с такой проблемой:
Есть у меня нетиповая конфигурация 8.2 и было принято решение сделать в ней сканирование документов, чтобы прикреплялись к некоторым объектам. Была перенесена "КомпонентаTWAIN" из типовой конфигурации УТ, сканирование заработало.
Однако проявилась такая ошибка: Если у нас подключено несколько сканирующих устройств(МФУ) и одно из них работает, а другое выключено, вы ошиблись в выборе и выбрали физически отключенное устройство, нажали "Сканировать". Система долго думает и выдает ошибку. Далее мы выбираем "верное" устройство и пытаемся еще раз отсканировать и выпадает ошибка отключенного сканера: TWAIN : Acquire error. Перевыбор корректного сканера не помогает. Нужно перезапускать сеанс, выбирать "верный" сканер и с ним тогда сканирование проходит отлично.

(2)+ В смысле убрать из 1С TWAIN, пусть просто отдает некую команду или даже просто забирает картинки из сетевой папки и все

Тут цель именно предоставить пользователю возможность сканировать документы прямо из 1С.

Но есть некоторые условия, которые существенно усложняют задачу:
1. Сканеры могут быть абсолютно любые, потому как компания федеральная и представлена в разных регионах, что было дешевле, то и купили. Так же если это МФУ, то имена сканеров и имена принтеров в системе могут не совпадать
2. Большинство пользователей работает через Citrix, поэтому WIA сканирование не подходит, только TWAIN(Путем тестирования нескольких компонент с инфостарта работоспособной оказалась только стандартная компонента 1С)

Была мысль получить список TWAIN устройств, потом опросить их по сети, однако что-то у меня не получилось понять какой адрес у сканера(Брал за основу МФУ HP)

Пойми TWAIN нужен только когда требуется предварительный просмотр и выбор параметров сканирования (размеры, разрешение, цветность).

Но это все нафик не надо обычно, по дефолту всегда сканим А4 (или какой там размер сканера) в цветном 600dpi и тупо отдаем в 1С картинки готовые.
Далее если надо есть ВК для 1С которые позволяют обрабатывать картинки (изменять размер и разрешение с цветностью).

Внешняя приблуда для каждого сканера, пришла команда - создался файлик картинки в папочке - 1С забирает файлик и все. И те становится пофиг какая 1С и как работает - Citrix там или Linux

1C-TWAIN хорошо только когда локальная 1С-ка (обычный клиент) с локальным сканером. Если терминальные сервера то это геморрой еще тот.

Собственно сама идея состоит в том, что пользователь как раз и может выбирать параметры сканирования(но в 1С). Да и если сканировать из 1С, то существенно уменьшается количество действий пользователя, при таком режиме работы он просто нажал сканировать и данные сразу появились в системе(Либо в окошке настроил параметры сканирования и так же сразу отсканировал через 1С), без предварительного сканирования через какую - то программу и перенос в какую-то папку. Именно для этого и нужен TWAIN, если как-то можно без него напрямую подавать команды сканеру, то я буду очень этому рад.

В моем случае все работает, до того момента, пока не появляется у пользователя в устройствах два и более сканеров и мы в первый раз выбираем неработающий. Компонента падает с ошибкой и перевыбор рабочего сканера не спасает ситуацию.

(6) Проблема у вас только одна - попытка использования устаревших и уже нихрена реально не поддерживаемых технологий.

Представь что у тебя Linux (или Mac) и действуй исходя из этого.

(7) я вангую что он ставит не там и не той разрядности
(9) Там проблемы когда несколько разных версий платформы 1С стоят или ставили криво.
Можно совместить 8.1. 8.2 и 8.3 а вот разные 8.3 глючит.
Например если 8.3.16 и 8.3.15 ну или разрядность того.
(10) неа. Я подозреваю что надо ставить на сервере, а он пытается на клиенте. Ну и х86-64 и SysWOW64 - как бы противоречие, хотя там надо просто зарегать COM+-приложение
С учетом того,что стандартный обмен все равно передает xml-файл,то можно перейти на web-сервисы без проблем.
(12) это надо публиковать базу, а мало кто это хочет делать
(13) так надо опубликовать внутри локальной сети, не надо в глобальном интернете публиковать.
мне регистрация в службах компонентов всегда помогала
Нет, версия одна и запускаю на сервере. Проблема решилась перезапуском сервера 1С. Всем спасибо за участие.
Вроде COM-соединение возможно с базой на другой версии платформы 8.3 А OLE-соединение возможно?

(кстати на 16-ю версию платформы люди жалуются, нам сейчас пока запретили её ставить)

Панель управления\Все элементы панели управления\Администрирование\Службы компонентов\Компьютеры\Мой компьютер\Приложения COM+\CommCtrl\Роли\CreatorOwner\Пользователи\
Сюда добавить пользователей ОС сервера, под кем приходится запускать регламентные задания, а главное USR1CV8.

И лучше физически перезагрузить сервер сам компьютер.

(20) > И лучше физически перезагрузить сервер сам компьютер.
У меня все базы на 8.3.10.2466 (x86-64), только одна 8.3.14.1779 (x64) на диапазоне портов 16хх. Когда к ней подключаюсь в строке подключения к имени сервера дописываю ":1640". Даже вручную делаю команду C:\Windows\SysWOW64\regsvr32 "c:\Program Files\1cv8\8.3.14.1779\bin\comcntr.dll", пишет: Успешно выполнено DllRtgisterServer в c:\Program Files\1cv8\8.3.14.1779\bin\comcntr.dll. Но при этом все равно ошибка: "Несоответствие версий клиента и сервера 1С:Предприятия" (8.3.10.2466 - 8.3.14.1779).

(21) Я вот думаю сказать или нет что COM как и прочие приложения могут быть как x32 так и x64.

И короче регать думать надо что и откуда. И откуда и куда подключаться.
Ну не выйдет цыветочек и x32 не умеет с x64 через COM или OLE

Итак, имеем следующее:

1. Нетиповую конфигурацию 1С.

2. Жгучее и местами непреодолимое желание пользователей сканировать документы

В итоге изучения нескольких обработок и разных компонент, предоставленных нашими форумчанами, появились 2 обработки, на которых я и тестировал работу в разных режимах По итогам тестирования я лично выбрал сканирование через типовую компоненту TWAIN. Потому как она оказалась самой работоспособной и еще стабильно работает через Citrix, что являлось основным критерием выбора.

Немного резюмируя итоги всего процесса хотелось бы заметить, что:

- Если у Вас файловая или база, которая использует стандартный интерфейс 1С, без всяких цитриксов, я бы рекомендовал использовать WIA, с ним работать легко и просто, меньше вероятность ошибки

- Если же у Вас Citrix, то WIA у Вас работать не будет,(такое вот ограничение накладывает Citrix и с ним придется считаться), поэтому я бы рекомендовал использовать стандартную компоненту 1С из последнего релиза какой-нибудь типовой конфигурации( на данный момент я использовал TWAIN компоненту из UT_11.1.10.180) и играться уже с ней.

Минусы второго подхода заключаются в следующем:

1. Если у Вас в списке драйверов отражаются несколько устройств, то TWAIN драйвер не проверяет, работают они или нет. Они благополучно попадают в список доступных устройств. А далее, если вы случайно выбрали устройство, которое уже не работает или недоступно, то начинаются чудеса. Вы выбираете некорректный сканер, пытаетесь на нем отсканировать и попадаете в ошибку. Все вроде хорошо, но если вы настолько упорны, что пытаетесь отсканировать еще раз, то компонента просто "ложит" вам сеанс и вам придется заходить ещзе раз. Частично решается конечно путем запоминания последнего корректно устройства для сканирования, но определенную долю неудобства все же доставляет(Кстати в 1С я так же писал обращение по этому поводу и вроде даже что-то исправлялось, но вот как-то не до конца).

2. Так же через компоненту нельзя понять работает сканер или нет, ну вот нет такой функции. Функция работоспособности просто возвращает вам весь список установленных драйверов. Найти же устройства через PowerShell или всякие функции Windows так же не получается, потому как большинство устройств в офисе являютс МФУ и даже названия в драйверах принтера и сканера отличаются, а лазить в реестр времени не было, да и толку наверное тоже.

Собственно, это моя первая публикация, так что надеюсь на Ваше понимание и конструктивную критику. Также рад буду поделиться опытом и более подробно объяснить, что и как я делал, а также перенять Ваш опыт :)

Читайте также: