Не удалось обновить вспомогательные данные расширений 1С

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

Порядок установки

Необходима помощь в установке новых вспомогательных данных в платформу 1С? Нужна профессиональная поддержка по вопросам особенности и методах инсталляции?

Квалифицированную помощь онлайн оказывают удаленные программисты компании «Одна система», получите помощь сейчас, звоните по тел.: +7(495) 240-8668.

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

  • программа запускается в режиме конфигуратора, открывается меню администрирования;
  • в меню настроек выбирается пункт вспомогательных данных;
  • обновления скачиваются после нажатия на кнопку далее, скачанный архив распаковывается, запускается установочный файл;
  • приложение автоматически устанавливается и установщик закрывается;
  • программа перезапускается.

Обновление вспомогательных данных 1С при необходимости может провести удаленный программист, если Вы испытываете трудности.

Особенности установки

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

  • расскажет об особенностях установки;
  • вышлет необходимые файлы и поможет их установить;
  • ответит на вопросы об использовании программы.

Обновить вспомогательные данные в программе 1С можно только при поддержке специалиста, если Ваша конфигурация снята с обслуживания.

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

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

Эффективная помощь по вопросам использования 1С, профессиональные консультации и обучение, узнайте о нашей поддержке больше, звоните по тел.: +7(495) 240-8668.

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

В этой статье мы собираемся решить одну из этих ошибок, точнее C0000034, применяющую операцию обновления 207 из 109520 (00000 …). Поэтому, если вы столкнулись с этой проблемой, вам следует прочитать эту статью.

Неустранимая ошибка C0000034 в Windows 10

Вот что нужно сделать, чтобы исправить фатальную ошибку C0000034, применив операцию обновления 207 из 109520 (00000…): «].

  1. Launch Startup Repair
  2. Чистая загрузка вашего компьютера
  3. Запустите средство устранения неполадок Центра обновления Windows
  4. Обновить компоненты Центра обновления Windows
  5. Отключите антивирус и брандмауэр
  6. Запустите команду DISM

1. Запустите Восстановление при запуске

  1. Перезагрузите компьютер, а затем снова перезагрузите его во время загрузки
  2. Ваш компьютер сообщит об ошибке, теперь выберите опцию «Launch Startup Repair» (Если у вас не установлен этот модуль в вашей системе, вам понадобится установочный диск вашей Windows. Просто загрузитесь с CD и продолжайте с дальнейшие шаги)
  3. Когда начнется восстановление при загрузке, нажмите «Отмена».
  4. После того, как вы нажмете «Отмена», появится диалоговое окно. Нажмите Не отправлять , затем нажмите ссылку Просмотреть дополнительные параметры восстановления и поддержки
  5. В новом окне нажмите Командная строка внизу
  6. В командной строке введите следующую строку и нажмите Enter:
    • % Windir% system32notepad.exe
  7. Эта команда откроет Блокнот. В блокноте перейдите в Файл> Открыть
  8. Измените тип файлов в представлениях блокнота с .txt на Все файлы
  9. В Блокноте перейдите на страницу C: Windowswinsxs (или на тот диск, на котором установлена ​​ваша система)
  10. В папке winsxs найдите pending.xml и скопируйте его
  11. Просто скопируйте и вставьте его в ту же папку, на случай, если что-то случится с оригиналом, чтобы вы не потеряли его.
  12. Теперь откройте оригинальный pending.xml (загрузка займет некоторое время, потому что это огромный файл)
  13. Нажмите Ctrl + F на клавиатуре и найдите следующее:
    • 0000000000000000.cdf мс
  14. Удалить следующий текст:
  15. Сохраните файл, закройте командную строку и перезагрузите компьютер

Если это решение не сработало или некоторые из перечисленных выше шагов недоступны на вашем компьютере, перейдите к следующему решению.

2. Чистая загрузка вашего компьютера

