web-publish について
web-publish は、Apache HTTP Server を介して 1C 情報ベースを公開するスキルです。公開ファイルと Apache を設定し、再実行時には既存の公開設定を更新します。
主な機能
- 01default.vrd の生成
- 02httpd.conf の設定
- 03Apache HTTP Server の起動
- 04ファイル型またはサーバー型データベースの公開
- 05公開名とポートの指定
活用シーン
- 011C データベースの Web 公開
- 02別ユーザーでデータベースを再公開
- 03アクセス権テスト用の並行公開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nikolay-shirokov/ cc-1c-skills --skill web-publishインストール後、Claude Code で/web-publishを入力して読み込まれたか確認します。
同梱ファイルscripts/web-publish.ps1scripts/web-publish.py
README(原文)English
プロジェクトの README よりこの README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。
/web-publish — Публикация 1С через Apache
Генерирует default.vrd, настраивает httpd.conf и запускает Apache HTTP Server для веб-доступа к информационной базе. При необходимости скачивает portable Apache. Идемпотентный — повторный вызов обновляет конфигурацию.
Usage
/web-publish [database]
/web-publish dev
/web-publish dev --manual
/web-publish dev --port 9090
Параметры подключения
Прочитай .v8-project.json из корня проекта и разреши базу:
- Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
- Если указал базу по имени — ищи по id / alias / name в
.v8-project.json - Если не указал — сопоставь текущую ветку Git с
databases[].branches - Если ветка не совпала — используй
default
ОБЯЗАТЕЛЬНО передавай все найденные параметры:
-V8Path—v8pathнайденной записи базы, иначе корневойv8path. Не задан ни там, ни там — не передавай, но версия платформы тогда выберется автоматически и может оказаться не той-UserName— из поляuserнайденной записи базы (если есть)-Password— из поляpasswordнайденной записи базы (если есть)-ApachePath— изwebPathв.v8-project.json(если есть)
Если файла .v8-project.json нет — предложи /db-list add.
Команда
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" <параметры>
Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
-V8Path <путь> | нет | Каталог bin платформы (для wsap24.dll) |
-InfoBasePath <путь> | * | Файловая база |
-InfoBaseServer <сервер> | * | Сервер 1С (для серверной базы) |
-InfoBaseRef <имя> | * | Имя базы на сервере |
-UserName <имя> | нет | Имя пользователя |
-Password <пароль> | нет | Пароль |
-AppName <имя> | нет | Имя публикации (по умолчанию из имени каталога базы) |
-ApachePath <путь> | нет | Корень Apache (по умолчанию tools/apache24) |
-Port <порт> | нет | Порт (по умолчанию 8081) |
-Manual | нет | Не скачивать — только проверить и дать инструкцию |
*— нужен либо-InfoBasePath, либо пара-InfoBaseServer+-InfoBaseRef
Несколько пользователей одной базы
Повторный вызов с тем же AppName заменяет публикацию (идемпотентность). Это используется для:
- смены пользователя: «опубликуй под Ивановым» → тот же AppName, новый
-UserName - перезапуска после
/web-stop: тот же вызов поднимает Apache обратно
Если пользователь просит параллельную публикацию под другим пользователем (для тестирования разных наборов прав), добавь суффикс к AppName:
- база
bpdemo, пользовательИванов→-AppName bpdemo-ivanov - база
bpdemo, пользовательAdmin→-AppName bpdemo-admin(или простоbpdemo)
Ключевые слова: «ещё одну публикацию», «дополнительно», «параллельно», «под другим пользователем не убирая текущую».
После выполнения
- Сообщи URL-ы:
- Веб-клиент:
http://localhost:{Port}/{AppName} - OData:
http://localhost:{Port}/{AppName}/odata/standard.odata - HTTP-сервисы:
http://localhost:{Port}/{AppName}/hs/<RootUrl>/... - Web-сервисы:
http://localhost:{Port}/{AppName}/ws/<Имя>?wsdl
- Веб-клиент:
- Предложи открыть в браузере
- Если нужно протестировать сервис — помоги составить запрос
- Если база не зарегистрирована — предложи
/db-list add
Сервисы расширений публикуются наравне с сервисами конфигурации. Если сервис расширения всё же
отдаёт 404 (HTTP) или 500 «Сервис не найден» (SOAP) — расширение не применено к базе данных:
/db-update -Extension <имя>.
Примеры
# Файловая база
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin"
# С явным именем публикации и портом
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -AppName "mydb" -Port 9090
# Серверная база
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret"
# Ручной режим (только инструкция)
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -Manual