# ТЗ Для 1С-Админа: Публикация OData (Read-Only) ## 1. Цель Обеспечить доступ внешнего сервиса к копии базы 1С по стандартному OData-интерфейсу в режиме только чтения. ## 2. Контур - База: `X:\1C\База бухгалтерии` (файловая ИБ, есть `1Cv8.1CD`) - Рабочий проект интеграции: `X:\1C\NDC_1C` - Среда: тестовая, не production ## 3. Что Нужно Сделать 1. Опубликовать базу на локальном веб-сервере (IIS или Apache), доступном с машины интеграции. 2. Включить стандартный интерфейс OData для опубликованной базы. 3. Создать отдельного технического пользователя для интеграции, только с правами чтения. 4. Запретить любые write-операции для этого пользователя (создание, изменение, удаление, проведение, перепроведение). 5. Открыть на старте только минимально нужные сущности: документы, контрагенты, договоры, организации, планы счетов, регистры/движения для проводок. 6. Передать команде интеграции параметры доступа: базовый URL публикации, путь OData, логин и пароль read-only пользователя. ## 4. Формат Передачи Параметров Ожидаемые переменные: ```env ONEC_BASE_URL=http:// ONEC_INFOBASE= ONEC_USERNAME= ONEC_PASSWORD= ONEC_ODATA_PATH=/odata/standard.odata/ ONEC_TIMEOUT=30 ONEC_VERIFY_TLS=false ``` ## 5. Проверка Готовности (Smoke Test) Проверка должна выполняться read-only пользователем. ```powershell $user = "" $pass = "" $pair = "$($user):$($pass)" $bytes = [System.Text.Encoding]::ASCII.GetBytes($pair) $token = [Convert]::ToBase64String($bytes) $headers = @{ Authorization = "Basic $token" } Invoke-WebRequest -Uri "http:////odata/standard.odata/\$metadata" -Headers $headers -Method GET Invoke-WebRequest -Uri "http:////odata/standard.odata/" -Headers $headers -Method GET ``` Ожидаемо: - `$metadata` отвечает `200` - список сущностей доступен - запросы чтения работают - попытки изменения возвращают отказ по правам ## 6. Критерии Приёмки 1. OData endpoint отвечает и доступен по сети с машины интеграции. 2. Read-only пользователь успешно читает metadata и выбранные сущности. 3. Write-операции read-only пользователю недоступны. 4. Переданы все параметры подключения для заполнения `.env`. ## 7. Что Нельзя Делать - Выдавать интеграционному пользователю расширенные права. - Открывать доступ к production-базе. - Разрешать запись в документы/регистры через OData. ## 8. Результат Для Команды Интеграции Админ передаёт: 1. Рабочий URL OData. 2. Данные read-only пользователя. 3. Короткий отчёт о проверке (`200` на `$metadata`, подтверждение запрета записи).