При автоматизации задач часто возникает необходимость подключаться к информационной базе 1С с помощью COMConnector. Однако, если в настройках базы установлена блокировка начала сеансов (например, для проведения регламентных работ), стандартный метод Connect завершается ошибкой «Начало сеанса с информационной базой запрещено». Давайте разберем, как правильно передать код разблокировки, чтобы обойти это ограничение.
Частая ошибка разработчиков заключается в попытке использовать ключи командной строки (например, /UC) внутри строки соединения COMConnector. Важно понимать, что COM-объект ожидает параметры в формате ИмяПараметра=Значение, разделенные точкой с запятой. Использование слэша (/) характерно только для запуска исполняемого файла 1cv8.exe через ярлык или командную строку, но не для механизма внешнего соединения.
Для того чтобы COMConnector успешно открыл сеанс в заблокированной базе, необходимо передать параметр UC (код разблокировки) как полноценную часть строки соединения. Давайте рассмотрим, как выглядит корректная строка подключения:
// Пример правильного синтаксиса для COM-соединения
Сервер = "192.168.199.31:1541";
ИмяИБ = "trade82_test";
Пользователь = "Поль";
Пароль = "Пар";
КодРазблокировки = "2";
СтрокаПодключения = "Srvr=""" + Сервер + """;" +
"Ref=""" + ИмяИБ + """;" +
"Usr=""" + Пользователь + """;" +
"Pwd=""" + Пароль + """;" +
"UC=""" + КодРазблокировки + """;";
ComConnector = Новый COMОбъект("v83.COMConnector");
ВнешняяБаза = ComConnector.Connect(СтрокаПодключения);
Обратите внимание на несколько важных моментов:
UC, а не /UC.Если после исправления синтаксиса подключение все еще вызывает ошибку, рекомендуем проверить следующие аспекты:
COMConnector (например, v83.COMConnector) соответствует версии платформы, на которой работает информационная база. Использование устаревших коннекторов может приводить к непредсказуемому поведению.Консоль администрирования серверов 1С. Это поможет исключить влияние самой блокировки и проверить, не является ли проблема ошибкой аутентификации пользователя.Если вам требуется массово или гибко управлять блокировками, можно использовать объект COMConnector для подключения к агенту сервера (ConnectAgent). Это позволит программно изменять свойства информационной базы, включая состояние блокировки, без необходимости каждый раз передавать код разблокировки в строку соединения.
Мы проанализировали ситуацию и выяснили, что ключ блокировки UC является штатным параметром для COMConnector. Главный секрет стабильной работы заключается в строгом соблюдении формата Имя=Значение и правильном экранировании кавычек в строке соединения.