Отладка приложений 1С:Предприятие на серверной стороне — критически важный инструмент для администраторов и разработчиков, позволяющий выявлять ошибки в фоновых задачах, background-процессах и кластерных операциях. В отличие от клиентской отладки, серверный режим даёт доступ к исполнению кода на стороне сервера 1С, где часто скрыты причины зависаний, ошибок обмена данными или проблем с производительностью. Однако включение этого режима требует прав администратора и точного следования инструкциям — неправильные настройки могут привести к сбоям в работе кластера.
В этой статье вы найдёте актуальные способы активации отладки для разных версий платформы 1С:Предприятие 8.3 (включая последние обновления), а также практические советы по диагностике типичных проблем. Мы разберём настройку через консоль администрирования, редактирование конфигурационных файлов и использование Технологической платформы. Особое внимание уделим мерам безопасности — открытый порт отладки может стать уязвимостью для внешних атак.
Зачем нужна отладка на сервере 1С?
Клиентская отладка в Конфигураторе ограничена — она не показывает, что происходит на сервере при выполнении:
- 🔄 Фоновых задач (регламентные операции, обмены данными)
- 📊 Кластерных процедур (распределённые вычисления, работа с RAS)
- 🔄 HTTP-сервисов и REST API-вызовов
- 🛠️ Операций с блокировками (например, при длительных транзакциях)
Без серверной отладки вы увидите только конечный результат — ошибку или зависание, но не сможете отследить последовательность вызовов и значения переменных в момент сбоя. Например, если обмен с 1С:Бухгалтерией падает с ошибкой "Недостаточно памяти", на клиенте это будет выглядеть как общая проблема, тогда как на сервере можно обнаружить утечку памяти в конкретном модуле.
Кроме того, серверная отладка незаменима при:
- 🔍 Разработке распределённых информационных баз (РИБ)
- 📈 Оптимизации производительности кластера
- 🔧 Диагностике конфликтов блокировок между сессиями
⚠️ Внимание: Включённая отладка на рабочем сервере может значительно снизить производительность из-за дополнительной нагрузки на обработку отладочной информации. Используйте её только в тестовых средах или в периоды минимальной активности пользователей.
Способы включения отладки на сервере 1С
Активировать отладку можно тремя основными способами, в зависимости от версии платформы и конфигурации кластера:
- Через консоль администрирования сервера 1С (рекомендуемый метод для последних версий)
- Путём редактирования конфигурационного файла
srvinfoилиconf.cfg - С использованием Технологической платформы (для сложных сценариев)
Рассмотрим каждый метод подробно, с указанием нюансов для разных операционных систем (Windows и Linux).
Метод 1: Включение отладки через консоль администрирования
Это самый простой и безопасный способ для администраторов. Инструкция актуальна для 1С:Предприятие 8.3.20+:
- Откройте Консоль администрирования сервера 1С (
1C:Enterprise Server Administration Console). - В дереве кластеров выберите нужный рабочий сервер (не путайте с центральным сервером кластера!).
- Перейдите в раздел
Настройки → Отладка. - Установите флажок
Разрешить отладкуи укажитеПорт отладки(по умолчанию —1560, но можно выбрать любой свободный порт выше1024). - Нажмите
Применитьи перезапустите рабочий процесс сервера (через менюДействия → Перезапустить).
После этого сервер будет доступен для подключения из Конфигуратора в режиме отладки. Чтобы подключиться:
- В Конфигураторе откройте меню
Отладка → Подключиться к серверу 1С:Предприятия. - Введите
Имя сервера(или IP-адрес) иПорт отладки, указанный ранее. - Нажмите
Подключиться— после успешного соединения в списке отладочных сессий появится рабочий процесс.
⚠️ Внимание: Если сервер 1С работает под Linux, убедитесь, что порт отладки открыт в брандмауэре (например, вiptablesилиfirewalld). Команды для проверки:sudo iptables -L -n | grep 1560sudo 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 srv1cv83net start srv1cv83
- 🐧 Linux:
sudo systemctl restart srv1cv83
⚠️ Внимание: В Linux-системах после изменения конфигурационного файла может потребоваться обновить права доступа:sudo chown usr1cv8:grp1cv8 /opt/1C/v8.3/x86_64/conf/srvinfosudo 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С. Этот метод требует глубоких знаний администрирования, но даёт максимальный контроль.
Инструкция:
- Подключитесь к серверу через Технологическую платформу (файл
1cv8.exeс ключом/DEBUG). - В меню выберите
Администрирование → Кластеры серверов 1С:Предприятия. - Найдите нужный рабочий процесс и в контекстном меню выберите
Свойства. - На вкладке
Отладкаустановите флажокРазрешить отладкуи укажите порт. - Сохраните настройки и перезапустите процесс.
Преимущество этого метода — возможность точечно включать отладку для отдельных процессов, не затрагивая весь кластер. Это полезно в многопользовательских средах, где общая отладка может мешать работе других сессий.
| Метод | Сложность | Когда использовать | Требуемые права |
|---|---|---|---|
| Консоль администрирования | Низкая | Для быстрого включения на тестовом сервере | Администратор сервера 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 ACCEPTsudo 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С.
- Истёк срок действия аппаратной лицензии.
- Лицензия не поддерживает серверную отладку (например, 1С:Предприятие для обучения программированию).
Решение: проверьте лицензию в консоли администрирования или обратитесь в службу поддержки 1С.
Как отладить HTTP-сервис на сервере 1С?
Для отладки HTTP-сервисов:
- Включите отладку на рабочем процессе, который обрабатывает HTTP-запросы (обычно это процесс с параметром
ws = trueвsrvinfo). - В Конфигураторе подключитесь к серверу отладки.
- Установите точки останова в модулях HTTP-сервиса.
- Выполните запрос к сервису (например, через Postman или браузер).
Отладчик сработает при обработке запроса.
Можно ли отладить сервер 1С, работающий в Docker?
Да, но требуется:
- Пробросить порт отладки из контейнера на хост (параметр
-p 1560:1560вdocker run). - Внутри контейнера включить отладку через
srvinfoили консоль. - Подключаться к отладке с хостовой машины по адресу
localhost:1560.
Пример команды для запуска контейнера:
docker run -d -p 1541:1541 -p 1560:1560 --name srv1c my-1c-image