К статье
Практический материал

Разработка и Конфигурация · 9 мин

Отладка HTTP в 1С: как включить и использовать

Как включить отладку HTTP в 1С: журнал регистрации, технологический журнал, режим отладки HTTP-соединений, типичные ошибки и проверка результата.

HTTP-запросы в 1С используются повсеместно: обмен с сайтом, интеграция с REST API, веб-сервисы, загрузка курсов валют. Когда обмен перестаёт работать, стандартное сообщение «Ошибка при вызове метода контекста» мало о чём говорит. Чтобы понять, что именно уходит на сервер и что возвращается, нужно включить отладку HTTP-обмена.

В 1С нет единой кнопки «включить отладку HTTP» — в зависимости от задачи применяются несколько инструментов: журнал регистрации, технологический журнал с событием EXCP и сетевыми событиями, отладчик конфигуратора, а также внешние снифферы трафика. Ниже разобраны все рабочие способы с конкретными настройками.

Материал ориентирован на разработчиков и администраторов 1С, которым нужно диагностировать ошибки HTTPСоединение, HTTPЗапрос, HTTPСервисы или фоновые обмены данными по HTTP.

Какие инструменты отладки HTTP доступны в 1С

Прежде чем что-то включать, важно понять, какую задачу вы решаете. Одно дело — увидеть текст исключения и стек вызовов, другое — посмотреть сырые заголовки и тело запроса, третье — пошагово пройти код обмена в отладчике.

Основной набор инструментов выглядит так: технологический журнал фиксирует события платформы на уровне сервера и клиента, журнал регистрации показывает ошибки, которые конфигурация записала сама, отладчик конфигуратора позволяет остановиться внутри процедуры обмена, а внешний прокси-анализатор перехватывает реальный HTTP-трафик.

Сравнение инструментов

Технологический журнал

Подходит для сбора исключений на сервере и клиенте без изменения кода. Требует перезапуска сбора и места на диске.

Отладчик конфигуратора

Даёт пошаговый контроль кода HTTPСоединение. Работает только при возможности запустить сеанс под отладкой.

Fiddler / Wireshark

Показывают реальные запросы и ответы. HTTPS требует настройки доверенного сертификата, иначе трафик будет зашифрован.

Журнал регистрации

Показывает только те ошибки, которые конфигурация записала сама. Не заменяет платформенные инструменты.

Включение технологического журнала для диагностики HTTP

Технологический журнал — главный встроенный способ увидеть, что происходит с HTTP-вызовами на уровне платформы. Он включается через конфигурационный файл logcfg.xml, который размещается в каталоге conf рядом с исполняемыми файлами платформы (например, C:\Program Files\1cv8\<версия>\bin\conf) или в каталоге, заданном настройками кластера.

Минимальная конфигурация для сбора исключений и сетевых событий выглядит так:

xml
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1clogs" history="24">
    <event><eq property="name" value="EXCP"/></event>
    <event><eq property="name" value="CONN"/></event>
    <property name="all"/>
  </log>
</config>

После создания файла нужно перезапустить сервер 1С или клиентское приложение, чтобы платформа подхватила настройки. Журнал начнёт писаться в указанный каталог; параметр history задаёт время хранения файлов в часах.

В собранных логах ищите события EXCP с текстом, содержащим HTTPСоединение, Получить, ОтправитьДляОбработки или коды ответов сервера. Там же видно, на каком этапе произошёл сбой — при установке соединения, отправке запроса или чтении ответа.

Отладка кода HTTP-обмена в конфигураторе

Если обмен выполняется из клиентского сеанса или вы можете воспроизвести ошибку вручную, самый быстрый способ — обычный отладчик. Откройте конфигуратор, включите отладку через меню «Отладка → Начать отладку» и поставьте точку останова перед вызовом метода HTTPСоединение.

Полезные места для точек останова: создание объекта HTTPСоединение, формирование HTTPЗапрос (заголовки, тело), вызов методов Получить/ОтправитьДляОбработки/Записать, чтение кода состояния из HTTPОтвет. В табло или через «Вычислить выражение» проверьте КодСостояния, заголовки ответа и тело через ПолучитьТелоКакСтроку().

Отладка на сервере и в фоновых заданиях

Если обмен выполняется в серверном контексте или фоновом задании, включите в свойствах информационной базы (или в параметрах запуска конфигуратора) отладку серверных процедур. Для фоновых заданий в конфигураторе есть отдельная настройка «Отладка → Подключение → автоматическое подключение фоновых заданий». Без неё точки останова внутри фонового обмена срабатывать не будут.

Порядок действий в отладчике
  1. 1
    Откройте конфигуратор и включите отладку нужного типа сеанса
  2. 2
    Поставьте точку останова перед созданием HTTPСоединение
  3. 3
    Добавьте точку после вызова метода отправки запроса
  4. 4
    Воспроизведите ошибку и проверьте КодСостояния, заголовки и тело ответа
  5. 5
    Сравните фактически отправляемый запрос с документацией API

Перехват HTTP-трафика внешними инструментами

Когда нужно увидеть именно сетевой уровень — реальные заголовки, редиректы, тело запроса в том виде, в каком оно ушло, — платформенных средств недостаточно. Здесь помогают прокси-анализаторы: Fiddler Classic, Fiddler Everywhere или mitmproxy.

