Почему 1С аварийно завершает работу с предложением перезапустить программу и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

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

Шаг 1. Диагностика и отключение фоновых регламентных заданий

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

Проанализируем методику локализации сбойного фонового задания:

  1. Откроем информационную базу с правами администратора и перейдем в раздел Администрирование -> Обслуживание -> Регламентные и фоновые задания.
  2. Посмотрим на список активных регламентных заданий и историю их выполнения, обращая внимание на задания, завершившиеся с ошибками или выполняющиеся подозрительно долго.
  3. Отключим автоматический запуск встроенных служебных заданий (таких как ЗагрузкаНовостей, автоматическое обновление классификаторов, обновление индекса полнотекстового поиска).
  4. Если точное задание неизвестно, применим метод исключения: отключаем регламентные задания поочередно по одному и отслеживаем стабильность работы пользователей.

В ряде случаев, когда сбой приводит к падению рабочего процесса rphost, полезно временно заблокировать регламентные задания на уровне свойств информационной базы в консоли администрирования кластера серверов 1С (флаг Блокировка регламентных заданий включена), чтобы убедиться, что причина кроется именно в фоновых потоках.

Шаг 2. Очистка системных пользовательских настроек в базе данных

Если очистка локальных каталогов временных файлов (каталогов %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8) помогает лишь на короткое время, выясним причину: поврежденные данные восстанавливаются из системного хранилища настроек самой базы данных при повторном входе пользователя.

Для полного сброса настроек проблемного пользователя выполним следующие действия:

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

Шаг 3. Переход на 64-битный клиент и контроль адресного пространства

Рассмотрим аппаратные ограничения клиентского приложения. 32-битный клиент «1С:Предприятие» (исполняемый файл 1cv8c.exe) имеет жесткое ограничение виртуального адресного пространства процесса в 2 ГБ (или до 3 ГБ при специальной конфигурации ОС). При работе с массивными динамическими списками, тяжелыми отчетами или сложными формами память исчерпывается, что приводит к моментальному аварийному завершению процесса с ошибкой нарушения прав доступа (Access Violation, код 0xc0000005).

Разберем способы решения:

  1. Установим на рабочие станции пользователей 64-битную версию платформы «1С:Предприятие» и тонкого клиента. 64-битный процесс не имеет ограничения в 2 ГБ и стабильно обрабатывает большие объемы экранных данных.
  2. В параметрах клиентского приложения переключим режим открытия форм (например, протестируем вариант В отдельных окнах вместо В закладках), что позволяет снизить нагрузку на память при длительной работе без перезапуска программы.

Шаг 4. Настройка технологического журнала и анализ системных событий

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

Посмотрим на системный журнал Windows: откроем оснастку Просмотр событий (eventvwr.msc), перейдем в Журналы Windows -> Приложение (Application) и найдем ошибки типа Error от источника Application Error, связанные с процессами 1cv8c.exe, 1cv8.exe или rphost.exe. В описании события зафиксируем имя сбойного модуля (faulting module name). Если сбой вызывает сторонняя динамическая библиотека (драйвер сканера, компонента криптографии, модуль принтера), обновим или переустановим соответствующее ПО.

Для детального расследования падений на стороне сервера настроим сбор технологического журнала 1С. Для этого в каталоге конфигурационных файлов (для Windows: C:\Program Files\1cv8\conf) создадим файл logcfg.xml со следующим содержимым:


<config xmlns="http://v8.1c.ru/v8/tech-log">
    <dump location="C:\v8logs\dumps" create="1" type="2" />
    <log location="C:\v8logs\crashes" history="48">
        <event>
            <eq property="name" value="EXCP" />
        </event>
        <event>
            <eq property="name" value="PROC" />
        </event>
        <property name="all" />
    </log>
</config>

События EXCP (исключительные ситуации) и PROC (запуск и аварийная остановка процессов) позволят точно увидеть контекст исполнения кода 1С и текст фатальной ошибки в момент падения сеанса.

Шаг 5. Обслуживание базы данных на уровне СУБД и тестирование

Проанализируем состояние самой информационной базы. Нарушение целостности индексов и устаревшая статистика в SQL-базе могут приводить к сбоям при формировании планов запросов СУБД.

Выполним комплекс регламентных процедур:

  1. На уровне Microsoft SQL Server или PostgreSQL запустим регламентное обслуживание: обновление статистик, перестроение и дефрагментацию индексов, а также проверку логической целостности (для MS SQL: команда DBCC CHECKDB).
  2. В режиме «Конфигуратор» перейдем в меню Администрирование -> Тестирование и исправление... и запустим проверку с включенными опциями Реиндексация таблиц информационной базы, Проверка логической целостности и Проверка ссылочной целостности.
← На главную