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

В этой статье вы найдёте актуальные способы активации отладки для разных версий платформы 1С:Предприятие 8.3 (включая последние обновления), а также практические советы по диагностике типичных проблем. Мы разберём настройку через консоль администрирования, редактирование конфигурационных файлов и использование Технологической платформы. Особое внимание уделим мерам безопасности — открытый порт отладки может стать уязвимостью для внешних атак.

Зачем нужна отладка на сервере 1С?

Клиентская отладка в Конфигураторе ограничена — она не показывает, что происходит на сервере при выполнении:

  • 🔄 Фоновых задач (регламентные операции, обмены данными)
  • 📊 Кластерных процедур (распределённые вычисления, работа с RAS)
  • 🔄 HTTP-сервисов и REST API-вызовов
  • 🛠️ Операций с блокировками (например, при длительных транзакциях)

Без серверной отладки вы увидите только конечный результат — ошибку или зависание, но не сможете отследить последовательность вызовов и значения переменных в момент сбоя. Например, если обмен с 1С:Бухгалтерией падает с ошибкой "Недостаточно памяти", на клиенте это будет выглядеть как общая проблема, тогда как на сервере можно обнаружить утечку памяти в конкретном модуле.

Кроме того, серверная отладка незаменима при:

  • 🔍 Разработке распределённых информационных баз (РИБ)
  • 📈 Оптимизации производительности кластера
  • 🔧 Диагностике конфликтов блокировок между сессиями
⚠️ Внимание: Включённая отладка на рабочем сервере может значительно снизить производительность из-за дополнительной нагрузки на обработку отладочной информации. Используйте её только в тестовых средах или в периоды минимальной активности пользователей.

Способы включения отладки на сервере 1С

Активировать отладку можно тремя основными способами, в зависимости от версии платформы и конфигурации кластера:

  1. Через консоль администрирования сервера 1С (рекомендуемый метод для последних версий)
  2. Путём редактирования конфигурационного файла srvinfo или conf.cfg
  3. С использованием Технологической платформы (для сложных сценариев)

Рассмотрим каждый метод подробно, с указанием нюансов для разных операционных систем (Windows и Linux).

📊 Какой ОС у вас сервер 1С?
Windows Server
Linux (Debian/Ubuntu)
Linux (CentOS/RHEL)
Другая

Метод 1: Включение отладки через консоль администрирования

Это самый простой и безопасный способ для администраторов. Инструкция актуальна для 1С:Предприятие 8.3.20+:

  1. Откройте Консоль администрирования сервера 1С (1C:Enterprise Server Administration Console).
  2. В дереве кластеров выберите нужный рабочий сервер (не путайте с центральным сервером кластера!).
  3. Перейдите в раздел Настройки → Отладка.
  4. Установите флажок Разрешить отладку и укажите Порт отладки (по умолчанию — 1560, но можно выбрать любой свободный порт выше 1024).
  5. Нажмите Применить и перезапустите рабочий процесс сервера (через меню Действия → Перезапустить).

После этого сервер будет доступен для подключения из Конфигуратора в режиме отладки. Чтобы подключиться:

  1. В Конфигураторе откройте меню Отладка → Подключиться к серверу 1С:Предприятия.
  2. Введите Имя сервера (или IP-адрес) и Порт отладки, указанный ранее.
  3. Нажмите Подключиться — после успешного соединения в списке отладочных сессий появится рабочий процесс.
⚠️ Внимание: Если сервер 1С работает под Linux, убедитесь, что порт отладки открыт в брандмауэре (например, в iptables или firewalld). Команды для проверки:
sudo iptables -L -n | grep 1560

sudo firewall-cmd --list-ports

Убедиться, что порт отладки открыт в брандмауэре|Проверить, что рабочий процесс сервера перезапущен|Попробовать подключиться из Конфигуратора с правами администратора|Просмотреть логи сервера на наличие ошибок подключения-->

