Ошибка GetInfoBaseConnections - не устанавливается блокировка соединений #460875


#0 by Kiber
Заранее извиняюсь, если это повтор. Гуглил и так и сяк - нашел вопросы без ответов. Ситуация: ЗУП (2.5.19.3), Платформа (8.1.12.101). Раньше база работала в файловом режиме, затем была перенесена на один сервер 1C application+SQL (условно - сервер ), затем на другой (условно - сервер ). Проблема наблюдалась еще на , и сейчас без изменений на . Суть: Не устанавливается блокировка соединений. Симптомы: Из режима придприятие: "Ошибка при вызове контекста (GetInfoBaseConnections): Произошла исключительная ситуация: Недостаточно прав пользователя на информационную базу траляля" Из работы скрита VBS: участок кода: "Connections = WorkingProcessConnection.GetInfoBaseConnections(ibDesc)" сообщение: "Недостаточно прав пользователя на информационную базу траляля" Что пробовал: В режиме предприятие и в режиме COM-объекта устанавливать блокировку. У пользователя полные права на все возможные объекты. Проверил.
#1 by Kiber
Дополнительная информация: Через консоль сервера 1С:Предприятие блокировка корректно устанавливается. Проверил. Помогите кто чем может :)
#2 by 73
СП: Получает массив соединений информационной базы. Для выполнения требуются административные права на информационную базу. ЗЫ. По твоему коду не видно, делаешь ли аутентификацию. Что-то типа должно быть:
#3 by Kiber
Вот собственно сам скритп: 'Cкрипт (только SQL) отключает всех пользователей от ИБ 1С:Предприятия v8.1. 'На сервере подразумевается наличие только одного кластера 'Далеет срипт производит выгрузку баз и содаёт лог '\\\\\\\\\\\\\\\\\\ПЕРЕМЕННЫЕ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 'задержка выхода пользователей из базы после установления блокировки WaitMinutes = 0.1 'предположительное время работы скрипта в минутах WorkMinutes = 120 'имя пользователя базы 1С:Предприятия Adm_Nm = "Backup" 'пароль пользователя базы 1С:Предприятия Adm_Pw = "<<<<<<<<<<<<<<<<<< PASSWORD >>>>>>>>>>>>>>>>>>>>>>>" 'имя сервера 1С:Предприятия Server_Nm = "1C" 'имя базы 1С:Предприятия к которой подключаемся DB_Name   = "backuptest" 'Сообщение блокировки базы Lock_Msg = "БАЗА ЗАКРЫТА НА СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ. Администратор" 'Код блокировки базы Lock_PrmCode = "1" BackupFolder = "D:BackupDT" 'Префикс базы для бекапа BackupPrefix = "[test]" LogFolder = "D:BackupDT" 'Путь к фалу запуска программы 1С one1CPath = """C:Program Files1cv81in1cv8.exe""" '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 'Формируется полное имя файла выгрузки и лога Call DB_DropUsers(LogTextStream, objInfoBase, objWPConnection, FlagWasExceptions) If Not FlagWasExceptions Then    '-------------------------------------------------------------------------------------------------------------------------------    'Путь к файлу выгрузки    'Параметры                  имя кластераимя базы         пользователь        пароль           код доступа LogTextStream.Close 'Функция возвращает поток для сохранения сообщения в лог 'Функция возвращает превращает текущую дату в формат 'YYYY-MM-DD_HH' ' находит нужную БД на сервере, и возвращает в objConnector, objCluster, objWPConnection, objInfoBase объекты подключения                    'закрываем теги и выходим из процедуры 'Процедура устанавливает блокировку ИБ 'Процедура снимает блокировку ИБ 'Процедура отключает подключения к БД    For Each objUserConnection In massive_objUserConnection Вот лог: --------------- BEGIN ---------------------------------------------    one1CPath: '"C:Program Files1cv81in1cv8.exe"' 11.02.2010 14:13:05    Получен список кластеров, начинаем перебор: 11.02.2010 14:13:05    [Локальный кластер] { 11.02.2010 14:13:05        Аутентификация кластера пройдена 11.02.2010 14:13:05        Получен список процессов, начинаем перебор: 11.02.2010 14:13:05        HostName: '1C' Port: '1562' { 11.02.2010 14:13:07            Аутентификация процесса пройдена 11.02.2010 14:13:07            Получен список баз, начинаем перебор: 11.02.2010 14:13:07                TEST1 11.02.2010 14:13:07                v81_1_2_20_1 11.02.2010 14:13:07                v81_hrm 11.02.2010 14:13:07                ****** Совпадение! 11.02.2010 14:13:07        } HostName: '1C' Port: '1562' 11.02.2010 14:13:07    } [Локальный кластер] 11.02.2010 14:13:07    Устанавливаем блокировку базы [v81_hrm]: После этого выдает Runtime error WSCript.exe Сам участок кода, который выдает ошибку: Собственно, пытался установить error handler вида:    On Error Resume Next    Err.Clear    objInfoBase.ConnectDenied    = True    If  Err.Number <> 0  Then Но ошибка всеравно не handl'ится и в лог ничего не пишется.
#4 by Kiber
: Извиняюсь, немного не красиво вышло. Вот скрипт: или Вот лог: После этого выдает Runtime error WSCript.exe Сам участок кода, который выдает ошибку: Собственно, пытался установить error handler вида:    On Error Resume Next    Err.Clear    objInfoBase.ConnectDenied     = True    If  Err.Number <> 0  Then Но ошибка всеравно не handl'ится и в лог ничего не пишется.
#5 by 73
ХЗ. Могу только повторить: Пользователь Backup должен быть в списке пользователей базы 1С и обладать административными полномочиями.
#6 by Kiber
Назначены все возможные роли, как минимум 1 из которых включает все возможные галочки объектов доступа.
#7 by 73
Объекты тут ни при чем. Смотри права на: Конфигурация - Административные функции.
#8 by 73
+ Попробуй законнектиться этим пользователем через Консоль Сервера 1СПредприятия и что-нибудь поменять.
#9 by Kiber
Чорт, оказалось всё очень просто.... Неправильный пароль.
#10 by Kiber
Спасибо :))))))))
#11 by Kiber
Прошу удалить ветку, ибо бред :)
#12 by Kiber
В общем, по началу у ролей пользователя небыло доступа на внешние подключения. Затем не совпадал пароль. В итоге, для блокировки я так понял нужен доступ на внешние подключения и Административные функции.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С