Как изменить параметры подключения торгового оборудования в 1С:УПП 1.3?

Программист 1С v8.3 (Обычные формы) Торговля и дистрибуция
← На главную

При обслуживании или перепрошивке контрольно-кассовой техники (ККТ) нередко слетают сетевые настройки — например, IP-адрес кассы или порт обмена. При попытке скорректировать эти значения напрямую в регистре сведений ТорговоеОборудование разработчики и администраторы сталкиваются с тем, что у регистра нет стандартной формы записи или формы списка. Проанализируем, как правильно настроить параметры оборудования через пользовательский интерфейс и как при необходимости перезаписать их программно.

Штатный способ: настройка через интерфейс программы

Рассмотрим стандартный механизм управления торговым оборудованием в конфигурации «Управление производственным предприятием, редакция 1.3». Так как регистр сведений ТорговоеОборудование является служебным, прямой доступ к нему через меню «Все функции» или список регистров не предусматривает удобного интерактивного редактирования. Доступ к параметрам осуществляется через специализированную сервисную обработку.

Разберем по шагам порядок действий в интерфейсе:

  1. Откроем главное меню конфигурации.
  2. Перейдем по пути: Сервис -> Торговое оборудование -> Подключение и настройка торгового оборудования.
  3. В открывшейся обработке выберем нужный тип оборудования (например, «Фискальные регистраторы» или «ККТ с передачей данных»).
  4. Выделим конкретное устройство в списке и нажмем кнопку Параметры.
  5. В открывшемся диалоговом окне драйвера скорректируем сетевые реквизиты (IP-адрес, таймаут, порт соединения).
  6. Нажмем кнопку проверки связи (тест устройства) и сохраним внесенные изменения по кнопке ОК.

Особенности хранения данных в регистре сведений

Выясним причину, почему нельзя просто открыть запись регистра и изменить текстовое поле. Ресурс Параметры имеет строковый тип, однако внутри хранится результат выполнения функции ЗначениеВСтрокуВнутр. Строка вида {"S","P_IPAddress"} представляет собой внутреннюю сериализацию структуры параметров платформой «1С:Предприятие».

Важно: ручная правка такой строки в таблицах базы данных крайне не рекомендуется. Нарушение разметки скобок или длины строковых литералов приведет к критической ошибке формата потока при последующих попытках инициализации драйвера.

Кроме того, измерение Компьютер в регистре жестко привязывается к сетевому имени текущей рабочей станции через функцию ИмяКомпьютера() или вызов ПолучитьИмяКомпьютераТО(). Если вы работаете в терминальной ферме (RDP), смена имени хоста сессии может привести к созданию дублирующей записи с пустыми параметрами по умолчанию вместо считывания ранее сохраненных настроек.

Программный способ: точечная корректировка параметров

Бывают ситуации, когда штатная обработка не позволяет открыть окно параметров — например, из-за сбоя внешней компоненты, несоответствия разрядности клиента 1С или зависания вызова функций драйвера при попытке опросить недоступный IP-адрес. В таком случае скорректировать параметры можно с помощью внешней обработки или через групповую обработку данных.

Посмотрим на пример кода, позволяющего десериализовать структуру параметров, изменить требуемое свойство и корректно записать его обратно:


// Создаем менеджер записи регистра сведений для точечной модификации
МенеджерЗаписи = РегистрыСведений.ТорговоеОборудование.СоздатьМенеджерЗаписи();

// Устанавливаем отбор по ключевым измерениям
МенеджерЗаписи.Устройство = ВыбранноеУстройство; // Ссылка на элемент справочника "ТорговоеОборудование"
МенеджерЗаписи.Компьютер  = ИмяКомпьютера();

// Считываем текущую запись из базы данных
МенеджерЗаписи.Прочитать();

Если МенеджерЗаписи.Выбран() Тогда
    // Десериализуем внутреннюю строку платформы в структуру параметров
    СтруктураПараметров = ЗначениеИзСтрокиВнутр(МенеджерЗаписи.Параметры);
    
    // Проверяем тип и корректируем необходимый параметр
    Если ТипЗнч(СтруктураПараметров) = Тип("Структура") Тогда
        СтруктураПараметров.Вставить("P_IPAddress", "192.168.1.150");
        
        // Сериализуем обновленную структуру обратно во внутренний формат платформы
        МенеджерЗаписи.Параметры = ЗначениеВСтрокуВнутр(СтруктураПараметров);
        
        // Фиксируем изменения в регистре сведений
        МенеджерЗаписи.Записать();
    КонецЕсли;
КонецЕсли;

Такой подход позволяет обойти зависший интерфейс драйвера и восстановить корректный сетевой адрес кассового аппарата без пересоздания строки оборудования.

Альтернативный вариант: настройка на стороне кассового аппарата

Если после обновления микропрограммы кассы сетевые настройки сбросились к заводским параметрам по умолчанию, изменить конфигурацию можно не в 1С, а непосредственно на ККТ. Используйте сервисную утилиту производителя (например, «Тест драйвера ККТ»): найдите устройство по дефолтному адресу, верните ему статический IP-адрес, который был закреплен в учетной системе ранее, либо настройте резервирование постоянного IP-адреса по MAC-адресу на вашем DHCP-сервере.

← На главную