Defuser 1c фоновое задание что это
Перейти к содержимому

Defuser 1c фоновое задание что это

1С фоновое задание — Общее описание механизма

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

1С фоновое задание

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

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

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

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

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

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

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

Для этого:

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

Общий модуль ОбработчикиФоновыхЗаданий

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

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

Общий модуль ОбработчикиФоновыхЗаданий

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

Для этого:

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

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

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

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

Остановка фоновых заданий для выгрузки базы 1C

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

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

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

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

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

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

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

Defuser 1c фоновое задание что это

Кому подойдет информация: Администратор 1С, Системный администратор, Бухгалтер
Подойдет для конфигураций: Все типовые конфигурации 1С новых редакций

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

Вообще необходимо стараться избегать необходимости завершать работу пользователей базы принудительно, а завершать работу пользователей стандартным закрытием сеансов работы. Т.к. каждое такое "выкидывание" пользователей из базы является по своей сути аварийным завершением работы с базой. И именно в такие аварийные завершения работы могут возникать или накапливаться ошибки (но не обязательно каждый раз) в пользовательских файлах, которые могут потом выражаться в нетиповом поведении 1С у отдельных пользователей, потребуется очистка кэша базы на отдельном рабочем месте. Но, когда других вариантов не остается, то приходится удалять активные сеансы работы пользователей принудительно.

Будет рассмотрено три момента: в файловой базе, а так же два варианта с использованием возможностей базы в режиме 1С:Предприятие и с помощью утилиты администрирования баз данных для серверного варианта базы. Понять, какой тип базы у Вас — файловый или серверный можно по ссылке.

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

Внимание: описанные ниже действия доступны для пользователей с полным набором прав!

1. Блокировка работы пользователей в файловой базе

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

Для этого необходимо перейти в разделе "Администрирование" ("НСИ и администрирование" — в зависимости от конфигурации может быть такое название) по ссылке "Обслуживание", далее по ссылке "Блокировка работы пользователей". Блокировка базы устанавливается текущим пользователем. После нажатия на кнопку "Установить блокировку" сеансы других пользователей будут прерваны до момента снятия блокировки.

1С 8 блокировка работы пользователей файловой базы

2. Завершение работы пользователей серверной базы в режиме 1С: Предприятие

Переходим в раздел "НСИ и администрирование" или "Администрирование" в зависимости от конфигурации базы 1С 8, далее переход по ссылке "Обслуживание".

1C 8 как удалить, выгнать работающих пользователей из базы в режиме Предприятие

Далее, как продемонстрировано на, объединенном изображении переход по ссылке "Активные пользователи" откроет одноименную форму списка работающих пользователей базы 1С. Выделяем несколько строк или отдельные и с помощью кнопки "Завершить сеанс" работа пользователей будет завершена.

как завершить работу пользователей в базе 1С 8

3. Завершение работы пользователей серверной базы с помощью "Администрирования серверов 1С Предприятия"

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

1с 8 не обнаружено свободной лицензии!

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

1C 8 ярлык Администрирование серверов 1С предприятия1C 8 утилита Администрирование серверов 1С Предприятие в меню кнопки Пуск в Windows

Находим базу в ветке "Кластер" — "Локальный кластер" — "Информационные базы" по имени базы и "Сеансы". Имя базы можно найти в "Справка" — "О программе", "Имя базы" или в списке запуска баз, внизу формы списка. Выделяются строки с отдельными сеансами работы или несколько подряд. Правой кнопкой мыши вызывается контекстное меню, в котором необходимо выбрать пункт "Удалить".

1С 8 удаление пользователей из базы

Согласится с предупреждением о том, что удаление сеанса может привести к потере не сохраненных изменений в справочниках и документах. Мера вынужденная, поэтому нажимается кнопка "ОК".

как завершить работу пользователей в базе 1с 8

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

1C 8 удаление сеансов работы пользователей

Может возникнуть ситуация, что в списке пользователей окажется пользователь "DefUser" — это значит, что в базе отрабатывает регламентное (фоновое) задание. Необходимо дождаться, когда фоновое здание закончит выполнение и пользователь DefUser сам автоматически отключиться. Иначе, если в настройке фонового задания установлена настройка запускать повторно при аварийном завершении, то пользователь после удаления его сеанса работы практически мгновенно тут же появится. И, если исходная цель была в получении монопольного доступа, то это сделать не получится из-за мгновенно снова запускающегося после завершения работы сеанса фонового задания. Необходимо дождаться самостоятельного завершения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *