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

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

Отладка базы 1С: что это и как она выполняется

Что такое отладка базы 1С, чем она отличается от тестирования и исправления, какие ошибки выявляет и когда нужна помощь специалиста.

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

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

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

Что относят к отладке базы 1С

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

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

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

Признаки, что базе нужна отладка

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

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

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

Ошибка у одного пользователяСкорее локальная проблема

Проверьте кэш метаданных на его компьютере и права доступа

Ошибка у всех при одном действииПроблема в коде или данных

Воспроизведите действие в копии базы под отладчиком

«Объект не найден» в документахБитые ссылки

Запустите тестирование и исправление с проверкой ссылочной целостности

База не открываетсяПовреждение структуры

Остановите работу, снимите копию файла, проверяйте утилитой целостности

Отладка кода конфигурации в конфигураторе

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

Основной инструмент — точка останова: щелчок в левом поле строки кода или клавиша F9. Когда выполнение доходит до отмеченной строки, программа останавливается, и разработчик видит текущие значения переменных через «Вычислить выражение» (Shift+F9) или табло. Дальше код выполняют по шагам: F11 — шаг с заходом в процедуры, F10 — шаг через вызов, Shift+F11 — выход из текущей процедуры.

Типовой сценарий: документ не проводится с ошибкой «Деление на ноль». Ставят точку останова в обработчике проведения, запускают проведение в отладочном сеансе, пошагово находят строку, где сумма делится на количество, и видят, что количество равно нулю из-за незаполненного реквизита. Исправление — добавить проверку заполнения или значение по умолчанию.

Порядок отладки ошибки в коде
  1. 1
    Воспроизведите ошибку в копии базы и зафиксируйте точный текст сообщения
  2. 2
    Откройте конфигуратор и включите отладку (Отладка — Начать отладку, F5)
  3. 3
    Поставьте точку останова в модуле, где возникает ошибка
  4. 4
    Повторите действие в отладочном сеансе до остановки
  5. 5
    Пошагово (F10/F11) найдите строку сбоя и проверьте значения переменных через Shift+F9
  6. 6
    Исправьте код, обновите конфигурацию базы данных и проверьте сценарий повторно

Если ошибка возникает в фоновом задании или на сервере, в настройках отладки включают подключение к серверным процессам и фоновым заданиям. Без этого отладчик останавливается только в клиентском сеансе и «не видит» серверный код.

Тестирование и исправление данных

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

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

Пересчёт итогов — отдельная частая операция. Если обороты по регистру верны, а итоги на дату неверны, помогает пересчёт итогов за период в режиме предприятия (для типовых конфигураций — через «Операции — Управление итогами») или полный пересчёт в тестировании и исправлении. После пересчёта отчёты должны давать стабильный результат при повторном формировании.

Восстановление повреждённой файловой базы

Если файловая база не открывается с ошибкой формата потока, первый шаг — скопировать файл 1Cv8.1CD в отдельный каталог и дальше работать только с копией. Затем применяют утилиту chdbfl.exe из каталога bin установленной платформы: она проверяет физическую целостность файла и может исправить повреждённые страницы. Утилита не гарантирует восстановление данных — она чинит структуру файла, а потерянные записи могут быть удалены.

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

Для клиент-серверных баз (MS SQL, PostgreSQL) chdbfl не применяется — повреждения чинят штатными средствами СУБД (например, DBCC CHECKDB для MS SQL) или восстановлением из бэкапа СУБД. Прямые запросы к таблицам SQL для правки данных недопустимы: они нарушают внутренние связи платформы и приводят к рассогласованию, которое уже не исправить штатными средствами.

Большая часть «испорченных» файловых баз — следствие работы по сети с размещением файла на общем ресурсе. Перенос базы на локальный диск или перевод в клиент-серверный вариант устраняет причину сбоев, а не только их последствия.
ПЗ
Практическое замечание

Контроль результата и типичные ошибки

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

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

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

Повторное выполнение проблемной операции
Норма

Выполняется без сообщений об ошибках

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

Ошибка возникает снова или появилась новая

Отчёт за период, сформированный дважды
Норма

Суммы идентичны в обоих формированиях

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

Результаты различаются — итоги нестабильны

Тестирование в режиме проверки
Норма

Ошибок не найдено

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

Снова находятся битые ссылки или повреждённые записи

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

Все документы проводятся, остатки логичны

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

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

Типичные ошибки
01
Запуск исправления без копии — при неудачном результате откатить изменения нечем
02
Исправление симптома вместо причины: почистили битые ссылки, но не нашли обработку, которая их порождает, — через неделю проблема вернулась
03
Правка данных прямыми SQL-запросами — нарушается внутренняя целостность, платформа начинает выдавать непредсказуемые ошибки
04
Проверка результата только на одном документе — ошибка может проявляться на других видах документов или в закрытии месяца
05
Работа в рабочей базе вместо копии — параллельная работа пользователей во время исправления создаёт новые повреждения

Граница самостоятельной работы проходит там, где заканчивается резервная копия и понимание происходящего. Если база не открывается после chdbfl, если ошибки появляются в закрытии месяца и затрагивают регламентированную отчётность, если повреждён клиент-серверный вариант — разумнее привлечь специалиста по администрированию 1С, имея на руках свежую копию и журнал регистрации с текстами ошибок.

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

Чем отладка отличается от тестирования и исправления?

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

Можно ли отлаживать код прямо на рабочей базе?

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

Что делать, если тестирование и исправление зависает?

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

Удалит ли chdbfl мои данные?

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

Почему битые ссылки появляются снова после исправления?

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

Когда нужен специалист, а не самостоятельная отладка?

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

Итог

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

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