Долгий запуск 1с

2023-04-10

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

Хоть пользователю и не нужно было ускорять запуск 1с, но понять в чем дело было необходимо мне.
В первую очередь я очистил папки %AppData%\Roaming\1C\1cv8 и %AppData%\Local\1C\1cv8 от кэша, но на результат это никак не повлияло, 1с стартер запускался все также долго.

Дальше я пошел в C:\Program Files (x86)\1cv8, в ней находятся установленные версии 1с и 1с стартер в папке common. Вот тут и обнаружилось неладное - папка common открывалась несколько минут. А все из-за того, что в ней находилось около двухсот тысяч файлов mdmp. Расширение файла расшифровывается как mini-dump, а сам файл хранит в себе данные об ошибках в работе 1с стартера.
Вот за несколько лет и насобиралось их приличное количество, да такое которое вешает компьютер на некоторое время и отъедает много гигабайт свободного места на диске.

Самым правильным подходом в этой ситуации является удаление всех дампов. Зачем разбираться в том почему эти дампы создаются? Работает и ладно.
Если Вам интересно, то дамп содержит такую ошибку - 0xC0000005 - Потоком была предпринята попытка прочитать или записать данные на виртуальный адрес, к которому он не имеет соответствующего доступа.
Удалить файлы можно просто выделив их все(только выделение занимает более 5 минут) и нажать shift+del, но удаление будет долгим, очень долгим, при чем это будет только перемещение в корзину. Затем еще корзину очищать.

Удаление дампов 1С

Удалить дампы 1с быстрее, можно с помощью командной строки - открываете командную строку и пишете del /Q /F "%programfiles%\1cv8\common\*.mdmp" после чего начнется процесс удаления, и займет в три раза меньше времени(не знаю почему, но факт - проверен на нескольких машинах).

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

Добавление новой задачи в планировщик задач

Однако добавлять задания на все 50 компьютеров вручную - долгое и скучное занятие. Поэтому я сделал BATник с командой, автоматизирующий этот процесс:
schtasks /create /sc ONLOGON /tn "Удаление дампов 1cestart" /tr """"C:/1cdistrib/Удаление дампов 1cestart.bat""""
Обратите внимание, что если у вас в пути или названии будет использоваться кириллица, то файл нужно будет сохранить в кодировке UTF-8. Еще обратите внимание на то, что если в пути или названии исполняемого файла будут пробелы, то необходимо их взять в четверные кавычки!

Теперь, каждое утро при включении компьютера, все дампы удаляются и запуск 1с происходит практически моментально.