Перейти к содержимому

Как запустить отложенное обновление 1с

  • автор:

Как запустить отложенное обновление 1с

Обновил релиз торговли до 11.5.7.294.

После первого запуска начали выполняться процедуры обновления. Выполнено 259 процедур из 307 и процесс обновления дальше не идёт.

Запускал вручную регламентное задание «Отложенное обновление ИБ». Смотрю, что появляются фоновые задания, но они быстро завершаются.
В журнале регистрации никаких ошибок нет.

Как можно выловить по какой причине не проходит обновление?

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

Конфигурация: Управление торговлей, редакция 11 (11.5.7.294)
Платформа: 1С:Предприятие 8.3 (8.3.18.1208)
MS SQL Server 2012
Windows Server 2012 Standart

Все процедуры в статусе «Выполняется» или «Выполнено», но фоновых заданий нет
https://ie.wampi.ru/2022/01/05/PROTEDURY-OBRABOTKI-DANNYK.png

Как запустить принудительно процедуру?
Можно только приоритет выполнения поменять «Желательно быстрее»
https://ie.wampi.ru/2022/01/05/PRINUDITELNO-ZAPUSTIT-PROTEDURU.png

У меня обработка данных после обновлений завершилась за полсуток.
Выставляешь Желательно быстрее, приоритет для процедур, а не пользователей. И потом принудительно запускаешь задание, либо сделай расписание каждые 5 минут. Зависит от объема базы. Моя в архиве весила 8гб

Если открыть список фоновых заданий и встать на нужное, вверху есть кнопка Выполнить сейчас.
(2) ну, процедуры выполняются. Надо просто ждать.
(5) Согласен, но никакой активности в 1С не было, просто список процедур на выполнении и всё.

У меня база занимает 122 Гб.
Если с УТ так долго обновление проходит, то как обновляют ERP.
В ERP конфигурация ещё больше и при обновлении нужно на неделю предприятие останавливать получается.

(7) не надо ничего останавливать
https://www.youtube.com/watch?v=gZsQrlcUg-4

Смотри РС «Обработчики обновления». Но вообще, на .5 еще рано обновляться, там полно обработчиков, которые просто встают по непонятным причинам. Меняешь им статус на «выполнен», и пробуешь запускать обновление дальше, фактически пропуская его. Ну, или свободного времени много (в 2.5 КА2 471 обработчик), то ищешь причину, почему не останавливается обработчик, и пишешь в спортлото.

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

(9) Можно таким способом воспользоваться, но в статусе «Выполняется» более 20-ти процедур и не одного фонового задания, т.е. они все висят. Наблюдая за фоновыми заданиями когда они вначале были, то каждая процедура порождает свое фоновое задание, т.е. это не зависимые процессы. Получается все более 20-ти процедур, не создавших фоновые задания, повисли.

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

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

Про кэш я в последнюю очередь почему-то подумал.

Обработчики обновления информационной базы

Область применения: управляемое приложение, обычное приложение.

Действует для конфигураций на базе Библиотеки стандартных подсистем .
Содержит уточнения к требованиям других стандартов.
См. документацию к подсистеме «Обновление версии ИБ» на ИТС.

1. Основные сведения о библиотеке (основной конфигурации)
2. Расположение обработчиков обновления
3. Реализация обработчиков обновления
4. Переход на новые версии библиотек

1. Основные сведения о библиотеке (основной конфигурации)

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

  • Имя
  • Версию
  • Список обработчиков обновления
  • Зависимости от других библиотек.

Эти сведения размещаются в специальном общем модуле библиотеки, имя которого должно начинаться с ОбновлениеИнформационнойБазы…
Пример:
В конфигурации УТ 11 модуль обработчиков обновления называется ОбновлениеИнформационнойБазыУТ

Имена модулей всех используемых в конфигурации библиотек следует явно перечислить в общем модуле ПодсистемыКонфигурацииПереопределяемый в виде:

Процедура ПриДобавленииПодсистем(МодулиПодсистем) Экспорт

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

При создании общего модуля ОбновлениеИнформационнойБазы… следует использовать шаблон:

