Обновление 1С сорвалось: от текста ошибки до рабочей базы

· 10 мин

Содержание

Если 1С выдаёт ошибку при обновлении, почти всегда помогает одна схема: сделать резервную копию, прочитать точный текст ошибки и поставить обновление вручную через Конфигуратор: Конфигурация → Поддержка → Обновить конфигурацию, затем Обновить конфигурацию базы данных (F7). Автоматическое обновление из пользовательского режима удобно, но при сбое оно мало что объясняет. Ручной путь показывает, на каком шаге всё ломается.

Чаще всего обновить 1С не получается по одной из четырёх причин: перепрыгнули через обязательный промежуточный релиз, стоит слишком старая платформа, в базе остались пользователи или фоновые задания, конфигурация снята с поддержки. Каждая из них лечится за 10–30 минут, если знать, куда смотреть.

Читаем текст ошибки: что он говорит о причине

Первое правило — не закрывать окно ошибки, пока текст не сохранён. Нажмите в окне сообщения кнопку подробностей, если она есть, и скопируйте весь текст или сделайте снимок экрана. Короткое «Ошибка обновления» ничего не даёт, а вторая-третья строка обычно называет причину.

Сначала определите, на каком этапе произошёл сбой. От этого зависит, где искать дальше:

  • 📥 Загрузка файла обновления. Не скачивается дистрибутив, нет связи с сервером интернет-поддержки, не подходит логин.
  • 🔀 Применение .cfu к основной конфигурации. Сообщения о поддержке, о версии, о невозможности обновить.
  • 🗄️ Обновление конфигурации базы данных. Монопольный режим, реорганизация, конфликт блокировок.
  • ⚙️ Первый запуск после обновления. Ошибки обработчиков обновления, которые программа выполняет при входе.

Типичные сообщения и что за ними стоит:

Текст ошибкиВероятная причинаЧто делать
Файл не содержит доступных обновленийФайл .cfu не умеет обновлять с вашего релизаСтавить промежуточные релизы по цепочке
Сообщение о требуемой версии платформыНовый релиз требует платформу с номером не ниже указанногоОбновить платформу, потом конфигурацию
Сообщение о невозможности установить монопольный режимВ базе есть сеансы или фоновые заданияЗаблокировать вход, завершить сеансы
Конфликт блокировок при выполнении транзакцииПараллельная работа пользователей или регламентных заданийПовторить при пустой базе
Ошибка формата потокаПовреждён кэш клиента или файл базыОчистить кэш, затем тестирование и исправление
Сообщение, что конфигурация не на поддержкеПоддержку сняли при доработкеОбновлять через сравнение и объединение с .cf

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

Диагностика: выберите симптом

Перед повторной попыткой: копия, платформа и цепочка релизов

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

Как сделать копию:

  1. Файловая база: закройте все сеансы и скопируйте каталог базы целиком (в нём лежит файл 1Cv8.1CD).
  2. Любая база: в Конфигураторе Администрирование → Выгрузить информационную базу — получится файл .dt.
  3. Клиент-сервер с большой базой: резервная копия средствами СУБД (MS SQL или PostgreSQL) быстрее и надёжнее выгрузки в .dt.

Проверьте текущую версию

Откройте Справка → О программе (кнопка с вопросительным знаком в правом верхнем углу). Там два номера:

  • 🧩 Версия конфигурации, например 3.0.xxx.xx — что сейчас стоит в базе;
  • 🖥️ Версия платформы, например 8.3.2x.xxxx — на чём база запущена.

Сверьте совместимость

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

  1. С каких версий возможно обновление. Если ваш номер не в списке, .cfu выдаст Файл не содержит доступных обновлений. Решение — поставить один или несколько промежуточных релизов. Через несколько лет простоя цепочка может состоять из 5–10 шагов.
  2. Минимальная версия платформы. Если платформа ниже, конфигурация не запустится или не обновится. Номер платформы должен быть не ниже указанного.

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

Проверьте базу до обновления

