Второй раз за неделю встает обмен по непонятной причине. Каким-то образом на сервере включается флаг "Блокировка регламентных заданий включена".
Доступ к серверу 1С не имеет никто, кроме начальника, а он этот флаг не включал.
Пострадавшие базы разные. То УНФ, то БП.
Обновление в эти дни не делали. Нашла что в общих модулях УНФ есть 2 процедуры, которые этот флаг могут включать. Подскажите, как вычислить откуда/кем они вызывались (если вызывались).
Может дописать в них (в эти процедуры) запись в ЖР? Так потом там фиг что найдешь((
(2)
(3)
(4)
Нашла что оно вызывается из обработки БлокировкаРаботыПользователей
Процедура ПрименитьЗавершение
и еще нашла что последнее фоновое регламентное выполнялось как раз перед автосохранением ночью
а этой ночью именно по этой базе оно завершилось аварийно (!!!)
видимо поставило флаг, а потом не смогло убрать
похоже флаг этот действительно отслеживать теперь придется, чтобы без сюрпризов (((
Может дописать в них (в эти процедуры) запись в ЖР? Так потом там фиг что найдешь((
имхо, правильный подход, в запись ЖР можно вписать уникальную строку, которую найти будет просто.
Может подключали какие-то обработки, которые запускаются по расписанию и гадят?
Как временный костыль можно написать обработку проверки состояния флага, если он стоит, убирать, и запускать это по расписанию. Криво, но на время анализа работать будет
(2)
(3)
(4)
Нашла что оно вызывается из обработки БлокировкаРаботыПользователей
Процедура ПрименитьЗавершение
и еще нашла что последнее фоновое регламентное выполнялось как раз перед автосохранением ночью
а этой ночью именно по этой базе оно завершилось аварийно (!!!)
видимо поставило флаг, а потом не смогло убрать
похоже флаг этот действительно отслеживать теперь придется, чтобы без сюрпризов (((
(7) код для запуска на самом сервере 1С, в вашем случае замените localhost на нужное значение, в данном примере ищется база с именем unf
//разрешаем в бд запуск регл. заданий
Коннектор = Новый COMобъект("V83.ComConnector");
Агент = Коннектор.ConnectAgent("localhost");
Кластер = Агент.GetClusters().GetValue(0);
Агент.Authenticate(Кластер, "", "");
Процессы = Агент.GetWorkingProcesses(Кластер);
Для каждого РабочийПроцесс Из Процессы Цикл
Если РабочийПроцесс.Running И РабочийПроцесс.IsEnable Тогда
СтрокаСоединенияСРабочимПроцессом = РабочийПроцесс.HostName + ":" + Формат(РабочийПроцесс.MainPort, "ЧГ=");
СоединениеСРабочимПроцессом = Коннектор.ConnectWorkingProcess(СтрокаСоединенияСРабочимПроцессом);
СоединениеСРабочимПроцессом.AddAuthentication("логин", "пароль");
базы = СоединениеСРабочимПроцессом.GetInfoBases();
для каждого база из базы цикл
Если база.name = "unf" тогда
база.ScheduledJobsDenied = ложь;
СоединениеСРабочимПроцессом.UpdateInfoBase(база);
КонецЕсли;
конецЦикла;
КонецЕсли;
конецЦикла;
Коннектор = неопределено;
(9)сделал публикацию кода, часть из которого привел, https://infostart.ru/public/1225214/ подумал, что как раз поможет тем программистам, кому сисадмины ограничивают доступ к серверу 1с, завершать сеансы и включать/отключать блокировку регл. заданий
Второй раз за неделю встает обмен по непонятной причине. Каким-то образом на сервере включается флаг "Блокировка регламентных заданий включена".
Доступ к серверу 1С не имеет никто, кроме начальника, а он этот флаг не включал.
Може в планировщике windows скрипт какой-нибудь есть, который пакостит?
Нашла что в общих модулях УНФ есть 2 процедуры, которые этот флаг могут включать.
Это почти ответ на вопрос. Найдите, откуда они могут вызываться. Я смутно помню, что при каких-то операциях оно само предлагало заблокировать РЗ - скорее всего где-то есть вызов блокировки, после которого нет разблокировки...
зы хочется запустить кирпичом в архитекторов платформы, которые разрешают такие финты