обработчик для оборудования не загружен

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
обработчик для оборудования не загружен, AAA 5 ПРОФ 5.1.04.06
 
Добрый день. обновили сегодня релиз конфигурации до последней и перестала работать одна из касс, пишет
Обработчик для оборудования GUID {08255EB8-3E69-4844-A591-3B7F6F15DC26} не загружен.
Требуется обновление схемы устройств и перезапуск 1С-Предприятия.

так писало и для уже настроенного оборудования, так и для новосозданного.
версия EquipmentSetup.exe от 16.12.2015
драйвер ФР установлен 4.10.288
оборудование Штрих-ФР-К
релиз 1с предприятия 8.3.6.2152
конфигурация не изменялась, стоит на поддержке
скрин ошибки http://pix.my/vunge1Gc

в меню сервис - параметры не появляется закладка драйвер ФР, хотя он установлен
тест драйвера оборудование проходит
 
вобщем изучив как работает этот механизм нашел странный дефект, при выполнении функции ТорговоеОборудование.ОбновитьТаблицуОбработчиков() в переменной ТаблицаЭкземпляровОборудования в строке этой ТЗ у нужного нам оборудования имя компьютера обрезается до 15 символов, а проверка идет по полному наименованию компьютера ( тут СтрокаТаблицы.Компьютер = ИмяНашегоКомпьютера) изза чего ничего не работало. сменил имя компьютера на более короткое и все заработало. странно канеш зачем это меняли, раньше все работало и с длинными именами компьютера
 
Цитата
Василий МД пишет:
вобщем изучив как работает этот механизм нашел странный дефект, при выполнении функции ТорговоеОборудование.ОбновитьТаблицуОбработчиков() в переменной ТаблицаЭкземпляровОборудования в строке этой ТЗ у нужного нам оборудования имя компьютера обрезается до 15 символов, а проверка идет по полному наименованию компьютера ( тут СтрокаТаблицы.Компьютер = ИмяНашегоКомпьютера) изза чего ничего не работало. сменил имя компьютера на более короткое и все заработало. странно канеш зачем это меняли, раньше все работало и с длинными именами компьютера

Добрый день.
Спасибо за подсказку.
Описание проблемы передано разработчикам.
На начальном этапе установлено, что ранее было задано ограничение реквизита в справочнике = 30 символов, и пока это порядок не изменялся. На каком этапе происходит обрезание длины до 15 символов, пока не удалось выяснить. Необходимо детальное разбирательство в этом вопросе.

Не могли бы Вы предоставить Имя компьютера, с которым возникала ошибка?
 
имя компьютера было: microsof-80ggtrt
компьютер был в домене
 
При попытке воспроизвести ошибку в момент задания более длинного имени для рабочей станции получили предупреждение от системы 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) определяет доступность порта с подключенным оборудованием, и в Сервис/Параметры добавляет вкладку Свойства. Как реализовать такую проверку программным способом я пока не нашел.
Нашел, вкладка Свойства добавляется при подключении внешней компоненты FprnM1C.dll:
Код
// Возвращает Истина, если порт ФР доступен, или занят самим ФР
// Драйвер ККМ. Руководство программиста 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 "Устройство не включено"!? Как формируется эта ошибка посмотреть не могу, ее выдает "черный ящик" Рарус_Компонента.ЗаказатьВыполнениеДействияСинхронно(). Предполагаю, что выполнив в обработке ТорговоеОборудование команду ВключитьОборудование(), состояние ФР запомнилось СЗУО, и более не проверяется. Тем не менее ФР по какой-то причине успел отвалиться (или "не совсем" подключился). А подключить ФР заново уже не получается. В функции ВключитьОборудование() есть такой фрагмент:
Код
// Не то что включено, а даже еще и зарезервировано под текущую сессию - просто отлично!
    Возврат НомОшибки;// Оборудование уже и так включено, возвращаем ОК (НомОшибки=0) вот и все.
Возврат за комментировал, но возможно СЗУО реагирует на такую ситуацию так же?
 
Цитата
Любая 1С (даже версии 7.5) определяет доступность порта с подключенным  оборудованием, и в Сервис/Параметры добавляет вкладку Свойства. Как  реализовать такую проверку программным способом я пока не наше
Это абсолютно неверно! Ни одна версия платформы 1С никогда не имела никаких функций для работы с COM-портами. На закладке сервис-параметры добавляются формы загружаемых внешних компонент. Например, компоненты драйвера сканера штрихкодов или фискального регистратора
 
