При работе с конфигурацией «Управление производственным предприятием» (УПП 1.3) пользователи часто сталкиваются с неприятной ситуацией: после обновления платформы или релиза конфигурации (особенно замечено на ветке 1.3.112.х) при открытии второго сеанса базы на одном и том же компьютере возникает ошибка. Система сообщает: «Сканер штрихкода (общий): Не удалось загрузить драйвер торгового оборудования. Необходимо проверить корректность установки драйвера». При этом физически оборудование к компьютеру может быть даже не подключено.
В этой статье мы подробно разберем, почему возникает этот конфликт, как найти «фантомные» настройки в системе и каким образом программно устранить ошибку, если стандартные интерфейсы настройки оборудования оказываются бессильны.
Для начала проанализируем, как 1С работает с торговым оборудованием (ТО) в режиме обычных форм. В архитектуре УПП 1.3 привязка сканеров, фискальных регистраторов и терминалов сбора данных осуществляется к имени компьютера (сетевому имени хоста). Когда вы открываете любую форму, связанную с торговой деятельностью (например, справочник Номенклатура), система автоматически инициализирует все устройства, закрепленные за текущим рабочим местом.
Рассмотрим ситуацию по шагам:
IT-KRY), находит в базе настройки ТО для этого имени и загружает соответствующие DLL-драйверы.IT-KRY и пытается инициализировать тот же драйвер.Проблема усугубляется тем, что даже если оборудование физически отключено, записи в регистрах 1С могут сохраняться годами, заставляя систему каждый раз пытаться «достучаться» до несуществующего сканера.
Если в стандартном окне «Настройка торгового оборудования» список пуст, это не означает, что настроек нет. В УПП данные хранятся в регистре сведений ТорговоеОборудование. Выясним, как проверить его содержимое напрямую.
Проанализируем действия: нам необходимо зайти в базу под полными правами и через меню «Все функции» (или «Операции» -> «Регистры сведений» в обычном интерфейсе) найти регистр ТорговоеОборудование.
В этом регистре мы можем увидеть записи, где в колонке Компьютер указано ваше текущее рабочее место. Часто бывает так, что визуальная форма справочника фильтрует записи по каким-то критериям, а в регистре они остаются «активными» (стоит галочка Подключено).
Если интерфейс не позволяет редактировать записи в регистре (кнопки недоступны или форма защищена от изменений), нам потребуется написать простую обработку. Разберем пример кода, который поможет снять признак подключения для конкретного компьютера.
Создадим внешнюю обработку и в модуле пропишем следующий алгоритм для очистки признака Подключено:
Процедура ОчиститьПодключениеОборудования()
// Укажите имя вашего компьютера, которое отображается в ошибке
ИмяВашегоПК = "IT-KRY";
МенеджерЗаписи = РегистрыСведений.ТорговоеОборудование.СоздатьМенеджерЗаписи();
Выборка = РегистрыСведений.ТорговоеОборудование.Выбрать();
Пока Выборка.Следующий() Цикл
// Проверяем соответствие компьютера
Если СокрЛП(Выборка.Компьютер) = ИмяВашегоПК Тогда
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Выборка);
МенеджерЗаписи.Прочитать();
Если МенеджерЗаписи.Выбран() Тогда
МенеджерЗаписи.Подключено = Ложь; // Снимаем флаг активности
МенеджерЗаписи.Записать();
Сообщить("Оборудование " + Выборка.Наименование + " отключено для ПК " + ИмяВашегоПК);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
После выполнения этого кода система перестанет пытаться инициализировать драйвер при каждом открытии формы списка номенклатуры или документов, и ошибка при втором входе исчезнет.
Иногда проблема кроется глубже — в программных ошибках самого релиза конфигурации. В обновлениях УПП 1.3.112.3 и 1.3.112.5 были замечены опечатки в формах настройки торгового оборудования. Если вы решите заново настроить оборудование и столкнетесь с тем, что виды ТО выбираются некорректно, обратите внимание на следующие моменты в коде:
ФормаПомощникаНастроек обработки ТОНастройка элементы переключателя вида оборудования могут иметь задублированные значения в свойствах (например, вместо последовательности 9, 10, 11 стоят 9, 9, 9). Это мешает корректному определению типа устройства.ВидТО, а не с его «двойником» ВидТО2, который может не инициализироваться должным образом.ПриОткрытии может срабатывать условие ИспользоватьПодключаемоеОборудование, которое делает элементы формы недоступными для редактирования в обычном режиме. Если ваша организация использует старую схему подключения, эти проверки могут только мешать.Рассмотрим еще несколько важных нюансов, которые помогут избежать проблем с драйверами:
COM-объекты не смогут загрузиться в 64-битном сеансе./ClearCache.ИмяКомпьютера() в 1С будет возвращать имя сервера. Чтобы разделять оборудование разных пользователей, необходимо дорабатывать механизм определения рабочего места, используя переменную окружения CLIENTNAME вместо системного имени хоста.Таким образом, мы выяснили, что корень проблемы обычно лежит в устаревших записях регистра ТорговоеОборудование. Программная очистка этого регистра — самый быстрый и надежный способ вернуть стабильную работу системы без необходимости переустановки драйверов или платформы.