Если база давно не обслуживалась, перед обновлением полезно запустить Администрирование → Тестирование и исправление в Конфигураторе. Ошибки ссылочной целостности и битые записи часто «всплывают» именно при реорганизации. Для файловой базы есть ещё утилита chdbfl.exe из каталога bin платформы: она проверяет физическую целостность файла 1Cv8.1CD.

Тестирование и исправление тоже запускайте только после резервной копии и при монопольном доступе.

Ручное обновление конфигурации через Конфигуратор

Когда автоматическое обновление падает, ставьте файл .cfu руками. Этот способ показывает каждый шаг и даёт видеть, где именно ошибка.

Где взять файл обновления

Файл .cfu скачивают с портала обновлений по договору ИТС. После установки дистрибутива шаблоны лежат в каталоге вида:

%APPDATA%\1C\1cv8\tmplts\1c\Accounting\3_0_xxx_xx\1cv8.cfu

Имя папки продукта зависит от конфигурации: для Бухгалтерии — Accounting, для других решений своё. Путь к каталогу шаблонов можно посмотреть в окне запуска 1С, в настройках.

Пошаговая установка

  1. Заблокируйте вход пользователей и закройте их сеансы (как — в разделах ниже).
  2. Запустите базу в режиме Конфигуратор под пользователем с правами администратора.
  3. Откройте конфигурацию: Конфигурация → Открыть конфигурацию.
  4. Выберите Конфигурация → Поддержка → Обновить конфигурацию.
  5. Укажите «Выбор файла обновления» и путь к нужному 1cv8.cfu. Нажмите «Готово».
  6. Платформа проверит, подходит ли файл к текущей версии. Здесь и появляется Файл не содержит доступных обновлений, если релиз не из цепочки.
  7. Для типовой конфигурации без доработок нажмите «Выполнить» в окне сравнения.
  8. После объединения выполните Конфигурация → Обновить конфигурацию базы данных или нажмите F7.
  9. В окне «Реорганизация информации» проверьте список изменений и нажмите «Принять».
  10. Запустите базу в пользовательском режиме и дождитесь выполнения обработчиков обновления. Не прерывайте этот процесс.

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

Если конфигурация доработана

Для доработанной базы окно сравнения покажет объекты с изменениями поставщика и вашими. Здесь нужно решать по каждому объекту, чей вариант брать. Если поддержка снята полностью, .cfu не применится. Тогда используют полный дистрибутив .cf и Конфигурация → Сравнить, объединить с конфигурацией из файла.

Это работа программиста. Доработки по возможности переносят в расширения: тогда типовая часть обновляется без конфликтов, а расширение проверяют отдельно.

Журнал регистрации и технологический журнал: где искать причину

Когда текст ошибки неясен или ошибка возникла в обработчике обновления, ответ ищут в журналах.

Журнал регистрации

Открыть его можно двумя способами:

  • в пользовательском режиме: Администрирование → Обслуживание → Журнал регистрации;
  • в Конфигураторе: Администрирование → Журнал регистрации.

Как найти нужную запись:

  1. Установите отбор по периоду: время начала и окончания попытки обновления.
  2. Оставьте уровень важности «Ошибка».
  3. Откройте запись двойным щелчком. В подробностях — полный текст исключения и имя модуля или обработчика.

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

Если журнал пустой за нужный период, проверьте настройку: Администрирование → Настройка журнала регистрации в Конфигураторе. Там могло стоять «Не регистрировать».

Технологический журнал

Для трудных случаев — когда процесс падает без внятного сообщения — включают технологический журнал. Это файл настроек logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\. Минимальная настройка, которая собирает исключения:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\v8logs" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Журнал пишется в папку C:\v8logs и хранится 24 часа. После диагностики удалите logcfg.xml: журнал быстро растёт и нагружает диск.

Очистка кэша и временных файлов платформы

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

Способ 1: параметр запуска

В окне запуска выберите базу, нажмите «Изменить» и на последней странице мастера добавьте в дополнительные параметры:

/ClearCache

Или запустите из командной строки:

"C:\Program Files\1cv8\8.3.2x.xxxx\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /ClearCache

Номер версии в пути подставьте свой. После успешного входа параметр уберите.

