Исправление и восстановление конфигурации 1С 8.3

· 9 мин

Содержание

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

Самый частый сценарий такой. Для файловой базы запускаете chdbfl.exe из каталога платформы — она проверяет физическую целостность файла 1Cv8.1CD. Для любой базы открываете Конфигуратор и идёте в Администрирование → Тестирование и исправление. Но прежде чем нажимать кнопки, нужно понять, что именно повреждено — лечение у разных поломок разное.

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

Перед любым исправлением сделайте резервную копию: для файловой базы — просто скопируйте папку с 1Cv8.1CD, для серверной — бэкап средствами СУБД или выгрузку в .dt (Администрирование → Выгрузить информационную базу). Все операции ниже проводятся в монопольном режиме — пользователи должны выйти из базы.

С чего начать: что именно повреждено

Слово «конфигурация» в 1С означает три разные вещи, и путать их нельзя:

  • 🗂 Конфигурация базы данных — то, по чему реально работают пользователи.
  • ✏️ Основная конфигурация — редактируемая копия в Конфигураторе (её меняют при доработке).
  • 💾 Сам файл базы (1Cv8.1CD или таблицы СУБД) — хранилище данных.

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

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

Если точно не ясно, с чего начать, идите по возрастанию риска: сначала chdbfl.exe и тестирование без исправления (только диагностика), затем — исправление, и лишь в крайнем случае ручное вмешательство в структуру.

Тестирование и исправление: штатный ремонт базы

Это основной инструмент. Запускается в Конфигураторе: Администрирование → Тестирование и исправление. Для файловой базы физическую целостность отдельно проверяет утилита chdbfl.exe из каталога bin платформы (например, C:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe).

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

Порядок для файловой базы через chdbfl.exe:

  1. Закройте базу у всех пользователей.
  2. Запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD.
  3. Сначала запустите без флажка «Исправлять обнаруженные ошибки» — посмотрите отчёт.
  4. Если ошибки есть — поставьте флажок и запустите повторно.

Порядок через Конфигуратор (годится и для файловой, и для серверной базы):

  1. Откройте Администрирование → Тестирование и исправление.
  2. Отметьте нужные проверки — по умолчанию достаточно реиндексации таблиц, проверки логической целостности и проверки ссылочной целостности.
  3. Выберите режим: сначала «Только тестирование», чтобы увидеть список проблем без изменений.
  4. Разберитесь, что программа предлагает сделать с найденными проблемами, и только потом переключайте на «Тестирование и исправление».

Какие проверки за что отвечают:

ПроверкаЧто делаетКогда включать
Реиндексация таблицПерестраивает индексыТормоза, ошибки выборки
Проверка логической целостностиИщет битые внутренние структурыБаза не открывается, странные сбои
Проверка ссылочной целостностиНаходит «висячие» ссылки на удалённые объектыОшибки при проведении, битые ссылки
Пересчёт итоговПриводит итоги регистров в соответствие движениямНеверные остатки и обороты
Реструктуризация таблицПересоздаёт таблицы под текущую структуруПосле сбоя обновления

Для ссылочной целостности программа спросит, что делать с проблемными объектами: создавать недостающие, удалять ссылки или не изменять. На рабочей базе осторожнее всего вариант «не изменять» — он только фиксирует проблемы в отчёте, ничего не ломая.

Тестирование и исправление можно запускать и в пакетном режиме, из планировщика задач — через запуск платформы в режиме DESIGNER с ключом /IBCheckAndRepair. Это удобно для регламентной ночной проверки крупной базы. Точный набор параметров проверок смотрите в документации по пакетному запуску — не задавайте ключи наугад.

Откат изменений и возврат к конфигурации базы данных

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

Отменить незавершённые правки: Конфигурация → Конфигурация базы данных → Вернуться к конфигурации базы данных. Основная конфигурация откатится к той, по которой сейчас работает база. Это безопасный шаг: учётные данные не затрагиваются.

Обратная операция — применить готовые изменения: Конфигурация → Конфигурация базы данных → Обновить конфигурацию базы данных или клавиша F7. Если менялась структура (добавлены реквизиты, измерения, таблицы), платформа запустит реструктуризацию и на этот момент потребует монопольный доступ.

Если нужно вернуть типовую конфигурацию в исходный вид после неудачных правок, используйте сравнение с конфигурацией поставщика: Конфигурация → Поддержка → Настройка поддержки, затем сравнение и объединение с конфигурацией поставщика. Так вы вернёте изменённые объекты к эталону выборочно, а не целиком.

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

Если конфигурация не обновляется: разбираем конфликты

Отдельный класс поломок — ошибки при обновлении типовой конфигурации (например, БП 3.0 или ЗУП 3.1) на новый релиз. Платформа объединяет конфигурацию поставщика с вашей через механизм сравнения и объединения, и на дважды изменённых объектах возникают конфликты.

Что делать по шагам:

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

Частая ошибка «Не удалось обновить конфигурацию базы данных» возникает, когда во время реструктуризации в базе остался активный сеанс. Решение: убедиться, что база открыта монопольно, и повторить F7.

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

Если дорабатываете типовую конфигурацию , снимать её с поддержки ради мелкой правки не обязательно. С версии платформы 8.3.6 для этого есть расширения конфигурации — отдельный объект, который не ломает механизм обновления. Загружается через Конфигурация → Расширения конфигурации; после загрузки .cfe отдельным шагом выполняется Обновить конфигурацию базы данных.

Восстановление повреждённых данных и итогов

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

Сначала разберитесь, это повреждение или просто сбитые итоги:

  • Сбитые итоги (остатки не сходятся с движениями) лечатся пересчётом. В Конфигураторе — флажок «Пересчёт итогов» в тестировании и исправлении. В режиме 1С:Предприятие у типовых конфигураций есть Операции → Управление итогами (или аналогичный пункт в разделе администрирования).
  • Битые ссылки (объект ссылается на удалённый элемент) находит проверка ссылочной целостности.
  • Логические повреждения внутренних таблиц — проверка логической целостности.

Порядок на практике: сделайте копию базы , прогоните на ней тестирование в режиме «Только тестирование», изучите отчёт. Если проблем немного и они понятны — повторите с исправлением уже на рабочей базе (в монопольном режиме, с бэкапом).

Вариант «удалять ссылки» при проверке ссылочной целостности физически вычищает связи на несуществующие объекты. Это необратимо. На рабочей базе используйте его, только когда точно знаете, что удаляемые ссылки — мусор.

Хранилище конфигурации: откат версий и разблокировка объектов

Если конфигурацию дорабатывает команда, она ведётся в хранилище конфигурации (Администрирование → Хранилище конфигурации). Здесь свои поломки — и свои способы их исправить.

Типичные ситуации:

  • 🔒 Объект захвачен, но разработчик недоступен. Администратор хранилища принудительно отменяет захват: в окне хранилища выберите объект и отмените захват от имени администратора. Несохранённые правки этого объекта пропадут — предупредите коллегу.
  • ↩️ Нужно откатиться на предыдущую версию. В истории хранилища видны все помещённые версии; можно получить конфигурацию на нужную версию и залить в базу.
  • 🔌 Рассинхронизация базы и хранилища. Повторно подключите базу к хранилищу и обновите конфигурацию до актуальной версии.

Не пересоздавайте хранилище и не отключайте от него базу «чтобы само починилось» — потеряете историю версий. Сначала разберитесь с конкретной версией и захватами.

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

Как не доводить до ремонта

Большинство «исправлений конфигурации» — это уборка за тем, что можно было не ломать. Минимальная гигиена:

Профилактика повреждений конфигурации
Выполнено: 0 / 6

Отдельно про бэкапы: выгрузка .dt удобна для файловых и небольших баз, но на больших серверных базах она долгая и блокирует работу. Там надёжнее средства резервного копирования самой СУБД — они снимают копию без остановки пользователей.

Плановое тестирование и исправление (реиндексация, пересчёт итогов) раз в месяц на крупной базе держит её в тонусе и ловит проблемы до того, как они станут аварией.

Когда пора звать специалиста

Чинить самому разумно, пока понятно, что происходит. Передавайте задачу специалисту, если:

  • База не открывается и chdbfl.exe / тестирование сообщают о неисправимых ошибках — вероятно повреждение на уровне СУБД, нужен доступ к серверу баз данных.
  • Ошибки в журнале регистрации указывают на сбой оборудования или дисковой подсистемы.
  • Повреждение возникло после аварийного отключения сервера и затронуло таблицы СУБД.
  • Доработанная конфигурация после обновления ведёт себя непредсказуемо, а причину по отчётам найти не удаётся.

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

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

Чем отличается `chdbfl.exe` от тестирования и исправления в Конфигураторе?
chdbfl.exe проверяет только физическую целостность файла 1Cv8.1CD файловой базы и работает без запуска Конфигуратора. Тестирование и исправление в Конфигураторе проверяет логическую и ссылочную целостность данных, перестраивает индексы и итоги — это более глубокая проверка, доступная и для серверных баз.
Потеряю ли я данные при тестировании и исправлении?
Сами проверки данные не удаляют. Риск только в вариантах «удалять ссылки» при ссылочной целостности и в ручной загрузке .cf. Поэтому перед исправлением делают резервную копию, а спорные проверки сначала прогоняют в режиме «Только тестирование».
Можно ли исправить конфигурацию, пока люди работают в базе?
Диагностику (тестирование без исправления) — частично можно, но реструктуризация, chdbfl.exe, пересчёт итогов и загрузка конфигурации требуют монопольного доступа. Пользователи должны выйти, иначе операция прервётся с ошибкой.
Что делать, если при обновлении завис объект «дважды изменён»?
Это не поломка, а конфликт: объект правили и вы, и поставщик. В окне объединения выберите по такому объекту, чью версию оставить, или объедините изменения вручную. После этого выполните Обновить конфигурацию базы данных (F7).
Как вернуть типовую конфигурацию в исходный вид после неудачных правок?
Через сравнение с конфигурацией поставщика: Конфигурация → Поддержка → Настройка поддержки, затем объединение с конфигурацией поставщика — так вы выборочно вернёте изменённые объекты к эталону, не теряя учётные данные.