
Автономный сервер
Файловая ИБ публикуется по HTTP без отдельной серверной установки.
Автономный сервер (ibsrv) — это лёгкий сервер 1С:Предприятия, который публикует файловую ИБ проекта по HTTP без отдельной серверной установки. Расширение поднимает его для локальной разработки и отладки REST (HTTP-сервисы), SOAP (Web-сервисы) и OData: запустил — и сервисы доступны в браузере и из внешних клиентов.
Параметры сервера задаются в настройках расширения (1c-platform-tools.server.*). Публикуется база активного профиля запуска, и только файловая.
Статус-бар и меню
После открытия проекта 1С в статусной строке появляется элемент состояния сервера:
$(server) Сервер 1С— остановлен;$(sync~spin) Сервер 1С…— запускается;$(broadcast) Сервер 1С :<порт>— запущен;$(error) Сервер 1С— ошибка (откройте журнал).
Клик открывает меню действий: Запустить / Остановить / Перезапустить, Открыть в браузере, Выбрать публикуемые сервисы, Отладка через сервер, Показать журнал, Открыть publication.yaml. Те же действия доступны командами палитры в категории 1С: Автономный сервер.
Запуск
Сервер поднимается на базе активного профиля запуска. Версию платформы задаёт настройка server.platformVersion, пустая берёт версию из профиля, а если и там пусто, наибольшую установленную.
Когда сервер готов, в статусной строке появляется порт, а корневой адрес публикации пишется в журнал: канал Output → «1С: Автономный сервер».
При смене профиля запуска сервер переключается на его базу, а если работает на другой, предложит перезапуск.
Смена текущего проекта сервер не останавливает. Запуск в другом проекте спросит, остановить ли сервер первого.
Конфиг публикации и ручные правки
Конфиг лежит в build/ibsrv/publication.yaml (каталог build/ обычно в .gitignore — у каждого свой). Это источник истины для уже созданного файла:
- файл создаётся при первом запуске (или командой Открыть publication.yaml) и больше не перезаписывается автоматически;
- можно остановить сервер, изменить параметры прямо в файле (например
server.port) и запустить заново — новые параметры применятся (адрес и порт в статус-баре/браузере читаются из файла); - при изменении набора публикуемых сервисов (см. ниже) файл перегенерируется, но серверные параметры (порт/хост/база/лицензии) сохраняются из текущего файла;
- каталог можно переопределить настройкой
server.dataPath.
Открыть в браузере
Действие Открыть в браузере предлагает корень публикации и OData $metadata. Адреса строятся по настройкам (host, port, httpBase), например http://localhost:8314/ib/ и http://localhost:8314/ib/odata/standard.odata/$metadata. HTTP-сервисы доступны по …/ib/hs/<корневой_URL>, Web-сервисы — по …/ib/ws/<имя>.
Выбор публикуемых сервисов
Выбрать публикуемые сервисы открывает множественный выбор по метаданным проекта: OData, отдельные Web- и HTTP-сервисы.
- Отмеченные «Все Web-сервисы» / «Все HTTP-сервисы» — публикуется вся категория (по умолчанию).
- Снимите «Все …» и отметьте конкретные сервисы — публикуются только они. Достаточно отметить имя: адрес публикации подставится из метаданных.
Выбор локальный, у каждого свой, и в репозиторий не попадает. Если сервер запущен, расширение предложит перезапустить его, чтобы применить новый набор публикации. Если метаданные недоступны, в выборе остаются только категории.
Команды, которым нужна база
Файловую базу нельзя открыть, пока её держит ibsrv. Поэтому команды, которые открывают базу своим процессом, сначала останавливают запущенный сервер, а после завершения поднимают обратно:
- загрузка и выгрузка
cfиcfe, поставка и обновление конфигурации БД; - инициализация базы, выгрузка и загрузка
dt, чтение списка расширений; - сборка и разборка внешних обработок и отчётов;
- запуск конфигуратора и предприятия, включая команды поддержки;
- тестирование и синтаксический контроль.
Сборка cf и cfe из исходников и разборка файлов сюда не входят: vanessa-runner выполняет их во временной базе, сервер остаётся работать.
Если остановить не удалось, команда не начинается: расширение говорит об этом вместо того, чтобы дать конфигуратору упасть на занятой базе.
Сервер возвращается сам, когда команда идёт задачей VS Code: о её завершении расширение знает. С выключенной настройкой execution.useTasks команда уходит в интерактивный терминал, завершение остаётся за кадром, поэтому сервер остаётся выключенным и запускается из статусной строки. Так же расширение поступает с запуском конфигуратора и предприятия: vanessa-runner отдаёт управление сразу, а базу дальше держит само приложение 1С.
Отладка через сервер
Отладка через сервер сама включает отладку в настройках, перезапускает сервер и подключает к нему отладчик. Благодаря выдаче лицензий автономным сервером отлаживать серверный код HTTP/Web-сервисов можно без отдельной лицензии. Подробнее об отладчике — в руководстве по отладке.
Тесты на этом же сервере
Порт сервера берётся из настроек и не меняется от запуска к запуску, поэтому прогоны тестов можно направлять на уже поднятый сервер: --ibsrv-attach --ibsrv-port <порт>. Один сервер и для ручной работы с сервисами, и для тестов.
Настройки
| Настройка | По умолчанию | Назначение |
|---|---|---|
1c-platform-tools.server.path.platform | пусто | Каталог установки платформы для поиска ibsrv. Пусто — автоопределение (%PROGRAMFILES%\1cv8 в Windows, /opt/1cv8/x86_64 и /opt/1C/v8.3/x86_64 в Linux). |
1c-platform-tools.server.platformVersion | пусто | Версия платформы (8.3.27.1936 или префикс 8.3.27). Пусто — наибольшая установленная. |
1c-platform-tools.server.host | localhost | Сетевой интерфейс (localhost / any / IP). |
1c-platform-tools.server.port | 8314 | HTTP-порт. |
1c-platform-tools.server.httpBase | ib | Базовый путь публикации (ib → …/ib/; пусто или / — корень сайта). |
1c-platform-tools.server.directRegPort | пусто | Порт регистрации прямого соединения (--direct-regport). Пусто: умолчание платформы 1541. |
1c-platform-tools.server.directRange | пусто | Диапазон портов прямого соединения (--direct-range) в формате нижний:верхний. Пусто: умолчание платформы 1560:1591. |
1c-platform-tools.server.path.data | пусто | Каталог данных сервера и publication.yaml; относительный путь — от корня проекта. Пусто — build/ibsrv. |
1c-platform-tools.server.distributeLicenses | true | Выдача клиентских лицензий (работа и отладка без отдельной лицензии). |
1c-platform-tools.server.publishOData | true | Публиковать OData по умолчанию. |
1c-platform-tools.server.publishWebServices | true | Публиковать Web-сервисы по умолчанию. |
1c-platform-tools.server.publishHttpServices | true | Публиковать HTTP-сервисы по умолчанию. |
1c-platform-tools.server.debug | false | Включить порт отладки сервера. |
1c-platform-tools.server.debugPort | 1550 | Порт сервера отладки. |
Настройки publish* задают поведение по умолчанию; точечный выбор сервисов (см. выше) его переопределяет.
Порты прямого соединения меняют, когда на машине уже стоит сервер 1С: ibsrv по умолчанию занимает те же 1541 и 1560:1591, что и кластер, и не стартует.
Связанные руководства
- Профили запуска — источник строки подключения к ИБ.
- Отладка 1С — отладчик, к которому подключается сервер.
- 1С: Метаданные — дерево метаданных, откуда берутся списки сервисов.