📡

1С пассивный режим работы

1С опрашивает устройство по HTTP и получает данные последнего измерения. Устройство не отправляет данные само — только отвечает на запрос.

HttpHandler HTTP GET API устройства

Как это работает

1
Оператор выполняет измерение на устройстве. Данные сохраняются в памяти.
→
2
1С отправляет HTTP GET запрос к API устройства (например, каждые 5 секунд).
→
3
Устройство отвечает JSON с размерами, весом и штрихкодом последнего измерения.

Шаг 1. Установите расширение для 1С

Для корректной работы пассивного режима рекомендуется установить расширение конфигурации, которое содержит готовый веб-сервис для обмена данными с Инфоскан.

Полная инструкция: установка в старой и новой 1С, разбор ошибок, подключение устройства и режимы JSON/SOAP — в разделе Модуль 1С: установка и работа.
1.1

Скачайте расширение

Перейдите по ссылке и скачайте расширение конфигурации:

📦 INFOSCAN-1C_UT_11 github.com/KeilMarkin — расширение для 1С:Управление торговлей 11 ↗
1.2

Установите расширение в конфигурацию

  1. Откройте Конфигуратор вашей базы 1С
  2. Перейдите Конфигурация → Расширения конфигураций
  3. Нажмите Добавить из файла и выберите скачанный .cfe файл
  4. Примените расширение и перезапустите 1С

Шаг 2. Скопируйте готовый шаблон

Шаблон уже полностью готов к использованию. Его не нужно менять или настраивать — просто скопируйте.

1

Шаблон jsScriptHttpHandler

Нажмите кнопку «Копировать» под кодом ниже:

jsScriptHttpHandler.js
return {
    handlerDataResp: function () {
        try {
            if (SENSOR == null) {
                return {
                    width: '0',
                    height: '0',
                    length: '0',
                    weight: '0',
                    barcode: '',
                    volume: '0'
                }
            }
            return {
                width: SENSOR.widthFormat,
                height: SENSOR.heightFormat,
                length: SENSOR.lengthFormat,
                weight: SENSOR.weightFormat,
                barcode: BARCODE,
                volume: SENSOR.volumeFormat
            }
        }
        catch (e) {
            console.error(e);
        }
    }
}
Что делает шаблон: Создаёт HTTP-эндпоинт на устройстве. Когда 1С обращается к нему по GET-запросу, устройство возвращает JSON с данными последнего измерения: ширина, высота, длина, вес, объём и штрихкод. Поле length для Инфоскан Камера берётся из SENSOR.depthFormat — шаблон выше уже учитывает выбранное устройство.

Шаг 3. Загрузите шаблон на устройство

1

Перейдите в раздел «Алгоритмы»

Откройте веб-интерфейс устройства и в левом меню выберите раздел «Алгоритмы». Найдите поле jsScriptHttpHandler.

2

Вставьте код и сохраните

  1. Очистите поле jsScriptHttpHandler (если в нём уже есть код)
  2. Вставьте скопированный код из шаблона выше
  3. Нажмите кнопку «Сохранить» под полем
  4. Устройство применит изменения автоматически
Готово! Теперь устройство готово отвечать на HTTP GET запросы. Проверьте, открыв в браузере: http://<IP_устройства>/api/data

Шаг 4. Проверьте работу

3.1

Проверьте API в браузере

Откройте в браузере (подставьте IP-адрес устройства):

Проверочный запрос
http://<IP_устройства>/api/data

Должен отобразиться JSON с данными последнего измерения. Габариты в миллиметрах, вес в граммах, объём в литрах:

Пример ответа
{
    "width": "275",
    "height": "192",
    "length": "183",
    "weight": "1234",
    "barcode": "4600572256094",
    "volume": "9.66"
}
ПолеОписаниеЕдиницы
widthШирина объектамм
heightВысота объектамм
lengthДлина (для Инфоскан Камера — глубина) объектамм
weightВес объектаг
volumeОбъём объектал
barcodeСчитанный штрихкод—
Примечание: Данные отображаются только после успешного измерения. Если объект измерения снят с весовой платформы — в ответе будут нули и пустой штрихкод. Убедитесь, что объект находится на платформе в момент запроса.
3.2

Проверка через curl

С любого ПК в той же сети, что и устройство:

Командная строка
curl http://<IP_устройства>/api/data

В ответ должен прийти тот же JSON, что и в браузере. Если curl сообщает об ошибке соединения — проверьте IP-адрес и сеть.

3.3

Если ответ не появляется

  • Убедитесь, что устройство включено и подключено к сети
  • Проверьте, что вы используете правильный IP-адрес
  • Убедитесь, что код сохранён в поле jsScriptHttpHandler
  • Попробуйте выполнить хотя бы одно измерение на устройстве перед запросом