Обновление 1С сорвалось: от текста ошибки до рабочей базы
Содержание
Если 1С выдаёт ошибку при обновлении, почти всегда помогает одна схема: сделать резервную копию, прочитать точный текст ошибки и поставить обновление вручную через Конфигуратор: Конфигурация → Поддержка → Обновить конфигурацию, затем Обновить конфигурацию базы данных (F7). Автоматическое обновление
из пользовательского режима удобно, но при сбое оно мало что объясняет. Ручной путь показывает, на каком шаге всё ломается.
Чаще всего обновить 1С не получается по одной из четырёх причин: перепрыгнули через обязательный промежуточный релиз, стоит слишком старая платформа, в базе остались пользователи или фоновые задания, конфигурация снята с поддержки. Каждая из них лечится за 10–30 минут, если знать, куда смотреть.
Читаем текст ошибки: что он говорит о причине
Первое правило — не закрывать окно ошибки, пока текст не сохранён. Нажмите в окне сообщения кнопку подробностей, если она есть, и скопируйте весь текст или сделайте снимок экрана. Короткое «Ошибка обновления» ничего не даёт, а вторая-третья строка обычно называет причину.
Сначала определите, на каком этапе произошёл сбой. От этого зависит, где искать дальше:
- 📥 Загрузка файла обновления. Не скачивается дистрибутив, нет связи с сервером интернет-поддержки, не подходит логин.
- 🔀 Применение .cfu к основной конфигурации. Сообщения о поддержке, о версии, о невозможности обновить.
- 🗄️ Обновление конфигурации базы данных. Монопольный режим, реорганизация, конфликт блокировок.
- ⚙️ Первый запуск после обновления. Ошибки обработчиков обновления, которые программа выполняет при входе.
Типичные сообщения и что за ними стоит:
| Текст ошибки | Вероятная причина | Что делать |
|---|---|---|
Файл не содержит доступных обновлений | Файл .cfu не умеет обновлять с вашего релиза | Ставить промежуточные релизы по цепочке |
| Сообщение о требуемой версии платформы | Новый релиз требует платформу с номером не ниже указанного | Обновить платформу, потом конфигурацию |
| Сообщение о невозможности установить монопольный режим | В базе есть сеансы или фоновые задания | Заблокировать вход, завершить сеансы |
Конфликт блокировок при выполнении транзакции | Параллельная работа пользователей или регламентных заданий | Повторить при пустой базе |
Ошибка формата потока | Повреждён кэш клиента или файл базы | Очистить кэш, затем тестирование и исправление |
| Сообщение, что конфигурация не на поддержке | Поддержку сняли при доработке | Обновлять через сравнение и объединение с .cf |
Если ошибка возникла при первом входе после обновления, базу уже обновили. Повторно ставить .cfu не нужно. Разбирайтесь с обработчиками обновления через журнал регистрации (см. ниже).
Перед повторной попыткой: копия, платформа и цепочка релизов
Сделайте резервную копию до любого повторного действия. Сбойное обновление могло оставить базу в промежуточном состоянии. Без копии следующая ошибка может стать последней.
Как сделать копию:
- Файловая база: закройте все сеансы и скопируйте каталог базы целиком (в нём лежит файл
1Cv8.1CD). - Любая база: в Конфигураторе
Администрирование → Выгрузить информационную базу— получится файл .dt. - Клиент-сервер с большой базой: резервная копия средствами СУБД (MS SQL или PostgreSQL) быстрее и надёжнее выгрузки в .dt.
Проверьте текущую версию
Откройте Справка → О программе (кнопка с вопросительным знаком в правом верхнем углу). Там два номера:
- 🧩 Версия конфигурации, например 3.0.xxx.xx — что сейчас стоит в базе;
- 🖥️ Версия платформы, например 8.3.2x.xxxx — на чём база запущена.
Сверьте совместимость
К каждому релизу конфигурации прилагается описание. В нём две вещи, без которых обновлять бессмысленно:
- С каких версий возможно обновление. Если ваш номер не в списке, .cfu выдаст
Файл не содержит доступных обновлений. Решение — поставить один или несколько промежуточных релизов. Через несколько лет простоя цепочка может состоять из 5–10 шагов. - Минимальная версия платформы. Если платформа ниже, конфигурация не запустится или не обновится. Номер платформы должен быть не ниже указанного.
Не меняйте платформу на клиент-сервере «на ходу». Версии сервера 1С и клиентов должны совпадать, иначе пользователи не подключатся. Ставьте новую версию в нерабочее время.
Проверьте базу до обновления
Если база давно не обслуживалась, перед обновлением полезно запустить Администрирование → Тестирование и исправление в Конфигураторе. Ошибки ссылочной целостности и битые записи часто «всплывают» именно при реорганизации. Для файловой базы есть ещё утилита chdbfl.exe из каталога bin платформы: она проверяет физическую целостность файла 1Cv8.1CD.
Тестирование и исправление тоже запускайте только после резервной копии и при монопольном доступе.
Ручное обновление конфигурации через Конфигуратор
Когда автоматическое обновление падает, ставьте файл .cfu руками. Этот способ показывает каждый шаг и даёт видеть, где именно ошибка.
Где взять файл обновления
Файл .cfu скачивают с портала обновлений по договору ИТС. После установки дистрибутива шаблоны лежат в каталоге вида:
%APPDATA%\1C\1cv8\tmplts\1c\Accounting\3_0_xxx_xx\1cv8.cfu
Имя папки продукта зависит от конфигурации: для Бухгалтерии — Accounting, для других решений своё. Путь к каталогу шаблонов можно посмотреть в окне запуска 1С, в настройках.
Пошаговая установка
- Заблокируйте вход пользователей и закройте их сеансы (как — в разделах ниже).
- Запустите базу в режиме Конфигуратор под пользователем с правами администратора.
- Откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - Выберите
Конфигурация → Поддержка → Обновить конфигурацию. - Укажите «Выбор файла обновления» и путь к нужному
1cv8.cfu. Нажмите «Готово». - Платформа проверит, подходит ли файл к текущей версии. Здесь и появляется
Файл не содержит доступных обновлений, если релиз не из цепочки. - Для типовой конфигурации без доработок нажмите «Выполнить» в окне сравнения.
- После объединения выполните
Конфигурация → Обновить конфигурацию базы данныхили нажмите F7. - В окне «Реорганизация информации» проверьте список изменений и нажмите «Принять».
- Запустите базу в пользовательском режиме и дождитесь выполнения обработчиков обновления. Не прерывайте этот процесс.
Шаги 4–7 меняют только основную конфигурацию, шаг 8 переносит изменения в базу данных. Если ошибка возникла на шаге 8, в основной конфигурации уже новый релиз. Повторите F7 после устранения причины, а не всю процедуру.
Если конфигурация доработана
Для доработанной базы окно сравнения покажет объекты с изменениями поставщика и вашими. Здесь нужно решать по каждому объекту, чей вариант брать. Если поддержка снята полностью, .cfu не применится. Тогда используют полный дистрибутив .cf и Конфигурация → Сравнить, объединить с конфигурацией из файла.
Это работа программиста. Доработки по возможности переносят в расширения: тогда типовая часть обновляется без конфликтов, а расширение проверяют отдельно.
Журнал регистрации и технологический журнал: где искать причину
Когда текст ошибки неясен или ошибка возникла в обработчике обновления, ответ ищут в журналах.
Журнал регистрации
Открыть его можно двумя способами:
- в пользовательском режиме:
Администрирование → Обслуживание → Журнал регистрации; - в Конфигураторе:
Администрирование → Журнал регистрации.
Как найти нужную запись:
- Установите отбор по периоду: время начала и окончания попытки обновления.
- Оставьте уровень важности «Ошибка».
- Откройте запись двойным щелчком. В подробностях — полный текст исключения и имя модуля или обработчика.
По имени обработчика уже понятно, что его сломало. Например, обработчик заполнения нового реквизита в справочнике падает на конкретном элементе с битыми данными. Такой элемент исправляют и запускают обновление снова.
Если журнал пустой за нужный период, проверьте настройку: Администрирование → Настройка журнала регистрации в Конфигураторе. Там могло стоять «Не регистрировать».
Технологический журнал
Для трудных случаев — когда процесс падает без внятного сообщения — включают технологический журнал. Это файл настроек 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С на этом компьютере.
- Откройте по очереди каталоги
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8. - Удалите папки с длинными именами вида
1a2b3c4d-...(это идентификаторы баз). - Не трогайте файлы
ibases.v8iи каталогtmplts: в первом список баз, во втором шаблоны обновлений.
Кэш восстановится при следующем входе, первый запуск будет дольше обычного.
Временные файлы
Система тоже держит временные файлы 1С в %TEMP%. Если на диске C остаётся меньше 1–2 ГБ, реорганизация крупной базы может упасть. Освободите место до повторного запуска.
Обновление в клиент-серверном варианте: что отличается
В клиент-серверной базе к описанным шагам добавляются сервер 1С и СУБД. Отличий четыре.
1. Блокировка сеансов через кластер
Для обновления структуры базы нужен монопольный доступ. Его не получить, пока в базе есть пользователи, фоновые и регламентные задания. Порядок:
- Предупредите пользователей и назначьте время. Их сеансы будут прерваны, несохранённые данные пропадут.
- В консоли кластера откройте свойства информационной базы, включите «Блокировка начала сеансов включена» и задайте код разрешения.
- Там же включите блокировку регламентных заданий.
- Завершите оставшиеся сеансы в узле «Сеансы».
- В строку запуска Конфигуратора добавьте
/UC<код>, чтобы зайти несмотря на блокировку.
В типовых конфигурациях то же самое делают из программы: Администрирование → Обслуживание → Блокировка работы пользователей.
Для консольной работы есть утилита rac: список сеансов выводит rac session list. Остальные команды и параметры смотрите в справке rac help.
2. Совпадение версий платформы
Сервер 1С и клиенты должны работать на одной версии платформы. Если релиз конфигурации требует новую платформу:
- Установите новую версию сервера 1С в нерабочее время.
- Убедитесь, что служба агента сервера запущена на новой версии.
- Обновите платформу на всех клиентах и терминальных серверах.
- Только после этого обновляйте конфигурацию.
3. Обработчики обновления и нагрузка на СУБД
Реорганизация в большой базе занимает от десятков минут до нескольких часов. Не прерывайте её: обрыв посреди реструктуризации — частая причина базы, которая не открывается. Перед стартом проверьте свободное место на сервере СУБД, включая журнал транзакций.
4. Динамическое обновление
Конфигуратор позволяет обновить базу без выгона пользователей. Для типовых релизов так делать не стоит: структура данных меняется, и сеансы на старой версии начинают выдавать ошибки. Монопольное обновление в окно обслуживания надёжнее.
Как не получить ошибку при следующем обновлении
Большинство сбоев при обновлении возникает из-за того, что базу долго не трогали. Простые привычки снимают почти все проблемы:
- 📅 Обновляйте регулярно. Короткая цепочка релизов — меньше шансов споткнуться на промежуточном шаге.
- 🧪 Проверяйте на копии. Разверните копию рабочей базы и прогоните обновление на ней. Если прошло без ошибок — повторяйте на рабочей.
- 🧩 Держите доработки в расширениях. Типовая конфигурация остаётся на поддержке и обновляется из .cfu без ручного объединения.
- 🖥️ Следите за платформой. Обновляйте её заранее, до выхода релиза, который её требует.
- 🧹 Обслуживайте базу. Тестирование и исправление раз в квартал на копии показывает проблемы данных до того, как их найдёт обработчик обновления.