Если есть какое-либо стороннее приложение или программа, которая мешает вашим обновлениям, это решение должно решить проблему.

  1. Перейдите в Поиск> введите Конфигурация системы > и нажмите Enter.
  2. На вкладке Службы > установите флажок Скрыть все службы Microsoft > и нажмите Отключить все .
  3. На вкладке Запуск > нажмите Открыть диспетчер задач .
  4. На вкладке Запуск в Диспетчере задач> выберите все элементы> нажмите Отключить .
  5. Закройте Диспетчер задач > и перезагрузите компьютер.
  6. Попробуйте установить проблемные обновления еще раз.

3. Запустите средство устранения неполадок Центра обновления Windows.

Windows 10 значительно упрощает пользователю быстрое устранение многих технических проблем, связанных с ОС, включая проблемы с обновлением и ошибки. Попробуйте запустить встроенное средство устранения неполадок Центра обновления Windows, чтобы исправить ошибку C0000034.

Перейдите в раздел Настройки > Обновление и безопасность > Устранение неполадок > и выберите Средство устранения неполадок Центра обновления Windows >.

  • ТАКЖЕ ЧИТАЙТЕ: как исправить проблемы с производительностью после установки обновлений Patch Tuesday

4. Обновите компоненты Центра обновления Windows

Если ошибка не устранена, попробуйте обновить компоненты Центра обновления Windows. Прежде чем следовать инструкциям, перечисленным ниже, обязательно создайте точку восстановления. Если что-то пойдет не так, вы всегда можете восстановить работоспособную версию ОС Windows 10.

  1. Перейдите в «Пуск»> введите cmd >, щелкните правой кнопкой мыши командную строку и запустите его с правами администратора.
  2. Введите следующие команды и нажмите Enter после каждой (подождите, пока предыдущая команда не выполнила свою задачу, прежде чем вводить следующую):
    • чистые стоповые биты
    • net stop wuauserv
    • net stop appidsvc
    • net stop cryptsvc

5. Отключите антивирус и брандмауэр.

Ошибки обновления, вызванные вашим антивирусом или брандмауэром, встречаются чаще, чем вы думаете. В результате самое быстрое решение – просто отключить антивирус и брандмауэр, перезагрузить компьютер, а затем попытаться установить обновления, которые изначально вызвали ошибку C0000034.

Если для защиты вы используете Защитник Windows и брандмауэр Windows, отключите их оба.

  • Перейдите в Пуск> введите «брандмауэр»> дважды щелкните брандмауэр Windows
  • Включите или выключите брандмауэр Windows> отметьте две опции, которые позволяют отключить брандмауэр> нажмите OK.

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

  • ТАКЖЕ ЧИТАЙТЕ: исправлено: антивирус блокирует интернет или сеть Wi-Fi

6. Запустите команду DISM

Поскольку ошибка C0000034 является фатальной ошибкой, вам также следует выполнить поиск системных ошибок с помощью команды DISM. Таким образом, вы можете восстановить целостность затронутых системных файлов.

  1. Введите cmd в строке поиска Windows, щелкните правой кнопкой мыши Командную строку и запустите ее от имени администратора (как вы это делали на шаге 4).
  2. Введите следующие команды и нажмите Enter:
    • DISM/онлайн/Cleanup-Image/CheckHealth
    • DISM/онлайн/Cleanup-Image/ScanHealth
    • DISM/Online/Cleanup-Image/RestoreHealth
  3. Подождите, пока процедура завершится (это может занять до 20 минут), а затем перезагрузите компьютер.

Печать (Ctrl+P)

1С: Предприятие 8.3.13 . Документация
Руководство разработчика
Глава 18. Механизм заданий

Механизм заданий предназначен для выполнения какой-либо прикладной функциональности по расписанию или асинхронно.

Механизм заданий решает следующие задачи:

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

Механизм заданий состоит из следующих компонентов:

  • метаданных регламентных заданий,
  • регламентных заданий,
  • фоновых заданий,
  • планировщика заданий.

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

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

Фоновые задания предназначены для выполнения прикладных задач асинхронно, реализуются средствами встроенного языка.

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

