Рассмотрим достаточно специфическую, но часто встречающуюся ситуацию: использование базовой версии 1С:Бухгалтерии в клиент-серверном варианте (на SQL-сервере). Несмотря на то что базовые версии предназначены для файлового режима, наличие лицензий на сервер и клиентских лицензий ПРОФ технически позволяет запустить такую базу в SQL. Однако пользователи часто сталкиваются с критической ошибкой: «В базовой версии нельзя работать более чем одному пользователю», даже если в программе фактически находится один человек.
В этой статье мы подробно проанализируем причины возникновения этой проблемы, разберем механизмы контроля сеансов в платформе 1С и предложим несколько способов решения для обеспечения стабильной работы.
Выясним первопричину. В отличие от файлового режима, где запуск фоновых процессов ограничен ресурсами локальной станции, клиент-серверный режим архитектурно подразумевает многопоточность.
Для базовой конфигурации любой дополнительный сеанс, даже если это не «живой» пользователь, а системный процесс, является сигналом к блокировке работы, так как это нарушает условие однопользовательского режима.
Проанализируем ситуацию, когда «раньше все работало, а после обновления перестало». Компания 1С постоянно совершенствует механизмы защиты. В современных релизах конфигураций, начиная с веток Бухгалтерия предприятия 3.0.100 и выше, а также в платформе 8.3.20+, проверка режима работы встроена непосредственно в процедуры проведения документов.
Посмотрим на пример логики, которая может быть задействована в коде конфигурации (условно):
Если ЭтоБазоваяКонфигурация() И (КоличествоСеансовИнформационнойБазы() > 1) Тогда
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "В базовой версии нельзя работать более чем одному пользователю!";
Сообщение.Сообщить();
КонецЕсли;
Такая проверка срабатывает в момент записи или проведения объекта, что и объясняет поведение программы: в базу войти можно, но совершить значимое действие — нет.
Самый простой и быстрый метод, который часто помогает «здесь и сейчас», — это полная очистка всех активных соединений. Разберем по шагам:
Как показывает практика, после перезагрузки службы «лишние» фоновые процессы убиваются, и первый зашедший пользователь получает эксклюзивный доступ к проведению документов.
Чтобы проблема не повторялась каждые 15-20 минут (когда сервер 1С решит запустить очередное задание), необходимо жестко ограничить активность базы на уровне кластера. Рассмотрим, как это сделать:
Зайдите в свойства информационной базы в Консоли администрирования серверов 1С и установите флажок «Блокировка регламентных заданий включена». Это гарантирует, что сервер не будет пытаться запустить фоновые процессы под служебными пользователями, и ваш единственный сеанс останется действительно единственным.
Дополнительно внутри самой программы в разделе Администрирование -> Обслуживание -> Регламентные операции рекомендуется выключить все активные расписания для заданий.
Посмотрим на более глубокие настройки кластера. Если на сервере крутятся только базовые версии, можно попытаться ограничить количество соединений на уровне рабочего процесса. В настройках Рабочего сервера можно установить параметр Количество сеансов на один рабочий процесс равным 1. Однако будьте осторожны: это повлияет на все базы в данном кластере.
Проанализируем целесообразность этого шага. Если у вас уже куплены лицензии на SQL-сервер и клиентские лицензии ПРОФ, использование базовой версии выглядит как попытка сэкономить на подписке ИТС (обновления для базовых версий бесплатны). Однако технические риски часто перевешивают выгоду.
Процесс конвертации выглядит так:
.dt)..cf от ПРОФ-версии) снимаются ограничения базовой лицензии.Важно помнить: После конвертации вам потребуется действующий договор 1С:ИТС для легального получения обновлений, но зато вы навсегда избавитесь от ошибок «лишних пользователей» и сможете использовать все преимущества SQL-версии: расширения, доработки и параллельную работу сотрудников.
Выясним важный момент: согласно лицензионному соглашению, базовая версия предназначена для работы только в файловом режиме. Использование её на SQL-сервере (даже при наличии лицензий на сервер) формально является нарушением условий эксплуатации программного продукта. 1С оставляет за собой право в будущих обновлениях платформы полностью заблокировать возможность запуска базовых конфигураций в клиент-серверном режиме. Поэтому все вышеописанные технические «уловки» являются временными мерами.
Подводя итог, если вы столкнулись с блокировкой в базовой версии на SQL, в первую очередь блокируйте регламентные задания и очищайте список сеансов. Это позволит восстановить работоспособность системы в кратчайшие сроки.