Цитата
Игорь Стовпец написал:
На закладке сервис-параметры добавляются формы загружаемых внешних компонент. Например, компоненты драйвера сканера штрихкодов или фискального регистратора
Добавлю к сказанному Вами: в случае фискального регистратора на этой вкладке появляется возможность проверки состояния COM-порта кнопкой "Проверка связи".

Представленная выше мною функция ПроверкаСвязиФР() имитируется нажатие этой кнопки, и проблема необратимой ошибки "Порт недоступен" в основном решена.

По поводу ошибки с кодом -11 "Устройство не включено" возник вопрос о совместном использовании оборудования. Анализируя события по оборудованию в ЖР (журнале регистрации) заметил, что ФР отваливается (возникает эта ошибка) после завершения работы некоторых пользователей, в ЖР фиксируется событие: "Оборудование.Выключить, ОК Состояние: Выключено". Возникло подозрение, что при выходе из Альфа-Авто пользователь отключает все оборудование не только в своей сессии, но и у остальных пользователей тоже. Такое возможно?
 
В терминальном режиме возможно всё что угодно. Данное ПО при проектировании не было рассчитано на работу в терминальном режиме изначально
 
Цитата
Игорь Стовпец написал:
В терминальном режиме возможно всё что угодно.
А разве в сетевом варианте режима работы невозможно совместное использование оборудования? Я даже в тестовой копии Альфа-Авто опасаюсь завершать работу раньше времени. Любой сеанс или экземпляр Альфа-Авто может дать команду "Оборудование.Выключить" СЗУО, и он ее исполнит. В результате в рабочей Альфа-Авто возникает ситуация: при статусе ФР "Включено" при отбитии чека ошибка "Устройство не включено"!?
Для меня СЗУО "черный ящик", поэтому спрашиваю о возможности такого?
Исключить терминальный режим для кассира пока нельзя. Она как большинство сотрудников работает в одну смену, а дежурные менеджеры - в две. Кассовую смену кассиру приходится закрывать с домашнего компьютера.  
 
Цитата
Михаил Волков написал:
Цитата
Игорь Стовпец  написал:
В терминальном режиме возможно всё что угодно.
А разве в сетевом варианте режима работы невозможно совместное использование оборудования? Я даже в тестовой копии Альфа-Авто опасаюсь завершать работу раньше времени. Любой сеанс или экземпляр Альфа-Авто может дать команду "Оборудование.Выключить" СЗУО, и он ее исполнит. В результате в рабочей Альфа-Авто возникает ситуация: при статусе ФР "Включено" при отбитии чека ошибка "Устройство не включено"!?
Для меня СЗУО "черный ящик", поэтому спрашиваю о возможности такого?
Исключить терминальный режим для кассира пока нельзя. Она как большинство сотрудников работает в одну смену, а дежурные менеджеры - в две. Кассовую смену кассиру приходится закрывать с домашнего компьютера.  
Добрый день.
В программный продукт Альфа-авто ред.5 изначально не включен функционал для работы оборудования в терминальном режиме.
Поэтому даже, если Вам и удалось настроить работу оборудования в терминальном режиме, то мы не можем гарантировать стабильную и корректную работу.
 
Цитата
Светлана Рожок написал:
В программный продукт Альфа-авто ред.5 изначально не включен функционал для работы оборудования в терминальном режиме.
Извиняюсь, не обратил внимание, что тема посвящена в основном RDP. Вопрос о совместном использовании оборудования перенес https://rarus.ru/forum/forum7/topic11493/?PAGEN_1=47#message73209 в другую тему.

В эту тему добавлю функцию для правильного определения ПараметрыСеанса.Компьютер в RDP:
Код
// Получить имя компьютера торгового оборудования при терминальном подключении
// http://expert.chistov.pro/public/392980/
Функция ПолучитьИмяКомпьютераТО() Экспорт

   WSS = Новый COMОбъект("WScript.Shell");
   WSSE = WSS.Environment("Process");

   ИмяКомпьютера = СокрЛП(WSSE.Item("ClientName"));
   Возврат ИмяКомпьютера;