18.2. Фоновые задания

18.2.1. Общая информация

Фоновые задания удобно использовать для выполнения сложных вычислений, когда результат вычисления может быть получен через продолжительное время. Механизм заданий имеет средства для выполнения таких вычислений асинхронно.

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

Фоновое задание может иметь ключ ‑ любое прикладное значение. Ключ вводит ограничение на запуск фоновых заданий ‑ в единицу времени может выполняться только одно фоновое задание с определенным значением ключа и заданным именем метода фонового задания (имя метода состоит из имени модуля и имени процедуры или функции). Ключ позволяет группировать фоновые задания, имеющие одинаковые методы, по определенному прикладному признаку с тем, чтобы в рамках одной группы выполнялось не более одного фонового задания.

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

Фоновое задание является чисто сеансовым объектом, но не принадлежит какому-либо пользовательскому сеансу. Для каждого задания создается специальный системный сеанс, выполняющийся от имени того пользователя, который выполнил вызов. Фоновые задания не имеют сохраняемого состояния.

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

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

Запуск фонового задания выполняется следующим образом:

  • Выполняются служебные действия:
  • Фиксируется факт запуска фонового задания в журнале регистрации;
  • Устанавливаются параметры соединения с внешними источниками данных ;
  • Устанавливается режим интерфейса и т. д.
  • В модуле сеанса выполняется обработчик события УстановкаПараметровСеанса ;
  • Выполняется собственно фоновое задание.

Завершившиеся успешно или аварийно фоновые задания хранятся в течение суток, а потом удаляются. История выполнения фоновых и регламентных заданий имеет следующие особенности:

● История хранится для каждой информационной базы;

● Хранится история выполнения:

● Фоновых заданий ‑ не более 1 000 заданий.

● Регламентных заданий ‑ не более 1 000 заданий. При этом система пытается хранить не менее 3 последних запусков для каждого различного регламентного задания. При превышении общего ограничения в 1 000 запусков, система будет пытаться обеспечить хранение 2 последних запусков для каждого регламентного задания, а потом 1.

● Системных фоновых заданий ‑ не более 1 000 запусков. В данном разделе речь идет о фоновых заданиях, которые инициируются системой для выполнения каких-либо действий (выполнение отчетов, поиск и т. д.).

18.2.2. Работа с фоновыми заданиями из встроенного языка

ПРИМЕЧАНИЕ. Примеры, приведенные в данном разделе, не являются законченными. Они предназначены только для демонстрации способов работы с фоновыми заданиями.

Управление фоновыми заданиями выполняется с помощью менеджера фоновых заданий (ФоновыеЗадания). С помощью менеджера фоновых заданий предоставляется возможность:

● Выполнить фоновое задание с передачей параметров (метод ФоновыеЗадания.Выполнить()). После запуска фонового задания возвращается объект, описывающий запущенное фоновое задание (ФоновоеЗадание).

● Получить список фоновых заданий, соответствующих некоторому отбору (метод ФоновыеЗадания.ПолучитьФоновыеЗадания()) или найти фоновое задание по уникальному идентификатору фонового задания (ФоновыеЗадания.НайтиПоУникальномуИдентификатору()).

● Ожидать завершение одного (ФоновоеЗадание.ОжидатьЗавершенияВыполнения()) или нескольких (метод ФоновыеЗадания.ОжидатьЗавершенияВыполнения()) ранее запущенных фоновых заданий с указанием времени ожидания.

Более подробно рассмотрим все этапы.

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

В качестве фонового задания будет использоваться экспортный метод общего модуля с именем ВыгрузитьДанные(), расположенный в серверном общем модуле ОбщийМодульФоновые:

Функция ВыгрузитьДанные(ОписаниеДанных, ПутьКФайлу) Экспорт // здесь выполняется собственно выгрузка данных КонецФункции

Для запуска фонового задания необходимо выполнить следующее:

