# 1С:Предприятие — веб-публикация для DFWebOS
Контейнер с Apache 2.4 и модулем веб-сервера 1С:Предприятие 8.3, публикующий информационную базу 1С по пути `/BuhBase`.
> Это веб-фронтенд. Сам **сервер 1С:Предприятие** должен быть запущен отдельно (на той же машине или в локальной сети) — приложение лишь публикует информационную базу через Apache.
Адаптация репозитория [petrmyazin/docker-apache-1c-example](https://github.com/petrmyazin/docker-apache-1c-example) под фреймворк приложений DFWebOS.
## Структура каталога
```
1c/
├── dfwebos-app.yml # манифест приложения для DFWebOS
├── docker-compose.yml # описание сервиса (использует build: ./build)
├── README.md # этот файл
├── build/ # build-контекст образа Apache + модуль 1С
│ ├── Dockerfile
│ ├── httpd.conf # преднастроенный конфиг Apache + публикация /BuhBase
│ ├── default.vrd # дефолтные настройки подключения к серверу 1С
│ ├── .gitignore # исключает deb64.tar.gz из git
│ └── deb64.tar.gz # ⚠️ положить вручную, см. ниже
└── data/
└── vrd/
└── default.vrd # настройки подключения, монтируются в контейнер
```
## Подготовка перед установкой
### 1. Скачать дистрибутив сервера 1С:Предприятие
Дистрибутив не входит в репозиторий из-за лицензионных ограничений. Скачайте архив самостоятельно:
1. Откройте [releases.1c.ru](https://releases.1c.ru).
2. Перейдите в раздел **Технологическая платформа 8.3 → Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем**.
3. Скачайте архив версии **8.3.23.1912** (или другой — см. примечание ниже).
4. Сохраните файл как:
```
1c/build/deb64.tar.gz
```
> При смене версии платформы обновите путь к `wsap24.so` в [build/httpd.conf](build/httpd.conf) (строка `LoadModule _1cws_module /opt/1cv8/x86_64/<версия>/wsap24.so`) и поле `version` в [dfwebos-app.yml](dfwebos-app.yml).
### 2. Настроить подключение к серверу 1С
Отредактируйте файл [data/vrd/default.vrd](data/vrd/default.vrd), указав:
- адрес вашего сервера 1С:Предприятие (`Srvr=`),
- имя информационной базы (`Ref=`).
Пример:
```xml
```
Файл смонтирован томом — изменения подхватываются перезапуском приложения, **без пересборки образа**.
### 3. (Опционально) добавить DNS-имена сервера 1С
Если в `default.vrd` используется DNS-имя сервера 1С (а не IP), которое не разрешается из контейнера, раскомментируйте блок `extra_hosts:` в [docker-compose.yml](docker-compose.yml) и пропишите соответствие имени и IP-адреса.
## Установка и запуск в DFWebOS
После того как `deb64.tar.gz` положен в `build/` и `data/vrd/default.vrd` настроен, приложение можно устанавливать стандартным способом DFWebOS — образ соберётся автоматически на первом запуске.
После установки информационная база будет доступна по адресу:
```
http://:8180/BuhBase/
```
## Несколько информационных баз
Чтобы опубликовать вторую базу:
1. Подготовьте отдельный `.vrd` (например, `another.vrd`) рядом с `default.vrd` в `data/vrd/`.
2. Добавьте в `build/Dockerfile` копирование своего `.vrd` в каталог `/usr/local/apache2/htdocs//`.
3. Раскомментируйте и адаптируйте блок второй базы в `build/httpd.conf` (см. конец файла).
4. Смонтируйте новый `.vrd` томом в `docker-compose.yml`.
5. Переустановите приложение в DFWebOS, чтобы пересобрать образ.