Для перехвата настройте в 1С использование прокси: в объекте HTTPСоединение есть параметр, принимающий объект ИнтернетПрокси, либо прокси задаётся системно. Укажите адрес и порт, на котором слушает Fiddler (по умолчанию 127.0.0.1:8888). После этого весь трафик обмена появится в списке сессий анализатора.

Для HTTPS потребуется включить в Fiddler расшифровку HTTPS и установить его корневой сертификат в доверенные на машине, где работает 1С. Без этого вы увидите только факт соединения, но не содержимое запросов.

Логирование на стороне веб-сервера

Если 1С выступает серверной стороной (HTTP-сервисы, публикация на IIS или Apache), дополнительно включите журналы веб-сервера. В IIS это стандартное логирование W3C, в Apache — access.log и error.log. Сопоставление записей веб-сервера с событиями технологического журнала 1С позволяет понять, дошёл ли запрос до публикации и как его обработала платформа.

Типичные ошибки при отладке HTTP в 1С

Большинство проблем при диагностике HTTP-обмена связаны не с самим обменом, а с неверной настройкой инструментов. Ниже — то, что встречается чаще всего.

Типичные ошибки
01
logcfg.xml положен не в тот каталог — журнал не создаётся, и кажется, что событий нет
02
Не перезапущен сервер или клиент после изменения logcfg.xml — настройки не применились
03
Отладка фонового задания без включённого автоподключения — точки останова игнорируются
04
Перехват HTTPS без установки сертификата Fiddler — видны только соединения, без содержимого
05
Чтение тела ответа дважды — поток уже прочитан, второй вызов возвращает пустую строку
06
Техжурнал оставлен включённым после диагностики — переполнение диска и деградация производительности

Отдельно стоит упомянуть ошибки самого обмена, которые маскируются под «не работает отладка»: неверный таймаут соединения, отсутствие заголовка Content-Type при отправке JSON, неправильная кодировка тела запроса и попытка читать тело ответа после закрытия соединения. Все они хорошо видны именно при комбинации отладчика и перехвата трафика.

Проверка результата: как понять, что диагностика удалась

Признак успешной настройки отладки — вы видите полную картину обмена: что отправлено, что получено, где возникло исключение. Если после всех действий данных по-прежнему нет, проверьте контрольные точки ниже.

Контрольные точки

Как проверить результат

Каталог технологического журнала
Норма

Появляются файлы с событиями EXCP в момент ошибки

Тревожный признак

Каталог пуст — неверный путь в logcfg.xml или нет прав на запись

Отладчик конфигуратора
Норма

Точка останова срабатывает, доступны свойства HTTPОтвет

Тревожный признак

Точка не срабатывает — не включён нужный тип отладки или обмен идёт в другом сеансе

Fiddler / прокси
Норма

Видны сессии с запросами 1С, читаемые заголовки и тело

Тревожный признак

Сессий нет — прокси не задан в соединении; виден только CONNECT — не настроена расшифровка HTTPS

Журнал веб-сервера
Норма

Запросы фиксируются с кодами ответов

Тревожный признак

Записей нет — запрос не доходит до публикации, проблема в сети или адресе

FAQ

Есть ли в 1С встроенная настройка «включить отладку HTTP»?

Нет, единого переключателя не существует. Под отладкой HTTP обычно понимают комбинацию: технологический журнал для исключений платформы, отладчик конфигуратора для кода обмена и внешний прокси-анализатор для просмотра самого трафика.

Как увидеть тело HTTP-запроса, который отправляет 1С?

Самый надёжный способ — перехват через Fiddler или аналогичный прокси с указанием прокси в параметрах HTTPСоединение. Альтернатива — временно записывать тело запроса в журнал регистрации или файл перед отправкой, изменив код обмена.

Почему технологический журнал не создаёт файлы?

Чаще всего logcfg.xml лежит не в том каталоге, содержит ошибку синтаксиса XML, или у процесса платформы нет прав записи в указанный каталог логов. Также проверьте, что после изменения файла сервер или клиент были перезапущены.

Как отладить HTTP-обмен, который выполняется в фоновом задании?

Включите в конфигураторе автоматическое подключение фоновых заданий в настройках отладки и убедитесь, что разрешена отладка серверного кода. Если воспроизведение затруднено, используйте технологический журнал — он фиксирует исключения фоновых заданий без отладчика.

Можно ли смотреть HTTPS-трафик 1С без установки сертификатов?

Полноценно — нет: содержимое HTTPS зашифровано. Без доверенного сертификата анализатора вы увидите только факт соединения и адрес сервера. Для диагностики на тестовом контуре можно временно переключить обмен на HTTP, если это допустимо по требованиям безопасности.

Опасно ли оставлять технологический журнал включённым постоянно?

Да. Постоянный сбор событий увеличивает нагрузку на диск и может заметно замедлить работу сервера 1С, а файлы журнала быстро занимают десятки гигабайт. Включайте его точечно, с фильтрами по событиям, и отключайте сразу после диагностики.

Итог

Что важно запомнить

Отладка HTTP в 1С строится на трёх опорах: технологический журнал через logcfg.xml — для исключений платформы, отладчик конфигуратора — для кода обмена, внешний прокси — для реального трафика. Включайте инструменты точечно, проверяйте права и перезапуски, и обязательно отключайте сбор логов после диагностики.