// Заполняет основные сведения о библиотеке или основной конфигурации.
// Библиотека, имя которой имя совпадает с именем конфигурации в метаданных, определяется как основная конфигурация.
//
// Параметры:
// Описание — Структура — сведения о библиотеке:
//
// Имя — Строка — имя библиотеки, например, «СтандартныеПодсистемы».
// Версия — Строка — версия в формате из 4-х цифр, например, «2.1.3.1».
//
// ТребуемыеПодсистемы — Массив — имена других библиотек (Строка), от которых зависит данная библиотека.
// Обработчики обновления таких библотек должны быть вызваны ранее
// обработчиков обновления данной библиотеки.
// При циклических зависимостях или, напротив, отсутствии каких-либо зависимостей,
// порядок вызова обработчиков обновления определяется порядком добавления модулей
// в процедуре ПриДобавленииПодсистем общего модуля ПодсистемыКонфигурацииПереопределяемый.
// РежимВыполненияОтложенныхОбработчиков — Строка — «Последовательно» — отложенные обработчики обновления выполняются
// последовательно в интервале от номера версии информационной базы до номера
// версии конфигурации включительно или «Параллельно» — отложенный обработчик после
// обработки первой порции данных передает управление следующему обработчику, а после
// выполнения последнего обработчика цикл повторяется заново.
//
Процедура ПриДобавленииПодсистемы(Описание) Экспорт

Описание.Имя = «»;
Описание.Версия = «XX.XX.XX.XX»;
Описание.ТребуемыеПодсистемы.Добавить(«СтандартныеПодсистемы»);
Описание.РежимВыполненияОтложенныхОбработчиков = «Последовательно»;

// Добавляет в список процедуры-обработчики обновления данных ИБ
// для всех поддерживаемых версий библиотеки или конфигурации.
// Вызывается перед началом обновления данных ИБ для построения плана обновления.
//
// Параметры:
// Обработчики — ТаблицаЗначений — описание полей
// см. в процедуре ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления
//
// Пример добавления процедуры-обработчика в список:
// Обработчик = Обработчики.Добавить();
// Обработчик.Версия = «1.0.0.0»;
// Обработчик.Процедура = «ОбновлениеИБ.ПерейтиНаВерсию_1_0_0_0»;
// Обработчик.РежимВыполнения = «Монопольно»;
//
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт

// Обработчики, выполняемые при каждом обновлении ИБ

// Обработчики, выполняемые при переходе на определенную версию

// Обработчики, выполняемые при заполнении пустой ИБ

// Вызывается перед процедурами-обработчиками обновления данных ИБ.
//
Процедура ПередОбновлениемИнформационнойБазы() Экспорт

// Вызывается после завершения обновления данных ИБ.
//
// Параметры:
// ПредыдущаяВерсия — Строка — версия до обновления. «0.0.0.0» для «пустой» ИБ.
// ТекущаяВерсия — Строка — версия после обновления.
// ВыполненныеОбработчики — ДеревоЗначений — список выполненных процедур-обработчиков обновления,
// сгруппированных по номеру версии.
// ВыводитьОписаниеОбновлений — Булево — (возвращаемое значение) если установить Истина,
// то будет вывена форма с описанием обновлений. По умолчанию, Истина.
// МонопольныйРежим — Булево — Истина, если обновление выполнялось в монопольном режиме.
//
Процедура ПослеОбновленияИнформационнойБазы(Знач ПредыдущаяВерсия, Знач ТекущаяВерсия,
Знач ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим) Экспорт

// Вызывается при подготовке табличного документа с описанием изменений в программе.
//
// Параметры:
// Макет — ТабличныйДокумент — описание обновления всех библиотек и конфигурации.
// Макет можно дополнить или заменить.
// См. также общий макет ОписаниеИзмененийСистемы.
//
Процедура ПриПодготовкеМакетаОписанияОбновлений(Знач Макет) Экспорт

// Позволяет переопределить режим обновления данных информационной базы.
// Для использования в редких (нештатных) случаях перехода, не предусмотренных в
// стандартной процедуре определения режима обновления.
//
// Параметры:
// РежимОбновленияДанных — Строка — в обработчике можно присвоить одно из значений:
// «НачальноеЗаполнение» — если это первый запуск пустой базы (области данных);
// «ОбновлениеВерсии» — если выполняется первый запуск после обновление конфигурации базы данных;
// «ПереходСДругойПрограммы» — если выполняется первый запуск после обновление конфигурации базы данных,
// в которой изменилось имя основной конфигурации.
//
// СтандартнаяОбработка — Булево — если присвоить Ложь, то стандартная процедура
// определения режима обновления не выполняется,
// а используется значение РежимОбновленияДанных.
//
Процедура ПриОпределенииРежимаОбновленияДанных(РежимОбновленияДанных, СтандартнаяОбработка) Экспорт

