Исправление и восстановление конфигурации 1С 8.3
Содержание
«Сломалась конфигурация» — и первая мысль переустановить платформу или откатиться на бэкап недельной давности, потеряв все проведённые документы. В девяти случаях из десяти этого не нужно: конфигурацию 1С 8.3 чинят штатными средствами Конфигуратора, не трогая данные.
Самый частый сценарий такой. Для файловой базы запускаете chdbfl.exe из каталога платформы — она проверяет физическую целостность файла 1Cv8.1CD. Для любой базы открываете Конфигуратор и идёте в Администрирование → Тестирование и исправление. Но прежде чем нажимать кнопки, нужно понять, что именно повреждено — лечение у разных поломок разное.
Ниже — порядок действий от безопасного к радикальному: как исправить конфигурацию 1С, вернуть её в рабочее состояние и не потерять учётные данные.
Перед любым исправлением сделайте резервную копию: для файловой базы — просто скопируйте папку с 1Cv8.1CD, для серверной — бэкап средствами СУБД или выгрузку в .dt (Администрирование → Выгрузить информационную базу). Все операции ниже проводятся в монопольном режиме — пользователи должны выйти из базы.
С чего начать: что именно повреждено
Слово «конфигурация» в 1С означает три разные вещи, и путать их нельзя:
- 🗂 Конфигурация базы данных — то, по чему реально работают пользователи.
- ✏️ Основная конфигурация — редактируемая копия в Конфигураторе (её меняют при доработке).
- 💾 Сам файл базы (
1Cv8.1CDили таблицы СУБД) — хранилище данных.
От того, что из этого сбоит, зависит способ ремонта. Сопоставьте симптом с причиной:
chdbfl.exe. Если не помогло — тестирование и исправление в Конфигураторе.chdbfl.exe.Обновить конфигурацию базы данных (F7) либо вернитесь к конфигурации БД.Если точно не ясно, с чего начать, идите по возрастанию риска: сначала chdbfl.exe и тестирование без исправления (только диагностика), затем — исправление, и лишь в крайнем случае ручное вмешательство в структуру.
Тестирование и исправление: штатный ремонт базы
Это основной инструмент. Запускается в Конфигураторе: Администрирование → Тестирование и исправление. Для файловой базы физическую целостность отдельно проверяет утилита chdbfl.exe из каталога bin платформы (например, C:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe).
Тестирование и исправление требует монопольного доступа. Все пользователи должны закрыть базу, а на сервере — завершиться фоновые задания. Планируйте процедуру на нерабочее время: на крупной базе она идёт часами.
Порядок для файловой базы через chdbfl.exe:
- Закройте базу у всех пользователей.
- Запустите
chdbfl.exe, укажите путь к файлу1Cv8.1CD. - Сначала запустите без флажка «Исправлять обнаруженные ошибки» — посмотрите отчёт.
- Если ошибки есть — поставьте флажок и запустите повторно.
Порядок через Конфигуратор (годится и для файловой, и для серверной базы):
- Откройте
Администрирование → Тестирование и исправление. - Отметьте нужные проверки — по умолчанию достаточно реиндексации таблиц, проверки логической целостности и проверки ссылочной целостности.
- Выберите режим: сначала «Только тестирование», чтобы увидеть список проблем без изменений.
- Разберитесь, что программа предлагает сделать с найденными проблемами, и только потом переключайте на «Тестирование и исправление».
Какие проверки за что отвечают:
| Проверка | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Тормоза, ошибки выборки |
| Проверка логической целостности | Ищет битые внутренние структуры | База не открывается, странные сбои |
| Проверка ссылочной целостности | Находит «висячие» ссылки на удалённые объекты | Ошибки при проведении, битые ссылки |
| Пересчёт итогов | Приводит итоги регистров в соответствие движениям | Неверные остатки и обороты |
| Реструктуризация таблиц | Пересоздаёт таблицы под текущую структуру | После сбоя обновления |
Для ссылочной целостности программа спросит, что делать с проблемными объектами: создавать недостающие, удалять ссылки или не изменять. На рабочей базе осторожнее всего вариант «не изменять» — он только фиксирует проблемы в отчёте, ничего не ломая.
Тестирование и исправление можно запускать и в пакетном режиме, из планировщика задач — через запуск платформы в режиме DESIGNER с ключом /IBCheckAndRepair. Это удобно для регламентной ночной проверки крупной базы. Точный набор параметров проверок смотрите в документации по пакетному запуску — не задавайте ключи наугад.
Откат изменений и возврат к конфигурации базы данных
Если сбой случился при доработке — изменения внесли в основную конфигурацию, но до базы они дошли криво, — верните всё назад без переустановки.
Отменить незавершённые правки: Конфигурация → Конфигурация базы данных → Вернуться к конфигурации базы данных. Основная конфигурация откатится к той, по которой сейчас работает база. Это безопасный шаг: учётные данные не затрагиваются.
Обратная операция — применить готовые изменения: Конфигурация → Конфигурация базы данных → Обновить конфигурацию базы данных или клавиша F7. Если менялась структура (добавлены реквизиты, измерения, таблицы), платформа запустит реструктуризацию и на этот момент потребует монопольный доступ.
Если нужно вернуть типовую конфигурацию в исходный вид после неудачных правок, используйте сравнение с конфигурацией поставщика: Конфигурация → Поддержка → Настройка поддержки, затем сравнение и объединение с конфигурацией поставщика. Так вы вернёте изменённые объекты к эталону выборочно, а не целиком.
Когда правок немного и вы точно знаете, какой объект испортили, иногда проще загрузить чистую конфигурацию из файла .cf: Конфигурация → Загрузить конфигурацию из файла. Загрузка .cf полностью заменяет конфигурацию — применяйте только если понимаете, что в файле актуальная версия с вашими доработками.
Если конфигурация не обновляется: разбираем конфликты
Отдельный класс поломок — ошибки при обновлении типовой конфигурации (например, БП 3.0 или ЗУП 3.1) на новый релиз. Платформа объединяет конфигурацию поставщика с вашей через механизм сравнения и объединения, и на дважды изменённых объектах возникают конфликты.
Что делать по шагам:
- Запустите обновление:
Конфигурация → Поддержка → Обновить конфигурацию. - В окне сравнения снимите или оставьте флажки на объектах — так вы решаете, чьи изменения побеждают: ваши или поставщика.
- Дважды изменённые объекты платформа помечает отдельно. По каждому выберите режим объединения: взять версию поставщика, оставить свою или объединить.
- После объединения выполните
Обновить конфигурацию базы данных(F7).
Частая ошибка «Не удалось обновить конфигурацию
базы данных» возникает, когда во время реструктуризации в базе остался активный сеанс. Решение: убедиться, что база открыта монопольно, и повторить F7.
На обновляемой базе всегда есть ещё один шаг — обработчики обновления данных. Они срабатывают не в Конфигураторе, а при первом запуске в режиме 1С:Предприятие. Не прерывайте этот процесс: часть данных перестраивается именно тогда.
Если дорабатываете типовую конфигурацию
, снимать её с поддержки ради мелкой правки не обязательно. С версии платформы 8.3.6 для этого есть расширения конфигурации
— отдельный объект, который не ломает механизм обновления. Загружается через Конфигурация → Расширения конфигурации; после загрузки .cfe отдельным шагом выполняется Обновить конфигурацию базы данных.
Восстановление повреждённых данных и итогов
Когда повреждена не структура, а сами учётные данные, симптомы специфические: документы не проводятся, в отчётах «едут» остатки, при открытии элемента справочника выскакивает ошибка.
Сначала разберитесь, это повреждение или просто сбитые итоги:
- Сбитые итоги (остатки не сходятся с движениями) лечатся пересчётом. В Конфигураторе — флажок «Пересчёт итогов» в тестировании и исправлении. В режиме 1С:Предприятие у типовых конфигураций есть
Операции → Управление итогами(или аналогичный пункт в разделе администрирования). - Битые ссылки (объект ссылается на удалённый элемент) находит проверка ссылочной целостности.
- Логические повреждения внутренних таблиц — проверка логической целостности.
Порядок на практике: сделайте копию базы , прогоните на ней тестирование в режиме «Только тестирование», изучите отчёт. Если проблем немного и они понятны — повторите с исправлением уже на рабочей базе (в монопольном режиме, с бэкапом).
Вариант «удалять ссылки» при проверке ссылочной целостности физически вычищает связи на несуществующие объекты. Это необратимо. На рабочей базе используйте его, только когда точно знаете, что удаляемые ссылки — мусор.
Хранилище конфигурации: откат версий и разблокировка объектов
Если конфигурацию дорабатывает команда, она ведётся в хранилище конфигурации (Администрирование → Хранилище конфигурации). Здесь свои поломки — и свои способы их исправить.
Типичные ситуации:
- 🔒 Объект захвачен, но разработчик недоступен. Администратор хранилища принудительно отменяет захват: в окне хранилища выберите объект и отмените захват от имени администратора. Несохранённые правки этого объекта пропадут — предупредите коллегу.
- ↩️ Нужно откатиться на предыдущую версию. В истории хранилища видны все помещённые версии; можно получить конфигурацию на нужную версию и залить в базу.
- 🔌 Рассинхронизация базы и хранилища. Повторно подключите базу к хранилищу и обновите конфигурацию до актуальной версии.
Не пересоздавайте хранилище и не отключайте от него базу «чтобы само починилось» — потеряете историю версий. Сначала разберитесь с конкретной версией и захватами.
Если хранилище лежит на сервере и недоступно, проверьте, запущена ли служба хранилища и доступен ли сетевой путь. Детали по командам управления смотрите в справке соответствующей утилиты платформы — не задавайте параметры наугад.
Как не доводить до ремонта
Большинство «исправлений конфигурации» — это уборка за тем, что можно было не ломать. Минимальная гигиена:
Отдельно про бэкапы: выгрузка .dt удобна для файловых и небольших баз, но на больших серверных базах она долгая и блокирует работу. Там надёжнее средства резервного копирования самой СУБД — они снимают копию без остановки пользователей.
Плановое тестирование и исправление (реиндексация, пересчёт итогов) раз в месяц на крупной базе держит её в тонусе и ловит проблемы до того, как они станут аварией.
Когда пора звать специалиста
Чинить самому разумно, пока понятно, что происходит. Передавайте задачу специалисту, если:
- База не открывается и
chdbfl.exe/ тестирование сообщают о неисправимых ошибках — вероятно повреждение на уровне СУБД, нужен доступ к серверу баз данных. - Ошибки в журнале регистрации указывают на сбой оборудования или дисковой подсистемы.
- Повреждение возникло после аварийного отключения сервера и затронуло таблицы СУБД.
- Доработанная конфигурация после обновления ведёт себя непредсказуемо, а причину по отчётам найти не удаётся.
В этих случаях самостоятельные эксперименты на рабочей базе рискуют добить то, что ещё можно восстановить из копии. Остановитесь на сохранённом бэкапе и привлеките того, у кого есть доступ к серверу и опыт восстановления на уровне СУБД.
Частые вопросы
Чем отличается `chdbfl.exe` от тестирования и исправления в Конфигураторе?
chdbfl.exe проверяет только физическую целостность файла 1Cv8.1CD файловой базы и работает без запуска Конфигуратора. Тестирование и исправление в Конфигураторе проверяет логическую и ссылочную целостность данных, перестраивает индексы и итоги — это более глубокая проверка, доступная и для серверных баз.Потеряю ли я данные при тестировании и исправлении?
.cf. Поэтому перед исправлением делают резервную копию, а спорные проверки сначала прогоняют в режиме «Только тестирование».Можно ли исправить конфигурацию, пока люди работают в базе?
chdbfl.exe, пересчёт итогов и загрузка конфигурации требуют монопольного доступа. Пользователи должны выйти, иначе операция прервётся с ошибкой.Что делать, если при обновлении завис объект «дважды изменён»?
Обновить конфигурацию базы данных (F7).Как вернуть типовую конфигурацию в исходный вид после неудачных правок?
Конфигурация → Поддержка → Настройка поддержки, затем объединение с конфигурацией поставщика — так вы выборочно вернёте изменённые объекты к эталону, не теряя учётные данные.