Cc-1c-skills web-publish
Публикация информационной базы 1С через Apache. Используй когда пользователь просит опубликовать базу, сервисы, настроить веб-доступ, веб-клиент, открыть в браузере
install
source · Clone the upstream repo
git clone https://github.com/Nikolay-Shirokov/cc-1c-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Nikolay-Shirokov/cc-1c-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/web-publish" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-web-publish && rm -rf "$T"
manifest:
.claude/skills/web-publish/SKILL.mdsource content
/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
. Если не передать, скрипт автоопределит версию платформы, что может выбрать не ту версию.v8-project.json
— из поля-UserName
найденной записи базы (если есть)user
— из поля-Password
найденной записи базы (если есть)password
— из-ApachePath
вwebPath
(если есть).v8-project.json
Если файла
.v8-project.json нет — предложи /db-list add.
Команда
powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 <параметры>
Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
| нет | Каталог bin платформы (для wsap24.dll) |
| * | Файловая база |
| * | Сервер 1С (для серверной базы) |
| * | Имя базы на сервере |
| нет | Имя пользователя |
| нет | Пароль |
| нет | Имя публикации (по умолчанию из имени каталога базы) |
| нет | Корень Apache (по умолчанию ) |
| нет | Порт (по умолчанию ) |
| нет | Не скачивать — только проверить и дать инструкцию |
— нужен либо*, либо пара-InfoBasePath+-InfoBaseServer-InfoBaseRef
Несколько пользователей одной базы
Повторный вызов с тем же AppName заменяет публикацию (идемпотентность). Это используется для:
- смены пользователя: «опубликуй под Ивановым» → тот же AppName, новый
-UserName - перезапуска после
: тот же вызов поднимает Apache обратно/web-stop
Если пользователь просит параллельную публикацию под другим пользователем (для тестирования разных наборов прав), добавь суффикс к 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
Примеры
# Файловая база powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" # С явным именем публикации и портом powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 -InfoBasePath "C:\Bases\MyDB" -AppName "mydb" -Port 9090 # Серверная база powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" # Ручной режим (только инструкция) powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 -InfoBasePath "C:\Bases\MyDB" -Manual