Содержание
- Файловая база «1С: Предприятие 8.3.3.» : процедуры регламентных заданий не выполняются, как поступить
- Полезные нововведения в платформе «1С: Предприятие 8.3 »
- Подводные камни автоматизации
- Разработчик обязан предусмотреть дежурный открытый сеанс
- Когда и спользуем метод ВыполнитьОбработкуЗаданий()
- Правильная установка интервала
- Правильность написания процедуры
- Настраиваем расписание и штудируем «Консоль заданий»
- Режим запуска
- Блокировка регламентных заданий в базе: как проверить
- Журнал регистрации — главный помощник в поиске ошибок
- Резюмируем
Файловая база «1С: Предприятие 8.3.3.» : процедуры регламентных заданий не выполняются, как поступить
Регламентные задания — это отличный способ избавить специалиста по внедрению 1С от ежедневной рутины. Они нужны для выполнения по расписанию некоторых административных действий.
В файловом варианте платформы « 1С: Предприятие 8.3.3. » реализован автоматический старт заданий в фоновом режиме. Но только знание и учет некоторых нюансов позволит добиться стабильности в автоматизации фоновых заданий в файловой базе, не подключаясь к серверу.
Полезные нововведения в платформе «1С: Предприятие 8.3 »
Регламентные задания практически всегда присутствуют в составе серьёзной конфигурации. В период наименьшей активности пользователей некий виртуальный робот – администратор внутри информ ационной базы продолжает плодотворно трудиться. Жизнь и работа кипит, как в детском мультике про Фиксиков.
Без участия человека ночью происходят обмены с сайтами, письма рассылаются, временные данные убираются. Всё это благодаря тому, что версия « 1С: Предприятие 8.3.3. » усовершенствована до автомати ческого запуска фоновых заданий в файловой базе.
В предыдущих версиях платформы инициировать выполнение регламентных задач в файловой базе можно было с помощью отдельного выделенного клиентского сеанса. Для его начала надо установить в обработке Консоль регламентных заданий специальный флажок Автоматически открывать отдельный сеанс обработки регламентных заданий .
Или воспользоваться другим способ ом — создать служебную обработку, прописав код для запу ска процедуры ПланировщикЗаданий – ВыполнитьОбработкуЗаданий() . Потом запускается сеанс толстого клиента, в котором действует служебная обработка. Обработчик ожидания ПланировщикЗаданий посекундно начнет вызывать обработку текущих регламентных заданий, подобно серверу «1С: Предприятие» .
Нововведение в версии платформы 8.3.3. заключается в са мостоятельном запуске системой выполнения регламентных заданий внутри запущенного клиентского сеанса. Казалось бы, когда действует автоматика, разработчик может расслабиться и получать удовольствие. Но не всегда желаемое совпадает с реальностью.
Подводные камни автоматизации
Подвохов на пути стабильности кроется немало. Разберемся с ними по порядку.
Разработчик обязан предусмотреть дежурный открытый сеанс
Первой причиной не включения регламентных заданий может быть отсутствие активного сеанса. При выходе всех пользователей из системы платформе негде запускать фоновый поток для выполнения очередных заданий. Жизненно необходим хотя бы один дежурный открытый сеанс, в котором система прокручивает задания в фоновом режиме.
Когда и спользуем метод ВыполнитьОбработкуЗаданий()
В клиентском сеансе на платформе « 1С: Предприятие 8.3.3. » приходится периодически активировать функцию глобального контекста ВыполнитьОбработкуЗаданий() , чтобы запускать механизм обработки регламентных, фоновых заданий. Автоматику иногда требуется принудительно заставлять включать проверку заданий, для которых наступило время по расписанию проверки.
Для активации нужной функции понадобится прописать код . Надо подключить обработчик ожидания в модуле обычного или управляемого приложения (процедура ПриНачалеРаботыСистемы() ). Код выглядит так:
Процедура ПриНачалеРаботыСистемы() #Если Клиент Тогда ПодключитьОбработчикОжидания("ОбработкаРегламентныхЗаданий", 60); #КонецЕсли КонецПроцедуры Процедура ОбработкаРегламентныхЗаданий() Экспорт ВыполнитьОбработкуЗаданий(); КонецПроцедуры
Правильная установка интервала
Напомним, что в предыдущих версиях ПланировщикЗаданий вызывал обработку текущих регламентных заданий каждую секунду. В « 1С: Предприятие 8.3.3. » опрос очереди в файловом режиме регламентных заданий ограничивается жёсткими рамками: один раз в 60 секунд. Ограничитель установлен в ядре платформы, чтобы избежать превышения нагрузки на основной поток клиентского приложения. Разработчик должен помнить об этом и не указывать в расписании собственный интервал, отличный от стандарта. На ваши произвольные десять, двадцать и т. д. секунд таймер платформы не реагирует.
Кого не устраивает стандартный запуск в автоматическом режиме, просто отказывается от файлового варианта базы. Или пользуется проверенным способом на клиенте через ПодключитьОбработчикОжидания() .
Правильность написания процедуры
Чтобы механизм выполнения регламентных задач по расписанию заработал, надо учитывать основные аспекты:
- Расположение процедуры в серверном Общем модуле . Взведены флажки « Сервер » и « Вызов сервера ».
- Процедура должна быть экспортной (в коде прописано
Экспорт).
Пример кода:
Процедура РегламентноеЗадание1() Экспорт НоваяЗапись = Справочники.ЗагрузкаСотрудников.СоздатьЭлемент(); НоваяЗапись.Номер = 3334; НоваяЗапись.Записать(); КонецПроцедуры
При невыполнении этих нехитрых условий процедура недоступна для фоновых заданий.
Настраиваем расписание и штудируем «Консоль заданий»
Предположим, что в окне настройки расписания у вас заданы важные параметры:
- периодичность выполнения регламентных и фоновых заданий в днях и в течение одного дня;
- начало и окончание дневного расписания и т. д.
Однако ничего из этих настроек не выполняется. Не спешите грешить на неправильный программный код. Настройте изменения в конфигураторе и обновите базу. Если ничего не улучшилось, воспользуйтесь внешней обработкой Консоль заданий . Она поставляется на диске ИТС. Также имеется в демонстрационных программах.
С помощью этой специальной обработки мониторят работу регламентных заданий. В режиме Предприятие проверяется список задач и активация искомого вами проблемного задания. Должна стоять галочка рядом с функцией « Использование ».
Можно перенастроить расписание. При наличии записи « Завершено с ошибкой » в колонке « Состояние » открывайте Журнал регистрации и анализируйте.
Режим запуска
При блокировке автоматического режима запуска фоновых задач можно пойти другим путём.
Для управления очередности , а также принудительного запуска регламентных заданий на платформе 1С используется параметр /AllowExecuteScheduledJobs <– Off/— Force >. Взведённый флажок рядом с данной командой (находится в строке запуска или в настройках conf . cfg ) означает:
- После старта первого запущенного клиента , у которого не прописан ключ
/AllowExecuteScheduledJobs <– Off/, выполняются регламентные задания именно у него. После закрытия клиентом сеанса регламентные задания выполняются в порядке очереди на следующем запущенном клиенте. - Правом первоочередного выполнения регламентных задач обладает сеанс
/AllowExecuteScheduledJobs <– Force >.
Блокировка регламентных заданий в базе: как проверить
В 1С: Предприятие 8.3. предусмотрена активация флага блокировки в автоматическом режиме. Например, в случае, когда специалисту необходимо протестировать обновление копии базы. Отключение выполнения всех регламентных задач произойдет уже после нажатия кнопки « Это копия информационной базы ». То же самое система проделает, если копируются файлы базы, при загрузке данных из . dt .
Программный способ проверки состояния флажка блокировки — написание кода по следующему образу и подобию :
БлокировкаПараметры = ПолучитьБлокировкуРегламентныхЗаданий(); Если ПараметрыБлокировки.Установлена Тогда ПараметрыБлокировки.Установлена = Ложь; УстановитьБлокировкуРегламентныхЗаданий(ПараметрыБлокировки); Сообщить("Блокировка успешно снята!"); КонецЕсли;
Журнал регистрации — главный помощник в поиске ошибок
Всё о событиях, происходивших в конкретной базе, нам поведает Журнал регистрации . Здесь можно найти ответы на вопросы типа «почему не происходит заполнение справочника» по стартовавшему регламентному заданию.
Открываем Журнал регистрации в пользовательском режиме « 1С: Предприятие 8.3 ». Для этого в меню выбираем раздел Администрирование . Затем через Настройки программы переходим в пункт Обслуживание . По ссылке открываем Журнал регистрации .
В окне перед нами предстаёт множество записей. Чтобы быстро сориентироваться, воспользуемся кнопкой « Установить отбор » . Интересующий нас критерий — « Событие ».
В поле « Событие » для нас важны события, которые начинаются со словосочетания Фоновое задание . При просмотре фонового задания ориентируемся на то, что указано в колонке « Результат ». Заметив слово « Ошибка », внимательно читаем, что именно привело к зависанию, невыполнению фонового задания. Разные в арианты могут иметь место :
- Метод не обнаружен;
- Объект не найден и т. д.
Учитывайте также обстоятельство, когда пользователь, запустивший текущий сеанс 1С , не обладает правами на запись в определённый справочник. Тогда регламентное задание в файловой базе от его имени выполняться просто не будет. Система сообщит об этом, обозначив ошибку « Нарушение прав доступа ». В этом и есть ответ на вопрос, почему справочник не заполнен.
Рекомендуется также выполнить предварительно настройку Журнала регистрации , чтобы не перегружать его лишними записями.
Резюмируем
Серьёзное отношение к регламентным заданиям обеспечивает стабильность автоматизации процессов в файловом варианте системы 1С . Ответственный разработчик, налаживая « 1С: Предприятие 8.3 », особенно с версии 8.3.3. , всегда держит под контролем три критических момента:
- Настройка общего модуля с установкой необходимых флажков « Сервер », « Вызов сервера ». Процедура, которая должна выполняться по расписанию, находится в Общем модуле сервера. У нее есть признак
Экспорт. - Обязательное включение активного сеанс а на платформе 1С . Необходимо контролировать , чтобы его не блокировали модальные окна.
- Ограниченный интервал опроса очереди регламентных заданий составляет один раз в минуту. Ни секундой больше или меньше.
Для хранения и последующей диагностики возникших проблем создан Журнал регистрации в режиме «Предприятие ». Также на диске ИТС или в демонстрационных конфигурациях есть специальная обработка « Консоль заданий » в помощь разработчику.