Метод 2: Редактирование конфигурационного файла

Если у вас нет доступа к консоли администрирования (например, на удалённом сервере без GUI), можно включить отладку вручную, отредактировав конфигурационный файл. Путь к файлу зависит от ОС:

  • 🪟 Windows: C:\Program Files\1cv8\conf\srvinfo (или conf.cfg в старых версиях)
  • 🐧 Linux: /opt/1C/v8.3/x86_64/conf/srvinfo или /var/1C/conf/srvinfo

Откройте файл в текстовом редакторе (например, Notepad++ или nano) и найдите секцию, соответствующую вашему рабочему серверу. Добавьте или измените следующие параметры:

[working_process_1]

...

debug = true

debug_port = 1560

...

Где:

  • debug = true — разрешает отладку
  • debug_port = 1560 — порт для подключения (может быть любым свободным)

После сохранения файла обязательно перезапустите службу сервера 1С:

  • 🪟 Windows:
    net stop srv1cv83
    

    net start srv1cv83

  • 🐧 Linux:
    sudo systemctl restart srv1cv83
⚠️ Внимание: В Linux-системах после изменения конфигурационного файла может потребоваться обновить права доступа:
sudo chown usr1cv8:grp1cv8 /opt/1C/v8.3/x86_64/conf/srvinfo

sudo chmod 640 /opt/1C/v8.3/x86_64/conf/srvinfo

Иначе сервер не сможет прочитать файл при запуске.

Что делать, если после редактирования srvinfo сервер не стартует?

Если сервер 1С не запускается после изменений в srvinfo, проверьте:

1. Синтаксис файла — отсутствие лишних символов, правильные отступы.

2. Права доступа — файл должен быть читаем для пользователя usr1cv8.

3. Логи сервера — ошибки запуска обычно пишутся в /var/log/1C/1C:Enterprise 8.3/logfile.log (Linux) или в Журнал событий Windows.

4. Резервную копию — если файл повреждён, восстановите его из бэкапа и повторите изменения.

Метод 3: Использование Технологической платформы

Для сложных сценариев (например, отладки конкретного рабочего процесса в кластере) можно использовать Технологическую платформу 1С. Этот метод требует глубоких знаний администрирования, но даёт максимальный контроль.

Инструкция:

  1. Подключитесь к серверу через Технологическую платформу (файл 1cv8.exe с ключом /DEBUG).
  2. В меню выберите Администрирование → Кластеры серверов 1С:Предприятия.
  3. Найдите нужный рабочий процесс и в контекстном меню выберите Свойства.
  4. На вкладке Отладка установите флажок Разрешить отладку и укажите порт.
  5. Сохраните настройки и перезапустите процесс.

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

Метод Сложность Когда использовать Требуемые права
Консоль администрирования Низкая Для быстрого включения на тестовом сервере Администратор сервера 1С
Редактирование srvinfo Средняя Если нет доступа к консоли (удалённый сервер) Root/Administrator
Технологическая платформа Высокая Для точной настройки отдельных процессов Администратор кластера

Типичные ошибки и их решение

При настройке отладки администраторы часто сталкиваются с следующими проблемами:

  • 🚫 "Не удаётся подключиться к серверу отладки":

    Проверьте:

    • Открыт ли порт в брандмауэре?
    • Запущен ли рабочий процесс сервера?
    • Правильно ли указан порт в настройках?
  • 🔄 "Сервер не отвечает после включения отладки":

    Возможные причины:

    • Нехватка памяти (отладка увеличивает нагрузку).
    • Конфликт портов (порт уже занят другим процессом).
  • 📜 "Нет прав на подключение":

    Убедитесь, что:

    • Вы подключаетесь с учётной записью, имеющей роль Администратор в кластере.
    • В файле users.lst (для Linux) прописаны права пользователя.

