Перенесли 1С Кластер серверов на Debian 10 и, конечно же, о COM соединениях пришлось забыть.
Начал смотреть, каким образом можно установить блокировку начала сеансов и регламентных заданий во всех БД автоматически (например, перед выполнением регламентных функций, которые требуют монопольного доступа к БД), как раньше под управлением Windows. Но почему-то подробного описания работы ras сервера так и не получилось отыскать в просторах интернета.
Немного разобравшись, пришло понимание того, как можно запустить такие скрипты в планировщике заданий на машине под управлением Win10, подключившись через ras сервер к кластеру серверов, который находится на Linux. Для этого достаточно Получить Информационные Базы, которые крутятся на Сервере, выполнить с ними следующий код (его можно запаковать в обработку и запускать ее через cmd в планировщике win10):
ТекущийКластер = ПолучитьКластер();
ТекущийКластер.ВыполнитьАутентификацию();
СписокИБ = ТекущийКластер.ПолучитьИнформационныеБазы();
Для Каждого текИБ из СписокИБ Цикл
текИБ.ВыполнитьАутентификацию("***","***");
текИБ.БлокировкаРегламентныхЗаданий = Истина;
// заблокируем БД
текИБ.ВключенаБлокировкаНачалаСеансов = Истина;
ТекИБ.ВремяНачалаБлокировки = ТекущаяДата();
ДатаОкончания = ТекущаяДата();
Если Час(ДатаОкончания) < 7 Тогда
ДатаОкончания = НачалоДня(ДатаОкончания) + 25200;
Иначе
ДатаОкончания = ТекущаяДата()+1800;
КонецЕсли;
текИБ.ВремяОкончанияБлокировки = ДатаОкончания;
текИБ.СообщениеБлокировки = "Выполняются регламентные работы с БД, подождите...";
текИБ.КодРазрешенияНачалаСеансов = "КодРазрешения";
текИБ.Записать();
Сообщить("Установлены блокировки и завершены сеансы в БД -> "+текИБ.Имя+" - "+текИБ.СерверБазДанных);
СеансИБ = текИБ.ПолучитьСеансы();
Для Каждого Сеанс Из СеансИБ Цикл
Если Сеанс <> Неопределено Тогда
Попытка
Сообщить(" - убит: "+Сеанс);
Сеанс.ЗавершитьСеанс();
Исключение
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Для снятия блокировки необходимо просто указать Ложь в новой обработке:
***
текИБ.БлокировкаРегламентныхЗаданий = Ложь;
текИБ.ВключенаБлокировкаНачалаСеансов = Ложь;
***
В приложенной обработке работающий функционал, необходимый для установки блокировки (только вместо *** необходимо вставить свои сведения).
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.188.17
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.34.145
- Управление торговлей, редакция 11, релизы 11.5.22.123
Вступайте в нашу телеграмм-группу Инфостарт
