Многие разработчики, перешедшие на платформу 1С версии 8.3.19, столкнулись с крайне неприятным поведением системы: Конфигуратор внезапно закрывается («вылетает») без каких-либо сообщений об ошибках. Это происходит в самые ответственные моменты — при написании кода, копировании процедур или простом просмотре текста модуля. Мы проанализируем причины этой проблемы, разберем методы диагностики и выясним, в каких релизах ошибка была окончательно исправлена.
Выясним причину такой нестабильности. В версии 8.3.19 компания 1С провела масштабный внутренний рефакторинг механизмов работы с текстами программных модулей. Основные изменения коснулись отказа от использования старого объекта КешированныйОбъект при получении строк модулей. Рассмотрим подробнее, к чему это привело:
v8std.dll.1cv8.exe.Если обновление платформы пока невозможно, нам необходимо собрать данные для технической поддержки или самостоятельно понять причину сбоя. Рассмотрим, как настроить автоматическое создание дампов памяти в момент падения. Самым эффективным инструментом для этого является утилита ProcDump от Microsoft Sysinternals.
Разберем по шагам процесс настройки ProcDump в качестве отладчика «по умолчанию» для аварийных процессов:
procdump.exe и разместим ее в удобной папке (например, C:\Tools\).
procdump -ma -i C:\CrashDumps
Проанализируем параметры этой команды: -ma указывает на необходимость создания полного дампа памяти (Full Dump), который включает в себя все данные процесса, а -i регистрирует утилиту в реестре Windows. Теперь, как только Конфигуратор «исчезнет», в папке C:\CrashDumps автоматически появится файл дампа размером около 1 ГБ.
Если мы не хотим регистрировать утилиту в системе навсегда, мы можем запустить мониторинг конкретного процесса 1С. Выясним идентификатор процесса (PID) через диспетчер задач и выполним:
procdump -e -ma -w 1cv8.exe
Здесь параметр -e заставляет утилиту ждать возникновения необработанного исключения, а -w указывает на имя исполняемого файла.
Посмотрим на встроенные возможности операционной системы. Мы можем заставить Windows сохранять дампы без стороннего ПО через реестр. Это особенно полезно для системных администраторов, работающих на серверах терминалов.
Создадим текстовый файл с расширением .reg и следующим содержанием:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\1cv8.exe]
"DumpFolder"=hex(2):43,00,3a,00,5c,00,43,00,72,00,61,00,73,00,68,00,44,00,75,00,6d,00,70,00,73,00,00,00
"DumpCount"=dword:0000000a
"DumpType"=dword:00000002
После внесения этих правок операционная система будет автоматически сохранять до 10 полных дампов процесса 1cv8.exe в папку C:\CrashDumps. Это поможет нам накопить статистику по разным случаям падений.
Фирма 1С признала проблему и зарегистрировала её под номером 000112511. Описание ошибки гласит: «В некоторых случаях при редактировании текста модуля происходит аварийное завершение работы Конфигуратора».
Проанализируем ситуацию с исправлениями. Ошибка была официально устранена в следующих релизах:
Важный момент: Если вы используете версию ниже 8.3.19.1264 (например, популярные в свое время 8.3.19.1150 или 8.3.19.1222), Конфигуратор будет падать. Единственным надежным решением является обновление платформы до актуального патч-релиза.
Разберем, что можно сделать, если вы вынуждены работать на проблемном релизе:
Ctrl + S после каждой написанной строки. Платформа 8.3.19 не прощает долгой работы без фиксации изменений.
%AppData%\1C\1cv8
%LocalAppData%\1C\1cv8
Подведем итог. Ветка 8.3.19 привнесла много полезных функций (например, новые строковые функции в запросах), но цена этого — временная дестабилизация основного рабочего инструмента программиста. Проанализировав ситуацию, мы видим, что большинство проблем решается переходом на версию 8.3.19.1264 и выше. Если же падения продолжаются на свежих релизах, использование procdump станет вашим главным козырем в общении с техподдержкой 1С.