КонецФункции // ПолучитьИмяКомпьютераТО()
Вставил в функцию ПервоначальнаяИнициализация() обработки СтартСистемы Альфа-Авто 4.1 в начальный фрагмент:
Код
   Пользователь = ПараметрыСеанса.Пользователь;
   ИмяПользователя = ИмяПользователя();
   ПолноеИмяПользователя = ПолноеИмяПользователя();
   
   // Переопределим текущий компьютер (в клиентской сессии пользователя он может
   // отличным от того что был определен в УстановкаПараметровСеанса)
   Состояние("Обновляем информацию о компьютере ...");
   Имя = мвДоработки.ПолучитьИмяКомпьютераТО();   //+МВ 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_Адреса()
Она не только проверяет доступность компьютера в сети, но и преобразует имя компьютера в его IP-адрес. Раньше ее использовал вместо функции ПроверкаСвязиФР(), но оказалось недостаточной. Может кому пригодиться кто не может обходиться без RDP.
Изменено: Михаил Волков - 11.11.2017 07:15:15 (Добавление текста)
 
Вопрос: возникает вышеуказанная ошибка (Обработчик для оборудования GUID {08255EB8-3E69-4844-A591-3B7F6F15DC26} не загружен.
Требуется обновление схемы устройств и перезапуск 1С-Предприятия.) при попытке запуска фискального регистратора, ситуация возникла после обновления с версии 5.1.10.5 на 5.1.13.4, установщик оборудования с версией 5,1,12,03 (с версией 5.1.13.4 не было установщика) был установлен сначала сверху (не помогло), потом заново. Проблема не решилась - сделал откат версии. прошу помочь. Имя компьютера 6 латинских символов.
Изменено: Михаил Третьяков - 18.04.2018 13:05:25
 
Цитата
Михаил Третьяков написал:
Вопрос: возникает вышеуказанная ошибка (Обработчик для оборудования 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С.
 
Забыл сказать - база файловая на другом компьютере. По поводу отдельной папки - делал так, старую переименовывал, и ставил СУО в папку по умолчанию. Компьютер пользователя перезагружал. ошибка остается. Прошу дать свежую версию СУО.
Изменено: Михаил Третьяков - 18.04.2018 14:39:46
 
Цитата
Михаил Третьяков написал:
Забыл сказать - база файловая на другом компьютере. По поводу отдельной папки - делал так, старую переименовывал, и ставил СУО в папку по умолчанию. Компьютер пользователя перезагружал. ошибка остается. Прошу дать свежую версию СУО.
Нужно путь к папке с СУО указать в конфигурации в форме Рабочие места (компьютеры).
 
Цитата
Светлана Рожок написал:
Цитата
Михаил Третьяков  написал:
Забыл сказать - база файловая на другом компьютере. По поводу отдельной папки - делал так, старую переименовывал, и ставил СУО в папку по умолчанию. Компьютер пользователя перезагружал. ошибка остается. Прошу дать свежую версию СУО.
Нужно путь к папке с СУО указать в конфигурации в форме Рабочие места (компьютеры).
там указан путь по умолчанию, указан верно
 
Цитата
Михаил Третьяков написал:
Цитата
Светлана Рожок  написал:
Цитата
Михаил Третьяков  написал:
Забыл сказать - база файловая на другом компьютере. По поводу отдельной папки - делал так, старую переименовывал, и ставил СУО в папку по умолчанию. Компьютер пользователя перезагружал. ошибка остается. Прошу дать свежую версию СУО.
Нужно путь к папке с СУО указать в конфигурации в форме Рабочие места (компьютеры).
там указан путь по умолчанию, указан верно
Извините, я не совсем поняла. Вы переименовываете старую папку, и оставляете ее в стороне, а используете новую с наименованием по умолчанию?
Я же рекомендую вам установить систему управления оборудованием для Альфа-авто ред. 5 в отдельную папку (LocalProtectAlfa), и эту папку нужно указать с форме Рабочие места (компьютеры).
 
Цитата
Михаил Волков написал:
Код
   objShell = Новый COMОбъект("WScript.Shell");
   objScriptExec = objShell.Exec("ping.exe -n 1 " + IP_Адрес);
   strPingResults = НРег(objScriptExec.StdOut.ReadAll());
В результате абракадабра (хотя фрагмент "ttl=" остался нетронутым). Как сменить кодировку?
 
Цитата
Михаил Волков написал:
В результате абракадабра (хотя фрагмент "ttl=" остался нетронутым). Как сменить кодировку?
Вроде https://forum.mista.ru/topic.php?id=861697#25 нашел:
Код
   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());
Изменено: Михаил Волков - 15.11.2020 13:38:03
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С