Установка/снятие блокировки регламентных заданий (клиент-серверный вариант)

13.03.18

База данных - Инструменты администратора БД

Небольшая обработка для программного изменения свойств текущей информационной базы (клиент-сервер), в частности свойства ScheduledJobsDenied - признака блокировки выполнения регламентных заданий информационной базы. Тестировал в 8.3.10.2667 (OS Windows, MS SQL 2008).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Установка/снятие блокировки регламентных заданий (клиент-серверный вариант):
.epf 7,28Kb
58
58 Скачать (1 SM) Купить за 1 850 руб.

Набросал для себя, потом подумал, что кому-то вдруг окажется интересно программно запрещать или разрешать фоновые процессы, которые стартуют по регламентному расписанию. Целью была доработка типовой обработки БлокировкаСоединенийСИнформационнойБазой, я "выгонял" из базы пользователей, но фоновые задачи нужно было иногда прекращать сразу, а каждый раз запускать оснастку администрирования - лень.

В общем, основная процедура из модуля обработки в тексте.

// Функция - Получить структуру соединения информационной базы
//
// Параметры:
//  СтрокаСоединения - Строка - Строка соединения с информационной базой в формате "<Имя параметра>=<Значение параметра>;". При пустом значении используется текущая строка соединения
// 
// Возвращаемое значение:
// Структура - Ключ - <Имя параметра>, значение - <Значение параметра>
//
Функция ПолучитьСтруктуруСоединенияИнформационнойБазы(Знач СтрокаСоединения = Неопределено) Экспорт
	Если СтрокаСоединения = Неопределено тогда
		СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
	КонецЕсли;
	
	Результат = Новый Структура;
	
	МассивПараметров = СтрРазделить(СтрокаСоединения, ";", Ложь);
	Для Каждого ПараметрМассива Из МассивПараметров Цикл
		Поз = СтрНайти(ПараметрМассива, "=");
		Ключ = ТРег(СокрЛП(Лев(ПараметрМассива,Поз-1)));
		Значение = СокрЛП(Сред(ПараметрМассива, Поз+1));
		Если Лев(Значение,1) = """" И Прав(Значение,1) = """" тогда
			Значение = Сред(Значение, 2, СтрДлина(Значение)-2);
		КонецЕсли;
		Попытка
		Результат.Вставить(Ключ, Значение);	
		Исключение
		КонецПопытки;
	КонецЦикла;
	
	Возврат Результат;
КонецФункции

// Функция - Блокировка регламентных заданий в текущей информационной базе
//
// Параметры:
//  УстановитьБлокировку - Булево - Если задан, то производится попытка изменить состояние блокировки регламентных заданий
// 
// Возвращаемое значение:
// Булево - состояние блокировки после установки нового состояния.
// Неопределено - в случае, если невозможно изменить состояние блокировки регламетных заданий
//
Функция БлокировкаРегламентныхЗаданий(УстановитьБлокировку = Неопределено) Экспорт
	АдминистраторИБ = Новый Структура("Имя, Пароль", "username", "password");
	
	СтруктураСоединения = ПолучитьСтруктуруСоединенияИнформационнойБазы();
	
	COMСоединитель = Новый COMОбъект("V83.COMConnector");
	Попытка
		СоединениеСАгентомСервера = COMСоединитель.ConnectAgent(СтруктураСоединения.Srvr);
	Исключение
		СоединениеСАгентомСервера = Неопределено;
	КонецПопытки;
	Если СоединениеСАгентомСервера = Неопределено тогда
		Возврат Неопределено;
	КонецЕсли;
	
	МассивКластеров = СоединениеСАгентомСервера.GetClusters();
	КластерТекущий = Неопределено;
	Для Каждого Кластер Из МассивКластеров Цикл
		Если Нрег(Кластер.HostName) = Нрег(СтруктураСоединения.Srvr) тогда
			КластерТекущий = Кластер;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	Если КластерТекущий = Неопределено тогда
		Возврат Неопределено;
	КонецЕсли;
	СоединениеСАгентомСервера.Authenticate(КластерТекущий, "", "");
	
	МассивРабочихПроцессов = СоединениеСАгентомСервера.GetWorkingProcesses(КластерТекущий);
	ИнформационнаяБазаТекущая = Неопределено;
	Для Каждого РабочийПроцесс Из МассивРабочихПроцессов Цикл
		СоединениеСРабочимПроцессом = COMСоединитель.ConnectWorkingProcess("tcp://"+РабочийПроцесс.HostName+":"+Формат(РабочийПроцесс.MainPort,"ЧГ=0"));
		СоединениеСРабочимПроцессом.AddAuthentication(АдминистраторИБ.Имя, АдминистраторИБ.Пароль);
		МассивИнформационныхБаз = СоединениеСРабочимПроцессом.GetInfoBases();
		Для Каждого ИнформационнаяБаза Из МассивИнформационныхБаз Цикл
			Если Нрег(ИнформационнаяБаза.Name) = Нрег(СтруктураСоединения.Ref) тогда
				ИнформационнаяБазаТекущая = ИнформационнаяБаза;
				Прервать;
			КонецЕсли;
		КонецЦикла;
		Если НЕ ИнформационнаяБазаТекущая = Неопределено тогда
			Прервать;
		КонецЕсли;
	КонецЦикла;
	Если ИнформационнаяБазаТекущая = Неопределено тогда
		Возврат Неопределено;
	КонецЕсли;
	
	Результат = Неопределено;
	Если ТипЗнч(УстановитьБлокировку) = Тип("Булево") тогда
		Попытка
			ИнформационнаяБазаТекущая.ScheduledJobsDenied = УстановитьБлокировку;
			СоединениеСРабочимПроцессом.UpdateInfoBase(ИнформационнаяБазаТекущая);
			Результат = ИнформационнаяБазаТекущая.ScheduledJobsDenied;
		Исключение
		КонецПопытки;
	Иначе
		Результат = ИнформационнаяБазаТекущая.ScheduledJobsDenied;
	КонецЕсли;
	
	Возврат Результат;
