К статье
Практический материал

Администрирование · 12 мин

Как протестировать 1С на ошибки: практическое руководство

Как протестировать базу 1С на ошибки: тестирование и исправление, проверка конфигурации, журнал регистрации, типичные сбои и способы их устранения.

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

Базовый инструмент — штатная процедура «Тестирование и исправление», встроенная в конфигуратор. Она проверяет физическую и логическую целостность информационной базы, находит битые ссылки, ошибки в индексах и таблицах. Для файловых баз дополнительно применяют утилиту chdbfl, которая проверяет сам файл 1Cv8.1CD на низком уровне. Для клиент-серверных баз аналогичные проверки выполняются средствами СУБД — MS SQL Server или PostgreSQL.

Прежде чем запускать любое тестирование, особенно с включённым режимом исправления, обязательно создайте резервную копию. Процедура исправления может удалить повреждённые объекты, которые не удалось восстановить, и вернуть их без копии будет невозможно.

Что проверять и какими инструментами

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

Для каждого уровня используется свой инструмент. Файловую базу на физическом уровне проверяет утилита chdbfl.exe из каталога установки платформы. Структуру базы — «Тестирование и исправление» в конфигураторе. Прикладную логику — штатные отчёты, обработки проверки данных и ручная сверка контрольных цифр: оборотов по счетам, остатков на складах, взаиморасчётов.

Сравнение инструментов проверки

Тестирование и исправление (конфигуратор)

Основной инструмент для любой базы: проверяет структуру таблиц, ссылки, индексы. Требует монопольного доступа к базе.

Утилита chdbfl.exe

Только для файловых баз. Проверяет физическую целостность файла 1Cv8.1CD, работает, когда база даже не открывается.

Средства СУБД (DBCC CHECKDB и аналоги)

Для клиент-серверных баз на MS SQL или PostgreSQL. Проверяют целостность на уровне СУБД, выполняются администратором баз данных.

Журнал регистрации

Не исправляет, а диагностирует: показывает, какие ошибки возникали у пользователей и в фоновых заданиях.

Резервная копия перед тестированием

Резервная копия — обязательный первый шаг. Для файловой базы проще всего выгрузить данные через конфигуратор: меню «Администрирование» → «Выгрузить информационную базу». Полученный файл с расширением .dt содержит и данные, и конфигурацию, из него базу можно полностью восстановить.

Альтернатива — скопировать сам файл 1Cv8.1CD при закрытой программе. Это быстрее для больших баз, но такой файл нельзя скопировать, пока база открыта хотя бы у одного пользователя: копия получится неконсистентной. Для клиент-серверных баз копию делают средствами СУБД — штатным бэкапом базы данных.

Убедитесь, что копия действительно создана и файл имеет ненулевой размер. Полезная практика — периодически проверять восстановление копии на тестовом компьютере: бэкап, который не разворачивается, бесполезен.

Порядок действий перед тестированием
  1. 1
    Завершите работу всех пользователей в базе и отключите фоновые задания
  2. 2
    Создайте выгрузку базы в файл .dt через конфигуратор
  3. 3
    Проверьте, что файл копии создан и имеет корректный размер
  4. 4
    Только после этого запускайте тестирование и исправление

Тестирование и исправление в конфигураторе

Процедура запускается из конфигуратора: меню «Администрирование» → «Тестирование и исправление». Для запуска требуется монопольный доступ — все пользователи должны выйти из базы. В окне настроек выбираются проверки и режим работы.

Основные проверки, которые стоит включить:

  • Реиндексация таблиц — перестраивает индексы, устраняет ошибки поиска и ускоряет работу;
  • Проверка логической целостности — выявляет нарушения в структуре данных, битые ссылки, некорректные записи;
  • Проверка ссылочной целостности — находит объекты, ссылающиеся на несуществующие элементы (например, документ с удалённым контрагентом).

В нижней части окна выбирается режим: «Тестирование» — только поиск ошибок без изменений, или «Тестирование и исправление» — с попыткой устранить найденное. Первый запуск безопаснее делать в режиме только тестирования, чтобы оценить масштаб проблем. Для ссылочной целостности доступны варианты обработки битых ссылок: создавать объекты-заглушки, очищать ссылки или не изменять. Вариант «не изменять» самый безопасный для первого прохода — вы получите список проблем и решите по каждой отдельно.

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

Проверка файловой базы утилитой chdbfl

Если файловая база не открывается вообще или конфигуратор падает при попытке тестирования, используют утилиту chdbfl.exe. Она находится в каталоге установки платформы, в папке bin конкретной версии. Утилита работает напрямую с файлом 1Cv8.1CD и не требует запуска конфигуратора.

Порядок работы простой: запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD, отметьте пункт «Исправлять обнаруженные ошибки» (только после создания копии файла!) и нажмите «Выполнить». Утилита покажет ход проверки и список найденных повреждений.

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

Диагностика через журнал регистрации

