Добрый день. обновили сегодня релиз конфигурации до последней и перестала работать одна из касс, пишет Обработчик для оборудования 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 символов, пока не удалось выяснить. Необходимо детальное разбирательство в этом вопросе.
Не могли бы Вы предоставить Имя компьютера, с которым возникала ошибка?
При попытке воспроизвести ошибку в момент задания более длинного имени для рабочей станции получили предупреждение от системы 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 изначально не включен функционал для работы оборудования в терминальном режиме. Поэтому даже, если Вам и удалось настроить работу оборудования в терминальном режиме, то мы не можем гарантировать стабильную и корректную работу.
В эту тему добавлю функцию для правильного определения ПараметрыСеанса.Компьютер в RDP:
Код
// Получить имя компьютера торгового оборудования при терминальном подключении
// http://expert.chistov.pro/public/392980/
Функция ПолучитьИмяКомпьютераТО() Экспорт
WSS = Новый COMОбъект("WScript.Shell");
WSSE = WSS.Environment("Process");
ИмяКомпьютера = СокрЛП(WSSE.Item("ClientName"));
Возврат ИмяКомпьютера;
КонецФункции // ПолучитьИмяКомпьютераТО()
Вставил в функцию ПервоначальнаяИнициализация() обработки СтартСистемы Альфа-Авто 4.1 в начальный фрагмент:
Код
Пользователь = ПараметрыСеанса.Пользователь;
ИмяПользователя = ИмяПользователя();
ПолноеИмяПользователя = ПолноеИмяПользователя();
// Переопределим текущий компьютер (в клиентской сессии пользователя он может
// отличным от того что был определен в УстановкаПараметровСеанса)
Состояние("Обновляем информацию о компьютере ...");
Имя = мвДоработки.ПолучитьИмяКомпьютераТО(); //+МВ 10.10.2017
Комп = Справочники.Компьютеры.НайтиПоНаименованию(Имя,Истина);
Если Комп.Пустая() Тогда
Комп = Справочники.Компьютеры.СоздатьЭлемент();
Комп.УстановитьНовыйКод("");
Комп.Наименование = Имя;
Комп.Записать();
КонецЕсли;
ПараметрыСеанса.Компьютер = Комп.Ссылка; // Вот теперь тут правильное значение для клиентской сессии
Она не только проверяет доступность компьютера в сети, но и преобразует имя компьютера в его 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 латинских символов.
Михаил Третьяков написал: Вопрос: возникает вышеуказанная ошибка (Обработчик для оборудования 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), и эту папку нужно указать с форме Рабочие места (компьютеры).