КонецФункции

 

блокировка фоновые регламентные задания

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14844    109    46    

108

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11991    45    33    

67

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    10842    47    8    

78

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    191457    1153    0    

920

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    33892    108    152    

75

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    32709    145    18    

51

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    73814    629    45    

88

Инструменты администратора БД Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10200    10    4    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aspirator23 340 17.03.18 14:30 Сейчас в теме
Консоль не понравилась?
2. jwslavin 26 19.03.18 07:52 Сейчас в теме
(1) Чай не девушка, чтобы нравиться :) А если серьезно, то и консолью пользуюсь. Но специфика работы моей главной базы в том, что фоновые задания обращаются к внешним компонентам и при принудительной остановке сеанса эти компоненты иногда чудят. Проще запретить регламентные задания, а пользователям дать минут 5-10 на аккуратное завершение. И все это из одного окна (клиент-то уже как правило запущен), ибо лень. Короче, частный случай.
3. aspirator23 340 19.03.18 11:13 Сейчас в теме
В консоли не пробовал регламентные задания выключать?
4. jwslavin 26 19.03.18 14:06 Сейчас в теме
(3) Выключал. Надоело запускать еще одно окно. Чего ж непонятного-то?
5. Yashazz 4805 07.07.21 10:59 Сейчас в теме
Спасибо за подтверждение гипотезы насчёт UpdateInfoBase, а то в СП ерунда написана, что, мол, "только descr меняет", ага щаз.
6. Prog01 1 02.06.22 19:29 Сейчас в теме
В управляемых формах сие не работает.
7. evpe75 24.10.22 14:43 Сейчас в теме
Отличная обработка, очень пригодилась, респект автору.
8. lastpioneer 235 24.05.23 10:07 Сейчас в теме
К сожалению не всегда имя сервера (srv) и имя кластера одно и то же :(
и вот эта строка не работает:

Если Нрег(Кластер.HostName) = Нрег(СтруктураСоединения.Srvr) Тогда


В связи с тем, что у меня один кластер, сделал так:

	МассивКластеров = МассивКластеровКОМ.Выгрузить();
	
	КоличествоКластеров = МассивКластеров.Количество();
	
	Если КоличествоКластеров = 1 Тогда  
		КластерТекущий = МассивКластеров[0];
	Иначе
		Для Каждого Кластер Из МассивКластеров Цикл
			Если Нрег(Кластер.HostName) = Нрег(СтруктураСоединения.Srvr) тогда
				КластерТекущий = Кластер;
				Прервать;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
Показать


Для количества Кластеров более одного требуется в строку параметров, ещё добавлять имя Кластера.

Или можно по порту определять нужный кластер?
Оставьте свое сообщение