Журнал регистрации фиксирует события в базе: действия пользователей, ошибки, предупреждения, работу фоновых заданий. Открывается из конфигуратора («Администрирование» → «Журнал регистрации») или из режима предприятия через раздел администрирования.

Чтобы найти ошибки, установите отбор по уровню важности «Ошибка» и нужному периоду. Полезно фильтровать по конкретному пользователю, если сбой возникает только у него, или по фоновым заданиям, если ошибка появляется без видимых действий. Текст сообщения об ошибке часто содержит ключ к причине: имя объекта метаданных, номер строки кода, описание нарушения.

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

Проверка прикладной логики и данных

Даже физически исправная база может содержать ошибки в данных. Контрольные точки для проверки:

  • оборотно-сальдовая ведомость сходится: обороты по дебету равны оборотам по кредиту, нет «красных» остатков там, где их быть не должно;
  • остатки по складским отчётам совпадают с данными партионного учёта;
  • взаиморасчёты с контрагентами не содержат зависших сумм по закрытым договорам;
  • нет документов с датой запрета редактирования, изменённых задним числом;
  • поиск и удаление помеченных объектов выполняется без зависших ссылок.

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

Контрольные точки

Как проверить результат тестирования

Повторный запуск тестирования
Норма

Ошибки, найденные в первый проход, больше не выводятся

Тревожный признак

Те же ошибки появляются снова — повреждение не устранено

Открытие проблемных документов и отчётов
Норма

Объекты открываются, суммы сходятся с контрольными значениями

Тревожный признак

Часть объектов исчезла или содержит пустые поля вместо данных

Журнал регистрации после исправления
Норма

Новых ошибок при обычной работе не появляется

Тревожный признак

Ошибки преобразования данных продолжают фиксироваться

Типичные ошибки и ограничения

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

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

Типичные ошибки при тестировании 1С
01
Запуск исправления без резервной копии — при неудаче повреждённые объекты удаляются безвозвратно
02
Работа пользователей во время тестирования — процедура требует монопольного доступа, иначе завершится ошибкой или даст некорректный результат
03
Исправление базы без устранения причины сбоя — если виноват диск или сеть, повреждения появятся снова
04
Выбор режима «очищать ссылки» при первом проходе — можно потерять связи, которые реально восстановимы
05
Игнорирование повторяющихся ошибок в журнале регистрации — разовый сбой и систематическая проблема требуют разных действий
Маршрут решения

Как выбрать действие

База открывается, но периодически возникают ошибки в работеСделайте копию и запустите «Тестирование и исправление» сначала в режиме только тестирования
Файловая база не открывается совсемСкопируйте файл 1Cv8.1CD и проверьте его утилитой chdbfl, затем повторите тестирование в конфигураторе
Ошибки только у одного пользователяПроверьте журнал регистрации с отбором по этому пользователю, его права и клиентское окружение
База клиент-серверная и есть ошибки целостностиПривлеките администратора СУБД для проверки средствами MS SQL или PostgreSQL

Когда обращаться к специалисту

Самостоятельно безопасно выполнять: выгрузку копии, тестирование в режиме без исправления, проверку chdbfl на копии файла, анализ журнала регистрации и сверку отчётов. Это не требует глубоких знаний и не несёт рисков при наличии резервной копии.

К специалисту стоит обратиться, если: база не открывается даже после chdbfl; тестирование находит массовые повреждения рабочих данных; ошибки связаны с доработанной конфигурацией или обменами; база клиент-серверная и проблема на уровне СУБД. Попытки «починить» рабочую базу с реальным учётом методом проб и ошибок часто обходятся дороже, чем диагностика у опытного администратора 1С.

Итог

Что важно запомнить

Сначала резервная копия — потом любое исправление. Основной инструмент — «Тестирование и исправление» в конфигураторе, для неоткрывающихся файловых баз — chdbfl. Журнал регистрации показывает, где искать причину. Повторяющиеся сбои требуют устранения причины: диска, сети или кода, а не только исправления базы.

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

Сколько времени занимает тестирование и исправление?

Зависит от размера базы и набора проверок. Небольшая файловая база проверяется за минуты, большая клиент-серверная — за часы. Планируйте процедуру на нерабочее время и не прерывайте её на середине.

Можно ли запускать тестирование, пока пользователи работают?

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

Чем отличается выгрузка в .dt от копирования файла базы?

Выгрузка в .dt выполняется средствами платформы и гарантированно содержит консистентные данные вместе с конфигурацией. Копирование файла 1Cv8.1CD быстрее, но корректно только при полностью закрытой базе.

Тестирование удалило часть объектов — что делать?

Это значит, что объекты были повреждены и восстановлению не подлежали. Восстановите базу из резервной копии, сделанной перед исправлением, и перенесите недостающие данные вручную или с помощью специалиста.

Нужно ли тестировать базу, если ошибок нет?

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

Поможет ли тестирование, если отчёты показывают неверные суммы?

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