Регламентные и фоновые задания (создание, настройка, запуск)
При работе в 1С встречается много рутинных операций которые должны запускаться или формироваться по расписанию выполняя то или иное действие, например: проведение документов или загрузка данных в 1С с сайта.
Недавно я разместил статью: Чтение данных с сайта в формате XML и загрузка в 1С пришло время это автоматизировать:
Регламентные и фоновые задания
Механизм заданий предназначен для выполнения какой-либо прикладной или функциональности по расписанию или асинхронно.
Механизм заданий решает следующие задачи:
Механизм заданий состоит из следующих компонентов:
Фоновые задания & предназначены для выполнения прикладных задач асинхронно. Фоновые задания реализуются средствами встроенного языка.
Регламентные задания & предназначены для выполнения прикладных задач по расписанию. Регламентные задания хранятся в информационной базе и создаются на основе метаданных, определяемых в конфигурации. Метаданные регламентного задания содержат такую информацию как наименование, метод, использование и т.д.
Регламентное задание имеет расписание, которое определяет, в какие моменты времени нужно выполнять связанный с регламентным заданием метод. Расписание, как правило, задается в информационной базе, но может быть задано и на этапе конфигурирования (например, для предопределенных регламентных заданий).
Планировщик заданий используется для планирования выполнения регламентных заданий. Для каждого регламентного задания планировщик периодически проверяет, соответствует ли текущая дата и время расписанию регламентного задания. Если соответствует, планировщик назначает такое задание на выполнение. Для этого по данному регламентному заданию планировщик создает фоновое задание, которое и выполняет реальную обработку.
Создание регламентного задания
Имя метода – путь к процедуре, которая будет выполняться в фоновом задании по заданному расписанию. Процедура должна находиться в общем модуле. Рекомендуется не использовать типовые общие модули, а создать свой. Не забудьте, что фоновые задания исполняются на сервере!
Использование – признак использования регламентного задания.
Предопределенное – указывает, является ли регламентное задание предопределенным.
Если хотите что бы регламентное задание заработало сразу после помещения в БД, укажите признак Предопределенное. В противном случае вам необходимо будет использовать обработку “Консоль заданий” или вызывать запуск задания программно.
Количество повторов при аварийном завершении задания – сколько раз выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Интервал повтора при аварийном завершении задания – с какой периодичностью будет выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Настройка расписания
Расписание выполнения задания:
Каждый час, только один день | ПериодПовтораДней = 0, ПериодПовтораВТечениеДня = 3600 |
Каждый день один раз в день | ПериодПовтораДней = 1, ПериодПовтораВТечениеДня = 0 |
Один день, один раз | ПериодПовтораДней = 0 |
Через день один раз в день | ПериодПовтораДней = 2 |
Каждый час с 01.00 до 07.00 каждый день | ПериодПовтораДней = 1ПериодПовтораВТечениеДня = 3600ВремяНачала = 01.00 Особенности выполнения фоновых заданий файловом и клиент-серверном вариантахМеханизмы выполнения фоновых заданий в файловом и клиент-серверном вариантах различаются. В файловом варианте необходимо создать выделенный клиентский процесс, который будет заниматься выполнением фоновых заданий. Для этого в клиентском процессе должна периодически вызываться функция глобального контекста ВыполнитьОбработкуЗаданий. Только один клиентский процесс на информационную базу должен выполнять обработку фоновых заданий (и, соответственно, вызывать данную функцию). Если клиентского процесса для обработки фоновых заданий не создано, то при программном доступе к механизму заданий будет выдана ошибка «Менеджер заданий не активен». Не рекомендуется клиентский процесс, выполняющий обработку фоновых заданий, использовать для других функций. После того, как клиентский процесс, выполняющий обработку фоновых заданий, запущен, остальные клиентские процессы получают возможность программного доступа к механизму фоновых заданий, т.е. могут запускать и управлять фоновыми заданиями. В клиент-серверном варианте для выполнения фоновых заданий используется планировщик заданий, который физически находится в менеджере кластера. Планировщик для всех поставленных в очередь на выполнение фоновых заданий получает наименее загруженный рабочий процесс и использует его для выполнения соответствующего фонового задания. Рабочий процесс выполняет задание и уведомляет планировщик о результатах выполнения. В клиент-серверном варианте имеется возможность блокирования выполнения регламентных заданий. Блокирование выполнения регламентных заданий происходит в следующих случаях: Обработки запуска и просмотра регламентных заданий вы можете скачать здесь: Универсальное регламентное задание для запуска внешних и встроенных обработок. Как настроить легко и быстро (8.х)Механизм, о котором пойдет речь ниже, позволяет гибко и оперативно создавать и настраивать регламентные задания без запуска конфигуратора. Это действенный инструмент, которого порой просто не хватает под рукой. Предлагаю рассмотреть один из способов реализации такого иснструмента собственными руками. Для тех же, у кого нет времени на болтовню автора статьи и/или же механизм нужен уже сейчас, прошу к скачиванию И пока коллеги со второй категории скачивают обработку, мы ее напишем 1. Создать регламентное задание с названием «ВыполнениеОбработки». 2. В качестве исполнительного метода регламентного задания указать метод ВыполнениеОбработки() из общего модуля МодульРегламентныхЗаданий (или любого другого общего модуля с такими же настройками свойств). Описать логику работы метода. 3. Написать обработку, которая будет программно создавать экземпляры регламентного задания с заданными параметрами. Важно! Приступим. Первым делом, создадим регламентное задание. Укажем исполнительный метод. Опишем его логику работы исходя из следующих условий Теперь опишем обработку, которая будет создавать экземпляры выше описанного регламентного задания. Как все работает изнутри, лучше всего расскажет программный код исполнительной процедуры (обработчик нажатия на кнопку «Запустить регламентное задание»). После всего проделанного, любая обработка может быть запущена регламентным заданием. Для этого ей достаточно в модуле объекта содержать экспортную процедуру ВыполнитьЗадание(). Оставляйте свои вопросы и предложения по улучшению функциональности механизма в комментариях. Общие требования к регламентным заданиям
1. В общем случае, регламентные задания следует использовать, когда необходимо выполнить определенные периодические или однократные действия в соответствии с расписанием. 2. При этом если регламентные задания не требуется добавлять или удалять в зависимости от действий пользователя или логики конфигурации, следует использовать предопределенные регламентные задания. Такие задания автоматически создаются в информационной базе с тем расписанием и состоянием, которое было задано разработчиком в Конфигураторе. Примеры предопределенных регламентных заданий: 3.1. Если выполнение регламентного задания зависит от включенных одной или нескольких функциональных опций (ФО), то необходимо программно управлять признаком предопределенного регламентного задания Использование в зависимости от установленных ФО. Иначе регламентное задание будет приводить к запуску сеанса, занимая вычислительные ресурсы сервера 1С:Предприятие. Настройка = Настройки.Добавить(); После чего в состав определяемого типа МестоХраненияФункциональныхОпций необходимо добавить константы, соответствующие функциональным опциям, используемым для управления регламентными заданиями. Для конфигураций без БСП следует управлять использованием регламентного задания, разместив, например, в модуле менеджера значения константы ИспользоватьПочтовыйКлиент следующий код: Если Задание.Использование <> Значение Тогда 3.2. Дополнительно следует обезопасить выполнение регламентного задания, включенного через консоль или другим способом, минуя включение ФО, вставив в начало процедуры обработки регламентного задания следующий код: ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(); Если в конфигурации используется подсистема «Регламентные задания» БСП и настроены зависимости регламентных заданий от ФО (как указано в п.3.1), то вместо этого достаточно вставить вызов, как показано в п.6. 4.1. Если выполнение регламентного задания зависит от данных информационной базы, то флажок Предопределенное у регламентного задания следует отключать. // Снимаем ограничение, что только администратор может создавать регламентные задания. ПараметрыЗадания = Новый Массив; Задание.ИмяПользователя = АвторРассылки; Настройка = Настройки.Добавить(); Также выполнить п.6. 5. Во избежание различных конфликтных ситуаций рекомендуется в копиях информационной базы автоматически блокировать все регламентные задания, обращающиеся к внешним ресурсам (рассылка почты, синхронизация данных с другими программами и т.п.). Например, если копия информационной базы была развернута для тестирования или передана в службу технической поддержки. Настройка = Настройки.Добавить(); В этом случае при перемещении информационной базы администратору будет задан вопрос об отключении таких заданий. 6. Если регламентное задание попадает под требования, описанные в пунктах 3.1, 4.2, 5 и используется подсистема «Регламентные задания» БСП, то вначале процедур обработчиков таких заданий необходимо помещать вызов: Первый параметр при этом заполнять обязательно. БСП, использование типового механизма 1с для запуска регламентных заданий с заранее подготовленными настройками.Кто не сталкивался с необходимостью запускать свои регламентные задания. Наконец-то в типовом решении появилась возможность запускать выполнение внешней обработки через регламентное задание. Еще имеется несколько вариантов применения запуска регламентных заданий с использованием плана обмена и По расписанию выполнять внешнюю обработку. Обработка должна иметь возможность задания определенных параметров. Сама обработка во вложении (в моей конфе реально работающая, вам предлагаю посмотреть в качестве примера.) Заготовка взята из демо базы БСП. Создаем свою форму. Добавляем необходимые реквизиты и табличные части.. В общем-то обычная внешняя обработка. Добавляем кнопку «сохранить настройки». В модуле обработки в описании задаем две команды. Одна потребуется для открытия формы обработки, другая выполняется на сервере в регламентном задании. Добавляем обработку в дополнительные отчеты и обработки. Для команды «Обновить часы» устанавливаем использование регламентного задания, задаем само регламентное задание. Указываем, что обработка относится к административному блоку. Настраиваем выбранный раздел.
Скачать файлыСпециальные предложенияХороший механизм. Процедура ВыполнитьКоманду(ИдентификаторКоманды,ПараметрыКоманды,парам=Неопределено) Экспорт А вызывается она из Модуля доп.отчеты и обработки так: Процедура ВыполнитьКоманду(ИдентификаторКоманды,ПараметрыКоманды = Неопределено, парам = Неопределено) Экспорт #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда Команда = ПараметрыРегистрации.Команды.Добавить(); Команда = ПараметрыРегистрации.Команды.Добавить(); Команда = ПараметрыРегистрации.Команды.Добавить(); Описание = НСтр(«ru = ‘Для управления индексом полнотекстового поиска требуется установка привилегированного режима.'»); Возврат ПараметрыРегистрации; // Общие действия перед началом выполнения команд. // Диспетчеризация обработчиков команд. // Имитация длительной операции для демонстрации запуска фонового задания в клиент-серверном режиме. Регламентные и фоновые задания с групповым редактированием расписанияПонадобилось это, в частности, при редактировании расписаний по формированию сегментов номенклатуры. Насоздавали сотни сегментов, а заходить в каждый и устанавливать для каждого расписание лень. Для того, чтобы отредактировать расписание для нескольких заданий, достаточно выбрать несколько элементов в списке, отредактировать расписание, и оно будет установлено всем выделенным элементам. Скачать файлыСпециальные предложенияПерестала работать в последних релизах БП 3.0 и ЗУП 3.1 <ВнешняяОбработка.РегламентныеИФоновыеЗадания.Форма.РегламентныеИФоновыеЗадания.Форма(926)>: Метод объекта не обнаружен (ПолучитьСвойстваПоследнегоФоновогоЗаданияВыполненияРегламент ногоЗадания) Спасибо за сообщение. Проверю что не так. Обновление 05.09.16 11:52 Код открыт Не указано См. такжеКонвертация любых адресов, написанных в свободной форме, к ФИАС ПромоДопустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно. С опечатками, без индексов, без разделителей, в совершенно любом формате. Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС? Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес. Для всех, кто мечтательно сказал «ДА!», выкладываю данную обработку. 30.06.2020 7143 66 XilDen 15 Управление платформенными обработками (расширение для типовых)Расширение использует недокументированную возможность для управления платформенными обработками. Например, чтобы подменить «Активные пользователи» или доработать «Конструктор запросов». 07.10.2021 2950 5 SeiOkami 23 Работа с картами в 1С на примере бесплатной библиотеки LeafletРазработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте. 31.03.2021 9894 28 Parsec1C 11 Универсальная обработка переноса данных из основной конфигурации в расширениеОбработка предназначена для разработчиков, для тех случаев, когда ранее дописанный функционал, перенесен в расширение и появляется необходимость перенести данные из объектов основной конфигурации в объекты расширения. Перенос осуществляется настройкой соответствия объектов основной конфигурации объектам расширения. 05.10.2020 9956 64 biz-intel 71 Удаление и/или копирование сохраненных в 1С настроек (например настроек печати табличных форм) ПромоИногда нужно удалить сохраненную в 1С «покореженную» настройку или скопировать «удачную» другому пользователю. 01.09.2012 66368 1378 AnryMc 46 Улучшенная обработка универсального обмена данными в формате XML (УФ)Улучшенная обработка «Универсальный обмен данными» с полноценными возможностями СКД для выборки данных (не только для отборов). 23.06.2020 12420 131 Lem0n 1 Панель #Расширение объекта: Редактор, Права, Поиск, Сторно, ОбменПанель команд текущего объекта (документа, справочника и т.д.) со следующим возможностями: Редактор реквизитов, таблиц и движений текущего объекта, Анализ прав доступа к текущему объекту, Поиск ссылок на объект с отборами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Реализована всплывающей панелью в форме объекта. Подключается как расширение конфигурации (*.cfe) либо отдельными обработками. 01.05.2020 14954 111 sapervodichka 1 Работа с файлами (обычная и управляемая форма)Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать! 10.06.2019 40813 219 Xershi 77 Групповая корректировка записей регистров (Управляемое приложение) v 2.1 ПромоОбработка предназначена для групповой корректировки записей регистров Накопления, Сведений и Бухгалтерии. Разработана специально для Управляемого приложения. 06.09.2013 68401 315 kser87 59 Электронная таблица средствами 1С (Версия 2.0)Функционал электронной таблицы для программ на платформе 1С реализован на основе табличных документов. Функционал реализован в виде обработки. Большую часть формы обработки занимают листы (закладки) с табличными документами, которые выполняет роль электронной таблицы. Листы могут быть добавлены, удалены или переименованы. Ограничение по количеству листов определяется возможностью платформы. В формулах электронной таблицы можно использовать любые языковые конструкции, процедуры и функции 1С, ссылки на другие ячейки электронной таблицы расположенные в том числе и на других листах. Допустимо обращаться к ячейкам электронной таблицы по имени именованной области. В случае использования в формулах электронной таблицы данных из самой таблицы пересчет зависимых ячеек с формулами производится автоматически. Электронную таблицу можно сохранить в файл. 23.04.2019 23455 77 user706545_kseg1971 40 Удобная консоль регламентных и фоновых заданийАналог обработки БСП «РегламентныеИФоновыеЗадания». Не требует наличия библиотек, может использоваться в качестве внешней обработки. В отличие от обработки БСП предоставляет больше информации о свойствах регламентных и фоновых заданий, а также об ошибках и сообщениях для пользователей, возникших во время их выполнения. Позволяет управлять регламентными (создание, удаление, настройка расписания, ручной запуск) и фоновыми (прерывание) заданиями. 06.02.2019 21772 211 Alxby 20 Редактор объектов информационной базы 8.3Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.57 от 09.10.2021 23.01.2019 42668 475 ROL32 50 Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) ПромоПростая обработка для просмотра и установки значений предопределенных элементов. Позволяет заменить значение предопределенного элемента с одного элемента справочника на другой, удалить предопределенный элемент (снять пометку предопределенности), установить пометку переопределенного элемента. Проверяет предопределенные данные на наличие задвоений и отсутствующих. Работает со справочниками, планами счетов, планами видов характеристик, планами видов расчетов. 06.10.2014 169452 2757 ekaruk 170 |