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

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

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

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

Ошибка PostgreSQL 08003 connection_does_not_exist: несуществующее соединение

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

Клиентское приложение пытается отправить SQL-запрос или команду через дескриптор соединения, которое уже было закрыто сервером, пулером соединений или клиентом:

ERROR: connection does not exist
-- либо:
FATAL: client connection has been closed
SQLSTATE: 08003

1. Проверка таймаутов неактивности в postgresql.conf

Сервер PostgreSQL может принудительно закрывать сессии, превысившие лимиты ожидания:

-- Проверка лимитов простоя сессий
SHOW idle_session_timeout;
SHOW idle_in_transaction_session_timeout;

Если параметры заданы слишком агрессивно, увеличьте их:

ALTER SYSTEM SET idle_session_timeout = '2h';
SELECT pg_reload_conf();

2. Корректировка настроек пула соединений в 1С:Предприятие

В кластере серверов 1С настройте параметры очистки спящих соединений:

  1. Откройте Консоль администрирования серверов 1С.
  2. В свойствах информационной базы проверьте параметры:
    • Время засыпания пассивных сеансов (рекомендуется не менее 1200 сек);
    • Время завершения спящих сеансов (рекомендуется не менее 86400 сек).

3. Настройка PgBouncer (если используется)

В конфигурационном файле pgbouncer.ini проверьте параметры:

[pgbouncer]
server_idle_timeout = 600
client_idle_timeout = 0
query_timeout = 0
suspend_timeout = 10

4. Обработка переподключения на уровне клиентского кода

При прямой интеграции с базой реализуйте перехват ошибки и переинициализацию соединения:

-- Пример логики повторного подключения при сбое:
BEGIN
  -- Выполнение запроса
EXCEPTION WHEN connection_does_not_exist OR sqlclient_unable_to_establish_sqlconnection THEN
  -- Реинициализация пула и повтор транзакции
END;
💡 Практика специалистов: Для стабильной работы высоконагруженных баз 1С:Предприятие на PostgreSQL отключайте любые энергосберегающие функции сетевых адаптеров (Green Ethernet, Energy Efficient Ethernet) на физических сетевых картах серверов.

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

Почему 08003 возникает при использовании PgBouncer в режиме transaction pooling?

В режиме transaction pool соединение возвращается в общий пул сразу после завершения транзакции. Если клиент пытается выполнить команду вне транзакционного контекста в старый дескриптор, генерируется ошибка отсутствия соединения.

Как очистить «мертвые» сеансы в базе 1С без перезагрузки кластера?

В консоли администрирования 1С перейдите в раздел 'Сеансы', выберите неактивные сеансы с признаком 'Спящий' и вызовите команду 'Удалить'.

Может ли антивирус или EDR блокировать соединения и вызывать 08003?

Да, средства глубокого анализа трафика (DPI/SSL Inspection/EDR) могут принудительно разрывать длительные TCP-сессии между сервером 1С и СУБД, интерпретируя их как аномальную активность.

Как зафиксировать момент разрыва соединения в журнале PostgreSQL?

Включите в postgresql.conf параметры: log_connections = on и log_disconnections = on. В журнале будет точно указано время и причина отключения клиента.

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