1С сама вылетает без сообщения: разбираем сбой по следам

· 11 мин

Содержание

1С закрывается сама по одной из шести причин: битый кэш клиента, несовпадение версий платформы, повреждение базы, вмешательство антивируса, ошибка в коде (чаще во внешней обработке или расширении) и нехватка памяти. Быстрее всего виновника показывают журнал Windows Просмотр событий → Журналы Windows → Приложение и журнал регистрации самой базы.

Ниже — порядок диагностики для платформы 8.3 в файловом и клиент-серверном варианте. Сначала сужаем круг по симптомам, потом смотрим логи, и только потом что-то чиним. Так вы не потратите час на «Тестирование и исправление», когда достаточно было очистить кэш .

Сначала сузьте круг: кто, где и когда падает

Аварийное закрытие 1С почти всегда оставляет «почерк». Ответьте на четыре вопроса — и половина причин отпадёт.

  • 👤 Падает у одного пользователя или у всех? У одного — ищите на его компьютере: кэш, антивирус, драйверы, профиль Windows. У всех — база, сервер, обновление конфигурации .
  • 🖥 На одном компьютере или под любым входом? Зайдите тем же пользователем 1С с другого ПК. Если там работает — проблема в машине, а не в базе.
  • ⏱ В момент запуска или при конкретном действии? Вылет при старте указывает на кэш, версии и файлы базы. Вылет при открытии отчёта или печати — на код, внешнюю обработку или память.
  • 🔁 Повторяется ли стабильно? Если вылет случается на одном и том же документе — это воспроизводимая ошибка, её легко поймать техжурналом. Случайные вылеты раз в день чаще связаны с железом, памятью и сетью.

Отдельно проверьте режим запуска. Попробуйте открыть базу тонким клиентом вместо толстого (или наоборот) и через веб-клиент, если база опубликована. Если в одном клиенте работает, а в другом нет, круг сужается до конкретного исполняемого файла и его окружения.

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

Где искать следы падения: журналы 1С и Windows

Без логов любая починка — гадание. Есть три источника, и каждый показывает свою часть картины.

Журнал регистрации базы

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

Что смотреть:

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

Журнал регистрации пишет то, что успела зафиксировать сама 1С. При жёстком падении процесса последней записи об ошибке может не быть вовсе. Это тоже информация: значит, упала платформа или внешний модуль, а не прикладной код с обычной ошибкой.

Журнал приложений Windows

Нажмите Win + R, введите eventvwr.msc, откройте Журналы Windows → Приложение. Ищите события с источником Application Error во время вылета.

В карточке события важны две строки:

  • Имя сбойного приложения — 1cv8.exe (толстый клиент), 1cv8c.exe (тонкий клиент), rphost.exe (рабочий процесс сервера).
  • Имя сбойного модуля — библиотека, внутри которой случилась авария.
Сбойный модульКуда смотреть в первую очередь
библиотека из каталога платформы (...\1cv8\8.3.x.x\bin\)версия платформы, переустановка платформы, кэш
библиотека антивируса или DLP-системыисключения в антивирусе
драйвер видеокарты или принтераобновление драйвера, печать на другой принтер
внешняя компонента (оборудование, обмен)компонента в обработке, разрядность клиента
ntdll.dll, KERNELBASE.dllнеинформативно, нужен дамп и техжурнал

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

Если журналы выше молчат, включите техжурнал. Создайте файл logcfg.xml в каталоге conf платформы (например, C:\Program Files\1cv8\conf\). На сервере — на том компьютере, где работает кластер.

Минимальная настройка, которая ловит исключения и пишет дампы:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <dump create="true" location="C:\v8logs\dumps" type="3"/>
  <log location="C:\v8logs\logs" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Платформа подхватывает файл без перезапуска, через минуту-две. Каталоги C:\v8logs\... создайте заранее, у пользователя или службы сервера должны быть права на запись.

Техжурнал и дампы быстро занимают диск. Включайте их на время поиска, после воспроизведения сбоя удалите или переименуйте logcfg.xml. Дампы передавайте в поддержку или своему программисту — вручную их разбирают отладчиком Windows.

Конфликт версий платформы и конфигурации

