Администрирование · 12 мин
Как протестировать 1С на ошибки: практическое руководство
Как протестировать базу 1С на ошибки: тестирование и исправление, проверка конфигурации, журнал регистрации, типичные сбои и способы их устранения.
Ошибки в 1С проявляются по-разному: программа внезапно закрывается, документы не проводятся, отчёты выдают неверные суммы, а при открытии базы появляются сообщения о повреждении данных. Часть сбоев связана с логикой конфигурации, часть — с физическим повреждением файлов базы, часть — с некорректными данными, которые пользователи внесли вручную. Универсальной кнопки «найти всё» нет, поэтому тестирование строится как последовательность проверок разных уровней.
Базовый инструмент — штатная процедура «Тестирование и исправление», встроенная в конфигуратор. Она проверяет физическую и логическую целостность информационной базы, находит битые ссылки, ошибки в индексах и таблицах. Для файловых баз дополнительно применяют утилиту chdbfl, которая проверяет сам файл 1Cv8.1CD на низком уровне. Для клиент-серверных баз аналогичные проверки выполняются средствами СУБД — MS SQL Server или PostgreSQL.
Прежде чем запускать любое тестирование, особенно с включённым режимом исправления, обязательно создайте резервную копию. Процедура исправления может удалить повреждённые объекты, которые не удалось восстановить, и вернуть их без копии будет невозможно.
Что проверять и какими инструментами
Проверки делятся на три уровня. Первый — физическая целостность файлов базы: не повреждён ли файл 1Cv8.1CD, нет ли ошибок на диске. Второй — внутренняя структура информационной базы: таблицы, индексы, ссылки между объектами. Третий — прикладная логика: правильно ли проводятся документы, сходятся ли итоги в отчётах, нет ли «битых» ссылок на удалённые объекты.
Для каждого уровня используется свой инструмент. Файловую базу на физическом уровне проверяет утилита chdbfl.exe из каталога установки платформы. Структуру базы — «Тестирование и исправление» в конфигураторе. Прикладную логику — штатные отчёты, обработки проверки данных и ручная сверка контрольных цифр: оборотов по счетам, остатков на складах, взаиморасчётов.
Сравнение инструментов проверки
Основной инструмент для любой базы: проверяет структуру таблиц, ссылки, индексы. Требует монопольного доступа к базе.
Только для файловых баз. Проверяет физическую целостность файла 1Cv8.1CD, работает, когда база даже не открывается.
Для клиент-серверных баз на MS SQL или PostgreSQL. Проверяют целостность на уровне СУБД, выполняются администратором баз данных.
Не исправляет, а диагностирует: показывает, какие ошибки возникали у пользователей и в фоновых заданиях.
Резервная копия перед тестированием
Резервная копия — обязательный первый шаг. Для файловой базы проще всего выгрузить данные через конфигуратор: меню «Администрирование» → «Выгрузить информационную базу». Полученный файл с расширением .dt содержит и данные, и конфигурацию, из него базу можно полностью восстановить.
Альтернатива — скопировать сам файл 1Cv8.1CD при закрытой программе. Это быстрее для больших баз, но такой файл нельзя скопировать, пока база открыта хотя бы у одного пользователя: копия получится неконсистентной. Для клиент-серверных баз копию делают средствами СУБД — штатным бэкапом базы данных.
Убедитесь, что копия действительно создана и файл имеет ненулевой размер. Полезная практика — периодически проверять восстановление копии на тестовом компьютере: бэкап, который не разворачивается, бесполезен.
- 1Завершите работу всех пользователей в базе и отключите фоновые задания
- 2Создайте выгрузку базы в файл .dt через конфигуратор
- 3Проверьте, что файл копии создан и имеет корректный размер
- 4Только после этого запускайте тестирование и исправление
Тестирование и исправление в конфигураторе
Процедура запускается из конфигуратора: меню «Администрирование» → «Тестирование и исправление». Для запуска требуется монопольный доступ — все пользователи должны выйти из базы. В окне настроек выбираются проверки и режим работы.
Основные проверки, которые стоит включить:
- Реиндексация таблиц — перестраивает индексы, устраняет ошибки поиска и ускоряет работу;
- Проверка логической целостности — выявляет нарушения в структуре данных, битые ссылки, некорректные записи;
- Проверка ссылочной целостности — находит объекты, ссылающиеся на несуществующие элементы (например, документ с удалённым контрагентом).
В нижней части окна выбирается режим: «Тестирование» — только поиск ошибок без изменений, или «Тестирование и исправление» — с попыткой устранить найденное. Первый запуск безопаснее делать в режиме только тестирования, чтобы оценить масштаб проблем. Для ссылочной целостности доступны варианты обработки битых ссылок: создавать объекты-заглушки, очищать ссылки или не изменять. Вариант «не изменять» самый безопасный для первого прохода — вы получите список проблем и решите по каждой отдельно.
Длительность процедуры зависит от размера базы: на небольшой файловой базе это минуты, на большой клиент-серверной — часы. Прерывать процесс на середине нежелательно, поэтому запускайте его в нерабочее время.
Проверка файловой базы утилитой chdbfl
Если файловая база не открывается вообще или конфигуратор падает при попытке тестирования, используют утилиту chdbfl.exe. Она находится в каталоге установки платформы, в папке bin конкретной версии. Утилита работает напрямую с файлом 1Cv8.1CD и не требует запуска конфигуратора.
Порядок работы простой: запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD, отметьте пункт «Исправлять обнаруженные ошибки» (только после создания копии файла!) и нажмите «Выполнить». Утилита покажет ход проверки и список найденных повреждений.
После работы chdbfl базу дополнительно прогоняют через «Тестирование и исправление» в конфигураторе: утилита восстанавливает физическую структуру файла, но логическая целостность данных после повреждений может быть нарушена.
Диагностика через журнал регистрации
Журнал регистрации фиксирует события в базе: действия пользователей, ошибки, предупреждения, работу фоновых заданий. Открывается из конфигуратора («Администрирование» → «Журнал регистрации») или из режима предприятия через раздел администрирования.
Чтобы найти ошибки, установите отбор по уровню важности «Ошибка» и нужному периоду. Полезно фильтровать по конкретному пользователю, если сбой возникает только у него, или по фоновым заданиям, если ошибка появляется без видимых действий. Текст сообщения об ошибке часто содержит ключ к причине: имя объекта метаданных, номер строки кода, описание нарушения.
Типичные находки в журнале: ошибки преобразования данных (чаще всего признак повреждённых записей), ошибки блокировок (конфликты одновременной работы), ошибки внешних компонентов и обменов данными. Каждая повторяющаяся ошибка — кандидат на отдельное расследование.
Проверка прикладной логики и данных
Даже физически исправная база может содержать ошибки в данных. Контрольные точки для проверки:
- оборотно-сальдовая ведомость сходится: обороты по дебету равны оборотам по кредиту, нет «красных» остатков там, где их быть не должно;
- остатки по складским отчётам совпадают с данными партионного учёта;
- взаиморасчёты с контрагентами не содержат зависших сумм по закрытым договорам;
- нет документов с датой запрета редактирования, изменённых задним числом;
- поиск и удаление помеченных объектов выполняется без зависших ссылок.
В типовых конфигурациях есть штатные механизмы помощи: «Помощник исправления остатков взаиморасчётов», обработки проверки ведения учёта, сервисные отчёты. Их стоит запускать регулярно, а не только после сбоя — многие ошибки данных проще исправить сразу, чем разбирать накопившиеся расхождения за год.
Как проверить результат тестирования
Ошибки, найденные в первый проход, больше не выводятся
Те же ошибки появляются снова — повреждение не устранено
Объекты открываются, суммы сходятся с контрольными значениями
Часть объектов исчезла или содержит пустые поля вместо данных
Новых ошибок при обычной работе не появляется
Ошибки преобразования данных продолжают фиксироваться
Типичные ошибки и ограничения
Частые причины повреждения файловых баз — внезапное отключение электропитания, разрыв сетевого соединения при работе по сети, нехватка места на диске, сбои жёсткого диска. Если база «падает» регулярно, проверьте диск системной утилитой и состояние сети: исправлять базу, не устранив причину, бессмысленно — повреждения вернутся.
Ограничения, о которых нужно знать: файловые базы имеют техническое ограничение на размер таблиц, и при приближении к нему начинаются ошибки — это признак того, что пора переходить на клиент-серверный вариант. «Тестирование и исправление» не восстанавливает удалённые пользователем данные и не исправляет ошибки в коде конфигурации — для этого нужен анализ разработчика.
Как выбрать действие
Когда обращаться к специалисту
Самостоятельно безопасно выполнять: выгрузку копии, тестирование в режиме без исправления, проверку chdbfl на копии файла, анализ журнала регистрации и сверку отчётов. Это не требует глубоких знаний и не несёт рисков при наличии резервной копии.
К специалисту стоит обратиться, если: база не открывается даже после chdbfl; тестирование находит массовые повреждения рабочих данных; ошибки связаны с доработанной конфигурацией или обменами; база клиент-серверная и проблема на уровне СУБД. Попытки «починить» рабочую базу с реальным учётом методом проб и ошибок часто обходятся дороже, чем диагностика у опытного администратора 1С.
Что важно запомнить
Сначала резервная копия — потом любое исправление. Основной инструмент — «Тестирование и исправление» в конфигураторе, для неоткрывающихся файловых баз — chdbfl. Журнал регистрации показывает, где искать причину. Повторяющиеся сбои требуют устранения причины: диска, сети или кода, а не только исправления базы.
Частые вопросы
Сколько времени занимает тестирование и исправление?
Зависит от размера базы и набора проверок. Небольшая файловая база проверяется за минуты, большая клиент-серверная — за часы. Планируйте процедуру на нерабочее время и не прерывайте её на середине.
Можно ли запускать тестирование, пока пользователи работают?
Нет, процедура требует монопольного доступа к базе. Все сеансы должны быть завершены, иначе тестирование либо не запустится, либо завершится с ошибкой.
Чем отличается выгрузка в .dt от копирования файла базы?
Выгрузка в .dt выполняется средствами платформы и гарантированно содержит консистентные данные вместе с конфигурацией. Копирование файла 1Cv8.1CD быстрее, но корректно только при полностью закрытой базе.
Тестирование удалило часть объектов — что делать?
Это значит, что объекты были повреждены и восстановлению не подлежали. Восстановите базу из резервной копии, сделанной перед исправлением, и перенесите недостающие данные вручную или с помощью специалиста.
Нужно ли тестировать базу, если ошибок нет?
Профилактическая проверка полезна, но не обязательна часто. Разумный минимум — регулярные резервные копии, контроль свободного места на диске и периодический просмотр журнала регистрации на предмет скрытых ошибок.
Поможет ли тестирование, если отчёты показывают неверные суммы?
Только если причина в повреждении данных или индексов. Если ошибка в логике проведения документов или в настройках учёта, тестирование не поможет — нужен анализ данных и, возможно, перепроведение документов за проблемный период.