Если проблема сохраняется, изучите логи сервера:

  • 🪟 Windows: Панель управления → Администрирование → Просмотр событий → Журналы Windows → Приложение (ищите источники 1C:Enterprise 8.3).
  • 🐧 Linux: /var/log/1C/1C:Enterprise 8.3/logfile.log или journalctl -u srv1cv83.
ss -tulnp | grep -E '15[0-9]{2}|16[0-9]{2}'

Это покажет занятые порты в диапазоне 1500-1699, среди которых можно выбрать свободный.-->

Безопасность при использовании серверной отладки

Открытый порт отладки — потенциальная уязвимость. Следуйте этим правилам:

  • 🔒 Ограничьте доступ по IP:

    В брандмауэре разрешите подключение к порту отладки только с IP-адресов администраторов. Пример для Linux (iptables):

    sudo iptables -A INPUT -p tcp --dport 1560 -s 192.168.1.100 -j ACCEPT
    

    sudo iptables -A INPUT -p tcp --dport 1560 -j DROP

  • 🔑 Используйте VPN:

    Если сервер доступен из интернета, настройте подключение через VPN или SSH-туннель.

  • Отключайте отладку после использования:

    Не оставляйте порт открытым постоянно — это увеличивает риск атак типа Denial-of-Service (DoS).

Для производственных серверов рекомендуется:

  • Включать отладку только в периоды минимальной нагрузки (ночью или в выходные).
  • Использовать тестовые копии баз для диагностики, а не рабочие.
  • Вести журнал подключений к порту отладки (например, через tcpdump):
sudo tcpdump -i eth0 -n port 1560 -w debug_connections.pcap
💡

Никогда не включайте отладку на рабочем сервере без предварительного согласования с отделом безопасности. Открытый порт может быть использован для несанкционированного доступа к данным или атак на отказ в обслуживании.

FAQ: Частые вопросы по отладке сервера 1С

Можно ли включить отладку на сервере 1С без перезапуска?

Нет, в большинстве случаев требуется перезапуск рабочего процесса сервера. Однако в 1С:Предприятие 8.3.22+ для некоторых настроек достаточно выполнить команду в консоли администрирования: ras cluster --reconfigure (без полного рестарта).

Как отладить фоновое задание, если оно выполняется ночью?

Возможны два варианта:

  1. Настроить отложенную отладку: включить её заранее и дождаться выполнения задачи. Логи будут записаны в файл.
  2. Использовать триггеры в коде задания, которые приостановят выполнение до подключения отладчика (через Прервать или Приостановить).

Пример кода для приостановки:

Если Не ОтладчикПодключен() Тогда

Приостановить();

КонецЕсли;

Почему при подключении к отладке вылетает ошибка "Нет лицензии"?

Эта ошибка возникает, если:

  • На сервере установлена учебная версия платформы 1С.
  • Истёк срок действия аппаратной лицензии.
  • Лицензия не поддерживает серверную отладку (например, 1С:Предприятие для обучения программированию).

Решение: проверьте лицензию в консоли администрирования или обратитесь в службу поддержки 1С.

Как отладить HTTP-сервис на сервере 1С?

Для отладки HTTP-сервисов:

  1. Включите отладку на рабочем процессе, который обрабатывает HTTP-запросы (обычно это процесс с параметром ws = true в srvinfo).
  2. В Конфигураторе подключитесь к серверу отладки.
  3. Установите точки останова в модулях HTTP-сервиса.
  4. Выполните запрос к сервису (например, через Postman или браузер).

Отладчик сработает при обработке запроса.

Можно ли отладить сервер 1С, работающий в Docker?

Да, но требуется:

  1. Пробросить порт отладки из контейнера на хост (параметр -p 1560:1560 в docker run).
  2. Внутри контейнера включить отладку через srvinfo или консоль.
  3. Подключаться к отладке с хостовой машины по адресу localhost:1560.

Пример команды для запуска контейнера:

docker run -d -p 1541:1541 -p 1560:1560 --name srv1c my-1c-image