// Добавляет в список процедуры-обработчики перехода с другой программы (с другим именем конфигурации).
// Например, для перехода между разными, но родственными конфигурациями: базовая -> проф -> корп.
// Вызывается перед началом обновления данных ИБ.
//
// Параметры:
// Обработчики — ТаблицаЗначений — с колонками:
// * ПредыдущееИмяКонфигурации — Строка — имя конфигурации, с которой выполняется переход;
// или «*», если нужно выполнять при переходе с любой конфигурации.
// * Процедура — Строка — полное имя процедуры-обработчика перехода с программы ПредыдущееИмяКонфигурации.
// Например, «ОбновлениеИнформационнойБазыУПП.ЗаполнитьУчетнуюПолитику»
// Обязательно должна быть экспортной.
//
// Пример добавления процедуры-обработчика в список:
// Обработчик = Обработчики.Добавить();
// Обработчик.ПредыдущееИмяКонфигурации = «УправлениеТорговлей»;
// Обработчик.Процедура = «ОбновлениеИнформационнойБазыУПП.ЗаполнитьУчетнуюПолитику»;
//
Процедура ПриДобавленииОбработчиковПереходаСДругойПрограммы(Обработчики) Экспорт

// Вызывается после выполнения всех процедур-обработчиков перехода с другой программы (с другим именем конфигурации),
// и до начала выполнения обновления данных ИБ.
//
// Параметры:
// ПредыдущееИмяКонфигурации — Строка — имя конфигурации до перехода.
// ПредыдущаяВерсияКонфигурации — Строка — имя предыдущей конфигурации (до перехода).
// Параметры — Структура —
// * ВыполнитьОбновлениеСВерсии — Булево — по умолчанию Истина. Если установить Ложь,
// то будут выполнена только обязательные обработчики обновления (с версией «*»).
// * ВерсияКонфигурации — Строка — номер версии после перехода.
// По умолчанию, равен значению версии конфигурации в свойствах метаданных.
// Для того чтобы выполнить, например, все обработчики обновления с версии ПредыдущаяВерсияКонфигурации,
// следует установить значение параметра в ПредыдущаяВерсияКонфигурации.
// Для того чтобы выполнить вообще все обработчики обновления, установить значение «0.0.0.1».
// * ОчиститьСведенияОПредыдущейКонфигурации — Булево — по умолчанию Истина.
// Для случаев когда предыдущая конфигурация совпадает по имени с подсистемой текущей конфигурации, следует указать Ложь.
//
Процедура ПриЗавершенииПереходаСДругойПрограммы(Знач ПредыдущееИмяКонфигурации,
Знач ПредыдущаяВерсияКонфигурации, Параметры) Экспорт

1.2. Обработчики обновления данных информационной базы предназначены для дополнительной обработки данных после завершения обновления конфигурации (реструктуризации) базы данных:

  • инициализация новых констант, новых реквизитов, реквизитов новых предопределенных элементов;
  • перенос данных из устаревших структур метаданных в новые;
  • генерация новых данных
  • и т.п.

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

1.3. Обработчик обновления данных информационной базы состоит из двух частей:

описательной — сообщает, когда должен выполниться обработчик, и где он находится в конфигурации;

программной — непосредственно код модификации данных ИБ, оформленный в виде процедуры-обработчика обновления.

Добавление описаний новых обработчиков выполняется в процедуре ПриДобавленииОбработчиковОбновления с помощью вставки фрагмента кода по шаблону:

Данный код добавляет новую строку в таблицу значений Обработчики , строка которой имеет следующие поля:

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

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

Если в качестве версии указан символ «*», то обработчик обновления должен выполняться каждый раз при обновлении информационной базы, независимо от номера версии конфигурации. Обработчики такого вида предназначены для обновления служебных, системных данных (например, обновление поставляемых профилей и групп доступа).

Если свойство Версия не задано, то должно быть установлено в Истина свойство НачальноеЗаполнение (см. далее).

Процедура ( Строка ) – идентификатор процедуры, содержащий полный путь к процедуре-обработчику обновления.
Например, «Справочник.Валюты.ЗаполнитьКодДляПоиска» .

НачальноеЗаполнение ( Булево ) – если Истина , то обработчик будет вызван при первом запуске пустой информационной базы (версия «0.0.0.0»), созданной из файла поставки конфигурации и не содержащей данных.
Это обработчики первоначального заполнения базы.

