«Завершение с ошибкой. Код ошибки 1» выглядит так, словно 1С уже поставила диагноз и осталось найти расшифровку цифры. На практике цифра почти бесполезна. В большинстве пользовательских сценариев код 1 означает лишь, что операция завершилась неуспешно, а настоящая причина находится выше в сообщении, журнале регистрации или системном журнале.
Я бы поэтому не начинал с переустановки 1С и тем более с восстановления базы. Сначала нужно выяснить масштаб проблемы. Если база открывается на другом компьютере, почти наверняка виноваты локальный кэш, клиент 1С или настройки Windows. Если не работает у всех, проверяем сервер, версию платформы и саму информационную базу. Если код 1 появился во время обновления, прекращаем бесконечно нажимать «Повторить» и сначала делаем резервную копию.
Что означает код ошибки 1 в 1С
У 1С нет универсальной таблицы, где «ошибка 1» всегда означала бы одну определённую неисправность. Платформа умеет показывать пользователю подробное сообщение, формировать отчёт об ошибке и передавать технические данные администратору. Такой подход описан в официальном механизме отображения ошибок.
Поэтому две совершенно разные проблемы могут закончиться одной фразой про код 1. Например, обновление конфигурации не смогло завершиться из-за ошибки базы, а на другом компьютере 1С не стартовала из-за локального повреждённого кэша. Цифра одна, ремонт совершенно разный.
Первым делом я сохраняю полный текст ошибки. Не только последнюю строку с кодом, а всё сообщение целиком. Особенно полезны фразы вроде Ошибка СУБД, Ошибка формата потока, Недостаточно прав, Файл занят, Сервер недоступен, Версия клиента отличается от версии сервера или название конкретного файла.
После этого провожу простейший тест.
- Та же база открывается у другого пользователя. Ищу проблему на конкретном компьютере.
- Не открывается ни у кого. Проверяю сервер, СУБД или информационную базу.
- Обычная работа идёт нормально, но падает обновление. Проверяю обновление, блокировки, свободное место и состояние базы.
- Сбой начался сразу после установки другой версии платформы. В первую очередь сравниваю версии клиента и сервера.
Такая проверка экономит больше времени, чем большинство «универсальных способов исправления ошибки 1» из интернета.
Что попробовать сначала
Если проблема появилась только на одном компьютере, начинаю с клиентского кэша. 1С хранит локальные данные интерфейса, конфигурации и служебную информацию. После аварийного завершения программы, обновления или сбоя диска кэш иногда оказывается повреждённым.
Закройте все окна 1С. Затем нажмите Win + R и по очереди откройте каталоги:
%LOCALAPPDATA%1C1cv8
%APPDATA%1C1cv8
Я предпочитаю не удалять содержимое сразу, а переименовать папку 1cv8, например в 1cv8_old. При следующем запуске платформа создаст новый кэш. Если проблема исчезла, старую папку можно удалить позже.
Папку 1CEStart рядом трогать без причины не надо. Там могут храниться настройки стартового окна и списка информационных баз. Очистка кэша и удаление списка баз являются разными операциями.
Если код 1 остался, проверяю версию платформы. В запущенной программе номер можно посмотреть через «Справка» → «О программе». В клиент-серверной установке клиент и сервер должны работать с совместимыми версиями платформы. Расхождение версий само по себе способно помешать подключению.
Следующий тест очень показателен. Запустите ту же базу с другого компьютера под тем же пользователем. Если всё работает, база, скорее всего, исправна. Можно переустановить клиентскую часть 1С или поставить тот же релиз платформы, который используется на остальных рабочих местах.
Если программа внезапно закрывается без нормального сообщения, я дополнительно смотрю журнал Windows. Нажмите Win + R и выполните:
eventvwr.msc
В «Журналы Windows» → «Приложение» ищите события по времени сбоя. Название сбойного модуля иногда сразу показывает направление поиска. Например, проблема может находиться не в данных 1С, а в компоненте платформы, драйвере, криптопровайдере или внешнем расширении.
Если проблема находится в самой базе
Если код ошибки 1 получают все пользователи или сбой воспроизводится на разных компьютерах, очистка кэша уже мало что даст. Перед любыми исправлениями я делаю резервную копию. Для файловой базы проще всего закрыть всех пользователей и скопировать весь каталог информационной базы в другое место.
Если Конфигуратор открывается, используйте «Администрирование» → «Тестирование и исправление». Штатный механизм умеет проверять логическую и ссылочную целостность, пересчитывать итоги, а для файловой базы также выполнять дополнительные проверки структуры. 1С отдельно указывает, что тестирование и исправление требует монопольного режима.
Сначала разумно выполнить тестирование и посмотреть результат. Режим автоматического исправления меняет информационную базу, поэтому запускать его без рабочей резервной копии я бы не стал.
Для файловой базы существует ещё один штатный инструмент, chdbfl.exe. Утилита полезна, когда сама база повреждена настолько, что Конфигуратор нормально не запускается.
Файл обычно находится внутри каталога установленной версии платформы:
C:Program Files1cv88.3.xx.xxxxbinchdbfl.exe
или
C:Program Files (x86)1cv88.3.xx.xxxxbinchdbfl.exe
Закройте все подключения к базе, сделайте её копию, запустите chdbfl.exe и укажите файл 1Cv8.1CD. Сначала можно выполнить проверку без исправления. Если утилита найдёт ошибки, повторить проверку с параметром «Исправлять обнаруженные ошибки». В комплекте 1С chdbfl предназначена именно для автономной проверки и исправления файлового варианта информационной базы.
Для базы на Microsoft SQL Server, PostgreSQL или другой серверной СУБД запускать chdbfl не надо. Утилита работает с файловой базой 1Cv8.1CD. В клиент-серверной установке диагностику нужно проводить средствами 1С и самой СУБД.
Если ошибка появилась после отключения питания, зависания сервера или аварийного завершения записи данных, вероятность повреждения файловой базы заметно выше. В таком случае я не экспериментировал бы на единственной копии. Сначала копия, потом диагностика.
Код 1 во время обновления 1С
Отдельный сценарий возникает при обновлении конфигурации или платформы. Пользователь видит «Завершение с ошибкой (код ошибки 1)» и делает вывод, что повреждён файл обновления. Иногда так и происходит, но причин намного больше.
Я проверяю четыре вещи.
- Другие сеансы. Часть операций обновления требует эксклюзивного доступа к информационной базе.
- Свободное место. При реструктуризации база и СУБД могут создавать временные данные. Почти заполненный диск легко превращает обычное обновление в загадочную ошибку.
- Версию платформы. Конфигурация может требовать определённый релиз 1С, а сервер и рабочая станция могут использовать разные версии.
- Строки перед «кодом 1». Именно там обычно находится настоящее сообщение об ошибке.
Если ошибка появилась во время изменения структуры базы, я не советую запускать обновление десять раз подряд в надежде на чудо. Сначала сохраните журнал, проверьте состояние базы и убедитесь, что существует резервная копия, созданная до обновления.
У серверной 1С дополнительно проверяю доступность СУБД, службу сервера 1С, свободное место на сервере базы и системные журналы. Если ошибка возникает только при одной конкретной операции, полезен журнал регистрации 1С. Для сложных аварий администратор может включить технологический журнал и увидеть, на каком обращении к файлу, серверу или СУБД произошёл сбой.
Что обычно не помогает
Первый популярный совет выглядит радикально, «удалите 1С и установите заново». Переустановка действительно может исправить повреждённые файлы клиента, но никак не вылечит повреждённую информационную базу, ошибку конфигурации или проблему сервера. Если сбой одновременно видят десять компьютеров, переустанавливать десять клиентов бессмысленно.
Второй сомнительный совет, сразу запускать все варианты «Тестирования и исправления». Такой подход превращает диагностику в лотерею. Сначала нужна резервная копия и понимание, что именно сломалось.
Третий миф, код 1 означает повреждение базы. Нет. Если другой компьютер работает с той же базой нормально, искать повреждение 1Cv8.1CD в первую очередь нелогично.
Четвёртая ошибка, удалять всё подряд из AppData1C. Для проверки клиентского кэша достаточно временно переименовать соответствующие каталоги 1cv8. Так проще вернуть исходное состояние, если причина окажется другой.
Мой порядок выглядит так. Сохраняю полный текст ошибки, проверяю работу на другом компьютере, очищаю локальный кэш, сверяю версии платформы. Только после этого перехожу к проверке информационной базы. Если база файловая и Конфигуратор не открывается, использую chdbfl.exe на копии. Для клиент-серверной базы подключаю администратора 1С и СУБД.
Такой алгоритм не обещает волшебную кнопку «Исправить код 1». Зато позволяет не уничтожить рабочую базу попытками исправить проблему, которой в базе вообще не было.
Частые вопросы
Можно ли просто перезагрузить компьютер при ошибке 1 в 1С?
Можно. Перезагрузка помогает, если завис процесс 1С, осталась локальная блокировка или произошёл разовый сбой Windows. Если ошибка стабильно повторяется, перезагрузка причину не устраняет.
Безопасно ли очищать кэш 1С?
Клиентский кэш платформа создаёт заново. Я предпочитаю сначала переименовать папки кэша, а не удалять их. Не удаляйте без необходимости каталог 1CEStart и сам каталог информационной базы.
Почему ошибка возникает только у одного пользователя?
При нормальной работе той же базы на других компьютерах вероятнее локальная причина. Проверьте кэш, версию клиента 1С, права пользователя Windows, внешние компоненты и установку платформы.
Можно ли использовать chdbfl для серверной базы 1С?
Нет. chdbfl предназначена для файлового варианта базы с файлом 1Cv8.1CD. Базу на PostgreSQL, Microsoft SQL Server и других серверных СУБД проверяют другими средствами.
Что делать, если Конфигуратор тоже не открывает базу?
Сначала создайте копию базы. Для файловой информационной базы можно выполнить проверку через chdbfl.exe. Если база клиент-серверная, потребуются диагностика сервера 1С, СУБД и журналов.
Почему код ошибки 1 появился после обновления?
Проверьте полный текст ошибки, релиз платформы, наличие активных сеансов, свободное место и состояние информационной базы. Сам код 1 не позволяет определить, какой из факторов вызвал сбой.
Когда лучше восстановить резервную копию, а не чинить базу?
Если повреждение появилось после аварии, инструменты восстановления находят серьёзные ошибки, а рабочая резервная копия свежая, восстановление часто безопаснее дальнейших экспериментов. Сначала сохраните повреждённую базу отдельно, чтобы при необходимости попробовать извлечь из неё последние данные.
Мой вывод. Код ошибки 1 в 1С сам по себе почти ничего не диагностирует. Начинайте с полного текста сообщения и простого сравнения на другом компьютере. Один неисправный клиент обычно ведёт к кэшу или платформе. Массовый сбой требует проверки сервера и базы. После аварии файловой базы помогают «Тестирование и исправление» и chdbfl.exe, но только после резервного копирования. Такой порядок быстрее и безопаснее, чем бессистемно переустанавливать 1С или сразу пытаться «ремонтировать» рабочую базу.