Ошибка при создании объекта lpt драйвер error код 2

Обновлено: 04.07.2024

Подключение кассы / фискального регистратора к 1С 7.7 через драйвер Атола v10.

(2243) Насколько полная поддержка и насколько быстро она будет успевать за изменениями в ДТО10? Есть полноценная поддержка данной обертки для типовых конфигураций 1С 7.7 или нужно писать самостоятельно обработки обслуживания? Не повредит ли лишняя "прослойка" работе с драйвером Атола из 1С 7.7 в плане появления недокументированных (неизвестных) ошибок или в результате зависимости от автора данной "обертки", в т.ч в виде прекращения развития данной обертки ее автором?
Стандартный драйвер подружить с 1С 7.7 не удалось, поэтому пришлось писать COM обертку для драйвера. Почему не удалось это сделать автору данного решения? Стандартный драйвер ДТО10 работает в 1С 7.7 с полной поддержкой функциональности при использовании оригинальной обертки Атол (подтверждением тому является решение ). В чем же тогда преимущества данной обертки перед использованием родной обертки от стандартного драйвера Атол в 1С 7.7, которая обновляется одновременно с выходом новой версии ДТО10?

(1) Стандартный драйвер Атол v10 в 1Cv7 не работает , поэтому пришлось доработать запуск стандартного драйвера Атол v10

Ваше решение работает только с 8й версией драйвера, 10 - заявлено, но не работает. (в комментариях к обработке много об этом пишут. )
В Вашем решение принципиально неправильный алгоритм работы.

Поэтому плюсы этого решения - Простое и понятное с минимальными доработками.

(2) Если у вас не хватило умений или таланта подключить ДТО10 в 1с 7.7 это вовсе не означает, что он не работает у других. В комментариях писали те, кто невнимательно изучил инструкцию по подключению, но и у них уже работает после исправления их ошибок.

В нашем решении заявлено, что работает драйвер ДТО10 с 1С 7.7 и он на самом деле работает, полностью поддерживая все новые теги, чек коррекции и прочее.

(4) Виктор, считаю, что Вы абсолютно неправы, талант в следовании инструкции совсем не нужен.

То что вы продаете разработку, которая по умолчанию нарушает закон - это на вашей совести

(6) А в чем нарушение можете объяснить? Стало интересно. Если касса подключена по ethernet. То я так понимаю данное решение не подходит?

Ко второй относятся настройки связи с ККТ.

LIBFPTR_SETTING_PORT - способ связи с ККТ. Остальные настройки связи зависят от значения этой настройки. Может принимать следующие значения:
LIBFPTR_PORT_COM - работа с ККТ либо через физический COM-порт, либо через виртуальные COM-порт и TTY-файл. Доступно для Windows, Linux и Android. К данному каналу также относятся настройки LIBFPTR_SETTING_BAUDRATE, LIBFPTR_SETTING_BITS, LIBFPTR_SETTING_STOPBITS, LIBFPTR_SETTING_PARITY, LIBFPTR_SETTING_COM_FILE.
LIBFPTR_PORT_USB - работа с ККТ по USB. Доступно для Windows, Linux и Android. К данному каналу также относится настройка LIBFPTR_SETTING_USB_DEVICE_PATH.
LIBFPTR_PORT_TCPIP - работа с ККТ по TCP/IP (Ethernet, Wi-Fi). Доступно для Windows, Linux, Android и iOS. К данному каналу также относятся настройки LIBFPTR_SETTING_IPADDRESS и LIBFPTR_SETTING_IPPORT.
LIBFPTR_PORT_BLUETOOTH - работа с ККТ по Bluetooth. Доступно для Windows, Linux и Android. К данному каналу также относится настройка LIBFPTR_SETTING_MACADDRESS.

Или у других тоже не работает в 1С 7.7? Получается, они тоже обманывают окружающих?
И нужно использовать только вашу обертку для 1С 7.7?
;)

"Ошибка при создании объекта из компоненты C:\1C\test\addin_fptr10_x86.dll (отсутствует интерфейс IInitDone) "

Ваша обработка нарушает правила оформления чеков - посмотрите презентации во вложении
Вы не обманываете, а не договариваете = скрываете истину намеренно или потому что не знаете?

"Ошибка при создании объекта из компоненты C:\1C\test\addin_fptr10_x86.dll (отсутствует интерфейс IInitDone) "

По ссылке ошибка в коде - не нужно использовать метод ЗагрузитьВнешнююКомпоненту .

Если дойдете до поста (21) в той же теме, то увидете что решение было найдено:

Долго маялся с "addin_fptr10_x86.dll (отсутствует интерфейс IInitDone)"

Потом дошло, ее не надо пытаться подключить как ВК, достаточно зарегистрировать через regsvr32,
и обращаться к объекту "FR = СоздатьОбъект("AddIn.Fptr10"); "

Ваша обработка нарушает правила оформления чеков - посмотрите презентации во вложении

Что такое "правила оформления чеков"? Как именно нарушает? Где вложение с презентацией?

Вы не обманываете, а не договариваете = скрываете истину намеренно или потому что не знаете? Можно конкретику или детали вместо пустых и общих слов?

(10) ок, тогда еще проще.

Пример обработки для стандартного драйвера во вложении
Только как вы будете формировать чек корректировки со стандартным драйвером?
1С не поддерживает массив байтов, необходимый для открытия чека корректировки.

