Обработчик обновления не инициализировал параметр обработказавершена
Что нужно сделать после обновления конфигурации 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 (выделятся все строки), затем нажать правую кнопку мыши и в контекстном меню выбрать «Выключить». Таким образом, будут выключены все регламентные задания. После этого следует выделить задание «Отложенное обновление ИБ», нажать правую кнопку мыши и в контекстном меню выбрать «Включить».
Выключение всех регламентных заданий, кроме «Отложенное обновление ИБ»
12 статей про обновление 1С
Типовую программу 1С легко обновить самостоятельно через конфигуратор или интернет. Ещё один способ — использовать cfu-файл. Если пропущено много релизов, вам сэкономят время промежуточные конфигурации.
После обновления не забывайте запустить особые процедуры.
Бывает выгоднее отдать обновление нетиповой 1С на аутсорсинг.
Что нового для вашей 1С?
Рассылка осуществляется в день выхода обновления. Никакой рекламы, только полезная информация. Посмотрите пример →
Долго выполняются дополнительные процедуры обновления 1С
После обновления программы 1С запускается обработка для дополнительной обработки данных. Иногда она зависает и может висеть очень долга. При этом пользователи не могут работать в 1С, не могут провести документы. При этом если запустить базу, что выходит окно «Результаты обновления программы»
Результат обновления программы
Версия программы успешно обновлена на версию 11.4.13.148
Выполняются дополнительные процедуры и обработки данных на версию 11.4.13.148
Работа с этими данными временно ограничена
Приоритет: Работа пользователей или Обработка данных 8 потоками
Как принудительно обновить 1С
Если столкнулись с такой проблемой, то можно ускорить процесс обновления 1С. Для этого переходим в меню НСИ и Администрирование — Обслуживание — Регламентные операции — Регламентные и фоновые задания»:
На закладке «Регламентные задания» находим строку с названием «Отложенное обновление ИБ», устанавливаем на нее курсор и нажимаем кнопку «Выполнить сейчас»
Через несколько минут в окне, где ранее было зависшее обновление 1С начнется процесс обновления и вскоре увидите окно с сообщением «Дополнительные процедуры обработки данных завершены». Закрываете его и можно начинать работу.
Не проходит обработчик обновления
Значит, в НаборЗаписей есть (как минимум одна) запись с незаполненным измерением ОбменДанными. Или вообще пустая запись, проверить можно отладчиком.
Ну, а на перспективу надо найти и удалить все такие записи, если не по рецепту, предложенному в (5), так обработкой, которую надо написать или подобрать из готовых:
Далее входим в обновленную бух базу, обработка по обновлению сообщает что не может получить монопольный доступ и закрывается с вопросом хотим ли мы закрыть всю базу. При этом есть возможность отказаться от закрытия и сделать необходимые нам действия по распроведению документов. Подозреваю, что достаточно будет перепровести их. Но как обычно, перепроверять некогда было.
Ещё есть смутное подозрение, что можно заморочиться и соединение поднять из макроса excel: Есть пример
Ну если она есть, неважно какая. То почему бы и нет?
Можно макросом из excel подключиться, если другой базы нет,
Порядок обновления на релиз 2.0.66.145 с релиза 2.0.66.144 через Конфигуратор (для тех, кто не может выполнить обновление (в т.ч. автоматическое) через Предприятие).
1. Скачайте файл обновления с пользовательского сайта поддержки (releases.1c.ru), распакуйте файл обновления и запустите его установку. CFU-файл обновления будет установлен в каталог шаблонов (путь к каталогу можно увидеть в диалоге запуска 1С:Предприятие по кнопке «Настройка…»).
2. Запустить информационную базу в режиме “Конфигуратор”
Далее описаны все действия в Конфигураторе:
Обработчик обновления не инициализировал параметр обработказавершена
После каждого обновления базы в ней запускаются обработчики обновления для того, чтобы проделать с данными базы манипуляции, необходимые в связи с изменившейся конфигурацией.
Таких обработчиков бывает 2 вида: основные и отложенные.
Суть их одна, но отложенные обработчики в отличие от основных можно выполнять уже после всех обновлений, в фоновом режиме, по ходу работы пользователя.
Обновлятор по умолчанию выполняет и те и другие обработчики в своём цикле обновления сразу.
И это правильно, так как зачастую применяется несколько обновлений. И если не выполнить все обработчики сразу – потом это может быть сделать весьма проблематично (будут возникать ошибки).
Что делать?
Если у вас включён контроль за выполнением отложенных обработчиков обновления, то обновлятор может в какой-то момент начать отказываться продолжать обновление базы.
Отключаем контроль за обработчиками
. нужно или отключить этот контроль (нежелательный вариант).
Выполняем обработчики в ручном режиме
. или (предпочтительный вариант) выполнить эти обработчики в ручном режиме, устранив ошибки в базе, препятствующие этому.
Для этого запустите базу в режиме пользователя.
Согласитесь, если это потребуется, на выполнение основных обработчиков обновления и дождитесь его окончания.
Далее зайдите в меню Все функции ( оно может быть скрыто из меню, о том как его показать читайте здесь ):
В этом меню раскройте раздел “Обработки”:
И в нём найдите и откройте подпункт “Результаты обновления программы”:
В этой обработке можно увидеть сведения о выполненных обработчиках и возможных проблемах с ними:
Тогда их можно будет открыть по ссылке и запустить на повторное выполнение (через контекстное меню правой кнопкой или через кнопку “Запустить”):
В случае серверной базы отложенные обработчики обновления, которые не были выполнены обновлятором, выполняются через механизм регламентных заданий.
И вам нужно либо разблокировать запуск регламентных заданий на сервере, либо запустить регламентное задание с именем “Отложенное обновление ИБ” вручную.
Рассмотрим процесс ручного запуска необходимого нам регламентного задания.
В режиме пользователя зайдите в меню Все функции ( оно может быть скрыто из меню, о том как его показать читайте здесь ):
В открывшемся диалоге раскройте раздел “Обработки”. Найдите и откройте там следующий пункт:
Выделите в списке задание “Отложенное обновление ИБ” и запустите его вручную, нажав на кнопку “Выполнить сейчас”:
Учтите, что за один запуск выполняется лишь один из отложенных обработчиков. Поэтому запускайте это задание столько раз, сколько потребуется, чтобы выполнить все отложенные обработчики обновления.
В таких случаях я первым делом рекомендую искать на форумах решение возникшей проблемы по тексту ошибки выполнения обработчика, который доступен в этом окне.
Но может оказаться и так, что вам потребуется анализ и корректировка (на время выполнения) программного кода обработчика, при выполнении которого возникает ошибка. И в этом случае уже без помощи программиста, к сожалению, обойтись не удастся.
Задействуем специальный механизм при обновлении очень старых серверных баз
Как написано выше, обновлятор выполняет отложенные обработчики сразу вместе с основными. Это позволяет ему безопасно выполнять последовательное обновление базы на несколько релизов.
Но для серверных баз возможность такого выполнения отложенных обработчиков была не всегда (вернее БСП, на основе которой пишутся типовые конфигурации, её не всегда поддерживала).
И в этом случае требовалось:
Именно для этого случая я и придумал специальный режим выполнения обработчиков обновления, который включается в свойствах серверных баз вот так:
Внимательно прочтите технические особенности работы этого режима. Его следует применять только как временную меру при обновлении старых конфигураций сразу на несколько релизов.
Я рассчитываю, что эта возможность будет задействована только опытными пользователями, которые понимают, что делают.
Вы должны принять тот факт, что обновлятор (в этом особом режиме выполнения обработчиков) будет на некоторое время разблокировать запуск регламентных заданий на сервере.
Итак, вот как будет действовать обновлятор в этом особом режиме:
Учтите, что отложенные обработчики могут выполняться и 5 минут и 2 часа. И это нормально и зависит от обновления и размера вашей базы. Ещё раз обратите внимание на возможность ускорения выполнения отложенных обработчиков путём изменения расписания запуска регламентного задания “Отложенное обновление ИБ”. По умолчанию оно запускается один раз в минуту, выполняет один обработчик и делает паузу ещё на минуту. И если у вас 60 отложенных обработчиков, то этот процесс будет длиться уже 2 часа, хотя его можно прогнать за 20 минут, если настроить запуск регламентного задания, скажем, каждые 10 секунд без паузы.
Если вы захотите прервать ожидания выполнения отложенных обработчиков, то нажмите кнопку “Остановить всё” и дожидайтесь пока обновлятор сам прервёт ожидание.
В противном случае вам нужно будет самому зайти в диспетчер задач и завершить процесс с именем Connector1Cx86.exe или Connector1Cx64.exe. И далее самому проконтролировать в каком состоянии блокировки осталась база и её регламентные задания.
Если в отчёте начала появляться фраза “Ожидание выполнения отложенных обработчиков не требуется”, значит вы дошли до версии конфигурации, когда выполнение отложенных обработчиков стало возможно в основном цикле обновления. В этом случае следует отключить особый режим выполнения обработчиков.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
| Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). |
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Обработчики обновления информационной базы
Область применения: управляемое приложение, обычное приложение.
1. Основные сведения о библиотеке (основной конфигурации)
2. Расположение обработчиков обновления
3. Реализация обработчиков обновления
4. Переход на новые версии библиотек
1. Основные сведения о библиотеке (основной конфигурации)
1.1. При разработке конфигураций на базе библиотек, каждая библиотека должна сообщить о себе ряд сведений, необходимых для корректного обновления информационной базы на новую версию конфигурации:
Эти сведения размещаются в специальном общем модуле библиотеки, имя которого должно начинаться с ОбновлениеИнформационнойБазы…
Пример:
В конфигурации УТ 11 модуль обработчиков обновления называется ОбновлениеИнформационнойБазыУТ
Имена модулей всех используемых в конфигурации библиотек следует явно перечислить в общем модуле ПодсистемыКонфигурацииПереопределяемый в виде:
Процедура ПриДобавленииПодсистем(МодулиПодсистем) Экспорт
Кроме того, аналогичный модуль также должен быть определен и для основной конфигурации.
При создании общего модуля ОбновлениеИнформационнойБазы… следует использовать шаблон:
Описание.Имя = ” “;
Описание.Версия = “XX.XX.XX.XX”;
Описание.ТребуемыеПодсистемы.Добавить(“СтандартныеПодсистемы”);
Описание.РежимВыполненияОтложенныхОбработчиков = “Последовательно”;
// Обработчики, выполняемые при каждом обновлении ИБ
// Обработчики, выполняемые при переходе на определенную версию
// Обработчики, выполняемые при заполнении пустой ИБ
// Вызывается перед процедурами-обработчиками обновления данных ИБ.
//
Процедура ПередОбновлениемИнформационнойБазы() Экспорт
1.2. Обработчики обновления данных информационной базы предназначены для дополнительной обработки данных после завершения обновления конфигурации (реструктуризации) базы данных:
Для автогенерируемых строк, которые программно записываются в информационную базу, например при заполнении наименований предопределенных элементов справочников, ПВХ и т.п., следует руководствоваться стандартом Автогенерированные данные в информационной базе: требования по локализации.
1.3. Обработчик обновления данных информационной базы состоит из двух частей:
Добавление описаний новых обработчиков выполняется в процедуре ПриДобавленииОбработчиковОбновления с помощью вставки фрагмента кода по шаблону:
Обработчик = Обработчики.Добавить();
Обработчик.Версия = ” “;
Обработчик.Процедура = ” “;
Обработчик.НачальноеЗаполнение = <Истина|Ложь>;
Обработчик.РежимВыполнения = <"Монопольно"|"Оперативно"|"Отложенно">;
РежимВыполнения ( Строка ) – принимает одно из значений: “Монопольно”, “Оперативно” и “Отложенно”. Если свойство не задано, то по умолчанию обработчик – монопольный.
Монопольные обработчики предназначены для обновления тех данных, обработка которых должна быть обязательно завершена к моменту входа пользователей в программу. Для сокращения времени простоя (ожидания обработки данных), рекомендуется большие объемы данных обновлять отложенно (см. ниже).
Примеры монопольных обработчиков: обработка небольшого объема данных текущего периода, активных позиций номенклатуры и т.п.
Если хотя бы один обработчик обновления конфигурации – монопольный, то все оперативные обработчики (см. далее) выполняются в монопольном режиме.
Оперативные обработчики следует применять в редких случаях, когда важно сократить время ожидания пользователей при переходе на исправительные релизы, которые не содержат изменений в структуре данных, и обновление на которые должно выполняться динамически.
Отложенные обработчики предназначены для обработки той части данных ИБ, которые не препятствуют пользователям начинать свою работу с новой версией программы, не дожидаясь завершения обработки этих данных.
Примеры отложенных обработчиков: обработка больших архивов данных за закрытые/прошлые периоды, неактивных позиций номенклатуры, различных данных, отключенных в данный момент функциональными опциями и т.п.
Пример описания обработчика, для выполнения которого требуется монопольный режим:
Обработчик = Обработчики.Добавить();
Обработчик.РежимВыполнения = “Монопольно”;
Обработчик.Версия = “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. При постановке конфигурации на поддержку к новой версии библиотеки, следует увеличивать номер версии конфигурации. Это необходимо для запуска обработчиков обновления информационной базы.



















