Что такое фоновое задание в 1с
1С фоновое задание позволяет нам производить какие-либо вычисления в системе незаметно для пользователя, то есть в фоне. Более того данный механизм позволяет нам распараллелить процесс вычисления. Распараллелить мы можем даже процедуру, которая будет выполняться. Для этого наше фоновое задание должно запускать еще несколько фоновых заданий. В этом случае процессы распараллеливаются и, если у нас многопроцессорная, многоядерная система, наш алгоритм будет работать эффективно. После запуска нескольких процессов мы можем сказать системе, что необходимо дождаться окончания выполнения этих процессов для того, чтобы потом каким-то образом свести результат.
К примеру, в типовых конфигурациях, в то время как пользователь работает, происходит выполнение различного рода сервисных фоновых заданий. Об этом может свидетельствовать записи журнала регистрации, в котором фиксируется факт выполнения таких действий. Причем на работу пользователя это никак не влияет, он просто их не замечает.
В идеале фоновое задание реализуется в варианте клиент-сервер, в этом случае вся нагрузка переходит на сервер. Что касается файлового варианта, то работа фонового задания возможна, но она имеет некоторые особенности.
Вот что выдаст система если не учесть эти особенности, и запустить фоновое задание в файловом варианте информационной базы.
1С фоновое задание имеет некоторые ограничения. Поскольку оно выполняется на стороне сервера, то нет возможности интерактивной работы с пользователем. К примеру нельзя вывести сообщение, ну и вообще какую-то информацию. Все эти данные нужно сохранять в рамках информационной базы и дальше каким-то образом обрабатывать.
Обратившись к синтакс-помощнику можно получить более детальные сведения о фоновых заданиях 1С. Здесь следует отметить, что это объект исключительно программный и он никак не сохраняется в базе данных. То есть мы создаем экземпляр класса, инициализируем свойства и запускаем его на выполнение.
Какие же средства мы имеем для управления фоновыми заданиями? Этим средством является объект метаданных«МенеджерФоновыхЗадания». У этого объекта есть метод «Выполнить», с помощью этого метода, как раз и запускается фоновое задание.
Возвращаемым значением является объект «ФоновоеЗадание», содержащий текущее имя метода, текущий ключ и еще несколько свойств и методов. Одним из таких методов является метод «ОжидатьЗавершения». Его задачей является то, что мы может указать системе, чтобы ничего не производилось пока не будет завершено фоновое задание.
Приведем пример работы с фоновыми заданиями 1С. Сначала создадим простой алгоритм, который будет ненадолго загружать систему 1С таким образом, чтобы мы ничего не могли в это время делать.
Для этого:
1. Создадим общий модуль «ОбработчикиФоновыхЗаданий», который будет компилироваться на стороне сервера;
2. Опишем в нем экспортную процедуру «ПроизветиФоновоеВычисление(Параметр)», которая принимает один параметр строкового типа;
3. Далее создадим внешнюю обработку и в событии нажатия на кнопку поместим код, запускающий наш алгоритм;
Готово. Теперь при запуске обработки и нажатии на кнопку происходит подвисание системы на несколько секунд, в процессе которого ничего нельзя сделать. Это как раз то, что нам и нужно было сделать.
Теперь обеспечим произведение этих вычислений в фоне, то есть чтобы фоновое задание 1С 8.2, 8.3 выполнялось, но нам не мешало.
Для этого:
1. В обработке, в событии нажатия кнопки пропишем следующий код.
Готово. Теперь можем проверять. Перезапускаем нашу обработку нажимаем кнопку, система не подвисает и мы работаем беспрепятственно.
Кстати, убедиться в том, что 1С фоновое задание работало можно посмотрев в записи журнала регистрации. В этих записях фиксируется когда производился запуск фонового задания.
Приведенный выше пример показывает, как работает фоновое задание 1С 8.2, 8.3. То, каким полезным оно может быть в разработке ваших алгоритмов.
Скачать базу с примером вы можете тут
Механизм заданий
Основные возможности механизма заданий
Фоновые задания
Механизм фоновых заданий реализуется средствами встроенного языка. Фоновые задания предназначены для для выполнения прикладных задач асинхронно. Они могут порождать дочерние фоновые задания, например для распараллеливания сложных вычислений по различным рабочим серверам кластера в клиент-серверном варианте работы.
Существует возможность ограничить выполнение фоновых заданий, имеющих одинаковые методы, по определенному прикладному признаку. Программное создание и управление фоновыми заданиями возможно из любого соединения пользователя с информационной базой системы 1С:Предприятие 8. Фоновое задание выполняется от имени пользователя, который его создал.
Регламентные задания
Регламентные задания представляют собой неотъемлемую часть конкретного прикладного решения и описываются на этапе конфигурирования.
Для каждого регламентного задания может быть задано расписание, в соответствии с которым регламентое задание будет автоматически запущено на исполнение. В системе 1С:Предприятие 8 поддерживаются однократные и периодические расписания. Можно задать дату начала и окончания выполнения, дневное, недельное и месячные расписания. Расписание можно задать как на этапе конфигурирования, так и на этапе выполнения (в режиме 1С:Предприятие).
В процессе запуска регламентное задание порождает фоновое задание, которое и выполняет реальную обработку. Регламентное задание может выполняться от имени заданного пользователя и имеет возможность перезапуска (например, в случае непредвиденного завершения работы).
В утилите администрирования клиент-серверного варианта работы автоматическое выполнение регламентных заданий может быть запрещено для конкретной информационной базы.
Особенности выполнения регламентных заданий
В клиент-серверном варианте работы запуск регламентных заданий по расписанию осуществляет менеджер кластера. Таким образом, даже если с информационной базой не установлено ни одного клиентского соединения, регламентные задания будут выполняться (при условии, что они не запрещены для конкретной информационной базы):
В файловом варианте работы для автоматического запуска регламентных заданий необходимо наличие выделенного клиентского соединения, используемого в качестве планировщика заданий. В этом соединении должна быть запущена обработка ожидания, с некоторой периодичностью выполняющая вызов метода встроенного языка ВыполнитьОбработкуЗаданий():
Регламентные и фоновые задания 1С 8
Наверное, каждому программисту 1С 8.3 рано или поздно приходилось настраивать выполнение определенных заданий по расписанию. Ниже я дам подробное описание данных механизмов, надеюсь, это будет полезной информацией для начинающих программистов 1С. Это очень удобно, ведь не требует действий от человека, регламентное задание настраивается 1 раз и работает по Вашему расписанию.
Как настраиваются регламентные и фоновые задания в 1С 8?
Развернутую инструкцию на примере загрузки курсов валют Вы найдете далее.
Что такое регламентные и фоновые задания в 1С
Настройка фоновых заданий в клиент-серверном режиме работы 1С
Для начала создадим новый объект метаданных — регламентное задание. Я назову свое задание «ЗагрузкаКурсовВалют». Рассмотрим палитру свойств данного объекта конфигурации:
И самая интересная настройка — Расписание:
Тут настраивается интервал запуска процедуры, указанного в поле «Имя метода». Допустим я настроил
Внимание! Не забудьте отключить блокировку выполнения регламентных и фоновых заданий на уровне СУБД!
Сделать это можно в утилите администрирования клиент-серверного варианта либо при создания новой БД:
Для управления фоновыми заданиями рекомендую использовать обработку с диска ИТС — «Консоль заданий«.
Настройка регламентных заданий в файловом режиме работы 1С
В файловом режиме настройка таких заданий несколько труднее. Для такого задания должна быть запущена отдельная сессия программы 1С. Зачастую это решается заведением «технического» пользователя, чей сеанс всегда запущен.
В файловом режиме инициализация регламентного задания происходит при запуске метода «ВыполнитьОбработкуЗаданий()».
Для определенного пользователя можно настроить запуск этого метод, используя другой метод —
Двухминутное видео, в котором показано, как настроить регламентное задание в конфигураторе 1С:
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Регламентные (фоновые) задания в 1С
Обновим 1С с гарантией сохранности базы
Поможем с 1С 24/7, без выходных
Установим сервисы 1С бесплатно
Оперативно решим любые задачи по 1С
Регламентные задания в 1С 8 3 нужны для выполнения периодических задач — ежедневно, по определенным числам и т.п. Рассказываем об особенностях подобных заданий и даем инструкцию по их созданию.
Что такое фоновые и регламентные задания?
Когда фоновое задание в 1С 8 является незаменимым?
Фоновые задания особенно эффективны в следующих случаях:
Как создать регламентное задание?
Для начала надо зайти в базу в режиме “Конфигуратор”. Далее в ветке “общие” находим “регламентные задания” и нажимаем “добавить”.
Теперь разберем подробнее создание задания. Нам необходимо заполнить форму следующим образом:
Создаем расписание
Отдельно рассмотрим создание расписания для регламентного задания в 1С. При создании задания необходимо нажать на “расписание” и заполнить поля в появившемся окне.
В качестве проверки верного заполнения вы можете ориентироваться на нижнюю часть окна — там находится текстовая расшифровка заданной периодичности. Если вам необходимо ограничить задание по срокам, не забудьте проставить даты — в обратном случае программа будет воспринимать задачу, как не имеющую ограничений по длительности.
Отдельно можно настроить дневное, недельное и месячное расписание.
Блокируем регламентные задания
Для блокировки необходимо запустить стандартную утилиту «Администрирование серверов 1С Предприятия» и открыть свойства базы, где вы создали регламентное задание (для клиент-серверных версий 1С). Далее вам нужно ввести ввод и пароль для доступа к базе и в открывшемся окне установить флаг напротив “блокировка регламентных заданий включена”.
Для отключения конкретных фоновых заданий можно использовать встроенную в последние релизы обработку «Консоль фоновых заданий».
Как облегчить работу с 1С?
Если у вас нет подходящих специалистов для решения подобных задач, но есть желание оптимизировать работу с программой, лучше всего обратиться за услугами к профессионалам.
Мы предлагаем внедрение и настройку 1С, а также последующее сопровождение программы. Любые вопросы будут решаться максимально оперативно, а при необходимости вы можете заказывать индивидуальную разработку под 1С.
Позвоните по номеру телефона, указанному на сайте или заполните форму обратной связи, чтобы мы смогли:
Регламентные и фоновые задания в 1С 8.3
1. Что такое регламентные и фоновые задания 1С 8.3
Для начала давайте разберемся, что собой представляют фоновые и регламентные задания в 1С 8.3. Регламентные задания в 1С 8.3 – это механизм (объект метаданных 1С) созданный для выполнения задач по расписанию.
Фоновое задание в 1С 8.3 – это процесс, созданный путем запуска регламентного задания, который выполняет описанный в нем алгоритм.
Говоря простым языком, эти два объекта не могут существовать один без другого. Регламентное задание в 1С 8.3 является триггером (условием) запуска фоновых заданий. Также регламентные задания в 1С 8.3 можно сравнить с планировщиком заданий Windows, только триггером в данном случае является время.
Рассмотрим структуру регламентного задания в 1С 8.3:
Рисунок 1. Окно конфигурации
Регламентные задания находятся в разделе Общие, основного дерева конфигурации 1С. Для добавления нового регламентного задания нужно воспользоваться кнопкой «Добавить» в группе регламентных заданий.
Для примера возьмем регламентное задание «Выполнение задач по почте» конфигурации «Документооборот» 2.1.
Рисунок 2. Окно настроек регламентного задания
Имя – имя регламентного задания для конфигуратора.
Синоним – наименование для пользователя, которое пользователь видит в обработке «Регламентные и фоновые задания» 1С 8.3
Имя метода – путь к Процедуре, которая будет выполняться по расписанию. Следует отметить несколько нюансов при создании такой функции:
1) Процедура обязательно должна находиться в общем модуле 1С
2) Общий модуль 1Сдолжен быть с директивой «Сервер».
3) Процедура обязательно должна быть экспортной процедурой
Ключ – свойство, которое позволяет формально группировать несколько регламентных заданий 1С 8.3, а также позволяет разграничить однотипные задания. Если есть несколько заданий с одинаковым ключом, они будут выполняться последовательно. В результате в разрезе группы в один промежуток времени может выполняться одно задание из каждой группы. Следует учитывать, что если Ключ не заполнен, он не учитывается.
Расписание – это настройка, которая позволяет настроить периоды выполнения задания по времени.
Рисунок 3. Окно настроек расписания
В данной настройке мы можем задать периоды, когда регламентное задание в 1С 8.3 будет выполняться.
Использование – признак того, будет ли выполняться данное регламентное задание.
Повтор при аварийном завершении – повторный запуск регламентного задания. Сбой может произойти, если в результате выполнения регламентного задания сработало исключение, либо когда происходит перезапуск сервера.
2. Управление регламентными заданиями в 1С 8.3
Для управления регламентными заданиями в типовых конфигурациях, использующих библиотеку стандартных подсистем, присутствует обработка «Регламентные и фоновые задания»:
Рисунок 4. Окно обработки «Регламентные и фоновые задания»
В данной обработке мы видим, какие задания включены, т.е. которые будут выполнены по регламенту.
Наименование – синоним регламентного задания 1С 8.3 из конфигуратора.
При двойном клике на регламентном задании в 1С 8.3 мы можем открыть его свойства.
Рисунок 5. Окно настроек регламентного задания
В свойствах мы можем поменять его расписание. В данном случае эта настройка будет считаться актуальнее той, которая задана в конфигураторе. А также указать пользователя, под которым выполняется регламентное задание (это целесообразно для файлового варианта базы, об этом мы поговорим далее). В большинстве случаев этот пользователь должен иметь права администратора, чтобы процедура, выполняемая в фоновом задании, не имела ограничений.
3. Особенности работы в файловой и клиент-серверной базах
Следует также отметить особенности работы регламентных задний в файловой и клиент-серверной базах.
Клиент-серверная база – в данном варианте для выполнения фоновых заданий существует отдельный пользователь. Поскольку серверная база работает постоянно, то и регламентные задания работают независимо от количества человек в базе. Регламентные задания выполняются под учетной записью пользователя Windows, который запустил сервер 1С.
В данной статье мы рассмотрели регламентные и фоновые задания, как их создавать, настраивать, контролировать, а также особенности их работы в разных архитектурах 1С.