Обновление конфигураций 1С:Предприятие на новые релизы (например, переход с УТ 11.3 на 11.4 или обновление Розницы до 2.3) часто сопровождается техническими сложностями с торговым оборудованием. Одной из наиболее распространенных проблем является отказ терминалов сбора данных (ТСД), в частности моделей серии CipherLAB 8x00. Типичная ошибка выглядит так: "Отсутствует список COM портов. (999)" или "Метод объекта не обнаружен (УстановитьПараметр)".
В данной статье мы подробно разберем, почему возникают эти ошибки, и рассмотрим пошаговые алгоритмы восстановления работоспособности ТСД.
Проанализируем ситуацию: почему до обновления всё работало корректно, а после — оборудование требует постоянного «тестирования» или вовсе не определяется? Основных причин несколько:
Рассмотрим последовательные способы решения проблемы.
Как показывает практика и опыт пользователей, наиболее стабильной версией для работы ТСД CipherLAB через NativeApi в новых конфигурациях является версия 1.0.0.16. Разберем процесс установки:
Шаг 1. Перейдем в раздел Администрирование — Подключаемое оборудование.
Шаг 2. Откроем список Драйверы оборудования и создадим новый элемент.
Шаг 3. Выберем тип «Добавить новый драйвер из файла» и укажем архив с версией 1.0.0.16. Обратите внимание, что важно устанавливать не только сам драйвер как системную компоненту, но и обновлять обработку обслуживания (XML-описание драйвера) внутри 1С.
Шаг 4. После установки убедимся, что в поле «Версия драйвера» отображается именно 1.0.0.16. Если вы видите версию 1.0.0.9, значит, система продолжает использовать старую библиотеку из кэша.
Проанализируем программную ошибку, возникающую при попытке настройки. Она связана с тем, что 1С пытается вызвать метод УстановитьПараметр у объекта драйвера, который этот метод не поддерживает. Это характерно для ситуации, когда используется устаревшая компонента с новым программным кодом общего модуля ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.
Рассмотрим фрагмент кода, где происходит сбой:
// Пример вызываемого кода в БПО
Результат = ОбъектДрайвера.УстановитьПараметр("EquipmentType", ТипОборудования);
Если Не Результат Тогда
// Обработка ошибки
КонецЕсли;
Если обновление драйвера до 1.0.0.16 не помогло, попробуйте следующие действия:
Optimizer).%AppData%\1C\1cv8\.Иногда штатное обновление драйвера через интерфейс 1С не дает результата, так как конфигурация принудительно берет компоненту из встроенных макетов. В этом случае мы можем прибегнуть к подмене файла в самой конфигурации (через расширение или напрямую, если база снята с поддержки).
Проанализируем этот алгоритм:
ДрайверСканкодТерминалыСбораДанныхNative (название может незначительно отличаться в зависимости от версии УТ).После этой манипуляции 1С будет принудительно устанавливать правильную версию компоненты всем пользователям при первом обращении к ТСД.
Рассмотрим еще одну ситуацию: ТСД подключается, тест проходит, но при загрузке данных номенклатура не находится. Вместо штрихкода 2000000012345 в поиск попадает строка 2000000012345, 1.
Выясним причину: это происходит из-за того, что драйвер или прошивка ТСД передает данные в формате «Штрихкод, Количество», а 1С ожидает только штрихкод или использует неверный разделитель. Чтобы исправить это, проанализируем настройки в форме драйвера:
Мы рассмотрели основные способы восстановления работы ТСД после обновления. Главным инструментом решения остается контроль версий драйверов и соответствие разрядности платформы. Если ваш терминал работает только до перезапуска 1С, это верный признак проблем с инициализацией COM-порта или прав доступа к временным папкам, куда 1С распаковывает DLL-компоненту.
Помните: перед любыми манипуляциями с драйверами и конфигурацией обязательно создавайте резервную копию базы данных!