Как решить проблему "Аварийное завершение" или "Нарушение целостности системы" в 1С:Предприятии 8.3?

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

В начале февраля 2021 года множество пользователей 1С:Предприятия столкнулись с массовыми аварийными завершениями работы программы, сопровождающимися сообщениями вида "Аварийное завершение" или "Обнаружено нарушение целостности системы". Эти ошибки проявлялись на различных платформах, но чаще всего упоминалась версия 8.3.18.1208, а также 8.3.17.1851 и другие. Сбои наблюдались в различных конфигурациях, таких как 1С:Бухгалтерия, 1С:Управление торговлей, 1С:Зарплата и Управление Персоналом.

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

Причины возникновения ошибки "Нарушение целостности системы"

Фирма "1С" официально признала наличие данной проблемы и объяснила её срабатыванием новой системы защиты от незаконного использования программного обеспечения. Согласно статье 1299 ГК РФ, разработчики имеют право применять технические средства защиты авторских прав. В данном случае, система защиты могла сработать по следующим причинам:

  1. Использование "пиратских" версий программ: Самая очевидная причина – если на компьютере или в локальной сети использовались нелицензионные копии 1С.
  2. Присутствие "эмуляторов" защиты: Даже если вы используете легальные лицензии, наличие на компьютере или в сети ранее установленных "эмуляторов", "кряков" или других средств обхода защиты (например, для других программ, использующих HASP-ключи), могло спровоцировать срабатывание защиты 1С. Такие эмуляторы могли быть установлены специалистами ранее, иногда даже без ведома текущего пользователя.
  3. Изменения в механизмах защиты: С обновлением платформ (особенно начиная с 8.3.10.2699 и выше, а в данном случае – 8.3.18.1208) "1С" ужесточила механизмы борьбы с пиратством, что привело к массовым срабатываниям защиты.

Типичные сообщения об ошибках в журнале выглядели так:


"errorInfo": {
    "systemErrorInfo": {
        "clientStack": "core83.dll:0x0010BB7C bsl.dll:0x0001FB12 ...",
        "clientStackHash": "565AD4A7686FC5911953C44F06000239",
        "systemCrash": true
    },
    "applicationErrorInfo": {
        "errors": [
            [ "Аварийное завершение", [] ]
        ]
    }
}

Или в системном журнале Windows:


Имя сбойного приложения: 1cv8c.exe, версия: 8.3.18.1208, метка времени: 0x5fb42854
Имя сбойного модуля: mngcore.dll, версия: 8.3.18.1208, метка времени: 0x5fb42efc
Код исключения: 0xc0000005
Смещение ошибки: 0x0000000000141a43
Идентификатор сбойного процесса: 0x2878
Время запуска сбойного приложения: 0x01d6f88e319c12ff
Путь сбойного приложения: C:\Program Files\1cv8\8.3.18.1208\bin\1cv8c.exe
Путь сбойного модуля: C:\Program Files\1cv8\8.3.18.1208\bin\mngcore.dll

Эти ошибки указывают на сбои в основных компонентах платформы 1С, таких как core83.dll (ключевой компонент библиотеки, управляющий базовыми процедурами), bsl.dll, mngcln.dll, mngcore.dll, frame.dll.

Официальные рекомендации фирмы "1С" по устранению проблемы

Фирма "1С" предложила ряд мер для решения проблемы, ориентированных на полное удаление следов нелицензионного ПО и обеспечение легальной работы. Рассмотрим их по шагам.

1. Удаление эмуляторов HASP и других средств обхода защиты

Это является ключевым шагом. Вам необходимо тщательно проверить и очистить систему от любых потенциальных "кряков" и эмуляторов HASP-ключей. Проанализируем рекомендованные варианты:

  1. Поиск и удаление файлов:
    • Найдите и удалите файлы VUsb.sys и vusbbus.sys.
    • Найдите и удалите файл multikey.sys. Он может находиться в каталогах: c:\Windows\System32\drivers\, c:\Windows\System32\, c:\Windows\SysWOW64\.
  2. Выполнение команд:
    • Откройте командную строку от имени администратора.
    • Выполните команды для остановки и удаления службы HASP:
      
      loaddrv.exe -stop haspflt
      loaddrv.exe -remove haspflt
      

      Если утилиты loaddrv.exe нет на компьютере, вы можете попробовать найти службу haspflt в списке служб Windows (services.msc), остановить её и затем удалить.

    • Удалите файл драйвера: del %systemroot%\system32\drivers\haspflt.sys
  3. Очистка реестра Windows:
    • Откройте редактор реестра (regedit.exe).
    • Удалите следующие ветки реестра, если они существуют:
      
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\haspflt\
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vusbbus\
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\NEWHASP\Services\Emulator\HASP\Dump
      
    • Выполните поиск по всему реестру по слову "hasp" и убедитесь, что ничего более не обнаруживается. Будьте осторожны при работе с реестром, некорректные изменения могут нарушить работу системы.

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

