Рассмотрим достаточно распространенную, но технологически сложную проблему: использование базовой конфигурации «1С:Бухгалтерия предприятия 3.0» в клиент-серверном варианте (на SQL-сервере). В процессе работы пользователи часто сталкиваются с ситуацией, когда при попытке записать или провести документ система выдает ошибку: «Ограничение базовой версии. Базовая версия не поддерживает одновременную работу нескольких пользователей». При этом администратор или единственный пользователь видит в списке активных сеансов только себя одного. Выясним причину этого поведения и разберем по шагам, как устранить «невидимые» сеансы.
Для начала проанализируем архитектуру работы базовых версий «1С». Технически запуск базовой конфигурации на сервере под управлением СУБД (MS SQL, PostgreSQL и др.) возможен. Однако для этого должны выполняться два обязательных условия:
Несмотря на наличие серверных лицензий, сама платформа 1С:Предприятие жестко отслеживает тип конфигурации. Если загружена базовая версия, программный код платформы принудительно ограничивает количество одновременно активных сеансов ровно одним сеансом. Любая попытка создать параллельное подключение — даже служебное — расценивается платформой как нарушение лицензионного соглашения, из-за чего мгновенно блокируются транзакции на запись и проведение любых документов.
Если в программе физически работает только один бухгалтер, система все равно может фиксировать «лишние» подключения. Рассмотрим подробнее основные источники возникновения таких фантомных сеансов:
1. Фоновые и регламентные задания. Это главная причина блокировок в клиент-серверном режиме. Платформа 1С в фоновом режиме регулярно запускает служебные процессы: обновление индекса полнотекстового поиска, загрузка актуальных курсов валют, проверка контрагентов по GUID, загрузка классификаторов (БСП) или попытки синхронизации данных. Каждое такое задание порождает в кластере серверов полноценный отдельный сеанс. Платформа видит два активных сеанса (один — ваш интерактивный, второй — фоновое задание) и блокирует работу.
2. Спящие сеансы (Sleeping sessions). Начиная с версии платформы 8.3.5, разработчики внедрили механизм удержания сессии при кратковременных разрывах сетевого соединения. Если у пользователя моргнул интернет или он некорректно закрыл программу, его сеанс не уничтожается сразу, а переходит в статус «спящего». В стандартном списке активных пользователей внутри программы он уже не отображается, но в кластере серверов продолжает существовать и занимать то самое единственное «базовое» место.
3. Рассинхронизация кэша сеансов на сервере. При аварийном завершении работы службы сервера или жестком завершении процесса 1cv8.exe через диспетчер задач, информация о сессии зависает в файловой базе данных сеансов сервера. Физически процесса пользователя нет, но СУБД и кластер серверов считают его активным.
Если вы столкнулись с блокировкой проведения документов, выполните следующие административные действия по шагам.
Чтобы сервер постоянно не инициировал фоновые процессы, которые платформа путает со вторым пользователем, необходимо временно или постоянно отключить их запуск для конкретной информационной базы:
Обратите внимание: анализировать нужно не раздел «Соединения», а именно раздел «Сеансы» в консоли администрирования 1С.
Бывают ситуации, когда сеанс зависает настолько жестко, что консоль администрирования выдает ошибку при попытке его удаления. В этом случае поможет только ручная очистка кэша сессий на сервере. Проанализируем этот процесс:
C:\Program Files\1cv8\srvinfo\ (или аналогичном, в зависимости от версии платформы).reg_1541) найдите папку с идентификатором вашей базы данных, а внутри нее — каталог snccntx. Именно здесь хранятся файлы блокировок и сессий.snccntx.Для автоматизации этого процесса системный администратор может использовать следующий сценарий командного файла (bat-скрипт):
net stop "1C:Enterprise 8.3 Server Agent"
timeout /t 5 /nobreak
del /f /q /s "C:\Program Files\1cv8\srvinfo\reg_1541\snccntx\*"
net start "1C:Enterprise 8.3 Server Agent"
В некоторых случаях, если вам нужно срочно провести документы, а перезапускать сервер нельзя, попробуйте запустить информационную базу в режиме толстого клиента. При таком запуске фоновые и регламентные задания будут пытаться выполниться непосредственно в контексте вашего клиентского приложения, не порождая параллельных серверных потоков, что может временно предотвратить блокировку.
Важно понимать, что использование базовой конфигурации в многопользовательском клиент-серверном окружении — это технологически нестабильный сценарий. Даже при полной блокировке регламентных заданий вы будете регулярно сталкиваться с системными коллизиями.
Если вашему бизнесу требуется полноценная работа на сервере, единственным надежным и легальным решением является апгрейд конфигурации до версии ПРОФ. Это снимет программное ограничение платформы на количество активных сеансов и позволит полноценно использовать все преимущества клиент-серверной архитектуры без постоянного вмешательства системного администратора.