Не удалось загрузить компоненту lp45 dll
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
Добрый день. обновили сегодня релиз конфигурации до последней и перестала работать одна из касс, пишет
Обработчик для оборудования GUID не загружен.
Требуется обновление схемы устройств и перезапуск 1С-Предприятия.
в меню сервис - параметры не появляется закладка драйвер ФР, хотя он установлен
тест драйвера оборудование проходит
вобщем изучив как работает этот механизм нашел странный дефект, при выполнении функции ТорговоеОборудование.ОбновитьТаблицуОбработчиков() в переменной ТаблицаЭкземпляровОборудования в строке этой ТЗ у нужного нам оборудования имя компьютера обрезается до 15 символов, а проверка идет по полному наименованию компьютера ( тут СтрокаТаблицы.Компьютер = ИмяНашегоКомпьютера) изза чего ничего не работало. сменил имя компьютера на более короткое и все заработало. странно канеш зачем это меняли, раньше все работало и с длинными именами компьютера
Цитата |
---|
Василий МД пишет: вобщем изучив как работает этот механизм нашел странный дефект, при выполнении функции ТорговоеОборудование.ОбновитьТаблицуОбработчиков() в переменной ТаблицаЭкземпляровОборудования в строке этой ТЗ у нужного нам оборудования имя компьютера обрезается до 15 символов, а проверка идет по полному наименованию компьютера ( тут СтрокаТаблицы.Компьютер = ИмяНашегоКомпьютера) изза чего ничего не работало. сменил имя компьютера на более короткое и все заработало. странно канеш зачем это меняли, раньше все работало и с длинными именами компьютера |
Добрый день.
Спасибо за подсказку.
Описание проблемы передано разработчикам.
На начальном этапе установлено, что ранее было задано ограничение реквизита в справочнике = 30 символов, и пока это порядок не изменялся. На каком этапе происходит обрезание длины до 15 символов, пока не удалось выяснить. Необходимо детальное разбирательство в этом вопросе.
Не могли бы Вы предоставить Имя компьютера, с которым возникала ошибка?
При попытке воспроизвести ошибку в момент задания более длинного имени для рабочей станции получили предупреждение от системы Windows (см. скриншот ниже). Т.е. не рекомендуется задавать имена длиннее 15 символов. Также наши системщики напоминают что есть и другие ограничения (также придуманные не нами, а в Microsoft) :
- не следует в качестве первого символа использовать цифру
- не следует использовать не латинские символы
- рекомендуется всегда использовать различные имена для пользователей и компьютеров
(например, petrov и petrov-pc)
предупреждение это хорошо, но ОС на том компьютере windows XP SP3 и это имя было назначено самой ОСью при установке. потом сидеть изучать код в поисках причины не подключения оборудования в альфа-авто
то что в одном случае у вас берется нетбиос имя, а для проверки совсем другое, это другой вопрос. разбираться дальше в проблеме нет интереса, проблему я для себя решил + создал тему для остальных кто напорится на такую же проблему
Цитата |
---|
Василий МД написал: в переменной ТаблицаЭкземпляровОборудования в строке этой ТЗ у нужного нам оборудования имя компьютера обрезается до 15 символов, а проверка идет по полному наименованию компьютера ( тут СтрокаТаблицы.Компьютер = ИмяНашегоКомпьютера) из-за чего ничего не работало. |
Ошибка сформулирована очень неопределенно. Кроме GUID оборудования желательно указывать ИмяНашегоКомпьютера. Тогда причина ее возникновения была бы понятна. А так хоть сколько делай:
Цитата |
---|
Требуется обновление схемы устройств и перезапуск 1С-Предприятия. |
не поможет!
У меня по другой причине имена компьютеров поменялись, все работают в терминальном режиме вроде как под одним именем компьютера, которое у сервера. Схема компьютеров Альфа-Авто в терминале не работает, в справочнике Компьютеры лишь один Сервер. Оборудование по базе Альфа-Авто вроде тоже все на сервере, а на самом деле на локальных компьютерах. Поэтому возникают трудности с подключением оборудования. Например, если пытаются подключить онлайн-кассу с другого компьютера, когда компьютер с ФР еще не включен, или не вошел в терминал (свой порт с ФР не пробросил на сервер), то эта попытка будет неудачной. И самое печальное порт будет испорчен. Даже после при подключении с компьютера с ФР будет ошибка "Порт недоступен". Эта ошибка необратима, ее не сбросит перезагрузка СЗиУО ( Windows службы защиты), только перезагрузка всего сервера может ее сбросить.
Определить настоящее имя компьютера позволяет функция http://expert.chistov.pro/public/392980/ ПолучитьИмяКомпьютераТО(). Применив его в функции ПервоначальнаяИнициализация(), в ПараметрыСеанса.Компьютер будет правильное значение. Но приводит к упомянутой ошибке. Требуется не обновление схемы устройств, а переустановка оборудования по своим локальным компьютерам (либо временно до переустановки в переменную ИмяНашегоКомпьютера подставлять имя компьютера из справочника оборудования).
Но восстановление правильных имен компьютеров не решают автоматически проблему ошибки "Порт недоступен". Бывают случаи, когда пытаются подключить оборудование с нужного компьютера, но оборудование забыли включить (питание), или по какой-то причине порт не пробросил на сервер. Любая 1С (даже версии 7.5) определяет доступность порта с подключенным оборудованием, и в Сервис/Параметры добавляет вкладку Свойства. Как реализовать такую проверку программным способом я пока не нашел. Может подскажет кто из знающих специалистов? Буду благодарен.
Цитата |
---|
Михаил Волков написал: Любая 1С (даже версии 7.5) определяет доступность порта с подключенным оборудованием, и в Сервис/Параметры добавляет вкладку Свойства. Как реализовать такую проверку программным способом я пока не нашел. |
Функция ПроверкаСвязиФР() решила проблему необратимой ошибки "Порт недоступен".
Но теперь возникла следующая ситуация: пользователь в ПКО ставит галку "Для пробития на фискальном регистраторе", сразу идет проверка статуса ФР "Включено" (если нет, то эта проверка связи ФР) - все ОК, открывается Фронт кассира, на нем жмет кнопку "Отбить чек", запускает функцию ВыполнитьКомандуОборудования(). И она выдает код ошибки: -11 "Устройство не включено"!? Как формируется эта ошибка посмотреть не могу, ее выдает "черный ящик" Рарус_Компонента.ЗаказатьВыполнениеДействияСинхронно(). Предполагаю, что выполнив в обработке ТорговоеОборудование команду ВключитьОборудование(), состояние ФР запомнилось СЗУО, и более не проверяется. Тем не менее ФР по какой-то причине успел отвалиться (или "не совсем" подключился). А подключить ФР заново уже не получается. В функции ВключитьОборудование() есть такой фрагмент:
Цитата |
---|
Любая 1С (даже версии 7.5) определяет доступность порта с подключенным оборудованием, и в Сервис/Параметры добавляет вкладку Свойства. Как реализовать такую проверку программным способом я пока не наше |
Это абсолютно неверно! Ни одна версия платформы 1С никогда не имела никаких функций для работы с COM-портами. На закладке сервис-параметры добавляются формы загружаемых внешних компонент. Например, компоненты драйвера сканера штрихкодов или фискального регистратора
Цитата |
---|
Игорь Стовпец написал: На закладке сервис-параметры добавляются формы загружаемых внешних компонент. Например, компоненты драйвера сканера штрихкодов или фискального регистратора |
Добавлю к сказанному Вами: в случае фискального регистратора на этой вкладке появляется возможность проверки состояния COM-порта кнопкой "Проверка связи".
Представленная выше мною функция ПроверкаСвязиФР() имитируется нажатие этой кнопки, и проблема необратимой ошибки "Порт недоступен" в основном решена.
По поводу ошибки с кодом -11 "Устройство не включено" возник вопрос о совместном использовании оборудования . Анализируя события по оборудованию в ЖР (журнале регистрации) заметил, что ФР отваливается (возникает эта ошибка) после завершения работы некоторых пользователей, в ЖР фиксируется событие: "Оборудование.Выключить, ОК Состояние: Выключено". Возникло подозрение, что при выходе из Альфа-Авто пользователь отключает все оборудование не только в своей сессии, но и у остальных пользователей тоже. Такое возможно?
Подключение кассы / фискального регистратора к 1С 7.7 через драйвер Атола v10.
(2243) Насколько полная поддержка и насколько быстро она будет успевать за изменениями в ДТО10? Есть полноценная поддержка данной обертки для типовых конфигураций 1С 7.7 или нужно писать самостоятельно обработки обслуживания? Не повредит ли лишняя "прослойка" работе с драйвером Атола из 1С 7.7 в плане появления недокументированных (неизвестных) ошибок или в результате зависимости от автора данной "обертки", в т.ч в виде прекращения развития данной обертки ее автором?
Почему не удалось это сделать автору данного решения? Стандартный драйвер ДТО10 работает в 1С 7.7 с полной поддержкой функциональности при использовании оригинальной обертки Атол (подтверждением тому является решение ). В чем же тогда преимущества данной обертки перед использованием родной обертки от стандартного драйвера Атол в 1С 7.7, которая обновляется одновременно с выходом новой версии ДТО10?
(1) Стандартный драйвер Атол v10 в 1Cv7 не работает , поэтому пришлось доработать запуск стандартного драйвера Атол v10
Ваше решение работает только с 8й версией драйвера, 10 - заявлено, но не работает. (в комментариях к обработке много об этом пишут. )
В Вашем решение принципиально неправильный алгоритм работы.
Поэтому плюсы этого решения - Простое и понятное с минимальными доработками.
(2) Если у вас не хватило умений или таланта подключить ДТО10 в 1с 7.7 это вовсе не означает, что он не работает у других. В комментариях писали те, кто невнимательно изучил инструкцию по подключению, но и у них уже работает после исправления их ошибок.
В нашем решении заявлено, что работает драйвер ДТО10 с 1С 7.7 и он на самом деле работает, полностью поддерживая все новые теги, чек коррекции и прочее.
(4) Виктор, считаю, что Вы абсолютно неправы, талант в следовании инструкции совсем не нужен.
То что вы продаете разработку, которая по умолчанию нарушает закон - это на вашей совести
Ко второй относятся настройки связи с ККТ.
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. Пришлось конечно повозиться, но всё работает штатно и без костылей.
А вам рекомендую внимательно читать инструкции, чтобы не писать потом:
(12) Это вы рекламируете себя, что умеете хорошо читать инструкцию? )))
Инфостарт не место для разбора вашего поведения, если вы не замечаете - обратитесь к специалистам.
(14) После таких слов даже не возникает желания помогать и отвечать.
Наверное, пост (13) я создал зря.
Эту ветку больше не мониторю.
Для таких случаев драйвер содержит другие методы:
используем getParamString, т.к. getParamByteArray 1С 7.7 не поддерживает.
Обещал не мониторить, но всё-таки отвечу: что не так в моем поведении, и что конкретно Вы ожидали от меня после многочисленных и необоснованных обвинений с Вашей стороны?:
- Стандартный драйвер Атол v10 в 1Cv7 не работает
- Ваше решение работает только с 8й версией драйвера, 10 - заявлено, но не работает.
- В Вашем решение принципиально неправильный алгоритм работы.
- вы продаете разработку, которая по умолчанию нарушает закон
- Ваша обработка нарушает правила оформления чеков .
- Вы не обманываете, а не договариваете = скрываете истину.
и т.д.
Несостоятельность Ваших обвинений я объяснял на примерах и своем опыте, также просил разъяснить в чем именно мои нарушения состоят.
Однако в ответ не получил от Вас ни обоснований Ваших лживых обвинений, ни извинений.
Зачастую у программистов возникают проблемы с подключением внешних компонент (например, драйверов торгового оборудования), когда пользователи работают с 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С не пытается перерегистрировать ВК по новому пути в реестре и таким образом, все проблемы решаются.
Ну вот собственно и все. Успехов в работе!
Специальные предложения
В то время как при работе с локальных компьютеров никаких проблем с подключением внешних компонент нет.
Глубоко ошибаешься. В путних сетках и тут проблемы, потому что в путних сетках и локальных административных прав у юзверя быть не должно. А то они там нарегят/наинсталлируют!
Там и софт по минимуму, все что нужно - в терминале. :)
Но, если так необходимо, то, думаю, на локальной машине данная методика также будет работать, т.о. "ложка не существует". :)
Очередной баян для новичков в работе с внешними ВК.
Со времен 77 здесь ничего не изменилось :)
Но за изложение плюсую.
Ничего не изменилось говорите?
Вы хоть в сути описанной в статье проблемы разобрались?
Разве в 77 внешние компоненты хранились в макетах справочников?
Разве 77 сохраняла их во временном каталоге пользователя и пыталась их потом там зарегистрировать?
(6) А если еще подумать?
В 77 также были случаи неверной регистрации ВК - например, Админ в терминале заходит в одну базу и регистрирует ВК из каталога базы, а пользователь, у которого эта ВК юзается, но в другой базе, не может запустить эту ВК, если у него прав на папку с первой базой :(
Поэтому, например, для нормальной работы в 77 и придумано куча решений - тот же вариант с RunAs или загрузка обычных ВК через спец.ВК от Саши Орефкова и т.п.
Я же говорю - по работе с ВК ничего не изменилось!
А описанные проблемы - это проблемы прикладного кода, в частности, кода по работе с торговым оборудованием.
Разработчики этого кода либо не знали о сабжевой проблеме, либо пренебрегли ей :(
ЗЫ кстати, в 77 ВК также можно было хранить в макетах, правда, с использованием доп.ВК :)
ЗЗЫ а еще обрати внимание - плюс-то я тебе все-таки поставил :)
Вот это по моему мнению как раз и есть "париться" - т.е. разобравшись в сути проблемы только наполовину, искать обходные пути для ее решения.
Вот это по моему мнению как раз и есть "париться" - т.е. разобравшись в сути проблемы только наполовину
Ага, наполовину. Суть проблемы элементарна - отсутствие прав.
Ссылка раз и навсегда решает проблему того же regsvr32 БлаБла у любого юзверя выполнением RunAs от имени пользователя с админскими правами.
Ну-ка расскажи в чем ты там ПОЛНОСТЬЮ разобрался?
На терминале у обычных пользователей нет прав на изменение этой ветки реестра, поэтому компонента у них не подключается.
.
Итак, по шагам:
1. Регистрируем внешнюю компоненту утилитой regsvr32.exe на сервере терминалов в папке C:\WINDOWS\SYSTEM32 для 32-разрядной ОС или в папке C:\WINDOWS\SYSWOW64 для 64-разрядной ОС.
Ну в чем профит-то? В том что вы взяли её и зарегистрировали? Явно кто-то в чем-то полностью переразобрался.
Не понял смысл статьи.
Админ и так знает, как зарегистрировать dll-ку, у 1Сника при нормальном распределении обязанностей нет никаких прав на серваке.
Вот именно - отсутствие прав это вторая половина проблемы.
А первая и основная половина состоит в том, почему 1С пытается перерегистрировать ВК, и как этого избежать.
Потому что не надо использовать (в т.ч. и фирме 1С) дебильную ПодключитьВнешнюю.. с разными там синтаксисами,
а надо использовать ЗагрузитьВнешнююКомпоненту(ПолныйПутьКДЛЛ), а либы лучше всего хранить в КаталогПрограммы(), либо (для файлухи и 7.7) в КаталогИБ()
cool.vlad4 пишет:
Ну в чем профит-то? В том что вы взяли её и зарегистрировали? Явно кто-то в чем-то полностью переразобрался
Не спешите с выводами не разобравшись.
Дело в том, что вы ее хоть сто раз зарегистрируйте, но если вы оставите без изменений типовой код,
1С будет безуспешно пытаться ее перерегистрировать снова и снова.
(12) Не спешите с выводами, по поводу того, что я спешу с выводами не разобравшись. В типовой так сделано, потому, что ребята делали универсально, они не могут сидеть за вашим компьютером и регистрировать от имени администратора компоненту, не зная пароля тем более. А админы прекрасно об этом знают и ручками зарегят или скрипт напишут(run as). А ваша статья просто кэпство, но самое противное - преподносится как доселе неведомое чудо.
Ну что тут сказать? Значит невнимательно читали статью, или никогда не сталкивались с такими проблемами.
Конечно, админ знает, как зарегистрировать dll-ку.
Он ее и регистрирует. Но потом оказывается что у рядовых пользователей она в терминале не подключается.
Вот в чем суть проблемы то!
У вас видимо патологическое отвращение к чужим разработкам.:)
Конечно, это не чудо. Но тем не менее, я когда столкнулся с этой проблемой, нигде в инете не нашел объяснения причин этой проблемы. Везде освещалась только вторая часть проблемы (недостаток прав на реестр) и способы ее обхода. И нигде не говорилось об основной части проблемы - почему 1С пытается перерегистрировать ВК по новому пути.
Согласен, не спорю. Спасибо.:)
artbear пишет:
А описанные проблемы - это проблемы прикладного кода, в частности, кода по работе с торговым оборудованием.
Разработчики этого кода либо не знали о сабжевой проблеме, либо пренебрегли ей :(
Совершенно верно. Но рядовому программеру от этого как бы не легче.
А эта статья конечно не претендует на какую-то особенность и гениальность.
Это просто статья человека который столкнулся с проблемой, и не нашел приемлемого для себя метода ее решения в инете.
Это попытка самостоятельно разобраться в проблеме и поделиться своим решением с другими - быть может сэкономив кому то время на решение аналогичных проблем.
Здесь есть одно большое НО.
А мне нужно было подключать сканер штрих-кодов в ТОНКОМ клиенте.
(19) сканер штрих-кода успешно подключается в тонком клиенте, пример реализации можно посмотреть в УПП 1.3, в последних двух релизах
А скажи на милость: на фига в ТЕРМИНАЛЕ еще и тонкий клиент?
Терминал сам по себе уже тонким клиентом является
Abadonna пишет:
А скажи на милость: на фига в ТЕРМИНАЛЕ еще и тонкий клиент?
Терминал сам по себе уже тонким клиентом является
Ну, тут уж как бы наше руководство так решило для единообразия.
Как пел Высоцкий, "Жираф большой - ему видней".:)
Все работают с 1С в тонком клиенте управляемого приложения.
Чтобы можно было и через терминал подключаться и просто с локальной машины.
fishca пишет:
сканер штрих-кода успешно подключается в тонком клиенте, пример реализации можно посмотреть в УПП 1.3, в последних двух релизах
Пример реализации я брал из УТ11.
Он то конечно подключается, если у пользователя достаточно прав на запись в ветку реестра .
А вот если у пользователя недостаточно этих прав, тогда и начинаются проблемы которые описаны в этой статье.
После выполнения regsvr32 весь код укладывается в одну строку:
ОбъектДрайвера = Новый COMОбъект("AddIn.Scaner45");
Чтобы не быть голословным - рис.
(24)
"После выполнения regsvr32 весь код укладывается в одну строку:
ОбъектДрайвера = Новый COMОбъект("AddIn.Scaner45"); "
А страница свойств компоненты появится при таком подходе ?
Abadonna пишет:
После выполнения regsvr32 весь код укладывается в одну строку:
ОбъектДрайвера = Новый COMОбъект("AddIn.Scaner45");
Ну, раз говоришь что работает, верю.
Хотя мне это кажется странным. По идее не должно было.:)
Именно, что должно . :)))
Это как раз стандартное обращение к зарегенным в реестре интерфейсам COM, Active-X
В 7.7 это было бы так: Lib=СоздатьОбъект("Miracle.VCL")
В Дельфи: Lib:=CreateOleObject('Miracle.VCL')
И в любой другой виндовой хрени аналогично ;)
Да, но в 7.7 перед этим вызывался метод ЗагрузитьВнешнююКомпоненту("FormEx.dll");
Без этого СоздатьОбъект() не работало.
Ладно, начнем ликбез по порядку :))))
1. ЗагрузитьВнешнююКомпоненту от 1С - как раз и производит регистрацию в реестре интерфейса соотвествующей либы, написанной по технологии создания внешних компонент от 1С (ТСВК). Вот именно в этом случае, и возникает трабла с правами на запись в реестр, неважно в каком месте: на терминале или локальном компе
2. СоздатьОбъект - уже и создавала (в аналогии 8.2) Новый COMОбъект по указанному progid
В 8.2, как в обычной виндовой программе, все точно так же.
Если ЛЮБАЯ ВК написана по технологии COM и предварительно зарегена через regsvr32 (т.е. уже есть progid), никаких
Подключить/ЗагрузитьВнешнююКомпоненту уже не надо ни в 7.7, ни в 8.2.
В моем примере выше либа для 7.7 писалась не по ТСВК, она обязательно требовала regsvr32, но при этом совершенно не понимала никаких Подключить/ЗагрузитьВнешнююКомпоненту
+(29) А FormEx.dll - вообще супер-специфичная либа, там Лёха залез в самое нутро 1С, последние её версии вообще в реестре следов не оставляют, и ЗагрузитьВнешнююКомпоненту("FormEx.dll") пройдет всегда, у любого юзверя, с любыми правами
УТ 10.3. Платформа 8.2.13.202. У меня при настройке перенаправленого в терминальный сервер торгового оборудования выпадает 1С при тестировании драйвера. Однако если на это не заморачиваться, то Интерфейс Кассира работает и чеки пробиваются. Может кому-то пригодится, т.к. мы очень долго не понимали в чем дело и не пробовали пробить чек из Интерфейса Кассира ))))
В описанном мной случае проблемы возникали когда ВК хранится в макете справочника.
При подключении она сохраняется во временный файл временного каталога пользователя.
Поэтому для использования RegsvrEx нужно знать полный путь к этому временному файлу.
Ну а вообще использование нескольких дополнительных разработок вместо стандартного
типового механизма и маленькой правки кода не кажется мне оптимальным.:)
(33) Смею заметить, ничего против Вашей публикации не имею :). "стандартный типовой механизм" не всегда вставляет, иногда своя реализация кажется более универсальной :).
Спасибо за просвещение, а то у БиТ купили продукт, а они используют свой сервер лицензий, и для этого пытаются регистрировать внешние компоненты, до сих пор приходилось делать запуск под Админом, теперь попробуем переписать чтобы было по человечески.
Спасибо за статью. Столкнулся с аналогичным случаем при работе с эмулятором фискального регистратора. Конечно же лучше запускать 1С через тонкий клиент с машины к которой подключено оборудование, но некоторые клиенты настаивают на использовании терминала ( тем более если фискальный регистратор виртуальный - используется эмулятор). Почему-то после обновления УТ11 до 11.1 вдруг 1С стала просить драйвера на эмулятор фискального регистратора, хотя сканнер штрих-кодов продолжает прекрасно работать.
Добавил бы уточнения к алгоритму решения этой проблемы: ( которые кстати подчерпнул из вашего же комментария только в другом форуме )
В общих макетах лежат драйвера различного оборудования. Там собственно и хранилась нужная мне dll.
Щелкаем на этом макете и нажимаем кнопочку "Выгрузить в файл".
Файлу даем любое имя и расширение zip.
Открыв архив видим несколько файлов, в том числе нужный мне FPEmulator1C.dll. Распаковываем и копируем его в зависимости от разрядности windows в папку для 32х - C:\Windows\Sysytem32 , для 64х - C:\Windows\SysWOW64.
Запускаем Пуск/Все программы / Стандартные / Командная строка - только правой кнопкой мыши вибираем "Запуск от имени администратора" . В командной строке переходим в нужную папку (C:\Windows\Sysytem32 или C:\Windows\SysWOW64 ).
В командной строке - cd C:\Windows\Sysytem32
Пробуем регистрировать его с помощью команды regsvr32.exe .
В командной строке - regsvr32 FPEmulator1C.dll
Если все успешно тогда переписываем код в конфигурации в соответствии со статьей.
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
Добрый день.
Управление автотранспортом, редакция 3.0 (3.0.18.1)
Платформа 1С:Предприятие 8.3 (8.3.18.1289)
Серверная MSSQL.
При создании новых рабочих мест на одинаковых компьютерах Win10
на некоторых компьютерах подключение к базе данных УАТ прошло успешно, а на некоторых появляется ошибка
///
Произошла ошибка при загрузки компоненты из каталога "D:\UAT\"
Текст ошибки: Не удалось загрузить компоненту D:\UAT\V8UAT.dll
: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту); Ошибка при загрузке внешней компоненты
ЗАПУСТИТЬ МАСТЕР НАСТРОЙКИ СИСТЕМЫ ЗАЩИТЫ?
///
1. Попытка запустить под администратором
2. Попытка запустить под администратором с разрядностью 32 и 64
3. Попытка подменить файлы с компьютера с успешной загрузкой
4. Попытка подменить файлы с компьютера с успешной загрузкой с созданием block.tmp и добавлением в него v8uat.dll
5. Попытка ручной регистрации v8uat.dll с использованием утилиты regsvr32
6. Попытка изменить каталог хранения файлов с C:\ProgramData\Protect\LocalProtect на D:\UAT
Содержимое каталога компьютера с ошибкой:
14.03.2007 05:51 581632 1CBarCod.dll
02.09.2021 11:07 8176 config.xml
20.05.2013 17:47 5574306 RarusFirstStartSetup.exe
02.09.2021 13:41 661504 SUv10.exe
03.10.2011 06:37 4373504 V8UAT.dll
Содержимое каталога компьютера без ошибки:
14.03.2007 07:51 581632 1CBarCod.dll
14.03.2007 07:50 184587 1CBARCOD.HLP
02.09.2021 13:07 8176 config.xml
02.12.2010 13:50 4020736 ConfUtil3.exe
04.08.2014 21:17 12 LicServer.ini
20.05.2013 19:47 5574306 RarusFirstStartSetup.exe
11.11.2011 06:28 2069504 Setup.exe
02.09.2021 15:47 661504 SUv10.exe
16.05.2017 12:29 768 UnInstall.ini
03.10.2011 08:37 4373504 V8UAT.dll
02.12.2010 13:50 18944 _Updater.exe
Запуск утилиты ConfUtil3.exe на любом компьютере показывает список имен компьютеров без ошибки.
Имя компьютеров с ошибками не появляется.
Сведения о подключении на компьютере без ошибки
Серверный (сжатие: усиленное)
Толстый клиент
Текущая:
Сетевой HASP4 ORGL8 100, выдал сервер
Локальный HASP4 EN8SA 1
Информационная база:
Сетевой HASP4 ORGL8 20
Локальный HASP4 ORGL8 1
Локальный HASP4 ORGL8 10
Сетевой HASP4 ORGL8 50
8100ХХХХХХ Адрес
8100ХХХХХY Адресс
Локальный HASP4 ORGL8 50
Прошу проконсультировать по устранению ошибки.
С уважением, Дмитрий.
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
Ошибка загрузки компоненты управления оборудованием, Ошибка загрузки компоненты управления оборудованием: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту)
Альфа-Авто:Автосалон+Автосервис+Автозапчасти Проф, редакция 5
Имеется терминальный сервер S1 которому подключены с помощью удрабстола пользователи домена A и B. Пользователь домена A не испытывает никаких проблем при запуске Альфа-Авто. У пользователя домена B при запуске возникает ошибка "Ошибка при загрузке компоненты управления оборудованием: : Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту): ошибка при загрузке внешней компоненты".
Система защиты конфигурации Альфа-Авто установлена на этом же сервере S1. Права пользователей домена одинаковые (пользователь B создан копированием пользователя А в оснастке AD), доступ к папке C:\ProgramData\Protect\LocalProtect имеется для всех пользователей домена.
Пользователь B не может зайти в Альфа-Авто ни под одним пользователем Альфа-Авто, в том числе под Администратором Альфа-Авто. Также не помогает временное предоставление пользователю домена B прав администратора домена.
Прошу помочь в решении проблемы
При первом запуске программы необходимо зарегистрировать компоненту RarusEquipment.dll. Можно зарегистрировать разными способами.
Можно произвести первый запуск программы от имени администратора, для этого на иконке 1С открыть контекстное меню и выбрать пункт "Запуск от имени администратора".
Можно способами описанными ниже.
Цитата |
---|
Светлана Рожок пишет: При первом запуске программы необходимо зарегистрировать компоненту RarusEquipment.dll. Можно зарегистрировать разными способами. |
Это не первый запуск.
Причина не может быть в необходимости регистрации компоненты при первом запуске, т.к. на других серверах новый пользователь прекрасно входит без регистрации компоненты, которая регистрируется на компьютере, а не для конкретного пользователя, кстати.
Причины, видимо, глубоко уходят в область системного администрирования. Рецептов решения крайне мало и все они не помогают. Поэтому считаю важным предложить практически работающий способ. Прикрепляю 2 файла, содержимое которых также цитирую. Внести в реестр пользователя.
------------------
Windows Registry Editor Version 5.00
------------------
Windows Registry Editor Version 5.00
Добрый день!! Не помогает ни один из вариантов. У меня тоже самое, за исключением МодульОбъекта(25) и пользователи заходят, но без оборудования. Виндовс 8.1, платформа 8.3.5.1460, конфигурация Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1 (5.1.01.05). При этом при попытке перерегистрации компоненты через regsvr32 конфигурация вообще отказывается работать, пишет конфигурация оборудования не найдена 1% и бесконечный поиск - после перерегистрации помогает только переустановка платформы. Пробовал на более свежей платформе, но там еще докучи и ошибка потока при заходе в базу нескольких пользователей.
Обновлять конфигурацию пока побаиваюсь, понимаю, что дело тут совсем не в платформе и не в конфигурации, а в самом виндовсе, но никак проблему решить не могу. Причем есть в локальной сети один компьютер у которого все работает без ошибок с той-же самой операционной системой, но вот в чем разница непонятно.
Добрый день, Роман, уточните, пожалуйста, из какого релиза Вы ставили систему управления оборудованием?
Есть возможная причина всего этого. При установке виндовс в обязательном порядке была зарегестрирована учетная запись майкрософт под именем Техресурс. В дальнейшем учетную запись отключили (до установки 1С) и подключили локальную учетную запись USER. В итоге была проблема с доступом к базе по локальной сети, так как есть какая-то неразбериха с путями. Папка пользователя осталась называться как учетная запись майкрософт, то есть выглядит \users\Техресурс\Documents , а 1С искала базу по пути \users\user\documents\ - пришлось пути до базы прописывать на локальных компьютерах вручную. Возможно в этом вся проблема, но папку техресурс сейчас переименовать в user невозможно. Сам виндовс проверяли на целостность ситемы, все в норме.
Регистрировали вот эту компоненту RarusEquipment.dll При всем при этом, на компьютере где все работает, дополнительную перерегистрацию компоненты делать не потребовалось, все установилось по умолчанию, но установка виндовс там была несколько другой, там виндовс встал без учетки майкрософт, сразу на локального пользователя (установка виндовс была не чистая, а было обновление с ХР до 8.0 и далее до 8.1) и соответственно на этом компьютере все пути так сказать прямые, пользователь user и все личные папки тоже под этим же именем.
На данный момент решаю с майкрософт проблему переименования папки профиля пользователя, точнее уже решил (там администрирование+правка реестра). Сейчас выполню переустановку 1С проверю работоспособность, отпишусь.
В итоге справился своими силами. Не знаю что уж там у меня было не так, но технология с плясками такая получилась :
1.Из папки C:\ProgramData\Protect\LocalProtect удаляем файл config.xml .
2.Далее запускаем конфигурацию, появляется мастер настройки оборудования с вопросом установить оборудование или нет, ставим да, запрашивает рабочую папку (вот эту C:\ProgramData\Protect\LocalProtect) - оставляем по умолчанию.
3.Далее просит указать дистрибьютив с установочным диском ( у меня на жестком диске записан) и файлом установки оборудования EquipmentSetup.exe, который в папке Equipment.
4.Далее при нажитии кнопки закрывается 1С и пошла установка оборудования.
5.И вот теперь после установки оборудования я так думаю самое главное. Само оборудование я и раньше устанавливал-переустанавливал, результатов не было. Идея я так понял такая, что первый запуск надо делать с правами администратора при чем однократный. Запуск от имени администратора я сделал не с ярлыка рабочего стола (как делал раньше), а с файла C:\Program Files\1cv8\8.3.5.1460\bin\1cv8.exe - то есть запустил с папки установленной платформы и никаких ошибок больше нет. Теперь полет нормальный.
Добрый день!! Что-то все рано не так работает. На компьютере 2 базы. В одну базу входит нормально, в другую с отключенным оборудованием из под администратора, если без администратора вообще не может найти сервер лицензирования.
Читайте также: