Диагностика 1С 8.3: от журнала регистрации до тестирования базы

· 10 мин

Содержание

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

Если после них причина не ясна, подключают тяжёлую артиллерию: отладчик, технологический журнал, консоль кластера для поиска блокировок и утилиту chdbfl.exe для файловых баз. Методы ниже работают в любой конфигурации на платформе 1С:Предприятие 8.3: в БП 3.0, ЗУП 3.1, УТ 11 и других. Разница только в том, где в пользовательском режиме открыть журнал.

С чего начать диагностику 1С: симптом подсказывает метод

Не стоит запускать все проверки подряд. Сначала опишите симптом, затем выберите инструмент. Это экономит время: тестирование крупной базы может идти несколько часов.

СимптомПервый инструментЧто покажет
Ошибка при проведении, записи, открытии формыЖурнал регистрацииТекст ошибки, пользователь, объект, время
Ошибка формата потока, Неустранимая ошибка, база не открываетсяТестирование и исправление, chdbfl.exeПовреждения таблиц и файла базы
Ошибка появилась после обновления или доработкиПроверка конфигурации, синтаксис модулейОшибки в коде и метаданных
Ошибка «плавает», воспроизводится не у всехОтладчик, технологический журналТочную строку кода и контекст вызова
Всё зависает, Конфликт блокировок при выполнении транзакцииКонсоль кластера, технологический журналКто держит блокировку и на какой таблице
Цифры в отчётах не сходятся, документы «пропадают»Пересчёт итогов, проверки учёта в конфигурацииРасхождения итогов и логические ошибки данных

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

Отметьте, на каких рабочих местах ошибка есть, а на каких нет. Если только на одном компьютере, часто дело в локальном кэше, а не в базе. Его чистят запуском с ключом /ClearCache или удалением папки кэша пользователя при закрытой программе.

Журнал регистрации: как найти ошибки 1С по событиям

Журнал регистрации пишет события базы: входы, записи объектов, ошибки. Это первое место, где искать причину.

Где открыть журнал:

  • в пользовательском режиме БП 3.0, ЗУП 3.1, УТ 11: Администрирование → Обслуживание → Журнал регистрации;
  • в конфигураторе: Администрирование → Журнал регистрации.

Как отфильтровать только ошибки:

  1. Нажмите кнопку установки отбора в журнале.
  2. В поле «Уровень» оставьте только «Ошибка».
  3. Задайте интервал: начните с часа вокруг момента сбоя.
  4. При необходимости ограничьте пользователя и компьютер.
  5. Откройте запись двойным щелчком: в «Комментарии» будет полный текст исключения.

Колонка «Данные» показывает объект, на котором упала операция. Например, конкретный документ «Реализация (акты, накладные, УПД)». Это сразу сужает поиск.

Если в журнале пусто

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

Физически журнал лежит в подкаталоге 1Cv8Log:

  • у файловой базы — в каталоге базы;
  • у клиент-серверной — в каталоге кластера, в папке reg_1541\<идентификатор базы>\1Cv8Log.

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

Тестирование и исправление информационной базы

Это встроенный механизм проверки самой базы данных. Он ищет повреждённые таблицы, битые ссылки и ошибки итогов.

Сделайте резервную копию базы перед запуском в режиме исправления. Исправление может удалить повреждённые объекты без возможности отката. Для файловой базы достаточно скопировать каталог при закрытой программе, для серверной — выгрузить .dt или сделать копию средствами СУБД.

Запуск из конфигуратора

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

  1. Откройте конфигуратор.
  2. Выберите Администрирование → Тестирование и исправление.
  3. Отметьте проверки (таблица ниже).
  4. Выберите режим «Только тестирование» для первого прохода.
  5. Нажмите «Выполнить» и дождитесь протокола.
  6. Если ошибки найдены и копия сделана, повторите в режиме «Тестирование и исправление».
