Форум программистов, компьютерный форум, киберфорум
1С: Администрирование и интеграция
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/41: Рейтинг темы: голосов - 41, средняя оценка - 4.95
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
1
1C 8.x

Принудительное завершение работы

08.05.2015, 11:52. Показов 8095. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Я перешел на платформу 8.3.5.1517, у меня есть обработка которая завершает работу пользователей, с переходом на новую платформу стала выдавать ошибку.

{Форма.Форма.Форма(112)}: Ошибка при вызове метода контекста (GetInfoBaseConnections)
СоединенияБазы = РабПроц.GetInfoBaseConnections(ИнформационнаяБаза2);
по причине:
Произошла исключительная ситуация: Недостаточно прав пользователя на информационную базу corp8


Обработку открываю администратором, права полные, почему выдает что у нет прав не понимаю. Вот код

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Процедура ПриОткрытии()
    
    
    Коннектор = Новый COMОбъект("V83.COMConnector");
    
    ИмяСервера         = "beta";
    Порт              = "1540"; 
    ИСервера = "TCP://" + ИмяСервера + ":" + Порт;
    ИмяБазы = "corp8";
    ИмяАдминистратора ="Администратор";
    ПарольАдминистратора = "11111"; 
 
Коннектор = Новый COMОбъект("V83.COMConnector"); 
    Агент = Коннектор.ConnectAgent(ИмяСервера); 
    Кластеры = Агент.GetClusters(); 
    Для каждого Кластер из Кластеры Цикл 
        //АдминистраторКластера = "Имя администратора кластера"; 
        //ПарольКластера = "Пароль администратора кластера"; 
        //Агент.Authenticate(Кластер, АдминистраторКластера, ПарольКластера); 
        Агент.Authenticate(Кластер,,); 
        Процессы = Агент.GetWorkingProcesses(Кластер); 
        Для каждого Процесс из Процессы Цикл 
            Порт = Процесс.MainPort; 
            // теперь есть адрес и порт для подключения к рабочему процессу 
            РабПроц = Коннектор.ConnectWorkingProcess(ИмяСервера + ":" + СтрЗаменить(Порт, Символы.НПП, "")); 
            РабПроц.AddAuthentication(ИмяАдминистратора, ПарольАдминистратора); 
            
            ИнформационнаяБаза = ""; 
            
            Базы = Агент.GetInfoBases(Кластер); 
            Для каждого База из Базы Цикл 
                Если ВРЕГ(База.Name) = ВРЕГ(ИмяБазы) Тогда
                    ИнформационнаяБаза = База; 
                    Прервать; 
                КонецЕсли; 
            КонецЦикла; 
            Если ИнформационнаяБаза = "" Тогда 
                // база не найдена 
            КонецЕсли; 
            
            Сеансы = Агент.GetInfoBaseSessions(Кластер, ИнформационнаяБаза); 
            Для каждого Сеанс из Сеансы Цикл 
                
                Если нРег(Сеанс.AppID) = "backgroundjob" ИЛИ нРег(Сеанс.AppID) = "comconsole" Тогда 
                    // если это сеансы com-приложения или фонового задания, то не отключаем 
                    Продолжить; 
                КонецЕсли; 
                Если Сеанс.UserName = ИмяПользователя() Тогда 
                    // это текущий пользователь 
                    Продолжить; 
                КонецЕсли; 
                Агент.TerminateSession(Кластер, Сеанс); 
                Сообщить("Отключен сеанс "+строка(Сеанс.UserName)); 
            КонецЦикла; 
            
            ИнформационнаяБаза2 = РабПроц.CreateInfoBaseInfo(); 
            ИнформационнаяБаза2.Name = ИмяБазы; 
            СоединенияБазы = РабПроц.GetInfoBaseConnections(ИнформационнаяБаза2); 
            // Разорвать соединения клиентских приложений. 
            Для Каждого Соединение Из СоединенияБазы Цикл 
                Если нРег(Соединение.AppID) = "backgroundjob" ИЛИ нРег(Соединение.AppID) = "comconsole" Тогда 
                    Продолжить; 
                КонецЕсли; 
                Если Соединение.UserName = ИмяПользователя() Тогда 
                    // это текущий пользователь 
                    Продолжить; 
                КонецЕсли; 
                РабПроц.Disconnect(Соединение); 
            КонецЦикла; 
        КонецЦикла; 
    КонецЦикла;   
    //Предупреждение("Завершается работа...", 5); 
    ЗавершитьРаботуСистемы(Ложь); 
 
    
КонецПроцедуры
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2015, 11:52
Ответы с готовыми решениями:

Неожиданное завершение процессов rphost в ходе работы
Добрый день, коллеги, столкнулся с проблемой крашей 1С сервера по проблемам мне не понятным. Я...

Завершение работы при обращении к одному из документов
Выполняю задания по книге: 1С Предприятие 8.2. Практическое пособие разработчика Радченко М. Г....

Автоматическое завершение работы
Здравствуйте Проверить длину сообщения · Помощь по кодам форума. Есть ли где в свободном...

Автоматическое корректное завершение работы 1С
Доброго времени суток! Ребят, может знаете что-нить, что позволяет автоматически завершать...

1
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
12.05.2015, 11:57 2
О, какие люди.)
Как вариант - проблема в правах для администратора кластера, а не того пользователя под которым ты 1С запускаешь.
А зачем напрямую через кластер работаешь?
Если нужна обработка, которая в базе будет блокировать, посмотри в УТ 10.3 (наверняка еще где-то есть, но сходу помню про УТ) обработка "БлокировкаСоединенийСИнформационнойБазой".

Для управляемых конф, судя по СП, новый класс - "БлокировкаСеансов".
Делает то, что надо.
0
12.05.2015, 11:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2015, 11:57
Помогаю со студенческими работами здесь

Принудительное завершение программы
for (int i = 0; i < 20; i++) for (int j = 0; j < 20; j++) for (int n= 0; n < 20; n++) { ...

Принудительное завершение задания
Всем доброго времени суток! Создал бат и поместил его в автозагрузку TIMEOUT /T 40 /NOBREAK...

Принудительное завершение программы
#include <iostream> using namespace std; int main() { setlocale (0,""); int N; cout <<...

Принудительное завершение программы
Привет, народ! Проблема следующая: при загрузке программы отображается окно прогресса, и выводятся...

Принудительное завершение программы
Здравствуйте. Ищу способы принудительного завершения программы. Посоветуйте что нибудь плз.

Принудительное завершение звонка
Здравствуйте. Подскажите пожалуйста как завершить звонок не дожидаясь, когда на него ответят....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru