diff --git a/.claude/skills/web-publish/SKILL.md b/.claude/skills/web-publish/SKILL.md index 69234080..11f07aa8 100644 --- a/.claude/skills/web-publish/SKILL.md +++ b/.claude/skills/web-publish/SKILL.md @@ -84,6 +84,10 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" < 3. Если нужно протестировать сервис — помоги составить запрос 4. Если база не зарегистрирована — предложи `/db-list add` +Публикуются и сервисы расширений — по `publishExtensionsByDefault` в дескрипторе. Если сервис +расширения всё же отдаёт 404 (HTTP) или 500 «Сервис не найден» (SOAP), расширение не применено +к базе данных: `/db-update -Extension <имя>`. + ## Примеры ```powershell diff --git a/.claude/skills/web-publish/scripts/web-publish.ps1 b/.claude/skills/web-publish/scripts/web-publish.ps1 index a3b1f770..0a4165d3 100644 --- a/.claude/skills/web-publish/scripts/web-publish.ps1 +++ b/.claude/skills/web-publish/scripts/web-publish.ps1 @@ -1,4 +1,4 @@ -# web-publish v1.4 — Publish 1C infobase via Apache +# web-publish v1.5 — Publish 1C infobase via Apache # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills <# .SYNOPSIS @@ -280,8 +280,8 @@ $vrdContent = @" base="/$AppName" ib="$ibString"> - - + + "@ diff --git a/.claude/skills/web-publish/scripts/web-publish.py b/.claude/skills/web-publish/scripts/web-publish.py index 1fb440fb..35a5826e 100644 --- a/.claude/skills/web-publish/scripts/web-publish.py +++ b/.claude/skills/web-publish/scripts/web-publish.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# web-publish v1.4 — Publish 1C infobase via Apache +# web-publish v1.5 — Publish 1C infobase via Apache # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills """ @@ -299,8 +299,8 @@ def main(): base="/{app_name}" ib="{ib_string}"> - - + + ''' with open(vrd_path, 'wb') as f: diff --git a/docs/web-spec.md b/docs/web-spec.md index 577cdbe9..0ee25ec8 100644 --- a/docs/web-spec.md +++ b/docs/web-spec.md @@ -16,8 +16,8 @@ base="/appname" ib="connection-string"> - - + + ``` @@ -62,6 +62,22 @@ URL: `/{AppName}/ws/{WebServiceName}?wsdl` Публикация HTTP-сервисов. `publishByDefault="true"` публикует все сервисы из конфигурации. URL: `/{AppName}/hs/{RootUrl}/...` +#### Сервисы расширений — `publishExtensionsByDefault` + +Атрибут `publishExtensionsByDefault="true"` на `` и `` публикует сервисы, +поставляемые **расширениями** конфигурации. По умолчанию платформа их не публикует: без атрибута +HTTP-сервис расширения отдаёт **404**, web-сервис — **500 «Сервис не найден»**. Атрибуты +`pointEnableCommon` / `publishByDefault` на сервисы расширений не распространяются. + +Проверено E2E на 8.3.24: A/B на одном и том же дескрипторе — с атрибутами `/hs/...` и `/ws/...?wsdl` +отдают 200, без них 404/500. Перезапуск Apache для смены дескриптора не нужен, vrd читается на запрос. + +> Расширение должно быть применено к базе данных (`/db-update -Extension <имя>`), иначе его сервисы +> недоступны независимо от дескриптора. + +> **Побочный эффект.** Атрибут действует на все подключённые расширения: любое расширение, +> загруженное в ИБ, автоматически выставляет свои сервисы наружу. + ### Расположение `{ApachePath}/publish/{AppName}/default.vrd`