ПараметрыВызова = Новый Массив; ПараметрыВызова.Добавить(ВыгружаемыеДанные); ПараметрыВызова.Добавить(«c:\temp\data.dat»); ЗаданиеВыгрузки = ФоновыеЗадания.Выполнить(«ОбщийМодульФоновые.ВыгрузитьДанные», ПараметрыВызова, «ВыгрузкаДанных», «Выгрузка данных в файл на диске»);

В качестве параметра ОписаниеДанных будет передано значение переменной ВыгружаемыеДанные, в качестве значения параметра ПутьКФайлу будет передана строка c:\temp\data.dat. Для запускаемого фонового задания будет установлен ключ уникальности ВыгрузкаДанных и некоторое описание.

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

С помощью описания фонового задания можно получить идентификатор фонового задания, который используется для поиска фонового задания (свойство УникальныйИдентификаторобъекта ФоновоеЗадание). При проверке состояния фонового задания (с помощью свойства фонового задания Состояние) следует помнить, что это состояние фиксируется на момент создания объекта ФоновоеЗадание и в дальнейшем не обновляется. Для проверки состояния необходимо перед каждой проверкой получать описание для проверяемого фонового задания:

ЗаданиеВыгрузки = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор);

При необходимости, работу конкретного экземпляра фонового задания можно прервать с помощью метода ФоновоеЗадание.Отменить(). При этом следует помнить, что после прерывания фонового задания необходимо реализовать «сборку мусора». Например, удалить временные файлы, которые могло порождать прерываемое фоновое задание.

После запуска фонового задания может потребоваться периодически проверять статус выполнения задания. Для этого предназначен метод ФоновоеЗадание.ОжидатьЗавершенияВыполнения(). В качестве параметра метода передается время, в течение которого ожидается изменение состояния фонового задания. В любом случае, не позднее, чем указанный таймаут, метод завершает свою работу и формирует объект ФоновоеЗадание, который описывает текущее состояние фонового задания (включая свойство Состояние).

Таким образом, ожидание завершения работы фонового задания можно выполнить следующим образом:

Пока Истина Цикл ЗаданиеВыгрузки = ЗаданиеВыгрузки.ОжидатьЗавершенияВыполнения(10); Если ЗаданиеВыгрузки.Состояние = СостояниеФоновогоЗадания.Активно Тогда // продолжаем ждать завершения Продолжить; Иначе // фоновое задание завершено Прервать; КонецЕсли; КонецЦикла;

В примере таймаут установлен в 10 секунд (параметр метода ОжидатьЗавершенияВыполнения()). Если за 10 секунд фоновое задание не завершило свою работу ‑ цикл ожидания завершения будет продолжен. Если фоновое задание перестало выполняться (перестало быть активным), то конкретная причина завершения будет понятна по анализу свойства ФоновоеЗадание.Состояние.

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

Фоновое задание в процессе своей работы может формировать сообщения пользователю (с помощью объекта СообщениеПользователю). Эти сообщения могут быть получены с помощью метода ФоновоеЗадание.ПолучитьСообщенияПользователю(). Сообщения можно получать как во время работы фонового задания, так и после завершения работы задания.

18.2.3. Фоновое задание и расширения

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

18.3. Регламентные задания

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

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

Создание и управление регламентными заданиями выполняется с помощью встроенного языка из любого соединения и разрешены только пользователям, имеющим административные права.

ПРИМЕЧАНИЕ. При работе в файловом варианте создавать и редактировать регламентные задания возможно без запуска планировщика заданий.

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

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

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

Расписание регламентного задания определяет, в какие моменты времени регламентное задание должно быть запущено. Расписание позволяет:

● задавать дату и время начала и окончания выполнения задания;

● период выполнения;

● дни недели и месяцы, по которым нужно выполнять регламентное задание и др. (см. описание встроенного языка).

Примеры расписаний регламентных заданий:

