mcpField
W
web-publish

web-publish

github.com/nikolay-shirokov云与 DevOps74152 次安装今天更新
代码仓库

关于 web-publish

web-publish 是通过 Apache HTTP Server 发布 1C 信息库的技能。它配置发布文件和 Apache,并支持重复运行以更新现有发布。

主要功能

  1. 01生成 default.vrd
  2. 02配置 httpd.conf
  3. 03启动 Apache HTTP Server
  4. 04发布文件或服务器数据库
  5. 05设置发布名称和端口

适用场景

  1. 01通过 Web 访问 1C 数据库
  2. 02使用另一用户重新发布数据库
  3. 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 из корня проекта и разреши базу:

  1. Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
  2. Если указал базу по имени — ищи по id / alias / name в .v8-project.json
  3. Если не указал — сопоставь текущую ветку Git с databases[].branches
  4. Если ветка не совпала — используй 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)

Ключевые слова: «ещё одну публикацию», «дополнительно», «параллельно», «под другим пользователем не убирая текущую».

После выполнения

  1. Сообщи 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
  2. Предложи открыть в браузере
  3. Если нужно протестировать сервис — помоги составить запрос
  4. Если база не зарегистрирована — предложи /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

评论

支持 Markdown