Сбой в 1С:Предприятии: порядок диагностики от простого к сложному

· 10 мин

Содержание

Если 1С зависла или работает неправильно, первым делом не переустанавливайте платформу. Закройте программу, очистите кэш (запуск с параметром /ClearCache или удаление папок кэша пользователя) и откройте журнал регистрации: в нём почти всегда видно, что именно сломалось и в какой момент.

Частое заблуждение — что «система 1С сломалась целиком». На деле сбой обычно сидит в одном слое: в кэше на компьютере, в данных базы, в конфигурации, в блокировках или в сервере. Диагностика — это последовательная проверка этих слоёв, от безопасных действий к радикальным.

Перед любыми действиями с базой сделайте резервную копию. Для файловой базы — копию каталога с файлом 1Cv8.1CD, для любой базы — выгрузку .dt через Конфигуратор: Администрирование → Выгрузить информационную базу.

С чего начать: симптом и журнал регистрации

Сначала поймите, кого затрагивает проблема. От ответа зависит, куда смотреть дальше.

  • 🖥️ Сбой у одного пользователя — скорее всего, кэш, настройки или компьютер.
  • 👥 У всех пользователей одной базы — данные, конфигурация или блокировки.
  • 🏢 Во всех базах на сервере — служба сервера 1С, СУБД, сеть или лицензии.
  • 📄 Только в одном документе или отчёте — данные этого объекта или итоги регистров.

Запишите точный текст ошибки. Кнопка «Подробно» в окне ошибки раскрывает стек вызова — его удобно скопировать и передать программисту.

Как читать журнал регистрации

В пользовательском режиме БП 3.0 журнал открывается через Администрирование → Обслуживание → Журнал регистрации. В Конфигураторе — Администрирование → Журнал регистрации.

  1. Установите отбор по периоду: 10–15 минут до и после сбоя.
  2. Отберите по уровню важности «Ошибка».
  3. Добавьте отбор по пользователю, если проблема у одного человека.
  4. Откройте запись двойным щелчком: в ней будет текст ошибки, объект и компьютер.

💡 Если журнал пустой за нужный период, проверьте настройку уровня регистрации событий. Её меняют в Конфигураторе: Администрирование → Настройка журнала регистрации. При уровне «Не регистрировать» журнал ничего не пишет.

Ошибки, которые чаще всего всплывают в журнале и окнах сообщений:

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

Кэш и сеанс: что сделать на компьютере пользователя

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

Способ 1. Параметр запуска /ClearCache

  1. В окне запуска выберите базу и нажмите «Изменить».
  2. Пройдите до последней страницы мастера.
  3. В поле «Дополнительные параметры запуска» впишите /ClearCache.
  4. Запустите базу один раз, затем удалите параметр.

Способ 2. Удалить папки кэша вручную

Закройте все окна 1С на компьютере. Затем откройте через Win+R два каталога:

%APPDATA%\1C\1cv8
%LOCALAPPDATA%\1C\1cv8

Внутри лежат папки с длинными именами вида a1b2c3d4-... — это кэш отдельных баз. Удалите их. Отдельные файлы .pfl рядом с папками не трогайте — это настройки. Список баз хранится в другом месте, в %APPDATA%\1C\1CEStart\ibases.v8i, и очистка кэша его не затрагивает.

Не знаете, какая папка относится к нужной базе? Удалите все папки с GUID-именами. Платформа создаст их заново при следующем запуске, просто первый вход будет чуть дольше.

Если после очистки кэша сбой остался только у одного пользователя, проверьте его настройки: попросите другого пользователя войти с этого компьютера. Сбой пропал — дело в учётной записи 1С, а не в машине.

Конфигурация: проверка целостности и обновление

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

Сравнить основную конфигурацию и конфигурацию БД

В Конфигураторе есть две конфигурации: основная (та, что вы правите или обновляете) и конфигурация базы данных (та, с которой работают пользователи). Если обновление прервалось, они расходятся.

  1. Откройте базу в Конфигураторе.
  2. Выберите Конфигурация → Обновить конфигурацию базы данных (клавиша F7).
  3. Если платформа сообщает, что конфигурации совпадают, — этот слой в порядке.
  4. Если начинается обновление — дождитесь его завершения. Для изменения структуры нужен монопольный доступ.

После обновления конфигурации БД запустите базу в пользовательском режиме. Типовая конфигурация может попросить подтвердить легальность обновления и выполнит обработчики обновления данных. Не прерывайте их.

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

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

СитуацияЧто делатьРиск
Обновление прервалосьF7 — дообновить конфигурацию БДНизкий, нужен монопольный доступ
Ошибка в доработанном модулеПроверка конфигурации, исправление кодаСредний, нужен программист
Сбой после установки расширенияОтключить расширение и проверить работуНизкий
Конфигурация поврежденаВосстановить из выгрузки .dt или файла .cfВысокий, теряются данные после копии

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

Данные базы: итоги регистров и тестирование и исправление

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

Пересчёт итогов

Итоги — это заранее посчитанные остатки и обороты регистров. Если они рассинхронизировались с движениями, отчёты показывают ерунду или тормозят.

В пользовательском режиме управление итогами открывается через Все функции → Стандартные → Управление итогами. Пункт «Все функции» включают в настройках: Главное меню → Сервис → Параметры → Отображать команду «Все функции».

  1. Откройте «Управление итогами».
  2. Перейдите в режим «Все функции» внутри обработки.
  3. Отметьте нужные регистры или все сразу.
  4. Нажмите «Пересчитать итоги».

На крупной базе пересчёт идёт долго и нагружает сервер. Запускайте его вне рабочего времени.

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

Это главный инструмент для повреждённых данных. Запускается в Конфигураторе: Администрирование → Тестирование и исправление. Нужен монопольный доступ — пользователи должны выйти из базы.

Порядок, который работает надёжнее всего:

  1. Первый проход — только тестирование, без исправления. Оставьте флажки проверок, режим «Тестирование».
  2. Изучите отчёт: какие объекты и регистры затронуты.
  3. Второй проход — «Тестирование и исправление», если копия базы сделана.
  4. При битых ссылках выбирайте «Создавать объекты» для сохранения связей, а не «Удалять ссылки» — удаление стирает реквизиты в документах.

Исправление необратимо. При ошибках в данных платформа может удалить повреждённые записи. Поэтому сначала копия, потом исправление.

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

Блокировки и монопольный режим

Многие «зависания» на деле — ожидание блокировки. Документ не проводится, потому что кто-то другой держит те же данные. Или обновление не стартует, потому что в базе остались сеансы.

Когда нужен монопольный режим

Монопольный доступ нужен не для всех операций. Он обязателен для:

  • обновления конфигурации БД с изменением структуры;
  • загрузки информационной базы из .dt;
  • тестирования и исправления.

Остальную работу в Конфигураторе (просмотр, правка основной конфигурации, выгрузка .dt на свежих версиях платформы) можно делать при работающих пользователях.

Как выгнать пользователей корректно

В типовых конфигурациях есть обработка «Блокировка работы пользователей». В БП 3.0 она лежит в Администрирование → Обслуживание; в ЗУП 3.1 эта группа называется «Поддержка и обслуживание».

  1. Укажите время начала блокировки и сообщение для пользователей.
  2. Задайте код разрешения — с ним вы сами войдёте в заблокированную базу.
  3. Установите блокировку. Пользователи получат предупреждение и будут отключены.
  4. Для входа с кодом добавьте в параметры запуска /UC<код>, например /UC12345.
  5. После работ снимите блокировку той же обработкой.

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

Зависшие сеансы в файловой базе

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

Клиент-серверная база: агент, кластер и рабочие процессы

В клиент-серверном варианте добавляется ещё один слой — сервер 1С и СУБД. Признак проблемы в этом слое: падают или тормозят сразу все базы на сервере.

Схема подключения: клиент обращается к агенту сервера (порт 1540), затем к менеджеру кластера (1541) и рабочим процессам. Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера, по умолчанию 1560–1591. Если между клиентом и сервером закрыт хотя бы один из этих портов, подключение рвётся.

Что проверить по порядку

  1. Служба запущена. Служба «Агент сервера 1С:Предприятия 8.3» должна быть в состоянии «Выполняется».
  2. Консоль администрирования. Откройте консоль кластера и посмотрите список сеансов базы: зависшие сеансы, сеансы фоновых заданий, блокировки.
  3. Рабочие процессы. Если процесс rphost съел всю память, кластер может перезапустить его сам — это настраивается в параметрах кластера.
  4. СУБД. Проверьте, что сервер PostgreSQL или MS SQL доступен, есть место на диске под базу и журнал транзакций.
  5. Версии. Номер версии платформы на клиенте должен совпадать с номером версии сервера.

Если консоль не открывается, проверьте сервер через командную строку утилитой rac. Для начала хватит rac cluster list — она покажет, отвечает ли агент. Остальные команды смотрите в справке rac help.

Очистка кэша сервера

Когда сервер ведёт себя странно после обновления или аварийного выключения, помогает очистка серверного кэша сеансов. Порядок такой:

  1. Остановите службу агента сервера 1С.
  2. В каталоге srvinfo откройте папку кластера (обычно reg_1541).
  3. Удалите папки с именами, начинающимися на snccntx.
  4. Запустите службу.

Файлы 1CV8Clst.lst и 1CV8Reg.lst не трогайте: в них описание кластера и список баз. Без них кластер придётся настраивать заново.

Остановка службы отключает всех пользователей во всех базах сервера. Делайте это вне рабочего времени и предупредите людей заранее.

Платформа: когда переустанавливать и как сделать это чисто

Переустановка платформы — последний шаг, а не первый. Она оправдана, если:

  • 1С не запускается ни в одной базе на этом компьютере;
  • падает при старте с Неустранимая ошибка даже после очистки кэша;
  • обновление конфигурации требует платформу с номером не ниже определённого, а установлена более ранняя.

Чистая переустановка

  1. Посмотрите номер текущей версии в окне «О программе» и номер версии на сервере (для клиент-серверной базы они должны совпасть).
  2. Удалите платформу через «Программы и компоненты» Windows.
  3. Удалите папки кэша (см. раздел про кэш выше).
  4. Установите дистрибутив нужной версии с правами администратора.
  5. Если используется аппаратный ключ защиты — установите драйвер ключа при установке платформы.

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

Перед тем как переустанавливать платформу
Выполнено: 0 / 6

Когда звать специалиста

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

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

Можно ли просто перезагрузить компьютер, если 1С зависла?
Можно, если зависла только у вас. Но сначала подождите пару минут: тяжёлый отчёт или проведение могут выглядеть как зависание. Если процесс не отвечает дольше — завершите 1cv8.exe в диспетчере задач. Несохранённые данные будут потеряны.
Почему после обновления у одного сотрудника всё работает, а у другого — ошибки?
У второго остался старый кэш или другая версия платформы. Очистите кэш на его компьютере и сравните номер версии в окне «О программе».
Нужно ли регулярно делать тестирование и исправление «для профилактики»?
Нет. Это инструмент лечения, а не профилактики. Для профилактики достаточно регулярных резервных копий и своевременных обновлений конфигурации.
Как понять, что тормозит именно сервер, а не база?
Если медленно работают все базы на сервере одновременно — проблема в сервере, СУБД или сети. Если только одна база — смотрите её данные, итоги и блокировки.
Что делать, если журнал регистрации сам открывается очень долго?
Журнал за годы разрастается. Сократите его в Конфигураторе через Администрирование → Журнал регистрации → Сократить, предварительно сохранив старые записи в файл.