Диагностика 1С 8.3: от журнала регистрации до тестирования базы
Содержание
Проверить программу 1С на ошибки быстрее всего в таком порядке: открыть журнал регистрации с отбором по уровню «Ошибка», затем запустить в конфигураторе Администрирование → Тестирование и исправление в режиме «Только тестирование», затем выполнить Конфигурация → Проверка конфигурации. Эти три проверки отвечают на три разных вопроса: что сломалось у пользователей, цела ли база данных и есть ли ошибки в самой конфигурации.
Если после них причина не ясна, подключают тяжёлую артиллерию: отладчик, технологический журнал, консоль кластера для поиска блокировок и утилиту chdbfl.exe для файловых баз. Методы ниже работают в любой конфигурации на платформе 1С:Предприятие 8.3: в БП 3.0, ЗУП 3.1, УТ 11 и других. Разница только в том, где в пользовательском режиме открыть журнал.
С чего начать диагностику 1С: симптом подсказывает метод
Не стоит запускать все проверки подряд. Сначала опишите симптом, затем выберите инструмент. Это экономит время: тестирование крупной базы может идти несколько часов.
| Симптом | Первый инструмент | Что покажет |
|---|---|---|
| Ошибка при проведении, записи, открытии формы | Журнал регистрации | Текст ошибки, пользователь, объект, время |
Ошибка формата потока, Неустранимая ошибка, база не открывается | Тестирование и исправление, chdbfl.exe | Повреждения таблиц и файла базы |
| Ошибка появилась после обновления или доработки | Проверка конфигурации, синтаксис модулей | Ошибки в коде и метаданных |
| Ошибка «плавает», воспроизводится не у всех | Отладчик, технологический журнал | Точную строку кода и контекст вызова |
Всё зависает, Конфликт блокировок при выполнении транзакции | Консоль кластера, технологический журнал | Кто держит блокировку и на какой таблице |
| Цифры в отчётах не сходятся, документы «пропадают» | Пересчёт итогов, проверки учёта в конфигурации | Расхождения итогов и логические ошибки данных |
Перед любой проверкой соберите три факта: точный текст сообщения (скопируйте его, а не пересказывайте), время появления и действие пользователя. Сообщение об ошибке в 1С копируется через кнопку подробностей в окне ошибки. В подробном отчёте видны модуль и номер строки.
Отметьте, на каких рабочих местах ошибка есть, а на каких нет. Если только на одном компьютере, часто дело в локальном кэше, а не в базе. Его чистят запуском с ключом /ClearCache или удалением папки кэша пользователя при закрытой программе.
Журнал регистрации: как найти ошибки 1С по событиям
Журнал регистрации пишет события базы: входы, записи объектов, ошибки. Это первое место, где искать причину.
Где открыть журнал:
- в пользовательском режиме БП 3.0, ЗУП 3.1, УТ 11:
Администрирование → Обслуживание → Журнал регистрации; - в конфигураторе:
Администрирование → Журнал регистрации.
Как отфильтровать только ошибки:
- Нажмите кнопку установки отбора в журнале.
- В поле «Уровень» оставьте только «Ошибка».
- Задайте интервал: начните с часа вокруг момента сбоя.
- При необходимости ограничьте пользователя и компьютер.
- Откройте запись двойным щелчком: в «Комментарии» будет полный текст исключения.
Колонка «Данные» показывает объект, на котором упала операция. Например, конкретный документ «Реализация (акты, накладные, УПД)». Это сразу сужает поиск.
Если в журнале пусто
Проверьте, что журнал вообще пишет ошибки. В конфигураторе откройте Администрирование → Настройка журнала регистрации. Уровень должен быть не ниже «Регистрировать ошибки». Там же видно, насколько старые записи удаляются.
Физически журнал лежит в подкаталоге 1Cv8Log:
- у файловой базы — в каталоге базы;
- у клиент-серверной — в каталоге кластера, в папке
reg_1541\<идентификатор базы>\1Cv8Log.
Огромный журнал (десятки гигабайт) сам замедляет работу. Старые события можно выгрузить и сократить через Администрирование → Журнал регистрации в конфигураторе, кнопкой сокращения журнала.
Тестирование и исправление информационной базы
Это встроенный механизм проверки самой базы данных. Он ищет повреждённые таблицы, битые ссылки и ошибки итогов.
Сделайте резервную копию базы
перед запуском в режиме исправления. Исправление может удалить повреждённые объекты без возможности отката. Для файловой базы достаточно скопировать каталог при закрытой программе, для серверной — выгрузить .dt или сделать копию средствами СУБД.
Запуск из конфигуратора
Для тестирования нужен монопольный доступ: все пользователи должны выйти из базы. Предупредите их заранее, лучше запускать вечером или в выходной.
- Откройте конфигуратор.
- Выберите
Администрирование → Тестирование и исправление. - Отметьте проверки (таблица ниже).
- Выберите режим «Только тестирование» для первого прохода.
- Нажмите «Выполнить» и дождитесь протокола.
- Если ошибки найдены и копия сделана, повторите в режиме «Тестирование и исправление».
| Проверка | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Медленный поиск, ошибки индексов |
| Проверка логической целостности | Проверяет структуру таблиц | Почти всегда |
| Проверка ссылочной целостности | Ищет ссылки на удалённые объекты | Ошибки «Объект не найден» |
| Пересчёт итогов | Пересчитывает итоги регистров | Остатки в отчётах не совпадают |
| Сжатие таблиц | Удаляет пустоты в файловой базе | После массового удаления данных |
| Реструктуризация таблиц | Пересоздаёт таблицы | Последний шаг, долгая операция |
Для битых ссылок программа спросит, что делать: создавать объекты-заглушки, очищать ссылки или ничего не менять. Безопаснее выбрать создание объектов. Потом вы найдёте заглушки с текстом «Объект не найден» и восстановите данные вручную.
Пакетный запуск по расписанию
Те же проверки запускаются без интерфейса. Это удобно для ночного регламента:
"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.
- Закройте все сеансы базы.
- Запустите
chdbfl.exe. - Укажите путь к файлу
1Cv8.1CD. - Сначала проверьте без флажка исправления, затем при необходимости включите «Исправлять обнаруженные ошибки».
После 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"
Отладчик и технологический журнал: где именно падает код
Журнал регистрации показывает, что упало. Отладчик показывает, почему.
Отладка в конфигураторе
- В конфигураторе выберите
Отладка → Начать отладку → Тонкий клиентили нажмитеF5. - В меню
Отладкавключите «Остановка по ошибке». - Повторите в открывшемся клиенте действие, которое вызывает ошибку.
- Отладчик остановится на строке исключения. Смотрите значения переменных в «Табло» и стек вызовов.
Точку останова на строку ставят клавишей 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С:КИП) | Мониторинг производительности | Крупным внедрениям |
Внешние обработки «для проверки базы» из интернета запускайте только на копии. Обработка с правами администратора может изменить или удалить данные. Если источник неизвестен, лучше не запускать вовсе.