Администрирование · 11 мин
Отладка базы 1С: что это и как она выполняется
Что такое отладка базы 1С, чем она отличается от тестирования и исправления, какие ошибки выявляет и когда нужна помощь специалиста.
Отладка базы 1С — это комплекс работ по поиску, диагностике и устранению ошибок в информационной базе: в данных, в коде конфигурации и в настройках платформы. Термин используют в двух смыслах. Узкий — отладка программного кода во встроенном отладчике конфигуратора, когда разработчик пошагово выполняет модуль и смотрит значения переменных. Широкий — восстановление корректной работы базы после сбоев: битых ссылок, ошибок при проведении документов, падения сеансов, некорректных остатков.
Потребность в отладке возникает после аварийного завершения работы (отключение электричества, обрыв сети, нехватка места на диске), после неудачного обновления конфигурации, после прямой правки данных внешними обработками, а также при ошибках в самом коде доработок. Симптомы разные: программа падает с сообщением об ошибке, документ не проводится, отчёт показывает неверные суммы, база не открывается.
Важно понимать: отладка — не разовая кнопка, а последовательность действий: зафиксировать проблему, воспроизвести её, локализовать причину, исправить и проверить результат на копии. Пропуск любого этапа превращает отладку в гадание и повышает риск усугубить повреждения.
Что относят к отладке базы 1С
В практике администрирования под отладкой базы понимают несколько разных видов работ. Первый — отладка кода конфигурации: поиск ошибок в модулях документов, обработок, отчётов с помощью встроенного отладчика платформы. Это работа разработчика, когда программа ведёт себя не так, как задумано: неверно считает суммы, не заполняет реквизиты, выдаёт исключение.
Второй вид — отладка данных: устранение битых ссылок (объектов, которые удалены, но ссылки на них остались), исправление дублей элементов справочников, восстановление последовательности проведения документов, пересчёт итогов по регистрам. Такие проблемы проявляются как неверные остатки на складе, расхождения взаиморасчётов, ошибки при формировании отчётов.
Третий вид — восстановление структуры базы после физического повреждения файла или таблиц СУБД. Это самая тяжёлая ситуация: база не открывается, конфигуратор выдаёт ошибку формата потока или ошибку СУБД. Здесь применяют утилиту проверки физической целостности файловой базы, тестирование и исправление в конфигураторе, восстановление из резервной копии.
Признаки, что базе нужна отладка
Однозначный сигнал — повторяющаяся ошибка при выполнении конкретного действия: проведении документа, записи элемента справочника, запуске отчёта. Если ошибка воспроизводится у разных пользователей и на разных компьютерах, проблема в базе или конфигурации, а не в рабочем месте.
Тревожные признаки в данных: отчёты за один и тот же период показывают разные результаты при повторном формировании, остатки по складу не сходятся с оборотно-сальдовой ведомостью, в документах встречаются записи «Объект не найден», при перепроведении периода суммы «плывут». Это указывает на повреждение итогов регистров или наличие битых ссылок.
Критические симптомы: база не открывается в режиме предприятия или конфигуратора, журнал регистрации фиксирует ошибки СУБД, сеансы пользователей завершаются аварийно. В этой ситуации работу в базе нужно остановить немедленно — каждая новая запись в повреждённую базу уменьшает шансы на чистое восстановление.
Проверьте кэш метаданных на его компьютере и права доступа
Воспроизведите действие в копии базы под отладчиком
Запустите тестирование и исправление с проверкой ссылочной целостности
Остановите работу, снимите копию файла, проверяйте утилитой целостности
Отладка кода конфигурации в конфигураторе
Отладчик встроен в конфигуратор и работает с любым модулем: общими модулями, модулями объектов, форм, обработок. Чтобы начать, конфигурацию нужно запустить в режиме отладки: меню «Отладка — Начать отладку» или клавиша F5. Платформа откроет сеанс предприятия, связанный с конфигуратором.
Основной инструмент — точка останова: щелчок в левом поле строки кода или клавиша F9. Когда выполнение доходит до отмеченной строки, программа останавливается, и разработчик видит текущие значения переменных через «Вычислить выражение» (Shift+F9) или табло. Дальше код выполняют по шагам: F11 — шаг с заходом в процедуры, F10 — шаг через вызов, Shift+F11 — выход из текущей процедуры.
Типовой сценарий: документ не проводится с ошибкой «Деление на ноль». Ставят точку останова в обработчике проведения, запускают проведение в отладочном сеансе, пошагово находят строку, где сумма делится на количество, и видят, что количество равно нулю из-за незаполненного реквизита. Исправление — добавить проверку заполнения или значение по умолчанию.
- 1Воспроизведите ошибку в копии базы и зафиксируйте точный текст сообщения
- 2Откройте конфигуратор и включите отладку (Отладка — Начать отладку, F5)
- 3Поставьте точку останова в модуле, где возникает ошибка
- 4Повторите действие в отладочном сеансе до остановки
- 5Пошагово (F10/F11) найдите строку сбоя и проверьте значения переменных через Shift+F9
- 6Исправьте код, обновите конфигурацию базы данных и проверьте сценарий повторно
Если ошибка возникает в фоновом задании или на сервере, в настройках отладки включают подключение к серверным процессам и фоновым заданиям. Без этого отладчик останавливается только в клиентском сеансе и «не видит» серверный код.
Тестирование и исправление данных
Штатный инструмент диагностики данных — «Тестирование и исправление» в конфигураторе (меню «Администрирование»). Оно проверяет логическую и ссылочную целостность базы: находит битые ссылки, повреждённые записи регистров, ошибки в итогах. Работает только в монопольном режиме — всех пользователей нужно вывести из базы.
В настройках выбирают проверки: реструктуризацию таблиц, проверку ссылочной целостности, пересчёт итогов, очистку ссылок. Для первого прохода разумно запустить проверку без исправления, чтобы оценить масштаб проблем по журналу. Затем — режим «Тестирование и исправление», где для битых ссылок выбирают действие: создавать объекты-заглушки, очищать ссылки или не изменять.
Пересчёт итогов — отдельная частая операция. Если обороты по регистру верны, а итоги на дату неверны, помогает пересчёт итогов за период в режиме предприятия (для типовых конфигураций — через «Операции — Управление итогами») или полный пересчёт в тестировании и исправлении. После пересчёта отчёты должны давать стабильный результат при повторном формировании.
Восстановление повреждённой файловой базы
Если файловая база не открывается с ошибкой формата потока, первый шаг — скопировать файл 1Cv8.1CD в отдельный каталог и дальше работать только с копией. Затем применяют утилиту chdbfl.exe из каталога bin установленной платформы: она проверяет физическую целостность файла и может исправить повреждённые страницы. Утилита не гарантирует восстановление данных — она чинит структуру файла, а потерянные записи могут быть удалены.
После успешной проверки chdbfl базу открывают в конфигураторе и запускают тестирование и исправление со всеми проверками. Завершающий этап — контроль данных: сверка остатков по ключевым регистрам с последней резервной копией, проверка проведения документов за открытый период.
Для клиент-серверных баз (MS SQL, PostgreSQL) chdbfl не применяется — повреждения чинят штатными средствами СУБД (например, DBCC CHECKDB для MS SQL) или восстановлением из бэкапа СУБД. Прямые запросы к таблицам SQL для правки данных недопустимы: они нарушают внутренние связи платформы и приводят к рассогласованию, которое уже не исправить штатными средствами.
Большая часть «испорченных» файловых баз — следствие работы по сети с размещением файла на общем ресурсе. Перенос базы на локальный диск или перевод в клиент-серверный вариант устраняет причину сбоев, а не только их последствия.
Контроль результата и типичные ошибки
Отладка считается завершённой, когда исходная ошибка не воспроизводится, а контрольные показатели сходятся. Минимальный набор проверок: проблемное действие выполняется без ошибок у нескольких пользователей, отчёты за период дают одинаковый результат при повторном формировании, тестирование и исправление в режиме проверки не находит новых проблем, журнал регистрации не фиксирует ошибок при типовых операциях.
Как проверить результат
Выполняется без сообщений об ошибках
Ошибка возникает снова или появилась новая
Суммы идентичны в обоих формированиях
Результаты различаются — итоги нестабильны
Ошибок не найдено
Снова находятся битые ссылки или повреждённые записи
Все документы проводятся, остатки логичны
Часть документов не проводится, остатки отрицательные без причины
Граница самостоятельной работы проходит там, где заканчивается резервная копия и понимание происходящего. Если база не открывается после chdbfl, если ошибки появляются в закрытии месяца и затрагивают регламентированную отчётность, если повреждён клиент-серверный вариант — разумнее привлечь специалиста по администрированию 1С, имея на руках свежую копию и журнал регистрации с текстами ошибок.
Частые вопросы
Чем отладка отличается от тестирования и исправления?
Тестирование и исправление — конкретный штатный инструмент конфигуратора для проверки и лечения данных. Отладка — более широкое понятие: оно включает поиск причины ошибки (в коде, данных или структуре базы), а тестирование и исправление — лишь один из инструментов на этапе устранения.
Можно ли отлаживать код прямо на рабочей базе?
Технически отладчик подключается и к рабочей базе, но делать это не стоит: точка останова блокирует выполнение кода у реальных пользователей, а исправление кода требует обновления конфигурации базы данных. Правильный путь — развёрнуть копию из выгрузки dt и отлаживаться на ней.
Что делать, если тестирование и исправление зависает?
На больших базах процесс может идти часами — это нормально, ориентируйтесь на активность диска и процессора. Если активности нет длительное время, завершите процесс, восстановите базу из копии и запускайте проверки по одной, начиная с самой вероятной. Прерывание исправления на середине может оставить базу в неконсистентном состоянии, поэтому работайте только с копией.
Удалит ли chdbfl мои данные?
Утилита исправляет структуру файла, но повреждённые страницы, которые не удаётся прочитать, могут быть исключены вместе с записями. Поэтому после chdbfl обязательно сверяют ключевые данные (остатки, документы за последний период) с резервной копией и журналом восстановления.
Почему битые ссылки появляются снова после исправления?
Значит, действует источник: обработка загрузки, обмен данными или доработка, которая удаляет объекты напрямую, минуя контроль ссылочной целостности. Найдите её по журналу регистрации (события удаления объектов) и устраните механизм появления ссылок, иначе чистка будет бесконечной.
Когда нужен специалист, а не самостоятельная отладка?
Когда база не открывается после штатных средств восстановления, когда ошибки затрагивают регламентированную отчётность и закрытие периода, когда база клиент-серверная и повреждены таблицы СУБД, а также когда нет свежей резервной копии — в этих случаях цена ошибки выше стоимости привлечения администратора.
Что важно запомнить
Отладка базы 1С — это диагностика и устранение ошибок в коде, данных и структуре базы. Работайте только на копии, начинайте с воспроизведения и локализации проблемы, используйте отладчик для кода и тестирование с исправлением для данных, а результат подтверждайте контрольными проверками. Нет свежей копии — не начинайте исправление.