ПроверкаЧто делаетКогда включать
Реиндексация таблицПерестраивает индексыМедленный поиск, ошибки индексов
Проверка логической целостностиПроверяет структуру таблицПочти всегда
Проверка ссылочной целостностиИщет ссылки на удалённые объектыОшибки «Объект не найден»
Пересчёт итоговПересчитывает итоги регистровОстатки в отчётах не совпадают
Сжатие таблицУдаляет пустоты в файловой базеПосле массового удаления данных
Реструктуризация таблицПересоздаёт таблицыПоследний шаг, долгая операция

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

Пакетный запуск по расписанию

Те же проверки запускаются без интерфейса. Это удобно для ночного регламента:

"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DisableStartupDialogs /IBCheckAndRepair -LogAndRefsIntegrity -RecalcTotals -TestOnly /Out"D:\Logs\check.txt"

Номер версии в пути замените на свой. Для серверной базы вместо /F"путь" укажите /S"сервер\имя_базы". Ключ -TestOnly оставляет базу без изменений, протокол попадает в файл из /Out.

Утилита chdbfl.exe для файловой базы

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

  1. Закройте все сеансы базы.
  2. Запустите chdbfl.exe.
  3. Укажите путь к файлу 1Cv8.1CD.
  4. Сначала проверьте без флажка исправления, затем при необходимости включите «Исправлять обнаруженные ошибки».

После chdbfl.exe обычно запускают ещё и тестирование из конфигуратора. Утилита чинит файл на физическом уровне, а логические ошибки данных остаются.

Для клиент-серверной базы физическую целостность проверяют средствами СУБД. В MS SQL Server это команда DBCC CHECKDB, её запускает администратор СУБД.

Проверка конфигурации и модулей на ошибки в коде

Если ошибка появилась после обновления, установки расширения или правки кода, проверьте саму конфигурацию. Эта проверка не трогает данные и не требует выгонять пользователей.

Проверка конфигурации

В конфигураторе выберите Конфигурация → Проверка конфигурации. В окне отметьте:

  • 🔍 логическую целостность конфигурации;
  • 🔗 поиск некорректных ссылок;
  • 🧩 режимы проверки модулей: тонкий клиент, веб-клиент, сервер, внешнее соединение;
  • 📭 поиск неиспользуемых процедур и функций (по желанию, для чистки кода);
  • 🧷 проверку существования назначенных обработчиков.

Результат появится в окне сообщений. Двойной щелчок по строке открывает модуль на месте ошибки.

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

Синтаксис отдельного модуля

Для одного модуля не обязательно гонять всю проверку. Откройте модуль и выполните проверку синтаксиса командой Ctrl+F7. Ошибки вида Переменная не определена или Процедура или функция с указанным именем не определена появятся сразу.

Помните, что синтаксически верный код может падать при выполнении. Например, обращение к свойству пустой ссылки. Такие ошибки ловит отладчик, а не проверка синтаксиса.

Пакетная проверка конфигурации

Для регулярных проверок после обновлений подходит ключ /CheckConfig:

"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /CheckConfig -ConfigLogIntegrity -IncorrectReferences -ThinClient -Server /Out"D:\Logs\config.txt"

Отладчик и технологический журнал: где именно падает код

Журнал регистрации показывает, что упало. Отладчик показывает, почему.

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

  1. В конфигураторе выберите Отладка → Начать отладку → Тонкий клиент или нажмите F5.
  2. В меню Отладка включите «Остановка по ошибке».
  3. Повторите в открывшемся клиенте действие, которое вызывает ошибку.
  4. Отладчик остановится на строке исключения. Смотрите значения переменных в «Табло» и стек вызовов.

Точку останова на строку ставят клавишей F9. Чтобы отлаживать серверный код в клиент-серверной базе, отладку надо разрешить на сервере 1С: служба агента запускается с ключом -debug. Изменение параметров службы требует её перезапуска.

Перезапуск службы сервера 1С обрывает сеансы всех пользователей кластера. Делайте это в нерабочее время или на копии базы.

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

Технологический журнал

Технологический журнал пишет то, чего нет в журнале регистрации: исключения платформы, запросы к СУБД, ожидания на блокировках. Он настраивается файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf.

Минимальная настройка для сбора исключений:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\TechLog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Параметр history задаёт, сколько часов хранить логи. Платформа подхватывает файл без перезапуска, обычно в течение минуты.

Не оставляйте технологический журнал включённым без фильтров. Полный лог на нагруженном сервере пишет гигабайты в час и сам тормозит систему. Соберите данные за время воспроизведения ошибки и удалите или переименуйте logcfg.xml.

Мониторинг производительности и блокировок

Медленная работа и зависания — тоже ошибки, только без красного окна. Для них нужны свои инструменты.

Консоль кластера (клиент-серверный вариант). В «Администрировании серверов 1С Предприятия» откройте кластер и посмотрите:

  • «Сеансы» — кто подключён, сколько времени идёт вызов, сколько памяти занято;
  • «Блокировки» — какие объекты заблокированы и каким сеансом;
  • «Рабочие процессы» — нагрузку и память процессов rphost.

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

Технологический журнал по блокировкам. Добавьте в logcfg.xml события TLOCK, TTIMEOUT и TDEADLOCK. Они фиксируют ожидания управляемых блокировок, таймауты и взаимоблокировки. По ним видно, какие два действия сталкиваются: например, массовое перепроведение и ввод документов в рабочее время.

Типовые сообщения при проблемах с блокировками:

  • Конфликт блокировок при выполнении транзакции;
  • Превышено максимальное время ожидания предоставления блокировки.

Встроенная оценка производительности. В БП 3.0, ЗУП 3.1 и других конфигурациях на БСП есть подсистема оценки производительности по методике APDEX. Её включают в разделе Администрирование → Обслуживание. Она показывает, какие ключевые операции стали медленнее, и помогает доказать проблему цифрами, а не жалобами.

Счётчики Windows. В «Системном мониторе» (perfmon) следите за загрузкой процессора, свободной памятью и очередью диска. Если диск занят на 100%, никакая оптимизация кода не поможет.

Внешние утилиты и обработки для проверки 1С

Кроме встроенных механизмов, специалисты пользуются инструментами, которые закрывают отдельные задачи.

ИнструментДля чегоКому подходит
chdbfl.exeФизическая целостность файловой базыВсем с файловыми базами
DBCC CHECKDB (MS SQL)Целостность базы на сервере СУБДАдминистраторам СУБД
Экспресс-проверка ведения учёта (БП 3.0, раздел Отчёты)Учётные ошибки: сальдо, НДС, закрытие месяцаБухгалтерам
«Поиск и удаление дублей» (Администрирование → Обслуживание)Задвоенные элементы справочниковАдминистраторам базы
1С:АПК (автоматизированная проверка конфигураций)Стандарты разработки, ошибки кодаПрограммистам
Vanessa AutomationАвтотесты сценариев пользователяКомандам доработок
1С:ЦУП (из 1С:КИП)Мониторинг производительностиКрупным внедрениям

Внешние обработки «для проверки базы» из интернета запускайте только на копии. Обработка с правами администратора может изменить или удалить данные. Если источник неизвестен, лучше не запускать вовсе.

Диагностика: выберите симптом

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

Можно ли проверить базу 1С, не выгоняя пользователей?
Частично. Журнал регистрации, проверка конфигурации и технологический журнал работают при работающих пользователях. Тестированию и исправлению нужен монопольный доступ.
Сколько длится тестирование и исправление базы?
От нескольких минут для небольшой файловой базы до нескольких часов для серверной базы на сотни гигабайт. Дольше всего идут реструктуризация и пересчёт итогов.
Как часто проверять базу 1С на ошибки?
Журнал регистрации полезно просматривать еженедельно. Тестирование — после аварийного отключения питания, перед обновлением и раз в квартал как профилактику.
Почему после тестирования ошибка осталась?
Тестирование лечит данные, но не код и не окружение. Если ошибка в модуле, расширении или версии платформы, поможет проверка конфигурации и отладчик.
Что делать, если тестирование само падает с ошибкой?
Для файловой базы сначала запустите chdbfl.exe, затем повторите. Для серверной — проверьте базу средствами СУБД. Если не помогает, восстановитесь из резервной копии.