Не выполнены дополнительные процедуры обработки данных 1с при обновлении
После каждого обновления базы в ней запускаются обработчики обновления для того, чтобы проделать с данными базы манипуляции, необходимые в связи с изменившейся конфигурацией.
Таких обработчиков бывает 2 вида: основные и отложенные.
Суть их одна, но отложенные обработчики в отличие от основных можно выполнять уже после всех обновлений, в фоновом режиме, по ходу работы пользователя.
Обновлятор по умолчанию выполняет и те и другие обработчики в своём цикле обновления сразу.
И это правильно, так как зачастую применяется несколько обновлений. И если не выполнить все обработчики сразу – потом это может быть сделать весьма проблематично (будут возникать ошибки).
Что делать?
Если у вас включён контроль за выполнением отложенных обработчиков обновления, то обновлятор может в какой-то момент начать отказываться продолжать обновление базы.
Отключаем контроль за обработчиками
. нужно или отключить этот контроль (нежелательный вариант).
Выполняем обработчики в ручном режиме
. или (предпочтительный вариант) выполнить эти обработчики в ручном режиме, устранив ошибки в базе, препятствующие этому.
Для этого запустите базу в режиме пользователя.
Согласитесь, если это потребуется, на выполнение основных обработчиков обновления и дождитесь его окончания.
Далее зайдите в меню Все функции ( оно может быть скрыто из меню, о том как его показать читайте здесь ):
В этом меню раскройте раздел "Обработки":
И в нём найдите и откройте подпункт "Результаты обновления программы":
В этой обработке можно увидеть сведения о выполненных обработчиках и возможных проблемах с ними:
И если не все обработчики были выполнены - это будет отражено в этом окне.
Тогда их можно будет открыть по ссылке и запустить на повторное выполнение (через контекстное меню правой кнопкой или через кнопку "Запустить"):
В случае серверной базы отложенные обработчики обновления, которые не были выполнены обновлятором, выполняются через механизм регламентных заданий.
Это значит, что если у вас выключен запуск регламентных заданий на сервере - вы будете бесконечно долго и безрезультатно ждать выполнения этих отложенных обработчиков.
И вам нужно либо разблокировать запуск регламентных заданий на сервере, либо запустить регламентное задание с именем "Отложенное обновление ИБ" вручную.
Рассмотрим процесс ручного запуска необходимого нам регламентного задания.
В режиме пользователя зайдите в меню Все функции ( оно может быть скрыто из меню, о том как его показать читайте здесь ):
В открывшемся диалоге раскройте раздел "Обработки". Найдите и откройте там следующий пункт:
Выделите в списке задание "Отложенное обновление ИБ" и запустите его вручную, нажав на кнопку "Выполнить сейчас":
Учтите, что за один запуск выполняется лишь один из отложенных обработчиков. Поэтому запускайте это задание столько раз, сколько потребуется, чтобы выполнить все отложенные обработчики обновления.
Отдельный случай - это когда вам не удаётся выполнить проблемные обработчики даже в ручном режиме. Обычно это означает, что:
- либо есть проблемы в базе на уровне данных (например, неверное заполнение справочников или документов)
- либо разработчики обновления допустили ошибку в коде проблемного обработчика
В таких случаях я первым делом рекомендую искать на форумах решение возникшей проблемы по тексту ошибки выполнения обработчика, который доступен в этом окне.
Но может оказаться и так, что вам потребуется анализ и корректировка (на время выполнения) программного кода обработчика, при выполнении которого возникает ошибка. И в этом случае уже без помощи программиста, к сожалению, обойтись не удастся.
Задействуем специальный механизм при обновлении очень старых серверных баз
Как написано выше, обновлятор выполняет отложенные обработчики сразу вместе с основными. Это позволяет ему безопасно выполнять последовательное обновление базы на несколько релизов.
Но для серверных баз возможность такого выполнения отложенных обработчиков была не всегда (вернее БСП, на основе которой пишутся типовые конфигурации, её не всегда поддерживала).
И в этом случае требовалось:
- или обновлять базу в файловом режиме (что не всегда возможно) - там этой проблемы нет
- или применять обновления по одному и после каждого из них запускать базу в режиме пользователя и дожидаться выполнения всех отложенных обработчиков
Именно для этого случая я и придумал специальный режим выполнения обработчиков обновления, который включается в свойствах серверных баз вот так:
Внимательно прочтите технические особенности работы этого режима. Его следует применять только как временную меру при обновлении старых конфигураций сразу на несколько релизов.
Я рассчитываю, что эта возможность будет задействована только опытными пользователями, которые понимают, что делают.
Вы должны принять тот факт, что обновлятор (в этом особом режиме выполнения обработчиков) будет на некоторое время разблокировать запуск регламентных заданий на сервере.
Итак, вот как будет действовать обновлятор в этом особом режиме:
- Сначала он выполнит все обработчики обновления стандартным способом.
- Далее он проверит - остались ли в базе невыполненные отложенные обработчики обновления.
- Если такие обработчики остались, то он:
- Полностью снимет блокировку сеансов.
- Разблокирует запуск регламентных заданий в кластере.
- И будет в цикле ожидать пока регламентное задание "Отложенное обновление ИБ" само по расписанию выполнит все отложенные обработчики (то есть переведёт их в состояние "выполнено" или "ошибка"). По умолчанию регламентное задание "Отложенное обновление ИБ" запускается каждую минуту для выполнения очередного обработчика. Вы можете изменить настройки его запуска через расписание регламентного задания. Это может быть полезно для того, чтобы ускорить процесс выполнения отложенных обработчиков, если их много.
- После этого обновлятор вернёт блокировку сеансов базы и блокировку регламентных заданий, если они были установлены до этого.
При таком варианте выполнения обработчиков обновления - отчёт в этой части будет подробным, даже если вы не включили режим отладки.
Учтите, что отложенные обработчики могут выполняться и 5 минут и 2 часа. И это нормально и зависит от обновления и размера вашей базы. Ещё раз обратите внимание на возможность ускорения выполнения отложенных обработчиков путём изменения расписания запуска регламентного задания "Отложенное обновление ИБ". По умолчанию оно запускается один раз в минуту, выполняет один обработчик и делает паузу ещё на минуту. И если у вас 60 отложенных обработчиков, то этот процесс будет длиться уже 2 часа, хотя его можно прогнать за 20 минут, если настроить запуск регламентного задания, скажем, каждые 10 секунд без паузы.
Если вы захотите прервать ожидания выполнения отложенных обработчиков, то нажмите кнопку "Остановить всё" и дожидайтесь пока обновлятор сам прервёт ожидание.
В противном случае вам нужно будет самому зайти в диспетчер задач и завершить процесс с именем Connector1Cx86.exe или Connector1Cx64.exe. И далее самому проконтролировать в каком состоянии блокировки осталась база и её регламентные задания.
Если в отчёте начала появляться фраза "Ожидание выполнения отложенных обработчиков не требуется", значит вы дошли до версии конфигурации, когда выполнение отложенных обработчиков стало возможно в основном цикле обновления. В этом случае следует отключить особый режим выполнения обработчиков.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
При обновлении измененных конфигураций на БСП (УТ11, КА2 и т.д.) может возникать проблема, когда некоторые дополнительные процедуры обработки данных, выполняемые в режиме «1С:Предприятие» уже после обновления в конфигураторе завершаются с ошибкой, или не завершаются по другим причинам.
При этом, при обновлении на последующие релизы, могут возникать ошибки, приводящие к невозможности выполнить дополнительные процедуры обработки данных, и, соответственно, к невозможности завершить обновление.
Вот пример такой ошибки, которая возникла в подобном случае:
На рисунках ниже приведены примеры, когда при обновлении на предыдущий релиз не были завершены все дополнительные процедуры обработки данных, которые попытались завершится при обновлении на текущий релиз. Однако же в текущем релизе выполнение некоторых процедур может быть не предусмотрено, что и приводит к ошибке.
Эти процедуры в конфигурациях на БСП можно увидеть в разделе «НСИ и Администрирование — Поддержка и обслуживание — Результаты обновления программы».
При этом ручной запуск процедур, которые не были выполнены при обновлении ни к чему не приводит, они так же завершаются с ошибкой, либо остаются в состоянии «Выполняется».
Как видно из рисунков, ошибка возникает при попытке вызвать процедуру «ЗаполнитьДанныеПервичныхДокументовДанныеДляОбновления», которая отсутствует в процедурах обновления на текущий релиз и должна была быть выполнена при обновлении на предыдущий релиз. Очевидное решение: удалить эти процедуры из списка, все равно база рабочая и каких-либо проблем из-за их невыполнения не наблюдается.
Вся информация, представленная на рисунке выше хранится всего лишь в одной константе с типом значения «ХранилищеЗначения», в котором хранится целая структура с различными данными, в том числе и таблица значений со списком и статусами процедур дополнительной обработки данных. В нашем случае самым простым решением будет очистить эту константу, записав в хранилище значения «Неопределено».
Написав маленькую обработку всего с одной формой и командой с одной инструкцией:
Список дополнительных процедур обработки данных очистился и нам удалось осуществить обновление на следующий релиз вплоть до последнего. Следует обратить внимание, что обработку следует запускать ДО непосредственного обновления, т.е. на старом релизе.
При обновлении на следующий релиз структура данных, хранимых в константе «СведенияОбОбновленииИБ» восстанавливается. Так же туда записывается список всех выполненных дополнительных процедур обработки данных при обновлении на каждый релиз.
Таким образом, очистив константу, содержащую сведения об обновлении информационной базы, при обновлении на следующий релиз не будут выполнятся невыполненные процедуры предыдущего релиза.
P.S. Следует отметить, что такое подход сработает, при невыполнении нескольких процедур постобработки из многих и при рабочем состоянии базы до обновления. Если выполнено 3 процедуры из 100, то следует детально анализировать причины. За этот постскриптум спасибо пользователю rjhev korum за его комментарий
При переводе конфигурации ERP на новую редакцию столкнулся с проблемой. После запуска в режиме предприятия система ругалась на отсутствие некоторых модулей. Как оказалось, проблема заключалась в том, что в предыдущих версиях накопились отложенные процедуры обработки дополнительных данных, но, к сожалению, они находились в "повисшем" состоянии. Ниже опишу, как их можно "насильно" выполнить. Может быть, кому-то пригодится и сэкономит время.
Если режим работы клиент-серверный, то, может быть, дело в том, что запрещено выполнение регламентных заданий. Для проверки необходимо зайти в администрирование серверов 1С, найти Вашу базу, попасть в ее свойства и убедиться, что галочка напротив опции «Блокировка регламентных заданий включена» снята.
Теперь о том, как вручную выполнить «зависшие» обработки
- Открыть ИБ в режиме предприятия
- Перейтив в подсистему Администирование
- Выбрать ссылку поддержка и обслуживание
- Открыть регламентные и фоновые задания
- Найти задание «Отложенное обновление ИБ»
- Выполнить его столько раз, сколько у Вас повисших процедур
Надеюсь, сэкономлю кому-нибудь немного времени.
Related Posts
10 Comments
Спасибо. Возьму на заметку.
перепечатали стандартную статью…))
— А если этих заданий там нету тогда что!?
(2) webresurs, Значит проблема, скорее всего, не в заданиях.
У меня после перехода с УТ 11.1 на УТ 11.2 в клиент-серверном режиме в фоне крутилось больше сотни обработок, и невозможно было обновляться дальше без ожидания их завершения, потому что в следующих релизах эти обработки просто удаляются из модулей! А ты ловишь кучу ошибок «Процедура не найдена. Завершить работу» и приходится откатываться назад. При чем то, что эти обработки в фоне крутятся, можно узнать лишь добравшись через кучу пунктов меню в почти секретное окно результатов обновления, и никак не рассчитать когда это все завершится — через несколько минут или суток. Сидите ждите, и ничего, что вам еще нужно с пяток релизов поставить и работать — куча никому не понятных операций важнее.
Кстати, в файловом режиме обработки обновления не крутятся в фоне, а выполняются все при запуске, поэтому там более явно видно, выполнились все обработки или их выполнение еще идет. Хотя когда запуск базы превращается в 20-часовое ожидание тоже не особо приятно.
Кто вообще это придумал — удалять процедуры и функции в следующем релизе? Кому он мешает? При чем без них база просто не запускается! Хотел бы я знать этого «героя», чтобы сказать спасибо за абсолютно дурацки процесс обновления!
К тому же одна обработка завершалась с ошибкой, типа «не удалось выполнить». Теперь висит в списке, выполнится не может, из-за нее другие обработки тоже висят со статусом «Выполнено» из из списка не удаляются. Список вообще никак не управляется, статус сменить нельзя, и убрать это надоедливое окно «обновление не выполнено» при каждом запуске базы каждого пользователя невозможно. Наверное придумывали под девизом «Все для пользователя».
Извините, накипело. Ну хоть кто-то будет предупрежден и не попадется на те же грабли.
Что делать с обработками если откатиться не можешь? а рекомендации выше не помогли? есть ли внятная инструкция, как эти обработки выполнить, отключить?
После основного обновления любой типовой конфигурации 1С например «Бухгалтерия государственного учреждения», запускается специальная обработка «Результаты обновления программы» в которой происходит дополнительная обработка данных, это фоновое обновление ИБ, которое может выполняться очень долго. По хорошему во время выполнения этой процедуры лучше с базой ничего не делать, да и к тому же самой обработкой доступ к некоторым данным будет ограничен. Не редко это процесс зависает, либо выполняется ну очень долго, например, Я ждал больше двух суток, но в строке состояния так и стоял «Выполнено 0 из 22». Ускорить его кончено же можно, сейчас расскажу как.
Очень долго выполняются дополнительные процедуры обработки данных
Добраться до обработки «Результаты обновления программы» можно через раздел «Администрирование» и подраздел «Обслуживание».
Далее раскрываем список «Обновление программы» и выбираем пункт «Результаты обновления и дополнительная обработка данных».
В открывшемся окне отобразиться текущие состояние.
Ускорить дополнительную обработку данных можно запустив в ручную отвечающие за это фоновое задание. Для этого открываем раздел «Регламентные операции» и выбираем пункт «Регламентные и фоновые задания».
В открывшемся окне ищем задание с названием «Отложенное обновление ИБ» и запускаем его.
Задание лучше запускать когда в базе никто не работает. В этом случае все выполниться гораздо быстрей, и не будет жалоб от пользователей на медленную работу ИБ.
После обновлении конфигурации появляются ошибки в виде не выполненных фоновых заданий. Они возникают по разным причинам, в том числе и в следствие отключения регламентных задач. Эти ошибки не дают правильно обновить типовые конфигурации из-за очередности этих задач.
Т.е. после очередного обновления, может так стать, что обновление не произведет следующих задач, появившихся с новым релизом.
Данная обработка помогает сменить статус на "Выполнено" на заданиях с ошибкой. Тем самым дать возможность выполнения следующих задач для нового релиза.
Тестировалась на ЗУП 3.0 и БП 3.0.
Специальные предложения
Что хорошего в том чтобы отметить невыполненное задание как выполненное? Если произошел сбой фонового задания при отложенном обновлении его всегда можно и нужно перезапустить вручную. А по тем заданиям , которые заканчиваются с реальными ошибками нужно как минимум разобраться критичны ли они для Вашей конфигурации и базы. Не очень корректно двигатся к следующему релизу , оставляя позади "грязь"
Поясню. У меня случилась такая ситуация: когда релиз уже был обновлен, общего модуля с такой функцией как в задании не было. Даже на скриншоте видно эту ошибку. А при обновлении выходила критическая ошибка, после того как жмешь галочку соглашаясь с легальностью копии 1с - сеанс просто вываливался. Произошло из-за того, что перед обновлением я просто не обратил внимания на выполненость всех заданий. База была файловая. Фоновые задачи автоматом не успели выполнится. Причем мне не было известно в каком релизе данная функция исчезает. Когда много баз становишься забывчивым :)
Что-то не работает обработка ((.
Платформа 8.3.7.1873 ЗУП 3.0.23.156.
При выполнении обработки вываливается окошко "Поле объекта не обнаружено (ПланОтложенногоОбновления)". Фоновая обработка обновления из формы "Дополнительных процедур обработки данных" с ошибкой так и остается висеть в списке (.Запустил отладчик с остановкой по ошибке, посмотрел где ошибка, разрешил изменение конфы, добавил Исключение в код с ошибкой, произвел выполнение процедуры с ошибкой - она выполнилась, поставил конфу не поддержку. Столько гемора от сырости нового механизма обновления. Кто то из пользователей проигнорировал окно, предупреждающее о незавершенности обновлений предыдущего релиза и вся база оказалась под вопросом. А обработка ЭТА не понадобилась. Да и не работает она.
Просмотры 11370
Загрузки 13
Рейтинг 4
Создание 28.01.16 12:10
Обновление 28.01.16 12:10
№ Публикации 449557
Операционная система Windows
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Не указано
См. также
Навигатор по конфигурации базы 1С 8.3 Промо
Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.87 от 02.12.2021
3 стартмани
28.10.2018 49703 448 ROL32 72
Сравнение реквизитов двух объектов (УФ)
Сравнивает реквизиты двух однотипных объектов (например, 2 расходные накладные, 2 типа цен), подсвечивает различия.
1 стартмани
01.04.2022 878 3 serko8547 11
Структура таблиц ИБД с генератором view для MS SQL
Структура таблиц ИБД с генератором view для MS SQL. Подходит для любой конфигурации с режимом управляемого приложения. Вишенка на торте: view перечисления содержит имя и синоним.
1 стартмани
30.12.2021 2013 17 vladimirkr 5
Запуск в фоне процедуры модуля внешней обработки на управляемых формах без БСП
Пример самописной конфигурации без БСП с запуском в фоне процедуры из модуля внешней обработки и индикатором выполнения на управляемых формах.
1 стартмани
20.09.2021 2403 9 user1472448 0
Консоль запросов с графом (Анализатор сложных запросов) Промо
Консоль запросов для анализа запросов с большим количеством временных таблиц и вложенных запросов. Отображает структуру взаимосвязей временных таблиц в виде графа. Позволяет быстро передвигаться по тексту запроса и получать результат выполнения подзапросов. Единственная консоль запросов, которая позволяет выводить результат выполнения вложенных запросов и любой части объединения запроса. Удобное получение данных запроса из отладчика включая временные таблицы. Текст запроса в структурированном виде (можно свернуть, развернуть текст подзапроса). И еще много другого, чего вы не найдете в других консолях запросов. Поддержка УФ и ОФ. Версия 0.9.1 от 18.10.2019 (поддержка WebKit).
10 стартмани
03.05.2017 109430 513 manuel 294
Выборочная очистка кеша
Очистка кеша выбранных информационных баз
1 стартмани
13.09.2021 2269 11 QZet 3
Шаблоны кода (управляемые формы)
Шаблоны кода на управляемых формах.
1 стартмани
22.05.2021 6292 17 Rustig 21
Вспомогательный инструмент для быстрого просмотра объектов метаданных и ролей
Просмотр содержимого объектов, движений, регистров, констант и прочего. Анализ роли по объектам доступа и наоборот объекта по ролям доступа. Интуитивно понятный интерфейс, универсальный (под любую, даже самописную базу), под обычные и управляемые приложения.
1 стартмани
22.04.2021 4785 13 user802597 1
Markdown-editor в 1С (с сохранением в HTML) Промо
В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.
1 стартмани
04.07.2019 15014 23 riposte 6
Свойства общих модулей
Надоело каждый раз искать, какие общие модули глобальные? какие повторно используемые? хочется взглянуть на все контексты выполнения?
1 стартмани
14.04.2021 4136 4 kuzyara 5
Автоматизированная очистка нетиповой конфигурации от //
1 стартмани
02.02.2021 4300 2 nemec 0
Консоль текстов модулей для управляемых форм
Обработка предназначена для выполнения произвольного кода в режиме 1С:Предприятие для управляемых форм. Поддерживаются: конструктор запросов, расцветка кода, синтаксические подсказки, параметры, дерево текстов и запись в файл. Минимальная версия платформы - 8.3.14.1565.
1 стартмани
26.01.2021 5872 24 Reaper_1C 2
Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка) Промо
Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка
5 стартмани
14.08.2018 135582 3171 Evg-Lylyk 771
Сравнение функций/процедур из расширения с функциями/процедурами из конфигурации
Обработка облегчает обновление функций/процедур в расширении, которые используют аннотацию &Вместо.
1 стартмани
18.01.2021 3893 5 Wilka 1
Консоль заданий с диаграммой Ганта (управляемые формы)
Консоль позволяет администратору оценить загруженность (или наоборот недогруженность) задания, визуально оценив время его выполнения. Оптимально подобрать период выполнения заданий.
1 стартмани
15.12.2020 3075 17 Victor29reg 3
Работа с сериализатором XDTO
Отладочное расширение для просмотра объектов, преобразованных в XML, с помощью сериализатора XDTO, а также для выгрузки в xml.
1 стартмани
06.12.2020 4523 4 simon_sidoruk 5
Заполняем по шаблону (по умолчанию) Промо
Простой в подключении, универсальный и достаточно удобный механизм заполнения реквизитов произвольных документов/справочников значениями по умолчанию. Реализован в расширении, но может быть и непосредственно включен практически в любую конфигурацию на управляемых формах простым копированием одной формы и двух команд. Весь код в статье.
1 стартмани
08.02.2018 37947 21 mvxyz 17
История данных (Версионирование данных). Обычные и управляемые формы. Механизм платформы 1С
История данных - специальный механизм платформы 1С, который позволяет хранить в базе данных данные объектов конфигурации.
1 стартмани
30.09.2020 7837 60 yuryshestakov 2
Отладчик запроса 1С 8.3 (управляемые формы), бета-версия
По просьбам некоторых своих коллег и пользователей Инфостарта, выкладываю первую версию обработки "Отладчик запросов by Акулов А.С.", переделанной под управляемые формы. Реализованы почти все возможности из отладчика запросов, которые присутствовали в версии под обычные формы, а также добавлено немного нового.
Читайте также: