Ошибка вызова метода внешней компоненты атол 1с
Ошибка 999 в Атол – каковы причины?
Ошибка ведёт себя крайне непредсказуемо. Иногда может появляться в устройстве в течение рабочего дня. Есть мнение, что помогает переустановка драйвера. Далее вы узнаете, как это сделать. Причины могут быть действительно в сбое ПО или самого оборудования (Атол или ПК). В большинстве случае РМК просто не подключается к определённой кассе . Виновником может выступать неизвестное устройство, которое заняло нужный порт COM . В таком случае необходимо изменить порт.
Тестирование 1С платформы при подключении оборудования
Для начала необходимо попытаться протестировать платформу 1С , чтобы убедиться, что причина не в ней.
Для этого перейдите в настройки РМК:
Проверка драйвера
Чтобы проверить работоспособность драйвера Атол на ПК, необходимо попасть в диспетчер устройств . Для этого есть несколько способов. Независимо от версии Windows, оба они будут работать. Попробуйте сделать так: вместе нажмите WIN+R и введите в строку « devmgmt.msc ». После чего нажмите клавишу Ввода. Или вместе нажмите WIN+Pause и выберите слева этот пункт.
Выполните следующие действия:
- Среди пунктов списка вам необходимо найти « Другие устройства » и нажать на него;
- Откроется список из 2 или более пунктов. В нём не должно быть значков с жёлтыми иконками и восклицательным знаком . Это свидетельствует о том, что для этих подключенных устройств система не имеет драйверов;
- Если это действительно так, вам необходимо вставить в привод CD с ПО и установить его. Или нажать ПКМ по неопознанному устройству и выбрать пункт « Обновить драйверы ». После чего выбрать строку под названием «Автоматически…».
Когда драйвер будет установлен, следует снова вернуться в это окно, чтобы убедиться, что всё в порядке. Это нужно сделать обязательно, так как если вы сами установили драйвер, который нашли в сети, он может не подойти к версии ОС или её разрядности.
Рассмотрим способ настройки драйвера Атол, когда появляется сбой 999. Для этого нужно нажать на кнопку « Пуск » в Windows.
После этого открываем 1С предприятие и открываем смену. Если такой способ не помог решить ошибку при подключении оборудования 999 в Атол, попробуйте следующую инструкцию.
Изменение протокола и канала устройства Атол
В зависимости от модели устройства Атол, его настройки могут отличаться.
Далее рассмотрим подключение Атол к ПК на примере Fprint 22 .
Таким образом, вы сможете выбрать для кассового аппарата Атол необходимый канал и протокол обмена. Попробуйте изменить их, если появляется ошибка подключения оборудования 999 в кассовом устройстве Атол. В противном случае, при неудачно подключении, попытайтесь обратиться в техническую поддержку или к системному администратору.
БП, ред 3, в режиме терминала, ОС Вин 2008R2. Пытаюсь подключить ЭДО. Установил VipNet. Заполнил заявление на выпуск нового сертификата. При попытке распечатать текст заявления было предложено установить некую внешнюю компоненту. Нажал ОК -> Компонента успешно установлена, а потом выдало ошибку:
Не удалось выполнить операцию по причине:
Ошибка вызова метода внешней компоненты
Возможно, операция отменена или завершилась неудачей в программе электронной подписи.
Повторите попытку.
Разумеется, повторение попыток ни к чему не привело.
В чем проблема?
Компонента вроде бы регистрируется, для чего нужны права посерьезнее юзерских. Запустите 1С под админом
Пробовал локально на сервере под серверным админом. не помогло.
(0) обращайся к вендору компоненту. Ни слова не сказал - что за компонент, а тут телепаты все в отпуске
Так и мне никто не сказал, что за компонента.
Вот я и надеялся на тех, которые в отпуске.
Эта компонента сама регистрируется при входе в места, которые требуют криптопровайдера. Например в Отчеты - Регламентированная отчетность. 1С-ка сразу лезет проверять, на месте ли криптопровайдер и если видит его установленным на компе, то ставит какую-то компоненту )для випнет своя, для крипто про - своя). В принципе, можете зайти в Отчеты - Регламентированные отчеты - Дополнительные настройки обмена и эта компонента где-то там. Но всегда она ставилась сама без каких-либо манипуляций. Главное тут - админские права на 1С и админские права на винду. Еще возможно, что вы випнет установили, но не заходили в него, он при запуске там опрашивает носители, подписи и все такое. И еще - какой именно випнет вы установили. Версия? Случайно не бета-версию 4.5?
Установлена некоторое время назад и не использовалась. А сейчас я запросил серийный номер, мне прислали его, зарегистрировалась без проблем. 1С ее видит: в разделе Программы она есть.
Попробовал 4.2 - на сайте написано, что не совместимо с программами Касперского (на сервере стоит антивирус); рекомендуют использовать 4.5. В итоге поставил 4.5, все заработало, ключ сформировался.
При этом Диагностика ЭДО пишет "Программа криптографии не установлена на компьютере". А в настройках электронной подписи на закладке Программы - VipNet установлен.
(9) Та же самая проблема с крипто про, в настройках ЭДО все установлено и ключи видит, при попытке просмотра ЭДО из документа, не установлена крипто программа, куда копать, пока не нашел
Никто не подскажет в чем проблема, куда копать? в программах и настройках учетных записей - крипто про работает, при попытке сформировать документ По ЭДО - крипто програама не установлена - установите
DriverUnitServer 1с Ошибка вызова метода внешней компоненты
DriverUnitServer 1с Ошибка вызова метода внешней компоненты
Пытаюсь работать с драйвером для 1с DriverUnitServer, при попытке вызова ProcessCheck получаю "Ошибка вызова метода внешней компоненты", вот xml в ДанныеЧека:<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters PaymentType="1" TaxVariant="2" CashierName="system" CashierVATIN="753700356908"/>
<Positions>
<FiscalString Name="Стеклокерамическая панель" Quantity="1" PriceWithDiscount="700" SumWithDiscount="700" DiscountSum="0" Department="1" Tax="none" TaxSum="0" SignMethodCalculation="4" SignCalculationObject="1"/>
</Positions>
<Payments Cash="700" ElectronicPayment="0" Credit="0" AdvancePayment="0" CashProvision="0"/>
</CheckPackage>
БПО стандартного на конфигурации нет, все вызовы собираю сам, по документации и подсматривая в БПО. Чего-то видимо не вижу А перед эти проинициализировали (SetParameter) компоненту параметрами?
Все параметры передали?
"Open" делали? Дело в том что чек выводится, переключил эмулятор в обычный режим и увидел. БПО ведет себя аналогично: выводит чек и говорит: При выполнении операции произошла ошибка: Ошибка вызова метода <ОбъектДрайвера.СформироватьЧек>.
: Ошибка при вызове метода контекста (СформироватьЧек): Ошибка вызова метода внешней компоненты
Перепроверил драйвер, все работает.
Можете прислать базу с обработкой на проверку?
Попробовал вставить снимок экрана
Драйвер в БПО загружали или тестировали на том что в ней было?
Еще: удалите файл C:\Users\<user>\AppData\Roaming\1C\1cv8\ExtCompT\DriverUnitServer_x32.dll
(Может он старый, а 1с его не переисала)
И заново из 1с БПО установите драйвер.
Решение проблем с регистрацией внешних компонент в терминале
При этом пользователи видят, например, картинку представленную в анонсе статьи.
В то время как при работе с локальных компьютеров никаких проблем с подключением внешних компонент нет.
С чем это связано? Это связано с тем, что, когда пользователи работают через сервер терминалов, они имеют меньше прав, чем при работе на локальном компьютере.
В этом легко убедиться, если зайти на сервер терминалов под учетной записью с административными правами.
Причина такой разницы заключается в том, что 1С не может зарегистрировать внешнюю компоненту в реестре, когда пользователь работает в терминале под обычными правами, т.к. у обычного пользователя нет прав на запись в ветку системного реестра HKEY_CLASSES_ROOT.
В публикациях на тему подключения внешних компонент в терминале предлагаются самые разные методы решения этой проблемы.
1. Запустить первый раз 1С под административными правами.
Этот вариант далеко не всегда срабатывает. Ниже объясню, почему.
2. Дать обычным пользователям терминала права на запись в ветку системного реестра HKEY_CLASSES_ROOT.
Недостаточно "продвинутым" пользователям лучше этого не делать, иначе могут быть проблемы.
3. С помощью различных "примочек" регистрировать ВК от имени пользователя с полными правами.
Тоже не есть хорошо.
Так как же все таки лучше выйти из этой ситуации?
Я предлагаю свой вариант решения этой проблемы. По моему мнению - простой и красивый, не предлагавшийся на лансере ранее.
Дело оказалось в том, что в типовых конфигурациях 1С (например "Управление Торговлей") используется такой синтаксис метода глобального контекста ПодключитьВнешнююКомпоненту():
ОбъектДрайвера = Новый ("AddIn.АТОЛСканер.Scaner45");
Как видим, ВК драйвера подключается из макета "ДрайверАТОЛСканерШтрихкода" справочника "ПодключаемоеОборудование".
Что же при этом происходит?
1С сохраняет компоненту во временной папке пользователя, например "C:\Documents and Settings\User\Local Settings\Temp\1032\v8_4_12.tmp"
и пытается зарегистрировать ее в ветке реестра HKEY_CLASSES_ROOT именно по этому пути.
На терминале у обычных пользователей нет прав на изменение этой ветки реестра, поэтому компонента у них не подключается.
Теперь о том, как выйти из этой ситуации.
Метод глобального контекста ПодключитьВнешнююКомпоненту() имеет несколько вариантов синтаксиса. Вот этим мы и воспользуемся.
Итак, по шагам:
1. Регистрируем внешнюю компоненту утилитой regsvr32.exe на сервере терминалов в папке C:\WINDOWS\SYSTEM32 для 32-разрядной ОС или в папке C:\WINDOWS\SYSWOW64 для 64-разрядной ОС.
2. Используем один из двух дополнительных вариантов синтаксиса метода ПодключитьВнешнююКомпоненту():
Вариант 1:
ОбъектДрайвера = Новый ("AddIn.АТОЛСканер.Scaner45");
Вариант 2:
ОбъектДрайвера = Новый (ProgID);
На мой взгляд, вариант № 2 предпочтительнее.
При этом 1С не пытается перерегистрировать ВК по новому пути в реестре и таким образом, все проблемы решаются.
После инсталляции комплекта драйверов DriverSetup.exe переходим в 1С.
Подключение стандартное через Администрирование / Подключаемое оборудование / ККТ с передаче данных
Драйвер ищем в каталоге C:\Program Files (x86)\1C KKT Driver , находим KKTDevice.zip и устанавливаем стандартно
Важный нюанс : Тест успешно выполнен - это не означает , что кассатка хоть как-то отвечает на команды. Это означает , что 1С честно послала запрос и возможно даже не получила ответ.
Не найден обработчик запрошенного объекта - вот это похоже в ответе кассы ничего нет, то есть ответа от кассы нет.
На скрине есть важная деталь C:/KktDriver/1c1c.crt и C:/KktDriver/1c1c.key , которых физически нет на диске.
Откуда ссылки на эти файлы появились неведомо. Эти поля сертификата и ключа надо обязательно убрать !
Открытие / закрытие смены делаем только в пакетном режиме
При открытии смены печатается "Используется стандарт подключения драйверов, поддерживающий формат фискальных документов версии 1.0. Возможно некорректное формирование чеков. Необходимо обновить драйвер ККТ." - ЭТО НОРМАЛЬНО!
И следом "Операция успешно завершена."
Проверяем стандартные функции пробития чеков
Делаем розничную продажу за наличные например:
Чек печатается стандартно
Единственно смену пришлось предварительно открывать вручную на кассе и закрывать в конце дня тоже вручную.
Примечание : Работу проверяли на Тестовом ФН , под Windows 10-64, 1С 64 разряда. Драйвера Кассатки 32 разрядные.
Возможные ошибки
Проверка связи с кассой
"Таймаут при обращении к удаленному ККТ (9)" - это понятно , когда касса не отвечает
"Не найден обработчик запрошенного объекта (13)" - это драйвер Касатка в 1С не знает , что делать с ответом.
"Прочие ошибки ()"
"Успешно выполнено (0)" - вот это то, что НАДО (но есть нюанс , если указать выдуманный ip получим такой же результат. )
При открытии смены (пакетный режим):
При выполнении операции произошла ошибка: Ошибка вызова метода <ОбъектДрайвера.ПолучитьПараметрыККТ>.
: Ошибка при вызове метода контекста (ПолучитьПараметрыККТ): Ошибка вызова метода внешней компоненты
В конфигураторе по слову ПолучитьПараметрыККТ находим ОбщийМодуль.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.Модуль(652) . Ставим точку останова и идет отладчиком.
Здесь получаем лажу Результат =false:
Результат = ОбъектДрайвера.ПолучитьПараметрыККТ(ПараметрыПодключения.ИДУстройства, ПараметрыККТ);
ОбъектДрайвера = AddIn.KKTDeviceExtention.KKTDeviceExtention - (это правильно, так и должно быть)
ПараметрыПодключения.ИДУстройства = "1549982963" - это уникальный номер , генерируется автоматически
ПараметрыККТ = "" (сюда компонента помещает ответ , "" - НЕ ДОЛЖНО БЫТЬ)
Вот примерно правильный ответ, ПараметрыККТ =:
Причина ответа компоненты ПараметрыККТ ="" - была в полях сертификата и ключа , их надо обязательно убрать!
Дополнения
Также можно работать и по ETHERNET порт 3333 без проблем.
При всех работающих настройках при проверке связи возвращалось :
Тест успешно выполнен. Успешно выполнено (0)
Но также это возвращается и при указании ошибочного ip или порта.
Читайте также: