Сбой в 1С:Предприятии: порядок диагностики от простого к сложному
Содержание
Если 1С зависла или работает неправильно, первым делом не переустанавливайте платформу. Закройте программу, очистите кэш (запуск с параметром /ClearCache или удаление папок кэша пользователя) и откройте журнал регистрации: в нём почти всегда видно, что именно сломалось и в какой момент.
Частое заблуждение — что «система 1С сломалась целиком». На деле сбой обычно сидит в одном слое: в кэше на компьютере, в данных базы, в конфигурации, в блокировках или в сервере. Диагностика — это последовательная проверка этих слоёв, от безопасных действий к радикальным.
Перед любыми действиями с базой сделайте резервную копию. Для файловой базы — копию каталога с файлом 1Cv8.1CD, для любой базы — выгрузку .dt через Конфигуратор: Администрирование → Выгрузить информационную базу.
С чего начать: симптом и журнал регистрации
Сначала поймите, кого затрагивает проблема. От ответа зависит, куда смотреть дальше.
- 🖥️ Сбой у одного пользователя — скорее всего, кэш, настройки или компьютер.
- 👥 У всех пользователей одной базы — данные, конфигурация или блокировки.
- 🏢 Во всех базах на сервере — служба сервера 1С, СУБД, сеть или лицензии.
- 📄 Только в одном документе или отчёте — данные этого объекта или итоги регистров.
Запишите точный текст ошибки. Кнопка «Подробно» в окне ошибки раскрывает стек вызова — его удобно скопировать и передать программисту.
Как читать журнал регистрации
В пользовательском режиме БП 3.0 журнал открывается через Администрирование → Обслуживание → Журнал регистрации. В Конфигураторе — Администрирование → Журнал регистрации.
- Установите отбор по периоду: 10–15 минут до и после сбоя.
- Отберите по уровню важности «Ошибка».
- Добавьте отбор по пользователю, если проблема у одного человека.
- Откройте запись двойным щелчком: в ней будет текст ошибки, объект и компьютер.
💡 Если журнал пустой за нужный период, проверьте настройку уровня регистрации событий. Её меняют в Конфигураторе: Администрирование → Настройка журнала регистрации. При уровне «Не регистрировать» журнал ничего не пишет.
Ошибки, которые чаще всего всплывают в журнале и окнах сообщений:
Ошибка формата потока— повреждён кэш или файл данных.Нарушена целостность структуры конфигурации— конфигурация повреждена или обновлена не до конца.Конфликт блокировок при выполнении транзакции— два процесса меняют одни и те же данные.Превышено максимальное время ожидания предоставления блокировки— то же, но один процесс ждал слишком долго.Неустранимая ошибка— падение клиента или рабочего процесса, причину ищут в журнале и на компьютере.
Кэш и сеанс: что сделать на компьютере пользователя
Очистка кэша решает большую часть странностей: «прыгающие» формы, старые версии отчётов после обновления, Ошибка формата потока, зависание на заставке.
Способ 1. Параметр запуска /ClearCache
- В окне запуска выберите базу и нажмите «Изменить».
- Пройдите до последней страницы мастера.
- В поле «Дополнительные параметры запуска» впишите
/ClearCache. - Запустите базу один раз, затем удалите параметр.
Способ 2. Удалить папки кэша вручную
Закройте все окна 1С на компьютере. Затем откройте через Win+R два каталога:
%APPDATA%\1C\1cv8
%LOCALAPPDATA%\1C\1cv8
Внутри лежат папки с длинными именами вида a1b2c3d4-... — это кэш отдельных баз. Удалите их. Отдельные файлы .pfl рядом с папками не трогайте — это настройки. Список баз хранится в другом месте, в %APPDATA%\1C\1CEStart\ibases.v8i, и очистка кэша его не затрагивает.
Не знаете, какая папка относится к нужной базе? Удалите все папки с GUID-именами. Платформа создаст их заново при следующем запуске, просто первый вход будет чуть дольше.
Если после очистки кэша сбой остался только у одного пользователя, проверьте его настройки: попросите другого пользователя войти с этого компьютера. Сбой пропал — дело в учётной записи 1С, а не в машине.
Конфигурация: проверка целостности и обновление
Когда проблема у всех пользователей базы, следующий слой — конфигурация. Особенно если сбой начался сразу после обновления.
Сравнить основную конфигурацию и конфигурацию БД
В Конфигураторе есть две конфигурации: основная (та, что вы правите или обновляете) и конфигурация базы данных (та, с которой работают пользователи). Если обновление прервалось, они расходятся.
- Откройте базу в Конфигураторе.
- Выберите
Конфигурация → Обновить конфигурацию базы данных(клавишаF7). - Если платформа сообщает, что конфигурации совпадают, — этот слой в порядке.
- Если начинается обновление — дождитесь его завершения. Для изменения структуры нужен монопольный доступ.
После обновления конфигурации БД запустите базу в пользовательском режиме. Типовая конфигурация может попросить подтвердить легальность обновления и выполнит обработчики обновления данных. Не прерывайте их.
Проверка конфигурации
Пункт Конфигурация → Проверка конфигурации ищет ошибки в модулях и ссылках между объектами. Это полезно, если конфигурация доработана: программист мог оставить синтаксическую ошибку, которая всплывает только в одном сценарии.
| Ситуация | Что делать | Риск |
|---|---|---|
| Обновление прервалось | F7 — дообновить конфигурацию БД | Низкий, нужен монопольный доступ |
| Ошибка в доработанном модуле | Проверка конфигурации, исправление кода | Средний, нужен программист |
| Сбой после установки расширения | Отключить расширение и проверить работу | Низкий |
| Конфигурация повреждена | Восстановить из выгрузки .dt или файла .cf | Высокий, теряются данные после копии |
Расширения часто ломают работу после обновления типовой конфигурации. Проверить быстро: отключите расширение в списке расширений (флажок «Активно») и перезапустите сеанс. Ошибка исчезла — расширение нужно адаптировать к новому релизу.
Данные базы: итоги регистров и тестирование и исправление
Если неверные остатки, не формируются отдельные отчёты или документы не проводятся без внятной причины — проблема в данных.
Пересчёт итогов
Итоги — это заранее посчитанные остатки и обороты регистров. Если они рассинхронизировались с движениями, отчёты показывают ерунду или тормозят.
В пользовательском режиме управление итогами открывается через Все функции → Стандартные → Управление итогами. Пункт «Все функции» включают в настройках: Главное меню → Сервис → Параметры → Отображать команду «Все функции».
- Откройте «Управление итогами».
- Перейдите в режим «Все функции» внутри обработки.
- Отметьте нужные регистры или все сразу.
- Нажмите «Пересчитать итоги».
На крупной базе пересчёт идёт долго и нагружает сервер. Запускайте его вне рабочего времени.
Тестирование и исправление
Это главный инструмент для повреждённых данных. Запускается в Конфигураторе: Администрирование → Тестирование и исправление. Нужен монопольный доступ — пользователи должны выйти из базы.
Порядок, который работает надёжнее всего:
- Первый проход — только тестирование, без исправления. Оставьте флажки проверок, режим «Тестирование».
- Изучите отчёт: какие объекты и регистры затронуты.
- Второй проход — «Тестирование и исправление», если копия базы сделана.
- При битых ссылках выбирайте «Создавать объекты» для сохранения связей, а не «Удалять ссылки» — удаление стирает реквизиты в документах.
Исправление необратимо. При ошибках в данных платформа может удалить повреждённые записи. Поэтому сначала копия, потом исправление.
Для файловой базы есть ещё утилита chdbfl.exe в каталоге bin установленной платформы. Она проверяет физическую целостность файла 1Cv8.1CD, когда база не открывается даже в Конфигураторе. Перед запуском закройте все сеансы и сделайте копию файла.
Блокировки и монопольный режим
Многие «зависания» на деле — ожидание блокировки. Документ не проводится, потому что кто-то другой держит те же данные. Или обновление не стартует, потому что в базе остались сеансы.
Когда нужен монопольный режим
Монопольный доступ нужен не для всех операций. Он обязателен для:
- обновления конфигурации БД с изменением структуры;
- загрузки информационной базы из
.dt; - тестирования и исправления.
Остальную работу в Конфигураторе (просмотр, правка основной конфигурации, выгрузка .dt на свежих версиях платформы) можно делать при работающих пользователях.
Как выгнать пользователей корректно
В типовых конфигурациях есть обработка «Блокировка работы пользователей». В БП 3.0 она лежит в Администрирование → Обслуживание; в ЗУП 3.1 эта группа называется «Поддержка и обслуживание».
- Укажите время начала блокировки и сообщение для пользователей.
- Задайте код разрешения — с ним вы сами войдёте в заблокированную базу.
- Установите блокировку. Пользователи получат предупреждение и будут отключены.
- Для входа с кодом добавьте в параметры запуска
/UC<код>, например/UC12345. - После работ снимите блокировку той же обработкой.
Принудительное отключение обрывает несохранённую работу. Предупредите сотрудников заранее и выбирайте время, когда в базе никого нет.
Зависшие сеансы в файловой базе
Если все вышли, а база пишет, что занята, — на каком-то компьютере остался процесс 1cv8.exe или 1cv8c.exe. Найдите его в диспетчере задач на машинах пользователей или на сервере терминалов и завершите. Удалять файлы из каталога базы вслепую нельзя: рядом с 1Cv8.1CD лежат журналы и служебные файлы.
Клиент-серверная база: агент, кластер и рабочие процессы
В клиент-серверном варианте добавляется ещё один слой — сервер 1С и СУБД. Признак проблемы в этом слое: падают или тормозят сразу все базы на сервере.
Схема подключения: клиент обращается к агенту сервера (порт 1540), затем к менеджеру кластера (1541) и рабочим процессам. Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера, по умолчанию 1560–1591. Если между клиентом и сервером закрыт хотя бы один из этих портов, подключение рвётся.
Что проверить по порядку
- Служба запущена. Служба «Агент сервера 1С:Предприятия 8.3» должна быть в состоянии «Выполняется».
- Консоль администрирования. Откройте консоль кластера и посмотрите список сеансов базы: зависшие сеансы, сеансы фоновых заданий, блокировки.
- Рабочие процессы. Если процесс
rphostсъел всю память, кластер может перезапустить его сам — это настраивается в параметрах кластера. - СУБД. Проверьте, что сервер PostgreSQL или MS SQL доступен, есть место на диске под базу и журнал транзакций.
- Версии. Номер версии платформы на клиенте должен совпадать с номером версии сервера.
Если консоль не открывается, проверьте сервер через командную строку утилитой rac. Для начала хватит rac cluster list — она покажет, отвечает ли агент. Остальные команды смотрите в справке rac help.
Очистка кэша сервера
Когда сервер ведёт себя странно после обновления или аварийного выключения, помогает очистка серверного кэша сеансов. Порядок такой:
- Остановите службу агента сервера 1С.
- В каталоге
srvinfoоткройте папку кластера (обычноreg_1541). - Удалите папки с именами, начинающимися на
snccntx. - Запустите службу.
Файлы 1CV8Clst.lst и 1CV8Reg.lst не трогайте: в них описание кластера и список баз. Без них кластер придётся настраивать заново.
Остановка службы отключает всех пользователей во всех базах сервера. Делайте это вне рабочего времени и предупредите людей заранее.
Платформа: когда переустанавливать и как сделать это чисто
Переустановка платформы — последний шаг, а не первый. Она оправдана, если:
- 1С не запускается ни в одной базе на этом компьютере;
- падает при старте с
Неустранимая ошибкадаже после очистки кэша; - обновление конфигурации требует платформу с номером не ниже определённого, а установлена более ранняя.
Чистая переустановка
- Посмотрите номер текущей версии в окне «О программе» и номер версии на сервере (для клиент-серверной базы они должны совпасть).
- Удалите платформу через «Программы и компоненты» Windows.
- Удалите папки кэша (см. раздел про кэш выше).
- Установите дистрибутив нужной версии с правами администратора.
- Если используется аппаратный ключ защиты — установите драйвер ключа при установке платформы.
Скачивать дистрибутив стоит только с портала поддержки по вашей подписке или у партнёра. Сборки с посторонних сайтов могут быть изменены и содержать вредоносный код.
Когда звать специалиста
Самостоятельную диагностику стоит остановить, если тестирование и исправление находит массовые ошибки, база не открывается даже в Конфигураторе или сервер 1С падает после каждой перезагрузки. В этих случаях лишние эксперименты уменьшают шанс восстановить данные. Сохраните копию базы в текущем состоянии и передайте её вместе с текстом ошибок и выпиской из журнала регистрации.
Частые вопросы
Можно ли просто перезагрузить компьютер, если 1С зависла?
1cv8.exe в диспетчере задач. Несохранённые данные будут потеряны.Почему после обновления у одного сотрудника всё работает, а у другого — ошибки?
Нужно ли регулярно делать тестирование и исправление «для профилактики»?
Как понять, что тормозит именно сервер, а не база?
Что делать, если журнал регистрации сам открывается очень долго?
Администрирование → Журнал регистрации → Сократить, предварительно сохранив старые записи в файл.