Блокировка работы пользователей по расписанию или как сохранить произвольные параметры для внешней обработки

15.12.15

Разработка - Инструментарий разработчика

Вариант сохранения произвольных параметров для внешних обработок на примере обработки по установке блокировки пользователей по расписанию.

Скачать файлы

Наименование Файл Версия Размер
Сохранение настроек доп.обработок
.epf 9,92Kb
25
.epf 9,92Kb 25 Скачать
Блокировка работы пользователей (автозапуск)
.epf 14,35Kb
27
.epf 14,35Kb 27 Скачать

В работе службы сопровождения 1С нередко возникают ситуации, когда нужно обеспечить отсутствие пользователей в базе для проведения каких-то регламетных процедур или сервисных работ. Некоторые такие процедуры должны выполняться регулярно, и было бы удобно настроить расписание установки блокировки на вход в информационную базу.

1) Создание обработки "Блокировка работы пользователей" для запуска по расписанию

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

Для этого в модуле внешней обработки в процедуре СведенияОВнешнейОбработке добавляем команду  с вариантом использования "ВызовСерверногоМетода"

Функция СведенияОВнешнейОбработке() Экспорт
	
	СведенияОбОбработке = Новый Структура;
	
	СведенияОбОбработке.Вставить("Вид", "ДополнительнаяОбработка");
	
	СведенияОбОбработке.Вставить("Наименование ", "Блокировка работы пользователей (автозапуск)");
	
	СведенияОбОбработке.Вставить("Версия ", "3.0.1.0");
	
	СведенияОбОбработке.Вставить("БезопасныйРежим", Ложь);
	
	СведенияОбОбработке.Вставить("Информация", "Блокировка работы пользователей (автозапуск)");
	
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	ДобавитьКоманду(ТаблицаКоманд, "ЗаблокироватьПользователей", "ВыполнитьУстановку", "ВызовСерверногоМетода");
	СведенияОбОбработке.Вставить("Команды", ТаблицаКоманд);
	
	Возврат СведенияОбОбработке;
            
КонецФункции


Также добавляем в модуль процедуру "ВыполнитьКоманду(ИдентификаторКоманды)", которая будет обрабатывать вызов нашего серверного метода

Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
	
	Если ИдентификаторКоманды = "ВыполнитьУстановку" Тогда
		ВыполнитьУстановку();
	КонецЕсли;
				
КонецПроцедуры


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

Теперь все готово для того, чтобы зарегистировать нашу обработку в списке дополнительных отчетов и обработок и настроить расписание запуска

 


Итак, теперь у нас есть обработка, которая запускается по расписанию и устанавливает блокировку работы пользователей.
Все здорово, кроме одного: параметры нашей блокировки (время начала, время окончания, текст сообщения для пользователей и т.д.) нам пришлось прописать непосредственно в коде обработки, соответственно, когда появится необходимость эти параметры поменять - нам придется менять код обработки и заново регистрировать ее.
Не очень красивое решение. Для решения этой проблемы создадим механизм, который позволит сохранять для нашей обработки произвольный набор параметров.

 

2) Сохранение произвольных параметров для дополнительных обработок

Для сохранения настроек воспользуемся объектом "ХранилищеОбщихНастроек" и его методом

Сохранить(<КлючОбъекта>, <КлючНастроек>, <Настройки>, <ОписаниеНастроек>, <ИмяПользователя>)


По умолчанию (если параметр <ИмяПользователя> не задан) настройки сохраняются для текущего пользователя. Однако, если у пользователя, вызвашего этот метод
есть права "АдминистрированиеДанных" он может работать с настройками других пользователей и к тому же ИмяПользователя это просто строка - этим-то мы и воспользуемся для решения своей задачи:
мы будем сохранять настройки для "пользователя" ДополнительныеОбработки(естественно никакого пользователя ДополнительныеОбработки у нас в базе нет, это просто ключ, в разрезе которого мы будем хранить настройки для внешних обработок)

<КлючОбъекта> в нашем случае ключом будет Имя внешней обработки для которой сохраняем настройки, а <КлючНастроек> - строка "ДополнительныеНастройки"(имя можно придумать любое).
Сами настройки передаются в параметре <Настройки> тип параметра произвольный. Для нашей задачи мы будем использовать, структуру.

Вот собственно и все. Теперь создаем еще одну внешнюю обработку "СохранениеНастроекДопОбработок" и делаем в ней удобную форму для работы с нашим методом "Сохранить".
На форме будем выбирать внешнюю обработку из списка зарегистрированных в базе, а в табличной части будем указывать настройки, которые хотим сохранить в виде "ИмяНастройки-ЗначениеНастройки".

 



 Теперь остается в обработке блокировки пользователей считать сведения о настройках для нашей обработки

Функция ПолучитьСведенияОНастройке()
	
	СведенияОНастройке = Новый Структура;
	СведенияОНастройке.Вставить("КлючОбъекта", СокрЛП(ЭтотОбъект.Метаданные().Имя)); // имя обработки из которой считываем настройки
	СведенияОНастройке.Вставить("КлючНастроек", "ДополнительныеНастройки"); // ключ настроек "ДополнительныеНастройки"
	СведенияОНастройке.Вставить("ВладелецНастроек", "ДополнительныеОбработки"); // виртуальный пользователь-владелец настроек
	
	Возврат СведенияОНастройке;
КонецФункции

прочитать настройки на основании полученных сведений и заполнить реквизиты обработки полученными значениями


В качестве примера реализации описанного выше подхода во вложении приведены обработки:

1. Внешняя обработка "Сохранение настроек доп.обработок" - сохраняет произвольный перечень параметров для выбранной на форме дополнительной обработки.

2. Внешняя обработка "Блокировка пользователей (автозапуск)" - позволяет запускать обработку блокировки по расписанию и считывать сохраненные для обработки настройки.

Блокировка пользователей Администрирование Внешние обработки

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 руб.

02.09.2020    101782    564    385    

610

Онлайн-интенсив "DevOps для 1С". с 5 февраля по 19 марта 2024 г.

Инструментарий разработчика DevOps и автоматизация разработки DevOps для 1С Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

25000 руб.

20.06.2023    11509    25    2    

142

PowerTools

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

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

3600 руб.

14.01.2013    173017    1042    0    

816

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы Платные (руб)

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

18000 руб.

06.10.2023    3558    3    0    

17

Управление данными и формами (УДиФ)

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

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

10000 руб.

10.11.2023    1390    3    1    

20

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    97588    237    97    

287

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    22384    14    15    

27

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

Инструментарий разработчика Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Конфигурации 1cv8 Платные (руб)

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    13848    5    9    

12
Оставьте свое сообщение