Способ 2: удаление папок кэша вручную

  1. Закройте все окна 1С на этом компьютере.
  2. Откройте по очереди каталоги %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.
  3. Удалите папки с длинными именами вида 1a2b3c4d-... (это идентификаторы баз).
  4. Не трогайте файлы ibases.v8i и каталог tmplts: в первом список баз, во втором шаблоны обновлений.

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

Временные файлы

Система тоже держит временные файлы 1С в %TEMP%. Если на диске C остаётся меньше 1–2 ГБ, реорганизация крупной базы может упасть. Освободите место до повторного запуска.

Обновление в клиент-серверном варианте: что отличается

В клиент-серверной базе к описанным шагам добавляются сервер 1С и СУБД. Отличий четыре.

1. Блокировка сеансов через кластер

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

  1. Предупредите пользователей и назначьте время. Их сеансы будут прерваны, несохранённые данные пропадут.
  2. В консоли кластера откройте свойства информационной базы, включите «Блокировка начала сеансов включена» и задайте код разрешения.
  3. Там же включите блокировку регламентных заданий.
  4. Завершите оставшиеся сеансы в узле «Сеансы».
  5. В строку запуска Конфигуратора добавьте /UC<код>, чтобы зайти несмотря на блокировку.

В типовых конфигурациях то же самое делают из программы: Администрирование → Обслуживание → Блокировка работы пользователей.

Для консольной работы есть утилита rac: список сеансов выводит rac session list. Остальные команды и параметры смотрите в справке rac help.

2. Совпадение версий платформы

Сервер 1С и клиенты должны работать на одной версии платформы. Если релиз конфигурации требует новую платформу:

  1. Установите новую версию сервера 1С в нерабочее время.
  2. Убедитесь, что служба агента сервера запущена на новой версии.
  3. Обновите платформу на всех клиентах и терминальных серверах.
  4. Только после этого обновляйте конфигурацию.

3. Обработчики обновления и нагрузка на СУБД

Реорганизация в большой базе занимает от десятков минут до нескольких часов. Не прерывайте её: обрыв посреди реструктуризации — частая причина базы, которая не открывается. Перед стартом проверьте свободное место на сервере СУБД, включая журнал транзакций.

4. Динамическое обновление

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

Окно обслуживания: клиент-сервер
Выполнено: 0 / 6

Как не получить ошибку при следующем обновлении

Большинство сбоев при обновлении возникает из-за того, что базу долго не трогали. Простые привычки снимают почти все проблемы:

  • 📅 Обновляйте регулярно. Короткая цепочка релизов — меньше шансов споткнуться на промежуточном шаге.
  • 🧪 Проверяйте на копии. Разверните копию рабочей базы и прогоните обновление на ней. Если прошло без ошибок — повторяйте на рабочей.
  • 🧩 Держите доработки в расширениях. Типовая конфигурация остаётся на поддержке и обновляется из .cfu без ручного объединения.
  • 🖥️ Следите за платформой. Обновляйте её заранее, до выхода релиза, который её требует.
  • 🧹 Обслуживайте базу. Тестирование и исправление раз в квартал на копии показывает проблемы данных до того, как их найдёт обработчик обновления.

Частые вопросы

Можно ли откатить обновление, если после него всё сломалось?
Да, только из резервной копии. Встроенного отката нет: восстановите каталог базы, загрузите .dt или верните копию из СУБД.
Почему обновление прошло, а при входе висит окно «Обновление версии программы»?
Выполняются обработчики обновления. На большой базе это занимает время. Часть из них работает в фоне уже после входа, отменять их не нужно.
Можно ли пропустить промежуточный релиз, если он не нужен?
Нет, если вашей версии нет в списке «обновление возможно с версий». Платформа не применит .cfu, пока не поставлены промежуточные шаги.
Обновление прервалось из-за отключения света. Что делать?
Попробуйте открыть Конфигуратор и снова выполнить F7. Если база не открывается или выдаёт ошибки структуры — восстанавливайте из копии, сделанной до обновления.
Нужно ли переустанавливать платформу, если ошибка повторяется?
Только когда ошибка воспроизводится на всех базах этого компьютера или релиз требует новую версию. Иначе сначала очистите кэш и проверьте базу.