Это частая причина массовых вылетов сразу после обновления.

  • 🔢 Конфигурация требует более новую платформу. Каждый релиз типовой конфигурации рассчитан на номер платформы не ниже определённого. Обычно 1С сообщает об этом при запуске. Но если обновили конфигурацию, а на части компьютеров платформа старая, возможны и вылеты при работе. Минимальную версию смотрите в описании релиза, которое приходит с обновлением.
  • 🧩 Клиент и сервер разных версий. В клиент-серверном варианте номер платформы на клиенте должен совпадать с номером на сервере. При несовпадении подключение не проходит или обрывается.
  • 📦 Несколько версий платформы на одном ПК. Ярлык или список баз может запускать не ту версию. В окне запуска откройте Изменить для базы и посмотрите поле версии на последнем шаге. Значение 8.3 запускает самую новую из установленных, конкретный номер — только её.
  • 🧱 Разрядность. 64-разрядный клиент не загружает 32-разрядные внешние компоненты. Старый драйвер торгового оборудования или компонента обмена в таком клиенте может вызывать аварию при обращении к ней.

Как действовать:

  1. Узнайте номер платформы на сервере или на компьютере, где всё работает: главное меню (кнопка с тремя полосками в заголовке окна) → Справка → О программе.
  2. Поставьте ровно этот номер на проблемный компьютер.
  3. Если вылеты начались после обновления платформы, а не конфигурации, временно верните предыдущий номер в настройке базы и проверьте, уйдут ли сбои. Старые версии не удаляйте сразу после обновления — они нужны для такой проверки.

Кэш, файлы базы и их повреждение

Кэш клиента — начните с него

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

  1. Закройте все окна 1С на этом компьютере.
  2. Удалите содержимое каталогов %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 — папки с длинными именами вида GUID. Файлы списка баз (ibases.v8i в %APPDATA%\1C\1CEStart\) не трогайте.
  3. Запустите базу. При первом старте 1С заново загрузит метаданные, это займёт дольше обычного.

Вариант проще: в окне запуска выберите базу, нажмите Изменить и в поле дополнительных параметров запуска впишите /ClearCache. Работает для одного запуска, потом параметр стоит убрать.

Повреждение файловой базы

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

Перед любым исправлением сделайте копию базы : для файловой — скопируйте файл 1Cv8.1CD при закрытой базе, для серверной — выгрузку или резервную копию СУБД.

Порядок проверки:

  1. chdbfl.exe — утилита проверки физической целостности файловой базы. Лежит в каталоге bin платформы. Все пользователи должны выйти из базы. Укажите путь к 1Cv8.1CD, сначала запустите проверку без галки исправления.
  2. Тестирование и исправление — в Конфигураторе: Администрирование → Тестирование и исправление. Нужен монопольный доступ, поэтому всех пользователей придётся выгнать. Начните с режима «Только тестирование», затем включайте исправление и пересчёт итогов.
  3. Реиндексация — галка «Реиндексация таблиц информационной базы» в том же окне. Помогает, когда вылеты связаны с поиском и отбором в списках.

Режим «Удалять ссылки на объекты» и удаление объектов при исправлении безвозвратно меняют данные. Включайте их, только если понимаете, какие объекты будут удалены, и после проверки на копии.

Серверная база

Здесь повреждение «внутри файла» исключено, физику хранит СУБД. Проверяйте целостность средствами самой СУБД и смотрите на сеансовые данные кластера. При подозрении на испорченный кэш сервера его очищают остановкой службы агента и удалением каталогов сеансовых данных — это обрывает работу всех пользователей кластера, делайте только вне рабочего времени и после предупреждения сотрудников.

Антивирус и другие программы рядом с 1С

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

Что добавить в исключения:

  • 📁 каталог с файловой базой (весь, не только 1Cv8.1CD);
  • 📁 %APPDATA%\1C и %LOCALAPPDATA%\1C — кэш и настройки;
  • 📁 временный каталог пользователя %TEMP%, если политика безопасности позволяет;
  • ⚙️ процессы 1cv8.exe, 1cv8c.exe, 1cv8s.exe;
  • ⚙️ на сервере — ragent.exe, rmngr.exe, rphost.exe и каталог данных кластера.

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

Кроме антивируса, проверьте:

  • 🖨 Драйвер принтера. Вылет строго при печати или предпросмотре — повод обновить драйвер или проверить печать на другой принтер.
  • 🖥 Драйвер видеокарты. Сбой при открытии форм с картинками, диаграммами, при прокрутке длинных списков. Обновите драйвер с сайта производителя.
  • 🧷 Программы, встраивающиеся во все процессы: DLP-системы, средства удалённого доступа, «оптимизаторы» и переключатели раскладки. Имя их библиотеки видно в журнале Windows как сбойный модуль.
  • 🔐 Криптопровайдер. Если 1С падает при подписании в ЭДО или отправке отчётности, проверьте версию криптопровайдера и его совместимость с разрядностью клиента.

Ошибки в коде, расширениях и внешних обработках

Типовая конфигурация без доработок падает редко. Чаще всего аварийное закрытие 1С вызывает доработанный код.

