mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-16 00:09:01 +03:00
feat(web-publish): публикация сервисов расширений в default.vrd
publishExtensionsByDefault="true" на <ws> и <httpServices>: сервисы, поставляемые расширениями конфигурации, публикуются вместе с сервисами самой конфигурации. Без атрибута HTTP-сервис расширения отдаёт 404, web-сервис — 500 «Сервис не найден». Проверено E2E на 8.3.24 (A/B на одном дескрипторе, оба порта). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
27e78859e8
commit
1eeea204c3
@@ -84,6 +84,10 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" <
|
|||||||
3. Если нужно протестировать сервис — помоги составить запрос
|
3. Если нужно протестировать сервис — помоги составить запрос
|
||||||
4. Если база не зарегистрирована — предложи `/db-list add`
|
4. Если база не зарегистрирована — предложи `/db-list add`
|
||||||
|
|
||||||
|
Публикуются и сервисы расширений — по `publishExtensionsByDefault` в дескрипторе. Если сервис
|
||||||
|
расширения всё же отдаёт 404 (HTTP) или 500 «Сервис не найден» (SOAP), расширение не применено
|
||||||
|
к базе данных: `/db-update -Extension <имя>`.
|
||||||
|
|
||||||
## Примеры
|
## Примеры
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
|
|||||||
@@ -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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
@@ -280,8 +280,8 @@ $vrdContent = @"
|
|||||||
base="/$AppName"
|
base="/$AppName"
|
||||||
ib="$ibString">
|
ib="$ibString">
|
||||||
<standardOdata enable="true"/>
|
<standardOdata enable="true"/>
|
||||||
<ws pointEnableCommon="true"/>
|
<ws pointEnableCommon="true" publishExtensionsByDefault="true"/>
|
||||||
<httpServices publishByDefault="true"/>
|
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
|
||||||
</point>
|
</point>
|
||||||
"@
|
"@
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -299,8 +299,8 @@ def main():
|
|||||||
base="/{app_name}"
|
base="/{app_name}"
|
||||||
ib="{ib_string}">
|
ib="{ib_string}">
|
||||||
<standardOdata enable="true"/>
|
<standardOdata enable="true"/>
|
||||||
<ws pointEnableCommon="true"/>
|
<ws pointEnableCommon="true" publishExtensionsByDefault="true"/>
|
||||||
<httpServices publishByDefault="true"/>
|
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
|
||||||
</point>'''
|
</point>'''
|
||||||
|
|
||||||
with open(vrd_path, 'wb') as f:
|
with open(vrd_path, 'wb') as f:
|
||||||
|
|||||||
+18
-2
@@ -16,8 +16,8 @@
|
|||||||
base="/appname"
|
base="/appname"
|
||||||
ib="connection-string">
|
ib="connection-string">
|
||||||
<standardOdata enable="true"/>
|
<standardOdata enable="true"/>
|
||||||
<ws pointEnableCommon="true"/>
|
<ws pointEnableCommon="true" publishExtensionsByDefault="true"/>
|
||||||
<httpServices publishByDefault="true"/>
|
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
|
||||||
</point>
|
</point>
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -62,6 +62,22 @@ URL: `/{AppName}/ws/{WebServiceName}?wsdl`
|
|||||||
Публикация HTTP-сервисов. `publishByDefault="true"` публикует все сервисы из конфигурации.
|
Публикация HTTP-сервисов. `publishByDefault="true"` публикует все сервисы из конфигурации.
|
||||||
URL: `/{AppName}/hs/{RootUrl}/...`
|
URL: `/{AppName}/hs/{RootUrl}/...`
|
||||||
|
|
||||||
|
#### Сервисы расширений — `publishExtensionsByDefault`
|
||||||
|
|
||||||
|
Атрибут `publishExtensionsByDefault="true"` на `<ws>` и `<httpServices>` публикует сервисы,
|
||||||
|
поставляемые **расширениями** конфигурации. По умолчанию платформа их не публикует: без атрибута
|
||||||
|
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`
|
`{ApachePath}/publish/{AppName}/default.vrd`
|
||||||
|
|||||||
Reference in New Issue
Block a user