Что делать, если не запускается обновление конфигурации базы данных (синий бочонок активен)

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Анализ ситуации: почему «бочонок» не срабатывает?

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

Способ 1. Проверка окружения и смена рабочего места

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

  1. Запуск на другой машине: Попробуйте зайти в Конфигуратор с другого сервера или через терминальную сессию. Это исключает влияние локальных проблем Windows, антивирусов и прав доступа к временным папкам.
  2. Очистка кэша: Самый стандартный, но эффективный совет. Необходимо удалить базу из списка и добавить ее заново, либо вручную очистить содержимое папок %AppData%\1C\1cv8\ и %LocalAppData%\1C\1cv8\.
  3. Проверка прав доступа к TEMP: Убедитесь, что у пользователя, под которым запущен Конфигуратор, есть полные права на создание и удаление файлов в системной папке временных файлов. При обновлении 1С создает там сотни промежуточных файлов метаданных.

Способ 2. Принудительная провокация реструктуризации

Иногда флаг изменения конфигурации «залипает» в базе, и 1С не видит реальной разницы между основной конфигурацией и конфигурацией БД. Нам нужно внести такое изменение, которое платформа гарантированно не сможет проигнорировать. Обычное добавление константы (как советовали в сообщении 1) помогает не всегда. Попробуем более радикальные методы:

  1. Изменение длины данных: Выберите любой справочник, не входящий в критически важные цепочки обмена. Измените длину его кода или наименования на 1 символ. Нажмите F7. Если система предложит реструктуризацию и выполнит ее — верните значение обратно и обновитесь снова.
  2. Режим совместимости: Перейдите в свойства корня конфигурации и измените параметр РежимСовместимости на один пункт выше или ниже. Внимание: это действие заставляет 1С пересчитать логику работы всей системы. Если после смены режима «бочонок» отработал, обязательно верните режим совместимости в исходное состояние и проведите финальное обновление.
  3. Изменение состава индексов: Попробуйте у любого некрупного регистра сведений или накопления изменить свойство «Индексировать» у одного из измерений. Это также инициирует пересчет физических таблиц в SQL или файловом хранилище.

Способ 3. Работа с хранилищем конфигурации

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

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

Способ 4. Исправление на уровне базы данных (SQL-вариант)

Если база работает на MS SQL Server или PostgreSQL, проблема может заключаться в «фантомных» записях в служебных таблицах. В 1С есть таблица ConfigSave, в которой хранится промежуточное состояние конфигурации перед обновлением БД.

Рассмотрим логику действий (требуются навыки администратора БД):

  1. Если Конфигуратор закрыт, а «бочонок» все равно горит при следующем запуске, это значит, что в таблице ConfigSave есть данные, которые 1С считает актуальными изменениями.
  2. Опытные специалисты иногда прибегают к очистке этой таблицы, чтобы сбросить состояние «изменено». Однако перед этим обязательно нужно выгрузить .cf файл.
  3. Также полезно выполнить команду Сравнить с конфигурацией БД. Если отчет пуст, а бочонок активен — это явный программный сбой флага, который лечится либо ТиИ, либо перезагрузкой службы сервера 1С:Предприятия.

Способ 5. Использование командной строки

Иногда графическая оболочка Конфигуратора блокирует выполнение команд из-за внутренних ошибок прорисовки или конфликтов потоков. Мы можем запустить обновление принудительно через параметры запуска. Разберем пример команды:


"C:\Program Files\1cv8\common\1cv8.exe" DESIGNER /S "ServerName\BaseName" /N "Admin" /P "Password" /UpdateDBCfg

Преимущество этого метода в том, что в случае ошибки в консоль или лог-файл будет выведено конкретное описание причины прерывания процесса, чего не всегда можно добиться в интерфейсе.

Способ 6. Тестирование и выгрузка в файлы

Если ничего из вышеперечисленного не помогло, проанализируем целостность самой структуры метаданных:

  1. Тестирование и исправление (ТиИ): Запустите процедуру с установленными флагами «Проверка логической целостности конфигурации» и «Проверка ссылочной целостности».
  2. Выгрузка в файлы XML: Воспользуйтесь функцией «Конфигурация — Выгрузить конфигурацию в файлы». Это позволяет платформе «пересобрать» объекты из внутреннего бинарного представления в текстовый формат. Если при выгрузке возникнет ошибка — вы узнаете конкретный объект, который мешает обновлению. После успешной выгрузки можно попробовать «Загрузить конфигурацию из файлов» в чистую базу.

Подведение итогов

Чаще всего проблема «активного бочонка» решается либо очисткой кэша, либо сменой рабочего места (терминала), как это произошло у автора вопроса. Если же это не помогает, используйте метод принудительной реструктуризации через изменение длины кода справочников. Помните, что любые манипуляции с конфигурацией базы данных, особенно на уровне SQL-таблиц, необходимо проводить только после создания полной резервной копии базы данных.

← На главную