1с фоновое задание завершение сеанса

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

Если база серверная, то можно использовать утилиту администрирования серверов 1С Предприятия. Раскрыть ветку Информационные базы, выбрать нужную базу и правой кнопкой мыши открыть ее Свойства (может выйти окно с запросом Пользователь/Пароль – это данные для входа в базу с правами администрирования), откроется окно Параметры информационной базы, нужно установить галочку у свойства Блокировка регламентных заданий включена и ОК (рис. 1). После выгрузки базы нужно вернуться в Свойства и снять установленную галочку.

Рис. 1. Свойства ИБ

Для остановки выполнения фоновых заданий также можно использовать Консоль заданий или встроенную обработку Регламентные и фоновые задания (рис. 2):

Рис. 2. Регламентное задание

Для остановки выполнения регламентного задания нужно снять галочку Включено. Если выполняется фоновое задание, то на вкладке Фоновые задания можно выделить задание и нажать на кнопку Отменить.

После выгрузки базы нужно вернуться и восстановить выполнение регламентных заданий, которые были отключены (установить галочку Включено).

yakov 22.09.2014 07:00
Прочитано: 36732

Как в 8.3 удалять сеансы с помощью регламентного задания?

Yandex
Возможно, вас также заинтересует
E_Migachev 22.09.2014 10:26
Ответ № 1

уточните — какие сеансы вы хотите удалить?

yakov 23.09.2014 05:29
Ответ № 2

Все активные сеансы (исключения тоже не помешают)) Сеансы пользователей часто продолжают оставаться активными, даже если пользователь вышел.

E_Migachev 23.09.2014 13:40
Ответ № 3

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

у меня в планировщике стоит задание, каждое утро в 3.30 выполнять скрипт вида

Код Batch File (DOS, CMD, BAT)

yakov 23.09.2014 14:18
Ответ № 4

Это вариант, спасибо! Но хотелось бы для отдельных пользователей сделать исключение..

E_Migachev 23.09.2014 15:35
Ответ № 5

тогда через com соединение подключайся и отключай необходимых

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

К примеру, в типовых конфигурациях, в то время как пользователь работает, происходит выполнение различного рода сервисных фоновых заданий. Об этом может свидетельствовать записи журнала регистрации, в котором фиксируется факт выполнения таких действий. Причем на работу пользователя это никак не влияет, он просто их не замечает.

В идеале фоновое задание реализуется в варианте клиент-сервер, в этом случае вся нагрузка переходит на сервер. Что касается файлового варианта, то работа фонового задания возможна, но она имеет некоторые особенности.

Вот что выдаст система если не учесть эти особенности, и запустить фоновое задание в файловом варианте информационной базы.

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

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

Какие же средства мы имеем для управления фоновыми заданиями? Этим средством является объект метаданных«МенеджерФоновыхЗадания». У этого объекта есть метод «Выполнить», с помощью этого метода, как раз и запускается фоновое задание.

Имеет он следующие параметры: «ИмяМетода» — имя процедуры или функции, которую нужно выполнить, причем это должна быть процедура или функция серверного контекста; «Параметры» — массив параметров, количество элементов которого должно соответствовать количеству параметров нашей процедуры/функции, указанной в параметре «ИмяМетода»; «Ключ» — некий ключ уникальности, представляющий из себя строчку, по которой система понимает нужно ли запускать фоновое задание либо такое задание уже запущено; «Наименование» — здесь можно указать произвольное описание нашего метода.

Возвращаемым значением является объект «ФоновоеЗадание», содержащий текущее имя метода, текущий ключ и еще несколько свойств и методов. Одним из таких методов является метод «ОжидатьЗавершения». Его задачей является то, что мы может указать системе, чтобы ничего не производилось пока не будет завершено фоновое задание.

Фоновое задание 1С 8.2, 8.3 — Пример использования

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

Для этого:

1. Создадим общий модуль «ОбработчикиФоновыхЗаданий», который будет компилироваться на стороне сервера;

2. Опишем в нем экспортную процедуру «ПроизветиФоновоеВычисление(Параметр)», которая принимает один параметр строкового типа;

3. Далее создадим внешнюю обработку и в событии нажатия на кнопку поместим код, запускающий наш алгоритм;

Готово. Теперь при запуске обработки и нажатии на кнопку происходит подвисание системы на несколько секунд, в процессе которого ничего нельзя сделать. Это как раз то, что нам и нужно было сделать.

Теперь обеспечим произведение этих вычислений в фоне, то есть чтобы фоновое задание 1С 8.2, 8.3 выполнялось, но нам не мешало.

Для этого:

1. В обработке, в событии нажатия кнопки пропишем следующий код.

Здесь первым параметром мы передаем имя процедуры общего модуля, а вторым — массив параметров. Третьим параметром нужно передать уникальный ключ и четвертым некоторое описание нашей процедуры.

Готово. Теперь можем проверять. Перезапускаем нашу обработку нажимаем кнопку, система не подвисает и мы работаем беспрепятственно.

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

Приведенный выше пример показывает, как работает фоновое задание 1С 8.2, 8.3. То, каким полезным оно может быть в разработке ваших алгоритмов.

Скачать базу с примером вы можете тут

Оцените статью
Добавить комментарий