Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Webhook 1С:Предприятие и СУБД

Настройка Webhook в 1С: Создание HTTP-сервисов для приема запросов

Обновлено: 10.09.2026 · Официальная документация ↗

Архитектура Webhook-интеграций в 1С

Webhook — это механизм, при котором сторонняя система (Telegram, AmoCRM, Битрикс24, банк) сама инициирует HTTP-запрос (обычно POST) к вашей базе 1С при наступлении какого-либо события. В архитектуре 1С для приема таких запросов используются объекты конфигурации HTTP-сервисы. Ошибки при внедрении webhook-ов обычно связаны с неправильной маршрутизацией на веб-сервере (IIS/Apache), ошибками аутентификации (401 Unauthorized) или некорректным парсингом входящего JSON (500 Internal Server Error). Бизнес-риски: потеря входящих лидов из CRM, отсутствие статусов оплат от эквайринга, неработающие чат-боты.

Типовые HTTP-коды ошибок при работе Webhook 1С

HTTP КодСуть проблемы для внешней системыЧто искать в 1С / Сервере
404 Not FoundEndpoint не существует.HTTP-сервис не опубликован (default.vrd) или неверный URL-шаблон.
401 UnauthorizedДоступ запрещен.Не передан логин/пароль (Basic Auth) в заголовках, или у юзера 1С нет роли на этот сервис.
500 Server ErrorCrash на стороне 1С.Синтаксическая ошибка в коде модуля HTTP-сервиса (исключение при Чтении JSON).

Пошаговое создание и публикация HTTP-сервиса (Webhook)

Сценарий 1: Создание метаданных и кода обработки

  1. В конфигураторе добавьте новый HTTP-сервис (например, TelegramBot). Корневой URL: tgbot.
  2. Добавьте Шаблон URL (например, /webhook) и создайте внутри метод (HTTP-метод: POST, Имя метода: ReceiveMessage).
  3. В модуле HTTP-сервиса напишите код приема данных:
 Функция TelegramBotwebhookReceiveMessage(Запрос)
    // 1. Получаем тело запроса как строку
    СтрокаJSON = Запрос.ПолучитьТелоКакСтроку();
    
    // 2. Парсим JSON
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
    Данные = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();
    
    // 3. Бизнес-логика (создание документа, запись в лог)
    // ... 
    
    // 4. Возврат успешного ответа (Код 200)
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.УстановитьТелоИзСтроки("OK");
    Возврат Ответ;
КонецФункции

Сценарий 2: Публикация на веб-сервере (IIS/Apache)

Внешний мир не имеет прямого доступа к rphost. Запросы проксирует веб-сервер.

  1. Установите веб-сервер (Apache 2.4 или IIS) на машину, доступную извне.
  2. В конфигураторе 1С: Администрирование -> Публикация на веб-сервере.
  3. Перейдите на вкладку HTTP-сервисы, отметьте галочкой ваш новый сервис. Нажмите Опубликовать. Это обновит файл конфигурации default.vrd.

Типовые ошибки администраторов

  • Блокировка пула соединений: Если код HTTP-сервиса выполняется долго (например, тяжелые запросы к БД), внешняя система может отвалиться по таймауту, а 1С забьет все рабочие процессы (rphost) ожидающими запросами. Решение: HTTP-сервис должен только быстро принимать JSON, сохранять его в Регистр Сведений и отвечать 200 OK. А фоновое задание уже асинхронно разбирает этот регистр.
Телеграм-боты тупят, а 1С виснет от наплыва входящих запросов CRM?
Неграмотная архитектура Webhook может положить сервер 1С при DDoS-атаке или всплеске трафика. Эксперты ITSTM разработают отказоустойчивые брокеры сообщений (RabbitMQ / Kafka) между 1С и внешними системами, гарантируя 100% доставку и защиту СУБД.
💡 Практика специалистов: Практика ITSTM: При публикации HTTP-сервисов на IIS убедитесь, что в пуле приложений отключен параметр 'Idle Time-out' (по умолчанию 20 минут) или настроен AlwaysReady. Иначе первый входящий webhook после простоя базы будет обрабатываться очень долго (пока IIS прогреет приложение и поднимет коннект с 1С).

Частые вопросы (FAQ)

Какой URL нужно указывать во внешней системе для отправки Webhook?

Формат URL: http://<IP_сервера>/<Имя_публикации>/hs/<Корневой_URL_сервиса>/<Шаблон_URL>. Пример: https://api.mycorp.ru/erp/hs/tgbot/webhook

Как настроить авторизацию (чтобы никто чужой не слал POST-запросы)?

Внешняя система должна отправлять заголовок 'Authorization: Basic <base64_login_pass>'. В 1С создайте специального служебного пользователя (без входа в интерфейс), дайте ему только одну роль, в которой разрешено 'Использование' вашего конкретного HTTP-сервиса.

Что значит ошибка 'HTTP-сервис не найден' (404) после обновления базы?

Если вы добавили новый HTTP-сервис в конфигураторе, его нужно вручную отметить галочкой в окне 'Публикация на веб-сервере' и нажать 'Опубликовать', чтобы он прописался в XML-файле default.vrd. Иначе веб-сервер о нем не знает.

Можно ли отладить HTTP-сервис в Конфигураторе?

Да. В параметрах отладки Конфигуратора нужно поставить галочку 'HTTP-сервисы'. Затем отправить тестовый запрос (например, через Postman) — сработает точка останова в модуле сервиса.

Полезные материалы
Рекомендуем