РежимВыполнения ( Строка ) – принимает одно из значений: «Монопольно», «Оперативно» и «Отложенно». Если свойство не задано, то по умолчанию обработчик – монопольный.


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

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

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

  • Такой обработчик вызывается дважды, в него передается параметр Параметры типа Структура , в котором имеется свойство МонопольныйРежим (Булево)
  • При первом вызове в режиме проверки, свойство МонопольныйРежим содержит значение Ложь .
    • Код обработчика не должен модифицировать данные ИБ
    • Если в ходе выполнения обработчика возникает необходимость внесения изменений в ИБ, обработчик должен установить значение свойства в Истина и прекратить свое выполнение

    • Код обработчик может модифицировать данные ИБ
    • Изменение значения свойства в этом случае игнорируется

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

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

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

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

    Обработчик = Обработчики.Добавить();
    Обработчик.РежимВыполнения = «Монопольно»;
    Обработчик.Версия = «11.1.0.0»;
    Обработчик.Процедура = «Справочник.МойСправочник.ЗаполнитьКодДляПоиска»;

    Пример реализации обработчика в модуле менеджера Справочник.МойСправочник :

    // Обработчик обновления УТ 11.1.0.0
    //
    // Перебираются все элементы справочника, в которых не заполнен код для поиска,
    // и заполняется кодом справочника без лидирующих нулей и префиксов
    //
    Процедура ЗаполнитьКодДляПоиска() Экспорт
    .

    2. Расположение обработчиков обновления

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

    Пример:
    Если в справочник «Подразделения» добавили новый реквизит, который необходимо заполнить значением по умолчанию, то процедура-обработчик должна располагаться в модуле менеджера этого справочника.

    2.2. В некоторых случаях, когда невозможно соотнести обработчик с каким-то конкретным объектом метаданных, допустимо расположение процедуры-обработчика в серверном общем модуле, назначение которого по смыслу связано с выполняемой обработкой ИБ (например, процедуры обновления, связанные со складской функциональностью должны располагаться в общем модуле СкладСервер). При этом процедура должна располагаться в служебной части модуля, в подразделе «Обновление ИБ».

    3. Реализация обработчиков обновления

    3.1. К процедуре-обработчику предъявляются следующие требования:

    Обработчик не должен содержать логики по интерактивному взаимодействию с пользователем.

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

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

    3.2. Обработчик обновления не должен содержать лишних, избыточных действий с данными – должен выполняться максимально быстро.

    3.2.1. Для этого необходимо отключать бизнес-логику при обработке данных. В большинстве случаев, с помощью установки признака ОбменДанными.Загрузка :

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

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

    • В распределенной информационной базе (РИБ) обработка данных должна выполняться независимо в каждом из узлов;
    • При обмене между произвольными конфигурациями (программами) обработка данных не должна приводить к их выгрузке в базы-получатели.

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

    3.2.3. Таким образом, в коде обработчика обновления вместо

    ДокументОбъект.ОбменДанными.Загрузка = Истина; // отключить всю бизнес-логику при записи
    ДокументОбъект.ДополнительныеСвойства.Вставить(«ОтключитьМеханизмРегистрацииОбъектов»);
    ДокументОбъект.ОбменДанными.Получатели.АвтоЗаполнение = Ложь;
    ДокументОбъект.Записать();

    При использовании в конфигурации Библиотеки стандартных подсистем (БСП) версии 2.1.4 и выше следует использовать процедуру ЗаписатьДанные общего модуля ОбновлениеИнформационнойБазы :

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

    Какие данные будут изменены (что меняем)?
    Какие изменения будут внесены в эти данные (как меняем)?

    // Обработчик обновления УТ 11.1.0.0
    //
    // Перебираются все элементы справочника, в которых не заполнен код для поиска,
    // и заполняется кодом справочника без лидирующих нулей и префиксов
    //
    Процедура ЗаполнитьКодДляПоиска() Экспорт

    4. Переход на новые версии библиотек

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

    Что нужно сделать после обновления конфигурации 1С

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

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

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

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

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

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

    Действия в режиме 1С:Предприятие после установки обновления конфигурации

    1. При запуске режима 1С:Предприятие появится окно подтверждения легальности обновления. Необходимо выбрать «Я подтверждаю…» и нажать «Продолжить»:

    Окно подтверждения легальности обновления

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

    Прогресс монопольных процедур обновления

    3. После завершения монопольных процедур обновления нужно проверить состояние фоновых процедур обновления. Это делается с помощью обработки «Результаты обновления программы». Обычно для ее открытия требуется пройти в раздел «НСИ и администрирование > Обслуживание > Результаты обновления программы > Результаты обновления и дополнительная обработка данных».

    В зависимости от конфигурации и версии названия разделов и пунктов меню могут отличаться, например, «Администрирование» вместо «НСИ и администрирование», либо «Поддержка и обслуживание» вместо «Обслуживание». Если найти обработку не удается, можно открыть ее через меню «Все функции…».

    Открытие обработки «Результаты обновления программы»

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

    Завершение фоновых процедур обновления

    5. Если фоновые процедуры еще не завершены, то окно обработки будет следующий вид:

    Выполнение фоновых процедур обновления

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

    Для ускорения выполнения процедур рекомендуется установить переключатель «Приоритет» в положение «Обработка данных». Кроме того, в поле ввода количества потоков рекомендуется указать число, равное числу логических процессоров на сервере 1С. Переключатель приоритета и поле ввода количества потоков могут отсутствовать в окне обработки — это зависит от конфигурации и версии.

    Количество процедур зависит от версии конфигурации. При смене подредакции (например, обновлении ERP с версии 2.2 на версию 2.4) обычно бывает несколько сотен процедур, а при смене релиза (например, обновлении ERP с версии 2.4.4 на версию 2.4.5) — десятки или даже единицы.

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

    Если количество выполненных процедур равно нулю и не увеличивается долгое время (несколько минут), нужно проверить состояние фонового задания «Отложенное обновление ИБ». Сделать это можно в обработке «Регламентные и фоновые задания», которую можно открыть, перейдя в раздел «НСИ и администрирование > Обслуживание > Регламентные операции > Регламентные и фоновые задания». Как и в случае с открытием обработки «Результаты обновления программы», в разных конфигурациях и разных версиях названия разделов и пунктов меню могут отличаться, и при желании можно открыть обработку через «Все функции…».

    Открытие обработки «Регламентные и фоновые задания»

    В открывшемся списке регламентных заданий необходимо найти «Отложенное обновление ИБ» и посмотреть его состояние:

    Просмотр состояния регламентного задания

    Если состояние «Задание выполняется», то все в порядке — процедуры в данный момент выполняются. Остается только дождаться их завершения, следя за прогрессом в обработке «Результаты обновления программы».

    Если состояние другое, например, «Не определено» или «Задание выполнено», то задание в данный момент не выполняется. В таком случае его можно запустить вручную, выделив в списке и нажав кнопку «Выполнить сейчас»:

    Ручной запуск регламентного задания

    Для того, чтобы выполнение фоновых процедур запускалось автоматически и не было необходимости запускать его вручную, у ИБ должна быть отключена блокировка регламентных заданий. Управление блокировкой осуществляется в окне свойств базы в консоли администрирования сервера 1С. Способ открытия данного окна уточняется у специалиста, занимающегося администрированием сервера 1С (системный администратор, администратор баз данных и т.п.).

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

    Снятие блокировки регламентных заданий в консоли администрирования сервера

    Внимание! В тестовых базах отключение блокировки может повлечь за собой запуск нежелательных регламентных заданий (например, обмена данными), поэтому, если ИБ является тестовой, перед отключением блокировки следует в обработке «Регламентные и фоновые задания» выключить все регламентные задания, кроме «Отложенное обновление ИБ». Чтобы это сделать, нужно в списке регламентных заданий нажать сочетание клавиш Ctrl+A (выделятся все строки), затем нажать правую кнопку мыши и в контекстном меню выбрать «Выключить». Таким образом, будут выключены все регламентные задания. После этого следует выделить задание «Отложенное обновление ИБ», нажать правую кнопку мыши и в контекстном меню выбрать «Включить».

    Выключение всех регламентных заданий, кроме «Отложенное обновление ИБ»

    14 статей про обновление 1С

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

    Перед обновлением конфигурации часто необходимо обновить платформу. А для оперативного исправления ошибок программы использовать патчи в 1С.

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

    Что нового для вашей 1С?

    Оперативная информация о выходе и содержании свежих версий для 19 типов конфигураций.

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

    Как запустить отложенное обновление 1с

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

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

    . на закладке «Обновление» в разделе «Обработчики»:

    Режимы

    Выполнять основные и отложенные

    Обработчики бывают 2 видов: основные и отложенные.

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

    В этом режиме выполняются и те и другие обработчики сразу, в цикле обновления. Это позволяет безопасно выполнять последовательное обновление базы сразу на несколько релизов.

    Выполнять основные и отложенные особым образом

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

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

    Этот режим нужен в 2 случаях:

    • Вы обновляете старую конфигурацию, которая не поддерживает выполнение отложенных обработчиков обычным способом.
    • У вас очень большая база и выполнение отложенных обработчиков занимает слишком много времени. В этом случае их выполнение через регламентное задание на сервере способно в несколько раз увеличить производительность, если вы в самой базе включите выполнение обработчиков с приоритетом обработки данных в несколько потоков (поддерживается не всеми конфигурациями, располагается в режиме пользователя в разделе «Администрирование»-«Обновление программы»).

    Итак, вот как будет действовать обновлятор в этом особом режиме:

    1. Сначала он выполнит основные обработчики обновления стандартным способом.
    2. Далее он проверит — появились ли в базе невыполненные отложенные обработчики обновления.
    3. Если такие обработчики появились, то он:
      1. Полностью снимет блокировку сеансов.
      2. Разблокирует запуск регламентных заданий в кластере.
      3. И будет в цикле ожидать пока регламентное задание «Отложенное обновление ИБ» само по расписанию выполнит все отложенные обработчики (то есть переведёт их в состояние «выполнено» или «ошибка»). По умолчанию регламентное задание «Отложенное обновление ИБ» запускается каждую минуту для выполнения очередного обработчика. Вы можете изменить настройки его запуска через расписание регламентного задания. Это может быть полезно для того, чтобы ускорить процесс выполнения отложенных обработчиков, если их много.
      4. После этого обновлятор вернёт блокировку сеансов базы и блокировку регламентных заданий, если они были установлены до этого.

      При таком варианте выполнения обработчиков обновления — отчёт в этой части будет подробным, даже если вы не включили режим отладки.

      Учтите, что отложенные обработчики могут выполняться и 5 минут и 2 часа. И это нормально и зависит от обновления и размера вашей базы. Ещё раз обратите внимание на возможность ускорения выполнения отложенных обработчиков путём изменения расписания запуска регламентного задания «Отложенное обновление ИБ». По умолчанию оно запускается один раз в минуту, выполняет один обработчик и делает паузу ещё на минуту. И если у вас 60 отложенных обработчиков, то этот процесс будет длиться уже 2 часа, хотя его можно прогнать за 20 минут, если настроить запуск регламентного задания, скажем, каждые 10 секунд без паузы.

      Если вы захотите прервать ожидания выполнения отложенных обработчиков, то нажмите кнопку «Остановить всё» и дожидайтесь пока обновлятор сам прервёт ожидание.

      В противном случае вам нужно будет самому зайти в диспетчер задач и завершить процесс с именем Connector1Cx86.exe или Connector1Cx64.exe. И далее самому проконтролировать в каком состоянии блокировки осталась база и её регламентные задания.

      Выполнять только основные

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

      Применяйте этот режим с осторожностью, если планируете обновляться сразу на несколько релизов.

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

      Запускать базу с ключом /CВыполнитьОбновлениеИЗавершитьРаботу

      Этот режим предназначен прежде всего для базовой платформы 1с.

      Базовая 1с не позволяет обновлятору подключаться к базам программно (это её ограничение). Поэтому обновлятор в этом случае не может выполнить (и проконтролировать) программно обработчики.

      При этом некоторые типовые конфигурации поддерживают параметр командной строки ‘/CВыполнитьОбновлениеИЗавершитьРаботу’. При запуске клиента с этим ключом в базе автоматически запускается выполнение обработчиков обновления, а после база закрывается.

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

      И получается, что из-за этого возможного перезапуска клиента обновлятор перестаёт ожидать окончания выполнения обработчиков раньше времени. И если вы применяете сразу несколько обновлений подряд — это может привести к ошибкам, так как обновлятор попробует обновить базу на следующий релиз, а она всё ещё будет заблокирована выполнением обработчиков.

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

      Использовать значение опции «и сразу продолжать операцию» имеет смысл только в том случае, если вы обновляете базу не более чем на 1 релиз. Для этого в свойствах базы, на закладке «Обновление», в разделе «Ограничения» необходимо выставить опцию «Обновлять не более чем на» в значение 1.

      Внимание. Появилась возможность настроить удаление исправлений перед обновлением также для базовых 1с: вот так. В этом случае можно выбирать пункт «и ждать пока не закроется», так как перезапуск клиента в процессе выполнения обработчиков обновления выполняться не будет.

      Не выполнять

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

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

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

      Владимир Милькин

      Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

      Нажмите одну из кнопок, чтобы поделиться:

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

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