P.S. сможете ответить никого не оскорбляя и не ехидничая?
Если не сможете - лучше промолчите.

сможете ответить никого не оскорбляя и не ехидничая?

Вы меня ни с кем не перепутали? Дайте конкретные примеры, где я кого-то оскобрил или ехидничал.

Чек коррекции через ДТО10 в 1С 7.7 я реализовал в полном объеме для ФФД 1.05. Пришлось конечно повозиться, но всё работает штатно и без костылей.
А вам рекомендую внимательно читать инструкции, чтобы не писать потом:

Лет 10-15 назад параллельный порт был довольно востребованным интерфейсом для связи между устройствами. Сегодня производители различных устройств отдают предпочтение последовательным интерфейсам. Тем не менее, и сегодня LPT порт всё ещё можно встретить. А некоторые разработчики ещё пишут под него программы (или поддерживают написанные во времена расцвета параллельных интерфейсов). Но в компьютерах сейчас LPT порт – достаточно большая редкость. Существуют, конечно, платы расширения для компьютера, которые реализуют интерфейс LPT. Они в основном представляют собой платы на шине PCI. К сожалению, далеко не весь софт, который был написан для интегрированных в материнскую плату LPT портов, будет работать с LPT-PCI-платами.

1 Установка драйвера для работы с LPT портом

В приложенном архиве находятся две папки – для 32-разрядной и для 64-разрядной версий Windows. В одной из папок лежит файл InstallDriver.exe. Сначала запустите этот файл, он установит динамические библиотеки в систему. После этого компьютер следует перезагрузить.

Чтобы использовать предлагаемый драйвер, файлы inpout32.dll и inpoutx64.dll должны располагаться в одной директории с исполняемым файлом вашей программы.

2 Программный класс использования библиотек работы с LPT портом

Упомянутые библиотеки написаны не мной. Я предлагаю удобный класс-оболочку, упрощающий работу с данными библиотеками. Кроме того, автор библиотек в файле readme.txt сообщает, что его драйвер не поддерживает PCI устройства. Мне удалось его запустить для работы как с интегрированным параллельным портом, так и LPT портом, реализованном в виде платы расширения на шине PCI-Express. Причём порт отлично работает и на современной Windows10 x64, и на более старых системах.

Если мы посмотрим на список экспортируемых функций библиотеки inpout32.dll с помощью замечательного инструмента DLL Export Viewer от NirSoft, то увидим следующую картину:

Список экспортируемых функций библиотеки inpout32.dll

Список экспортируемых функций библиотеки inpout32.dll

Это список функций, которые мы можем использовать. Фактически все они используются в классе LPT, но реализация скрыта, и из публичных методов пользователю доступны только два метода и одно свойство (они рассматриваются чуть далее).

При инстанцировании класс сам определит, библиотеку какой разрядности ему использовать – inpout32.dll или inpoutx64.dll. Поэтому от пользователя не требуется никаких действий по инициализации или определения разрядности используемой dll. Вы можете сразу записывать или читать из LPT порта. Одно «Но»: если драйвер не установлен, обращение к любому из методов динамической библиотеки вызовет исключение, поэтому рекомендую использовать блоки Try…Catch для перехвата и обработки исключений.

Несколько примеров использования класса LPT.

Для определения, используется ли 64-разрядная версия драйвера (inpoutx64.dll при True) или 32-разрядная (inpout32.dll при False) (на самом деле, это знать не обязательно, класс использует именно ту библиотеку, которая нужна, но вдруг вам для чего-то понадобится это узнать из своей программы):

Для записи числа "123" в регистр контроля LPT порта вызовите из своего класса:

Для чтения одного байта из регистра данных LPT порта и чтения регистра статуса:

Здесь currentPort – адрес LPT порта. Причём, если у вас интегрированный LPT порт, то его адрес будет, скорее всего, 378h. А если у вас LPT порт на плате расширения, то адрес будет другой, например, D100h или C100h.

Чтобы узнать адрес LPT порта, зайдите в диспетчер устройств Windows, найдите раздел Порты COM и LPT, выберите используемый параллельный порт, и в окне свойств (щёлкнув по нему правой кнопкой мыши) посмотрите, какие ресурсы использует выбранный порт (необходимо брать первое значение из диапазона).

Ресурсы, используемые LPT портом, в диспетчере устройств Windows

Ресурсы, используемые LPT портом, в диспетчере устройств Windows

Например, в данном случае необходимо использовать номер порта C100.

Похожие материалы (по тегу)

Другие материалы в этой категории:

8 комментарии

Мне кажется, что для решения вашей задачи со сканером это решение не подходит, и запустить старый сканер не получится. Потому что придётся самому переписывать софт для сканирования. Ваша задача должна решаться как-то на уровне драйвера порта или той программы, которая используется для сканирования. Может быть, есть обновлённые драйверы для сканера с возможностью указывать адрес порта. А может проще найти старый комп, где на материнке присутствует LPT. Кстати, Asus до сих пор выпускает материнские платы с LPT под более-менее современные процессоры, например, модель H81M-C.

Спасибо тебе, добрый человек. Установка этого драйвера и замена inpout32.dll в директории исполняемой программы, помогли запустить софт, который ранее работал только на Win XP из под Win 10x64

Василий, рад, что помог!

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