Long polling в 1С без Apache и IIS
Встроенный HTTP-приёмник в Расширенной редакции принимает запросы от расширения 1С через polling. Apache и IIS на стенде разработчика не нужны.
Чтобы AI-ассистент мог обращаться к данным 1С, нужна точка интеграции. Штатный способ это опубликовать HTTP-сервис через Apache или IIS. На стенде разработчика это тяжело: каждый раз ставить веб-сервер, настраивать виртуальный каталог, дёргать после правки. Под Linux и macOS интеграция отдельно болезненная.
В Расширенной редакции есть встроенный long polling: процесс mcp-1c-advanced поднимает HTTP-приёмник, а компактное расширение в 1С общается с ним через polling. Apache и IIS не нужны.
Как это работает
Бинарник поднимает HTTP-приёмник на адресе из --listen, а если флаг не задан, при базе poll:// на :9090. Это обычный Go-овский http.Server, без cgo и без обращений к платформенным библиотекам. Работает в любом окружении где запускается само ядро Платформы: Windows, Linux, macOS.
Со стороны 1С устанавливается расширение MCP_Polling. Обращения идут от самой 1С: регламентное задание расширения забирает задачи и возвращает результаты по адресу, который обычно задаёт при установке флаг --poll-server-url, и этот адрес должен вести к приёмнику. Если задание не запущено или безопасный режим 1С блокирует исходящий запрос, опроса не будет, см. документацию. Базы помечаются как канал опроса через схему URL: --base "MyBase=poll://". Это сигнал, что доступ к базе идёт через канал опроса, а не через опубликованный HTTP-сервис.
Запуск
mcp-1c-advanced --base "acc=poll://" --listen :9090 --poll-user myuser --poll-password mypassword12
После старта процесс ждёт обращений от расширения 1С. Дальше связка работает прозрачно: AI-ассистент шлёт MCP-запрос к серверу, сервер ставит его в очередь, расширение в 1С забирает и выполняет, ответ возвращается.
Когда это полезно
Локальная разработка. Поднимать Apache на каждой машине дорого по времени. Под macOS штатной интеграции с 1С почти нет, под Linux она шаткая. Встроенный приёмник снимает это препятствие.
Тестовый стенд. Long polling тянет одно соединение без необходимости настраивать IIS. Полезно когда стенд живёт в контейнере без полноценной публикации сервисов.
Конвейер CI. Собрали дамп, запустили процесс, прогнали интеграционные тесты, погасили процесс. Никаких внешних веб-серверов, никаких настроек публикации.
Ограничения
Один процесс, один порт. Кластеризация делается через несколько процессов с разными --listen.
TLS терминируется снаружи. На localhost он не нужен, для среды эксплуатации остаётся nginx или IIS как точка терминации сертификатов. Встроенный приёмник на роль боевого веб-сервера не претендует.
Между 1С и сервером опроса работает Basic auth: учётные данные задают --poll-user и --poll-password (пароль не короче 12 символов) или --poll-auth для каждой базы, и без них сервер опроса не запускается, если явно не отказаться от проверки подлинности. Те же значения установщик вписывает в расширение командой --install-polling.
Сравнение со штатной публикацией
В штатной публикации HTTP-сервиса нужны Apache или IIS, конфиг default.vrd, виртуальный каталог, перезапуск веб-сервера при изменении сервиса. В случае long polling правка кода это правка модуля расширения. Время цикла «изменил, проверил» сокращается с минут до секунд.
В среде эксплуатации остаётся обычный nginx или IIS как точка терминации TLS и балансировка. Long polling здесь не конкурент, а альтернатива для разработки и интеграционных стендов.