Initial import NDC_1C

This commit is contained in:
2026-03-26 10:38:25 +03:00
commit a162d77ef7
2943 changed files with 3615871 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
# ТЗ Для 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://<host_or_ip>
ONEC_INFOBASE=<published_base_name>
ONEC_USERNAME=<readonly_user>
ONEC_PASSWORD=<readonly_password>
ONEC_ODATA_PATH=/odata/standard.odata/
ONEC_TIMEOUT=30
ONEC_VERIFY_TLS=false
```
## 5. Проверка Готовности (Smoke Test)
Проверка должна выполняться read-only пользователем.
```powershell
$user = "<readonly_user>"
$pass = "<readonly_password>"
$pair = "$($user):$($pass)"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$token = [Convert]::ToBase64String($bytes)
$headers = @{ Authorization = "Basic $token" }
Invoke-WebRequest -Uri "http://<host>/<base>/odata/standard.odata/\$metadata" -Headers $headers -Method GET
Invoke-WebRequest -Uri "http://<host>/<base>/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`, подтверждение запрета записи).