2. Переустановка Windows

В крайнем случае, если все усилия по удалению эмуляторов не привели к результату, "1С" рекомендует выполнить полную переустановку операционной системы Windows, а затем заново установить "1С:Предприятие" и все необходимое программное обеспечение. Это гарантированный, но трудозатратный способ очистки системы от любых нежелательных компонентов.

3. Получение бесплатных временных лицензий

Для пользователей, столкнувшихся с проблемой и использующих легальное ПО, "1С" предложила возможность получения бесплатных временных лицензий (на основную поставку, клиентские и серверные). Эти лицензии предоставляются на определенный срок (например, до 15 марта 2021 года с последующим продлением до 9 апреля 2021 года) и действуют 60 дней с момента активации. Это позволяет обеспечить бесперебойную работу предприятия, пока проводится очистка системы или приобретаются постоянные лицензии.

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

4. Восстановление утерянных ПИН-кодов программных лицензий

Если у вас были утеряны регистрационный номер или ПИН-коды для активации программных лицензий, вы можете их восстановить. Для этого необходимо написать запрос в центр лицензирования "1С" (lic@1c.ru), указав регистрационный номер вашей программы. Обычно в рабочее время ответ приходит в течение часа. Если был утерян доступ к электронной почте, указанной при первичной активации, это также решаемо – запросите данные владельца, указанные при первичной активации, и в них будет указан этот адрес электронной почты.

Обходные пути и неофициальные решения, обсуждаемые на форуме

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

1. Откат на старые версии платформы

Некоторые пользователи обнаружили, что возврат к более старым версиям платформы 1С (например, 8.3.15, 8.3.16.1148, 8.3.16.1814) помогал избежать вылетов. Однако, при этом возникала новая проблема: "Ошибка формата потока".

Проблема "Ошибка формата потока": Выяснилось, что платформы, начиная с определенного момента (например, 8.3.10.2699 и выше), могут изменять структуру конфигурации базы данных таким образом, что более старые платформы не могут корректно её открыть. Это проявляется, когда вы пытаетесь запустить базу, обновлённую на 8.3.18.1208, на более старой платформе.

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

  1. Возьмите копию базы данных, которая точно работала на старой платформе до возникновения проблем (например, от 29.01.2021, как упоминалось в обсуждении).
  2. Установите на своем компьютере или сервере желаемую старую платформу (например, 8.3.16.1148).
  3. Перенесите в эту "старую" копию базы все изменения, сделанные за последний период (после даты копии), используя средства "Универсальный обмен данными" или другие механизмы переноса данных/объектов конфигурации.
  4. Продолжайте работать на старой платформе с этой восстановленной и обновленной базой.

Также, некоторые пользователи пытались модифицировать функцию МинимальнаяВерсияПлатформы в расширении, чтобы обмануть проверку конфигурации на минимальную версию. Например, в конфигурациях БП 3.0 существует процедура:


Функция МинимальнаяВерсияПлатформы
    Результат = "8.3.14.1694";
    СистемнаяИнформация = Новый СистемнаяИнформация;
    ТекущаяВерсия = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения);
    Если ТекущаяВерсия = "8.3.15" Тогда
        Результат = "8.3.15.2107";
    ИначеЕсли ТекущаяВерсия = "8.3.16" Тогда
        Результат = "8.3.16.1814";
    ИначеЕсли ТекущаяВерсия = "8.3.17" Тогда
        Результат = "8.3.17.1851";
    ИначеЕсли ТекущаяВерсия = "8.3.18" Тогда
        Результат = "8.3.18.1208";
    КонецЕсли;
    Возврат Результат;
КонецФункции

Предлагалось добавить в расширение эту процедуру с галкой "ВМЕСТО" и изменить её код:


Функция МинимальнаяВерсияПлатформы
    Результат = "8.3.16.1148"; //Тут ваш релиз старой платформы
КонецФункции

Однако, большинство пользователей сообщали, что это не помогало из-за "Ошибки формата потока", поскольку проблема была глубже – в самой структуре базы, а не только в проверке версии.

2. Использование неофициальных утилит и "патченных" DLL-файлов

Некоторые пользователи сообщали об успешном применении неофициальных средств для решения проблемы. К таким средствам относились:

  1. EmulsCleanUp: Эта утилита, по утверждениям пользователей, помогает очищать систему от следов эмуляторов HASP.
  2. Mimo-UniDll_v3: Некоторые участники обсуждения успешно использовали эту DLL-библиотеку (предположительно, "патченную" версию) для обхода проблемы. Один из пользователей описал работающую комбинацию:
    
    Mimo-UniDll_v3 + на клиенте x86 + галочка в настройке программы "Использовать аппаратную лицензию"
    

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

3. Блокировка IP-адресов 1С

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

4. Чистая переустановка платформы

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

Важные замечания

Заключение

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

← На главную