Расписание Значения параметров
Каждый час, только один день ПериодПовтораДней = 0ПериодПовтораВТечениеДня = 3600
Каждый день один раз в день ПериодПовтораДней = 1ПериодПовтораВТечениеДня = 0
Один день, один раз ПериодПовтораДней = 0
Через день один раз в день ПериодПовтораДней = 2
Каждый час с 01.00 до 07.00 каждый день ПериодПовтораДней = 1ПериодПовтораВТечениеДня = 3600ВремяНачала = 01.00ВремяКонца = 07.00
Каждую субботу и воскресенье в 09.00 ПериодПовтораДней = 1ДниНедели = 6, 7ВремяНачала = 09.00
Каждый день одну неделю, неделя пропуска ПериодПовтораДней = 1ПериодНедель = 2
В 01.00 один раз ВремяНачала = 01.00
Последнее число каждого месяца в 9.00 ПериодПовтораДней = 1ДеньВМесяце = -1ВремяНачала = 09.00
Пятое число каждого месяца в 9.00 ПериодПовтораДней = 1ДеньВМесяце = 5ВремяНачала = 09.00
Вторая среда каждого месяца в 9.00 ПериодПовтораДней = 1ДеньНеделиВМесяце = 2ДниНедели = 3ВремяНачала = 09.00

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

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

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

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

18.4. Особенности выполнения фоновых заданий в файловом и клиент-серверном вариантах

Механизмы выполнения фоновых заданий в файловом и клиент-серверном вариантах различаются.

18.4.1.1. Файловый вариант

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

Поведение фоновых и регламентных заданий в файловом варианте имеет следующие особенности:

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

● Информация о фоновых заданиях, инициированных регламентными заданиями, доступна на всех клиентских приложениях и сохраняется между запусками.

● Регламентные задания выполняются только одним клиентским приложением. Имеется возможность запретить запуск регламентных заданий определенным клиентским приложением или указать, что какое-либо клиентское приложение принудительно назначается исполнителем регламентных заданий. Такое управление осуществляется с помощью:

● Параметра командной строки /AllowExecuteScheduledJobs для толстого и тонкого клиентских приложений.

● Атрибута allowexecutescheduledjobs элемента point файла публикации default.vrd (см. ) в случае публикации информационной базы на веб-сервере.

● Регламентные задания выполняются первым, по порядку запуска, клиентским приложением, у которого не указан запрет выполнения регламентных заданий. После завершения сеанса этого клиентского приложения, выполнение переходит к какому-либо из оставшихся запущенными клиентских приложений. Если запускается клиентское приложение с явным указанием на необходимость исполнения регламентных заданий, то регламентные задания начинают выполняться этим клиентским приложением, независимо от наличия других клиентских приложений (включая расширения веб-сервера).

● Регламентные задания выполняются расширением веб-сервера до тех пор, пока расширение веб-сервера обслуживает хотя бы один клиентский сеанс.

● Регламентные задания обрабатываются один раз в 60 секунд.

● Инициализация планировщика фоновых заданий выполняется через 60 секунд после старта клиентского приложения или после попытки запустить первое фоновое задание. До момента запуска планировщика фоновых заданий в синхронном режиме выполняются следующие операции: поиск в динамическом списке, построение отчетов и поиск для ввода по строке.

● Инициализация механизма планировщика регламентных заданий выполняется через 60 секунд после запуска механизма планировщика фоновых заданий. Следовательно, регламентные задания прикладного решения начинают выполняться максимум через 120 секунд после запуска клиентского приложения.

● Выполняется принудительное завершение фоновых заданий, которые не завершились в течение 30 секунд после завершения работы клиентского приложения. В журнале регистрации в этом случае фиксируется событие Фоновое задание. Принудительное завершение (_$Job$_.Terminate).

● Не поддерживается работа регламентных заданий в файловом варианте информационной базы в сеансе, который получен с использованием automation-сервера «1С:Предприятия» или COM-соединения. Если в таком сеансе создаются фоновые задания, они размещаются в очереь, но запуск таких заданий выполнен не будет.

18.4.1.2. Клиент-серверный вариант

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

