В начале февраля 2021 года множество пользователей 1С:Предприятия столкнулись с массовыми аварийными завершениями работы программы, сопровождающимися сообщениями вида "Аварийное завершение" или "Обнаружено нарушение целостности системы". Эти ошибки проявлялись на различных платформах, но чаще всего упоминалась версия 8.3.18.1208, а также 8.3.17.1851 и другие. Сбои наблюдались в различных конфигурациях, таких как 1С:Бухгалтерия, 1С:Управление торговлей, 1С:Зарплата и Управление Персоналом.
Рассмотрим подробнее причины возникновения этой проблемы и доступные пути её решения – как официальные, предложенные фирмой "1С", так и обходные, найденные сообществом пользователей.
Фирма "1С" официально признала наличие данной проблемы и объяснила её срабатыванием новой системы защиты от незаконного использования программного обеспечения. Согласно статье 1299 ГК РФ, разработчики имеют право применять технические средства защиты авторских прав. В данном случае, система защиты могла сработать по следующим причинам:
Типичные сообщения об ошибках в журнале выглядели так:
"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С" предложила ряд мер для решения проблемы, ориентированных на полное удаление следов нелицензионного ПО и обеспечение легальной работы. Рассмотрим их по шагам.
Это является ключевым шагом. Вам необходимо тщательно проверить и очистить систему от любых потенциальных "кряков" и эмуляторов HASP-ключей. Проанализируем рекомендованные варианты:
VUsb.sys и vusbbus.sys.multikey.sys. Он может находиться в каталогах: c:\Windows\System32\drivers\, c:\Windows\System32\, c:\Windows\SysWOW64\.
loaddrv.exe -stop haspflt
loaddrv.exe -remove haspflt
Если утилиты loaddrv.exe нет на компьютере, вы можете попробовать найти службу haspflt в списке служб Windows (services.msc), остановить её и затем удалить.
del %systemroot%\system32\drivers\haspflt.sys
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-ключей" в 1С.
В крайнем случае, если все усилия по удалению эмуляторов не привели к результату, "1С" рекомендует выполнить полную переустановку операционной системы Windows, а затем заново установить "1С:Предприятие" и все необходимое программное обеспечение. Это гарантированный, но трудозатратный способ очистки системы от любых нежелательных компонентов.
Для пользователей, столкнувшихся с проблемой и использующих легальное ПО, "1С" предложила возможность получения бесплатных временных лицензий (на основную поставку, клиентские и серверные). Эти лицензии предоставляются на определенный срок (например, до 15 марта 2021 года с последующим продлением до 9 апреля 2021 года) и действуют 60 дней с момента активации. Это позволяет обеспечить бесперебойную работу предприятия, пока проводится очистка системы или приобретаются постоянные лицензии.
При получении временной лицензии, вы принимаете обязательство приобрести аналогичную бессрочную лицензию или восстановить ранее правомерно приобретенную к моменту окончания действия временной.
Если у вас были утеряны регистрационный номер или ПИН-коды для активации программных лицензий, вы можете их восстановить. Для этого необходимо написать запрос в центр лицензирования "1С" (lic@1c.ru), указав регистрационный номер вашей программы. Обычно в рабочее время ответ приходит в течение часа. Если был утерян доступ к электронной почте, указанной при первичной активации, это также решаемо – запросите данные владельца, указанные при первичной активации, и в них будет указан этот адрес электронной почты.
Пользователи на форуме активно искали и делились различными способами обхода проблемы, некоторые из которых не являются официальными и могут нести риски.
Некоторые пользователи обнаружили, что возврат к более старым версиям платформы 1С (например, 8.3.15, 8.3.16.1148, 8.3.16.1814) помогал избежать вылетов. Однако, при этом возникала новая проблема: "Ошибка формата потока".
Проблема "Ошибка формата потока": Выяснилось, что платформы, начиная с определенного момента (например, 8.3.10.2699 и выше), могут изменять структуру конфигурации базы данных таким образом, что более старые платформы не могут корректно её открыть. Это проявляется, когда вы пытаетесь запустить базу, обновлённую на 8.3.18.1208, на более старой платформе.
Возможное решение для "Ошибка формата потока": Если вы хотите откатиться на старую платформу, но сталкиваетесь с "Ошибкой формата потока", попробуйте следующий подход:
Также, некоторые пользователи пытались модифицировать функцию МинимальнаяВерсияПлатформы в расширении, чтобы обмануть проверку конфигурации на минимальную версию. Например, в конфигурациях БП 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"; //Тут ваш релиз старой платформы
КонецФункции
Однако, большинство пользователей сообщали, что это не помогало из-за "Ошибки формата потока", поскольку проблема была глубже – в самой структуре базы, а не только в проверке версии.
Некоторые пользователи сообщали об успешном применении неофициальных средств для решения проблемы. К таким средствам относились:
EmulsCleanUp: Эта утилита, по утверждениям пользователей, помогает очищать систему от следов эмуляторов HASP.Mimo-UniDll_v3: Некоторые участники обсуждения успешно использовали эту DLL-библиотеку (предположительно, "патченную" версию) для обхода проблемы. Один из пользователей описал работающую комбинацию:
Mimo-UniDll_v3 + на клиенте x86 + галочка в настройке программы "Использовать аппаратную лицензию"
Обратите внимание, что использование неофициального программного обеспечения и модифицированных системных файлов может быть рискованным, нарушать лицензионные соглашения и потенциально вести к нестабильной работе или проблемам безопасности.
Были попытки блокировать доступ 1С к интернету или к определенным IP-адресам, чтобы предотвратить срабатывание механизма проверки лицензий. Пользователи пытались настроить правила на маршрутизаторах (например, MikroTik) или брандмауэрах. Некоторые сообщали, что это помогало. Однако, этот метод также является неофициальным и не гарантирует стабильной работы или отсутствия других проблем в будущем. Более того, некоторые пользователи утверждали, что проблема может проявляться даже на компьютерах без доступа к сети, если изменить системную дату на 1 февраля, что указывает на привязку механизма защиты к календарной дате, а не только к онлайн-проверке.
Некоторые пользователи сообщали, что удаление всех старых версий платформы 1С, очистка реестра от упоминаний 1С и эмуляторов, и последующая чистая установка последней версии платформы помогала решить проблему, особенно в сочетании с получением временной лицензии. Этот вариант близок к официальной рекомендации 1С по очистке системы.
Проблема массовых аварийных завершений в начале 2021 года стала серьезным вызовом для многих пользователей 1С. Фирма "1С" предприняла шаги по ужесточению контроля над использованием своих продуктов, что привело к срабатыванию защиты даже у пользователей, которые считали свое ПО легальным, но имели "следы" эмуляторов. Для решения проблемы рекомендуется в первую очередь следовать официальным рекомендациям "1С" по тщательной очистке системы от эмуляторов и обеспечению легального лицензирования. Временные лицензии предоставляют возможность продолжить работу, пока решаются вопросы с очисткой и приобретением постоянных лицензий. Обходные пути, обсуждаемые на форумах, могут быть полезны в критических ситуациях, но их использование сопряжено с определенными рисками.