К статье
Практический материал

Администрирование · 11 мин

Как обновить конфигурацию базы данных в 1С

Как обновить конфигурацию базы данных в 1С: подготовка, бэкап, динамическое обновление, работа через конфигуратор, типичные ошибки и проверка результата.

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

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

Главное правило безопасности — резервная копия до начала работ. Прерывание реструктуризации на середине (отключение питания, разрыв соединения с сервером СУБД) способно повредить данные, и восстановление возможно только из копии.

Что происходит при обновлении конфигурации базы данных

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

Если изменения затрагивают состав таблиц — добавлены реквизиты, документы, регистры, — платформа выполняет реструктуризацию: физически перестраивает таблицы СУБД или файловой базы. Именно этот этап занимает основное время и несёт основной риск.

Подготовка: резервная копия и завершение сеансов

Перед любым обновлением сделайте резервную копию. Для файловой базы достаточно выгрузки через «Конфигуратор — Администрирование — Выгрузить информационную базу» в файл .dt либо копирования файла 1Cv8.1CD при остановленной работе. Для клиент-серверной базы надёжнее средства СУБД: backup в MS SQL, PostgreSQL или Oracle, поскольку выгрузка .dt большой базы может занять часы.

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

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

Стандартное обновление через конфигуратор

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

Порядок действий
  1. 1
    Сделайте резервную копию базы и убедитесь, что она открывается
  2. 2
    Завершите все сеансы пользователей и отключите регламентные задания
  3. 3
    Откройте конфигуратор и при необходимости загрузите обновление: «Конфигурация — Поддержка — Обновить конфигурацию» или «Загрузить конфигурацию из файла»
  4. 4
    Выполните «Конфигурация — Обновить конфигурацию базы данных» (клавиша F7)
  5. 5
    Проверьте список изменений в окне реорганизации и подтвердите кнопкой «Принять»
  6. 6
    Дождитесь окончания реструктуризации и запустите базу в режиме предприятия для выполнения обработчиков обновления

Если обновление пришло от поставщика типовой конфигурации, удобнее использовать автоматический механизм: в режиме предприятия «Администрирование — Обслуживание — Обновление версии программы» (в конфигурациях на БСП). Этот механизм сам загружает обновление и запускает обновление конфигурации базы данных, но монопольный доступ и резервная копия всё равно обязательны.

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

Динамическое обновление и обновление без остановки работы

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

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

Сравнение вариантов обновления

Монопольное обновление через конфигуратор

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

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

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

Пакетный режим конфигуратора

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

Обновление через режим предприятия (БСП)

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

Пакетный режим и обновление через командную строку

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

bash
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /F"D:\Bases\Trade" /N"Администратор" /P"пароль" /UpdateDBCfg /Out"D:\Logs\update.log" -NoTruncate

Параметр /UpdateDBCfg запускает обновление конфигурации базы данных, /Out задаёт файл журнала, по которому проверяют результат. Для клиент-серверной базы вместо /F используют /S"Сервер\ИмяБазы". Перед промышленным применением скрипт обязательно отрабатывают на копии базы.

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

Проверка результата и отложенные обработчики

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

Контрольные точки

Как проверить результат

Версия конфигурации в разделе «О программе»
Норма

Соответствует установленному релизу поставщика

Тревожный признак

Версия старая — обновление метаданных не применилось

Статус обновления данных (Администрирование — Результаты обновления)
Норма

Все обработчики завершены, отложенные выполнены или выполняются без ошибок

Тревожный признак

Обработчики с ошибками, обновление приостановлено

Журнал регистрации за период обновления
Норма

Нет массовых ошибок реструктуризации и обработчиков

Тревожный признак

Ошибки вида «Ошибка при вызове метода контекста» в обработчиках обновления

Ключевые операции: проведение документов, отчёты
Норма

Работают без ошибок на реальных данных

Тревожный признак

Ошибки обращения к новым реквизитам или отсутствующим объектам

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

Типичные ошибки и способы их решения

Самая частая проблема — сообщение «Конфигурация базы данных не соответствует сохранённой конфигурации» при входе пользователя. Оно означает, что основная конфигурация обновлена, а конфигурация базы данных — нет. Решение: зайти в конфигуратор и выполнить обновление конфигурации базы данных.

Вторая группа проблем связана с невозможностью установить монопольный режим: мешают зависшие сеансы, фоновые задания или открытые соединения. В клиент-серверном варианте сеансы удаляют через консоль кластера, в файловом — проверяют, не остались ли запущенные процессы 1cv8.exe на компьютерах пользователей и сервере.

Типичные ошибки
01
Обновление без резервной копии — при сбое реструктуризации данные теряются безвозвратно
02
Пропуск промежуточных релизов при ручном обновлении — обработчики обновления рассчитаны на последовательный переход и могут отработать с ошибками
03
Принудительное завершение «зависшего» процесса реструктуризации — приводит к повреждению таблиц
04
Забытые расширения конфигурации — после обновления расширение может стать несовместимым и отключиться, проверяйте их отдельно
05
Работа пользователей до завершения отложенных обработчиков — ошибки в документах и отчётах, которые принимают за неудачное обновление

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

Итог

Что важно запомнить

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

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

Можно ли обновить конфигурацию базы данных без конфигуратора?

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

Сколько времени занимает обновление?

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

Что делать, если обновление завершилось ошибкой реструктуризации?

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

Нужно ли обновлять конфигурацию базы данных после загрузки .cf-файла?

Да. Команды «Загрузить конфигурацию из файла» и «Обновить конфигурацию» меняют только основную конфигурацию. Чтобы изменения заработали, после них обязательно выполняется «Обновить конфигурацию базы данных» (F7). До этого момента пользователи продолжают работать на старой структуре.

Безопасно ли динамическое обновление в рабочее время?

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

Почему после обновления отключились расширения?

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