Skip to content

Автономный сервер

Файловая ИБ публикуется по 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.hostlocalhostСетевой интерфейс (localhost / any / IP).
1c-platform-tools.server.port8314HTTP-порт.
1c-platform-tools.server.httpBaseibБазовый путь публикации (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.distributeLicensestrueВыдача клиентских лицензий (работа и отладка без отдельной лицензии).
1c-platform-tools.server.publishODatatrueПубликовать OData по умолчанию.
1c-platform-tools.server.publishWebServicestrueПубликовать Web-сервисы по умолчанию.
1c-platform-tools.server.publishHttpServicestrueПубликовать HTTP-сервисы по умолчанию.
1c-platform-tools.server.debugfalseВключить порт отладки сервера.
1c-platform-tools.server.debugPort1550Порт сервера отладки.

Настройки publish* задают поведение по умолчанию; точечный выбор сервисов (см. выше) его переопределяет.

Порты прямого соединения меняют, когда на машине уже стоит сервер 1С: ibsrv по умолчанию занимает те же 1541 и 1560:1591, что и кластер, и не стартует.

Связанные руководства

Распространяется по лицензии MIT.