> For the complete documentation index, see [llms.txt](https://docs.aamsystems.ru/passoffice/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aamsystems.ru/passoffice/passoffice-guide/admin-guide-doc/skanirovanie/passportbox-integration.md).

# Установка PassportBox

#### **Инструкция по установке и настройке драйвера PassportBox в PassOffice**

***

**1. Установка драйвера PassportBox**

1. **Запустите инсталлятор PassOffice**
   * Выберите компонент **"Драйвер PassportBox"**
   * При установке автоматически будет установлен **RabbitMQ** (если не был установлен ранее).
2. **Проверьте установку**
   * Драйвер появится в списке служб Windows:
     * **Driver Manager**
     * **RabbitMQ**

***

**2. Настройка режима работы PassportBox**

Файл конфигурации:

```
[PassOffice]\WebDrivers\Settings\ApcApplRes\ApcWebDrvManager\ApcWebDrvManager_defaultCfg.ini
```

**Режимы работы (секция `ApcPassportBox`)**

```
ApcPassportBox_mode=0  # Режим работы (0, 1 или 2)
```

* **`0`** – **Стандартный режим** (через HTTP-запросы, рекомендуется для PassOffice).
* **`1` или `2`** – **Автоматическая отправка сканов через WebSocket** (используется для Терминала саморегистрации).

**Настройки RabbitMQ (обязательные)**

```
rabbit_producer_routing_key_prefix=apc.wdm.passportbox  
rabbit_ip=localhost  
rabbit_port=5672  
rabbit_login=guest  
rabbit_password=guest  
rabbit_channel=1  
rabbit_exchange=apc.wdm.passportbox  
rabbit_exchange_type=topic  
rabbit_exchange_durable=1  
rabbit_queue=apc.wdm.passportbox  
```

***

**3. Запуск и настройка в PassOffice**

1. **Запустите службу**
   * Откройте **Службы Windows** (`services.msc`).
   * Запустите **Driver Manager**.
2. **Включите распознавание в PassOffice**
   * Перейдите: **Конфигурирование → Настройки → Корневые настройки → Вкладка "Документы"**.
   * Активируйте **"Распознавание документов"** и выберите **"PassportBox"**.
   * Укажите URL сервиса:

     ```
     http://localhost:7010/v1/PassportBox/v2
     ```

***

**4. Калибровка сканера PassportBox**

1. **Подготовьте тестовую картинку**
   * Распечатайте тестовое изображение (см. **"Приложение"** в документации PassportBox).
2. **Запустите калибровку**
   * Нажмите **Ctrl + R** в интерфейсе сканирования.
   * Поместите тестовую картинку в сканер по инструкции.
3. **Проверьте результат**
   * Если распознавание нечеткое – **повторите калибровку**.

***

**5. Использование сканера в PassOffice**

**Способы сканирования**

1. **Через иконку "Сканирование"**
   * В правом верхнем углу нажмите **"Сканирование"** → выберите **PassportBox** → **"Сканировать"**.
2. **При создании заявки**
   * В разделе **"Мои заявки"** → нажмите **"Сканировать"** → проверьте данные → добавьте в заявку.
3. **При выдаче пропуска**
   * В выпадающем меню выберите **"Отсканировать посетителя"** → внесите данные.

***

**6. Настройка пользователя RabbitMQ**

**Когда использовать `guest`?**

* Если **PassOffice, RabbitMQ и PassportBox** работают **на одном ПК**.

**Создание отдельного пользователя (рекомендуется)**

1. Откройте веб-интерфейс RabbitMQ:

   ```
   http://localhost:15672
   ```
2. Войдите под `guest/guest`.
3. Перейдите: **Admin → Add User** → задайте логин/пароль.
4. Назначьте роль **administrator**.
5. Обновите настройки в `ApcWebDrvManager_defaultCfg.ini`:

   ```
   rabbit_login=новый_логин  
   rabbit_password=новый_пароль  
   ```

***

**7. Проверка работы**

1. **Тестовое сканирование**
   * Убедитесь, что данные документа (ФИО, номер и т.д.) корректно распознаются.
2. **Проверка RabbitMQ**
   * В веб-интерфейсе (`http://localhost:15672`) проверьте:
     * **Queues** (очереди `apc.wdm.passportbox`).
     * **Connections** (активные подключения).

***

**8. Возможные проблемы и решения**

| Проблема                   | Решение                                                   |
| -------------------------- | --------------------------------------------------------- |
| **Сканер не отвечает**     | Проверьте подключение и калибровку.                       |
| **Ошибка RabbitMQ**        | Убедитесь, что служба запущена и пользователь существует. |
| **Данные не распознаются** | Повторите калибровку или проверьте тестовую картинку.     |

**Проблемы с RabbitMQ**

1. **Пользователь не добавлен**
   * Проверьте список пользователей:

     ```
     rabbitmqctl.bat list_users
     ```
   * Добавьте пользователя:

     ```
     rabbitmqctl.bat add_user username password
     ```
   * Обновите данные о пользователе в файле конфигурации:

     ```
     WebDrivers\Settings\ApcApplRes\ApcWebDrvManager\ApcWebDrvManager_defaultCfg.ini
     ```
2. **Ошибка подключения (Invalid challenge reply)**
   * Проверьте файлы `.erlang.cookie` в:
     * `C:\Windows\System32\config\systemprofile`
     * `C:\Users\[Ваш_пользователь]`
   * Убедитесь, что их содержимое **идентично**. Если это не так, перенесите его из папки System32 вручную в папку текущего пользователя.
   * Перезапустите сервис RabbitMQ.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.aamsystems.ru/passoffice/passoffice-guide/admin-guide-doc/skanirovanie/passportbox-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
