При работе с обновленными релизами конфигурации «Управление торговлей», редакция 10.3 (начиная с версии 10.3.67.3 и выше), многие пользователи и администраторы столкнулись с неприятной проблемой. При попытке добавить новое торговое оборудование, например, сканер штрихкода или терминал сбора данных, система выдает критическую ошибку: «Поле "Обработчик драйвера" не заполнено». При этом само поле на форме может быть скрыто или недоступно для редактирования, что заводит пользователя в тупик.
В данной статье мы подробно разберем причины возникновения этой ситуации и рассмотрим несколько способов её решения: от простого изменения данных в справочниках до внесения корректировок в программный код конфигурации.
Рассмотрим ситуацию глубже. В последних релизах «Управления торговлей 10.3» разработчики 1С начали активно внедрять элементы из современных конфигураций, работающих на базе БСП (Библиотеки стандартных подсистем). Это коснулось и подсистемы торгового оборудования. Теперь настройка устройств происходит не через привычные «обычные» формы, а через управляемые формы в режиме тонкого клиента.
Основная причина ошибки заключается в том, что в программном коде формы элемента справочника ПодключаемоеОборудование допущена недоработка: при выборе конкретного драйвера из списка система «забывает» автоматически заполнить внутренний реквизит ОбработчикДрайвера. Поскольку этот реквизит является обязательным для работы подсистемы, сохранение или настройка оборудования блокируется.
Если ваша база данных снята с поддержки или находится в режиме возможности редактирования, самым правильным решением будет внесение исправления непосредственно в код формы. Это позволит навсегда забыть об ошибке при создании новых карточек оборудования.
Проанализируем необходимые действия по шагам:
ПодключаемоеОборудование.ФормаЭлемента.ДрайверОборудованияОбработкаВыбора.Скорее всего, сейчас код выглядит следующим образом:
&НаКлиенте
Процедура ДрайверОборудованияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ВыбранноеЗначение <> Объект.ДрайверОборудования Тогда
Объект.Наименование = "'" + Строка(ВыбранноеЗначение) + "'" + ?(ПустаяСтрока(Строка(Объект.РабочееМесто)), "", " " + НСтр("ru='на'") + " " + Строка(Объект.РабочееМесто));
КонецЕсли;
КонецПроцедуры
Проблема в том, что здесь происходит только обновление наименования, но не заполнение важного реквизита. Исправим это, добавив строку присвоения обработчика. Приведем код к следующему виду:
&НаКлиенте
Процедура ДрайверОборудованияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ВыбранноеЗначение <> Объект.ДрайверОборудования Тогда
Объект.Наименование = "'" + Строка(ВыбранноеЗначение) + "'" + ?(ПустаяСтрока(Строка(Объект.РабочееМесто)), "", " " + НСтр("ru='на'") + " " + Строка(Объект.РабочееМесто));
// Вставляем эту строку для автоматического заполнения обработчика
Объект.ОбработчикДрайвера = ВыбранноеЗначение.ОбработчикДрайвера;
КонецЕсли;
КонецПроцедуры
После внесения изменений сохраним конфигурацию (F7). Теперь при создании нового сканера и выборе драйвера поле заполнится автоматически в фоновом режиме, и ошибка исчезнет.
Если вы не хотите менять конфигурацию или база находится на строгом «замочке» (на поддержке без возможности редактирования), мы можем воспользоваться стандартным инструментом «Групповая обработка справочников и документов».
Разберем алгоритм действий:
Подключаемое оборудование.Обработчик драйвера.1С: Сканеры штрихкода (NativeApi) или аналогичное, соответствующее вашему драйверу.После этой манипуляции значение реквизита будет записано в базу «напрямую», минуя проверку формы, и вы сможете нажать кнопку «Настроить» в карточке оборудования без каких-либо препятствий.
Иногда ошибка может быть косвенно связана с некорректной привязкой оборудования к конкретному компьютеру. В новых версиях УТ 10.3 реализован механизм идентификации рабочего места по уникальному ID компьютера. Рассмотрим ситуацию, когда у одного и того же ПК в базе создается несколько записей рабочих мест.
Проанализируем справочник Рабочие места (путь: Сервис — Торговое оборудование — Настройка и подключение оборудования — Рабочие места). Если вы видите дубли записей для вашего компьютера, попробуйте следующее:
Во-первых, определите, под каким именно рабочим местом вы зашли в текущий момент. Это отображается в заголовке формы настройки оборудования.
Во-вторых, если оборудование было привязано к «старому» рабочему месту, а система создала «новое» (например, после обновления Windows или смены сетевого имени), вам нужно либо перенести настройки на новое место, либо через групповую обработку (описанную выше) поменять коды рабочих мест местами, чтобы актуальный сеанс подхватил старые настройки.
Посмотрим на еще один важный момент — сам справочник «Драйверы оборудования». Если при выборе драйвера поле Обработчик драйвера остается пустым даже после программных правок, возможно, информация в самом справочнике драйверов повреждена.
Рекомендуется выполнить следующие действия:
МенеджерОборудованияВызовСервераПереопределяемый.ОбновитьПоставляемыеДрайвера();Важно: Всегда проверяйте разрядность платформы 1С. Для корректной работы большинства драйверов торгового оборудования в УТ 10.3 рекомендуется использовать 32-битную (x86) версию платформы, так как многие производители до сих пор не выпустили стабильные 64-битные компоненты связи.
Подводя итог, можно сказать, что данная проблема является следствием «переходного периода» конфигурации УТ 10.3. Сочетание старых подходов и новых управляемых форм иногда порождает такие ошибки. Мы рассмотрели наиболее эффективные способы их устранения, которые позволят вам продолжить работу с торговым оборудованием в штатном режиме.