обработчик для оборудования не загружен
Читают тему
Приобрести программные продукты, оборудование и литературу вы можете в Интернет-магазине.
{{userFullName}}
Личный кабинетВыйти
Вход в личный кабинет
Для получения доступа к форуму необходимо
авторизоваться
или
зарегистрироваться
на сайте.
{{ formTitle ? formTitle : 'Заказ обратного звонка' }}
{{ formDescription }}
Обработчик для оборудования GUID {08255EB8-3E69-4844-A591-3B7F6F15DC26} не загружен.
Требуется обновление схемы устройств и перезапуск 1С-Предприятия.
так писало и для уже настроенного оборудования, так и для новосозданного.
версия EquipmentSetup.exe от 16.12.2015
драйвер ФР установлен 4.10.288
оборудование Штрих-ФР-К
релиз 1с предприятия 8.3.6.2152
конфигурация не изменялась, стоит на поддержке
скрин ошибки
в меню сервис - параметры не появляется закладка драйвер ФР, хотя он установлен
тест драйвера оборудование проходит
вобщем изучив как работает этот механизм нашел странный дефект, при выполнении функции ТорговоеОборудование.ОбновитьТаблицуОбработчиков() в переменной ТаблицаЭкземпляровОборудования в строке этой ТЗ у нужного нам оборудования имя компьютера обрезается до 15 символов, а проверка идет по полному наименованию компьютера ( тут СтрокаТаблицы.Компьютер = ИмяНашегоКомпьютера) изза чего ничего не работало. сменил имя компьютера на более короткое и все заработало. странно канеш зачем это меняли, раньше все работало и с длинными именами компьютера
Добрый день.
Спасибо за подсказку.
Описание проблемы передано разработчикам.
На начальном этапе установлено, что ранее было задано ограничение реквизита в справочнике = 30 символов, и пока это порядок не изменялся. На каком этапе происходит обрезание длины до 15 символов, пока не удалось выяснить. Необходимо детальное разбирательство в этом вопросе.
Не могли бы Вы предоставить Имя компьютера, с которым возникала ошибка?
компьютер был в домене
- не следует в качестве первого символа использовать цифру
- не следует использовать не латинские символы
- рекомендуется всегда использовать различные имена для пользователей и компьютеров
(например, petrov и petrov-pc)
Прикрепленные файлы
то что в одном случае у вас берется нетбиос имя, а для проверки совсем другое, это другой вопрос. разбираться дальше в проблеме нет интереса, проблему я для себя решил + создал тему для остальных кто напорится на такую же проблему
в переменной ТаблицаЭкземпляровОборудования в строке этой ТЗ у нужного нам оборудования имя компьютера обрезается до 15 символов, а проверка идет по полному наименованию компьютера ( тут СтрокаТаблицы.Компьютер = ИмяНашегоКомпьютера) из-за чего ничего не работало.
У меня по другой причине имена компьютеров поменялись, все работают в терминальном режиме вроде как под одним именем компьютера, которое у сервера. Схема компьютеров Альфа-Авто в терминале не работает, в справочнике Компьютеры лишь один Сервер. Оборудование по базе Альфа-Авто вроде тоже все на сервере, а на самом деле на локальных компьютерах. Поэтому возникают трудности с подключением оборудования. Например, если пытаются подключить онлайн-кассу с другого компьютера, когда компьютер с ФР еще не включен, или не вошел в терминал (свой порт с ФР не пробросил на сервер), то эта попытка будет неудачной. И самое печальное порт будет испорчен. Даже после при подключении с компьютера с ФР будет ошибка "Порт недоступен". Эта ошибка необратима, ее не сбросит перезагрузка СЗиУО ( Windows службы защиты), только перезагрузка всего сервера может ее сбросить.
Определить настоящее имя компьютера позволяет функция ПолучитьИмяКомпьютераТО(). Применив его в функции ПервоначальнаяИнициализация(), в ПараметрыСеанса.Компьютер будет правильное значение. Но приводит к упомянутой ошибке. Требуется не обновление схемы устройств, а переустановка оборудования по своим локальным компьютерам (либо временно до переустановки в переменную ИмяНашегоКомпьютера подставлять имя компьютера из справочника оборудования).
Но восстановление правильных имен компьютеров не решают автоматически проблему ошибки "Порт недоступен". Бывают случаи, когда пытаются подключить оборудование с нужного компьютера, но оборудование забыли включить (питание), или по какой-то причине порт не пробросил на сервер. Любая 1С (даже версии 7.5) определяет доступность порта с подключенным оборудованием, и в Сервис/Параметры добавляет вкладку Свойства. Как реализовать такую проверку программным способом я пока не нашел. Может подскажет кто из знающих специалистов? Буду благодарен...
Любая 1С (даже версии 7.5) определяет доступность порта с подключенным оборудованием, и в Сервис/Параметры добавляет вкладку Свойства. Как реализовать такую проверку программным способом я пока не нашел.
// Возвращает Истина, если порт ФР доступен, или занят самим ФР // Драйвер ККМ. Руководство программиста C:\Program Files (x86)\ATOL\Drivers8\Doc\Drivers8_FprnM_PM.pdf Функция ПроверкаСвязиФР(IP_Адрес = "", ТекстСообщения = "", ПортЗанят = Истина) Экспорт Если ПустаяСтрока(IP_Адрес) Тогда ТекстСообщения = "Не указан IP-адрес ФР"; Возврат Ложь; КонецЕсли; Попытка ФР = Новый("AddIn.FprnM45"); Исключение ФР = ЗагрузитьВнешнююFPrnM1C(ТекстСообщения); КонецПопытки; Если СтрЧислоВхождений(IP_Адрес, ".") < 3 И Не ДоступностьIP_Адреса(IP_Адрес, ТекстСообщения) Тогда Возврат Ложь; КонецЕсли; Если ФР = Неопределено Тогда Возврат Ложь; КонецЕсли; ФР.АдресХоста = IP_Адрес + ":6220"; ФР.DeviceEnabled = 1; // занимаем порт Результат = ФР.ResultCode; Если Результат <> 0 И Не(ПортЗанят И Найти(ФР.ResultDescription, "Порт занят") > 0) Тогда ТекстСообщения = "Ошибка проверки связи с ФР: " + ФР.ResultDescription; Возврат Ложь; КонецЕсли; ФР.DeviceEnabled = 0; // освобождаем порт Возврат Истина; КонецФункции // ПроверкаСвязиФР() // Загрузка внешней компоненты FPrnM1C.dll // драйвера ФР АТОЛ Функция ЗагрузитьВнешнююFPrnM1C(ТекстСообщения = "") Попытка ЗагрузитьВнешнююКомпоненту("c:\Program Files (x86)\ATOL\Drivers8\Bin\FprnM1C.dll"); Попытка ФР = Новый("AddIn.FprnM45"); // Создание объекта (FPrnM8 - не работает!?) Исключение ТекстСообщения = "Объект AddIn.FprnM45 не найден!"; Возврат Неопределено; КонецПопытки; Исключение ТекстСообщения = "Внешняя компонента драйвера FPrnM1C.dll не найдена"; Возврат Неопределено; КонецПопытки; Возврат ФР; КонецФункцииНо теперь возникла следующая ситуация: пользователь в ПКО ставит галку "Для пробития на фискальном регистраторе", сразу идет проверка статуса ФР "Включено" (если нет, то эта проверка связи ФР) - все ОК, открывается Фронт кассира, на нем жмет кнопку "Отбить чек", запускает функцию ВыполнитьКомандуОборудования(). И она выдает код ошибки: -11 "Устройство не включено"!? Как формируется эта ошибка посмотреть не могу, ее выдает "черный ящик" Рарус_Компонента.ЗаказатьВыполнениеДействияСинхронно(). Предполагаю, что выполнив в обработке ТорговоеОборудование команду ВключитьОборудование(), состояние ФР запомнилось СЗУО, и более не проверяется. Тем не менее ФР по какой-то причине успел отвалиться (или "не совсем" подключился). А подключить ФР заново уже не получается. В функции ВключитьОборудование() есть такой фрагмент:
На закладке сервис-параметры добавляются формы загружаемых внешних компонент. Например, компоненты драйвера сканера штрихкодов или фискального регистратора
Представленная выше мною функция ПроверкаСвязиФР() имитируется нажатие этой кнопки, и проблема необратимой ошибки "Порт недоступен" в основном решена.
По поводу ошибки с кодом -11 "Устройство не включено" возник вопрос о совместном использовании оборудования. Анализируя события по оборудованию в ЖР (журнале регистрации) заметил, что ФР отваливается (возникает эта ошибка) после завершения работы некоторых пользователей, в ЖР фиксируется событие: "Оборудование.Выключить, ОК Состояние: Выключено". Возникло подозрение, что при выходе из Альфа-Авто пользователь отключает все оборудование не только в своей сессии, но и у остальных пользователей тоже. Такое возможно?
В терминальном режиме возможно всё что угодно.
Для меня СЗУО "черный ящик", поэтому спрашиваю о возможности такого?
Исключить терминальный режим для кассира пока нельзя. Она как большинство сотрудников работает в одну смену, а дежурные менеджеры - в две. Кассовую смену кассиру приходится закрывать с домашнего компьютера.
В терминальном режиме возможно всё что угодно.
Для меня СЗУО "черный ящик", поэтому спрашиваю о возможности такого?
Исключить терминальный режим для кассира пока нельзя. Она как большинство сотрудников работает в одну смену, а дежурные менеджеры - в две. Кассовую смену кассиру приходится закрывать с домашнего компьютера.
В программный продукт Альфа-авто ред.5 изначально не включен функционал для работы оборудования в терминальном режиме.
Поэтому даже, если Вам и удалось настроить работу оборудования в терминальном режиме, то мы не можем гарантировать стабильную и корректную работу.
В программный продукт Альфа-авто ред.5 изначально не включен функционал для работы оборудования в терминальном режиме.
В эту тему добавлю функцию для правильного определения ПараметрыСеанса.Компьютер в RDP:
// Получить имя компьютера торгового оборудования при терминальном подключении // http://expert.chistov.pro/public/392980/ Функция ПолучитьИмяКомпьютераТО() Экспорт WSS = Новый COMОбъект("WScript.Shell"); WSSE = WSS.Environment("Process"); ИмяКомпьютера = СокрЛП(WSSE.Item("ClientName")); Возврат ИмяКомпьютера; КонецФункции // ПолучитьИмяКомпьютераТО()Пользователь = ПараметрыСеанса.Пользователь; ИмяПользователя = ИмяПользователя(); ПолноеИмяПользователя = ПолноеИмяПользователя(); // Переопределим текущий компьютер (в клиентской сессии пользователя он может // отличным от того что был определен в УстановкаПараметровСеанса) Состояние("Обновляем информацию о компьютере ..."); Имя = мвДоработки.ПолучитьИмяКомпьютераТО(); //+МВ 10.10.2017 Комп = Справочники.Компьютеры.НайтиПоНаименованию(Имя,Истина); Если Комп.Пустая() Тогда Комп = Справочники.Компьютеры.СоздатьЭлемент(); Комп.УстановитьНовыйКод(""); Комп.Наименование = Имя; Комп.Записать(); КонецЕсли; ПараметрыСеанса.Компьютер = Комп.Ссылка; // Вот теперь тут правильное значение для клиентской сессии// Возвращает Истина, если пингуется IP-адрес // http://www.forum.mista.ru/topic.php?id=435364 Функция PingIP_Адреса(IP_Адрес = "", ТекстСообщения = "") Экспорт Если ПустаяСтрока(IP_Адрес) Тогда Возврат Ложь; ИначеЕсли IP_Адрес = НРег(СокрЛП(ИмяКомпьютера())) Тогда Возврат Истина; КонецЕсли; objShell = Новый COMОбъект("WScript.Shell"); objScriptExec = objShell.Exec("ping.exe -n 1 " + IP_Адрес); strPingResults = НРег(objScriptExec.StdOut.ReadAll()); Результат = Найти(strPingResults, "ttl=") > 0; ТекстСообщения = ?(Результат, ТекстСообщения, ?(СтрЧислоВхождений(IP_Адрес, ".") >= 3, "IP-адрес", "Компьютер") + ": '" + ВРег(IP_Адрес) + "' - недоступен!"); IP_Адрес = ?(СтрЧислоВхождений(IP_Адрес, ".") >= 3, IP_Адрес, ?(Найти(strPingResults, "[") = 0, "", Сред(strPingResults, Найти(strPingResults, "[") + 1, Найти(strPingResults, "]") - Найти(strPingResults, "[") - 1))); Возврат Результат; КонецФункции // PingIP_Адреса()Требуется обновление схемы устройств и перезапуск 1С-Предприятия.) при попытке запуска фискального регистратора, ситуация возникла после обновления с версии 5.1.10.5 на 5.1.13.4, установщик оборудования с версией 5,1,12,03 (с версией 5.1.13.4 не было установщика) был установлен сначала сверху (не помогло), потом заново. Проблема не решилась - сделал откат версии. прошу помочь. Имя компьютера 6 латинских символов.
Вопрос: возникает вышеуказанная ошибка (Обработчик для оборудования GUID {08255EB8-3E69-4844-A591-3B7F6F15DC26} не загружен.
Требуется обновление схемы устройств и перезапуск 1С-Предприятия.) при попытке запуска фискального регистратора, ситуация возникла после обновления с версии 5.1.10.5 на 5.1.13.4, установщик оборудования с версией 5,1,12,03 (с версией 5.1.13.4 не было установщика) был установлен сначала сверху (не помогло), потом заново. Проблема не решилась - сделал откат версии. прошу помочь. Имя компьютера 6 латинских символов.
- Попробуйте переустановить систему управления оборудованием. Поместите все файлы СУО для Альфа-авто ред. 5 в отдельную папку (LocalProtectAlfa),
- Перезапустите службу Агент сервера 1С.
Забыл сказать - база файловая на другом компьютере. По поводу отдельной папки - делал так, старую переименовывал, и ставил СУО в папку по умолчанию. Компьютер пользователя перезагружал. ошибка остается. Прошу дать свежую версию СУО.
Забыл сказать - база файловая на другом компьютере. По поводу отдельной папки - делал так, старую переименовывал, и ставил СУО в папку по умолчанию. Компьютер пользователя перезагружал. ошибка остается. Прошу дать свежую версию СУО.
Забыл сказать - база файловая на другом компьютере. По поводу отдельной папки - делал так, старую переименовывал, и ставил СУО в папку по умолчанию. Компьютер пользователя перезагружал. ошибка остается. Прошу дать свежую версию СУО.
Я же рекомендую вам установить систему управления оборудованием для Альфа-авто ред. 5 в отдельную папку (LocalProtectAlfa), и эту папку нужно указать с форме Рабочие места (компьютеры).
objShell = Новый COMОбъект("WScript.Shell"); objScriptExec = objShell.Exec("ping.exe -n 1 " + IP_Адрес); strPingResults = НРег(objScriptExec.StdOut.ReadAll());В результате абракадабра (хотя фрагмент "ttl=" остался нетронутым). Как сменить кодировку?
objShell = Новый COMОбъект("WScript.Shell"); objScriptExec = objShell.Exec("cmd.exe /q /k echo off"); objScriptExec.StdIn.WriteLine("chcp 1252>nul"); objScriptExec.StdIn.WriteLine("ping.exe -n 1 " + IP_Адрес); objScriptExec.StdIn.WriteLine("exit"); strPingResults = НРег(objScriptExec.StdOut.ReadAll());