Типичные виновники:

  • 🔁 Бесконечная рекурсия — процедура вызывает сама себя без условия выхода. Память стека кончается, процесс закрывается.
  • 🧮 Огромная выборка в память — запрос без отборов к регистру за много лет, выгрузка в таблицу значений миллионов строк.
  • 🔌 Внешние компоненты — драйверы оборудования, библиотеки обмена, сторонние DLL. Ошибка в компоненте роняет весь процесс 1С, а не только вызов.
  • 🧩 Расширения, написанные под старый релиз. После обновления конфигурации расширение может перехватывать уже изменённую процедуру.

Как проверить, что виноват код:

  1. Повторите действие под другим пользователем с полными правами. Если не падает — смотрите права и персональные настройки, а не код.
  2. Отключите расширения. В БП 3.0 и других конфигурациях на БСП они управляются через Администрирование → Печатные формы, отчеты и обработки → Расширения. Снимите флаг активности у подозрительного расширения и перезапустите сеанс.
  3. Если падает на внешней обработке или печатной форме, временно отключите её в Дополнительных отчётах и обработках того же раздела.
  4. Включите техжурнал (см. выше) и воспроизведите сбой. В событии EXCP часто видно имя модуля и строку.

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

Мини-кейс из практики: после установки нового сканера штрихкодов бухгалтер склада стала вылетать при открытии документа поступления. Журнал Windows показал сбойный модуль драйвера сканера. Клиент был 64-разрядным, а драйвер — 32-разрядным. Запуск этой базы на 32-разрядном клиенте убрал вылеты до выхода нового драйвера.

Нехватка памяти, диска и аппаратные сбои

Память клиента

Посмотрите в диспетчере задач, сколько памяти занимает процесс 1С перед вылетом. 32-разрядный клиент ограничен адресным пространством в несколько гигабайт. Тяжёлый отчёт за год или открытый на весь экран список с тысячами строк могут его исчерпать.

Что помогает:

  • сузить период и отборы тяжёлого отчёта;
  • установить 64-разрядный клиент, если нет 32-разрядных компонент;
  • закрыть лишние окна внутри 1С — каждая открытая форма держит данные;
  • на терминальном сервере — проверить общий объём ОЗУ: десять сеансов по 1,5 ГБ — это уже 15 ГБ.

Память и ресурсы сервера

В клиент-серверном варианте падает не окно пользователя, а рабочий процесс rphost.exe. Пользователи видят обрыв соединения сразу у нескольких человек.

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

Диск

  • 💾 Мало места. Файловая база, кэш и временные файлы растут. Если на диске с базой или профилем свободно меньше нескольких гигабайт, запись прерывается, а база может повредиться.
  • 🌐 Файловая база по сети. Обрыв Wi-Fi или сбой сетевой папки во время записи — частая причина вылетов и повреждения 1Cv8.1CD. Для работы нескольких человек по сети лучше клиент-серверный вариант или веб-публикация.
  • 🧲 Битые секторы. Проверьте диск штатной утилитой chkdsk и показатели SMART. Ошибки чтения в журнале Windows (источник disk) — тревожный признак.

Оперативная память и питание

Случайные вылеты 1С и других программ, «синие экраны», ошибки в разных местах базы — признаки сбойной памяти или перегрева. Запустите встроенную проверку памяти Windows (mdsched.exe). Без ИБП каждое отключение питания во время записи в файловую базу — риск её повредить.

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

Почему 1С закрывается без какого-либо сообщения об ошибке?
Так бывает, когда падает сам процесс платформы, а не прикладной код. Окно ошибки 1С показать не успевает. Причину ищите в журнале Windows по имени сбойного модуля и в дампах техжурнала.
Можно ли восстановить данные, введённые до вылета?
Записанные документы и элементы сохранены. Несохранённая форма теряется, черновиков 1С не хранит. Если вылет случился во время записи, откройте документ и проверьте, что он записан и проведён полностью.
Помогает ли переустановка платформы?
Помогает, если журнал Windows указывает на библиотеку из каталога платформы или файлы платформы повреждены. Ставьте тот же номер версии, что на сервере. При проблемах с кэшем, базой или кодом переустановка ничего не даст.
1С закрывается только при работе через удалённый рабочий стол. Что проверить?
Память терминального сервера на все сеансы, драйверы перенаправленных принтеров и права пользователя на свой профиль. Перенаправленные принтеры с «чужими» драйверами — частая причина вылетов при печати.
Как понять, что база повреждена, а не компьютер?
Зайдите в базу с другого ПК под другим пользователем и повторите действие. Если вылет повторяется везде на одном и том же документе или отчёте — проблема в базе или коде. Если только на одной машине — в машине.