В клиент-серверном варианте имеется возможность блокирования выполнения регламентных заданий. Блокирование выполнения регламентных заданий происходит в следующих случаях:

● На информационную базу установлена явная блокировка регламентных заданий. Блокировка может быть установлена через консоль кластера.

● На информационную базу установлена блокировка начала сеансов. Блокировка может быть установлена через консоль кластера.

● Из встроенного языка вызван метод УстановитьМонопольныйРежим() с параметром Истина.

● В некоторых других случаях (например, при обновлении конфигурации базы данных).

18.5. Создание метаданных регламентного задания

Перед тем как создать регламентное задание в информационной базе с помощью встроенного языка, необходимо создать для него объект конфигурации.

Для создания объекта конфигурации регламентного задания в ветке Общие дерева конфигурации для ветки Регламентные задания нужно выполнить команду Добавить.

Регламентное задание обладает рядом свойств, которые описаны ниже.

Имя метода ‑ указывается имя метода регламентного задания.

Ключ ‑ указывается произвольное строковое значение, которое будет использовано в качестве ключа регламентного задания.

Расписание ‑ указывается расписание регламентного задания. Для формирования расписания следует перейти по ссылке Открыть и в открывшейся форме расписания установить нужные значения.

На закладке Общее указывается дата начала и завершения задания и режим повтора.

Рис. 462. Общее расписание

На закладке Дневное указывается дневное расписание задания.

Рис. 463. Дневное расписание

В расписании можно указать:

● время начала и окончания задания;

● время завершения задания, после которого оно будет принудительно завершено;

● период повтора задания;

● продолжительность паузы между повторами;

● продолжительность выполнения.

Допускается указание произвольного сочетания условий.

На закладке Недельное указывается недельное расписание задания.

Рис. 464. Недельное расписание

Нужно установить флажки по тем дням недели, по которым задание будет выполняться. Если требуется повторять задание, указать интервал повтора в неделях. Например, задание выполняется через 2 недели, значение повтора ‑ 2.

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

На закладке Месячное указывается месячное расписание задания.

Рис. 465. Месячное расписание

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

Использование ‑ если установлено, то задание будет выполняться согласно расписанию.

Предопределенное ‑ если установлено, то задание является предопределенным.

Количество повторов при аварийном завершении ‑ указывает количество повторов при аварийном завершении.

Интервал повтора при аварийном завершении ‑ указывает интервал повтора при аварийном завершении.

Пример создания фонового задания «Обновление индекса полнотекстового поиска»:

ФоновыеЗадания.Выполнить(«ОбновлениеИндексаПолнотекстовогоПоиска»);

Пример создания регламентного задания «Восстановление последовательностей»:

Расписание = Новый РасписаниеРегламентногоЗадания; Расписание.ПериодПовтораДней = 1; Расписание.ПериодПовтораВТечениеДня = 0; Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(«ВосстановлениеПоследовательностей»); Задание.Расписание = Расписание; Задание.Записать(); 0

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

Фикс состоит из процедуры, которая располагается в модуле внешнего соединения конфигурации 1С и vbs скрипта.

Копируем процедуру CheckScheduledTasks в модуль внешнего соединения, предварительно в коде процедуры редактируем логин и пароль администратора кластера, логин и пароль администратора БД, имя БД и IP адрес сервера 1С.

Создаем vbs скрипт следующего содержания, так же в коде редактируем IP адрес сервера 1С, логин и пароль администратора БД

После обновления модуля внешнего соединения конфигурации и создания скрипта, через планировщик заданий, задаем интервал запуска, для себя установил запуск с периодичностью в 20 минут. Принцип следующий, каждые 20 минут система запускает VBS скрипт, он выполняет процедуру из 1С, которая мониторит сеансы БД (вид приложения «фоновое задание») и если задание выполняется больше 30 минут, система закрывает соединение.

В конце статьи прикреплен архив с 1С процедурой и vbs скриптом. Желаю удачи в реализации и пусть фоновые задания никогда не зависают в ваших конфигурациях.

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

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