Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек.


Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний.
Wsf-скрипт, созданный на стандартном языке автоматизации Windows — «WSH JScript», очищает кэш 1С просто, быстро и безопасно.
Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

 

+ Чистит только кэш (настройки остаются целыми)
+ Очищает кэш всех версий 1С 8 (8.0, 8.1, 8.2, 8.3)
+ Без консольных окон
+ Безопасен (очищает кэш только тогда, когда пользователь закрыл все сеансы 1С)
+ Запускается на любой версии Windows
+ Открытый исходный код

 

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

Логика скрипта сканирует все папки находящиеся в папке "%LOCALAPPDATA%1C",
в сканируемых папках идёт удаление только папок кэша баз с именами вида "dc9bbfe8-9181-4f05-87ec-0b1b08539d67" (проверяется по соответствующему регулярному выражению).
Таким образом достигается очистка кэшей всех баз и всех версий 1С 8.

Скрипт написан на языке "WSH JScript", структурирован и лаконичен, все необходимые параметры выведены наверх исходного кода скрипта в виде строк ресурсов.
".wsf" — это стандартные скрипты ОС Windows, запускаются в любой ОС Windows, точно так же как .".cmd" ,".bat", ".vbs" и ".js".
Исходный код скрипта открыт и может быть просмотрен/отредактирован в любом текстовом редакторе.

При работе скрипта не появляется консольных окон, как в случае использования примитивных batch-файлов, о результатах своей работы скрипт сообщает через окна MessageBox:

Или

 

/upd 8.11.2024/

Добавлен "скрипт очистки программного кэша 1С 8", его отличие от первого скрипта в том, что он очищает не всю папку кэша, а удаляет только папки "Config" и "ConfigSave" в папках кэша конфигураций.

 

/upd 13.11.2024/

Добавлен "Скрипт очистки кэша 1С (все пользователи)", его отличие от предыдущих скриптов в том, что он автоматически определяет папку с профилями пользователей, далее выполняет поиск кэшей 1С в профилях всех пользователей и выполняет чистку.
Этот скрипт необходимо запускать под учётной записью администратора, с административными полномочиями, чтобы учётная запись под которой он запущен, имела доступ в профили других пользователей.
Целевая аудитория данного скрипта — администраторы серверов, которым необходимо однократным запуском скрипта почистить кэши 1С всех пользователей терминального сервера.

 

/upd 17.10.2024/

Доработаны функции проверки наличия запущенной 1С в скрипте очистки кэша 1С 8 и скрипте очистки программного кэша 1С 8. Теперь они не только обнаруживают запущенные процессы 1С, но ещё и проверяют пользователя, которому принадлежит процесс 1С. Запуск очистки кэша теперь блокируется только тогда, когда запущенный процесс 1С принадлежит текущему пользователю. (Без этой доработки возникали проблемы с использованием этих скриптов на терминальных серверах)

 

 

34 Comments

  1. bulpi

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

    Reply
  2. Eugen-S

    Вы можете описать алгоритм этого? Какие файлы папки удалять, какие нет?

    Reply
  3. iPanda

    Как то так….

    Reply
  4. Eugen-S

    iPanda, в исходом скрипте, который я выложил 124 строки, у Вас ошибка в 147-й. Как такое может быть?

    Reply
  5. JohnyDeath

    (1) вот тут вроде бы есть https://infostart.ru/public/274485/

    Reply
  6. pophmail

    Скрипт «чистит» кеш только для одного пользователя, под которым он запущен.

    Reply
  7. Eugen-S

    pophmail, да, скрипт чистит кэш только у текущего пользователя, под которым он запущен. А почему слово «чистит» Вы взяли в кавычки?

    Reply
  8. Eugen-S

    (1)Благодарю за идею! Выкладываю вариант щадящей чистки кэша — «Скрипт очистки программного кэша 1С 8».

    В папках кэша удалятся только папки «Config» и «ConfigSave», то есть только кэш конфигурации.

    Reply
  9. Confucius

    Не могу скачать (( Сам файл по ссылке не качается!

    Reply
  10. Confucius

    А можно ли как то доплить скрипт чтобы очищал кэш всем юзеров на терминальном сервере? те 10 юзеров заходят каждый под своей учеткой, вот чтобы кэш очистился у всех юзверей сервера!?

    Reply
  11. Eugen-S

    (10)

    Можно трактовать двояко, что нужно сделать, скрипт который будет запускаться с правами админа, перебирать папки всех пользователей на сервере и чистить им кэш или скрипт, который воткнуть в автозагрузку юзера при входе на терминальный сервер?

    Reply
  12. user856012

    (10)

    можно ли как то доплить скрипт чтобы очищал кэш всем юзеров на терминальном сервере?

    Можно: https://infostart.ru/public/704323/

    Reply
  13. Eugen-S

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

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

    Целевая аудитория данного скрипта — администраторы серверов, которым необходимо однократным запуском скрипта почистить кэши 1С всех пользователей терминального сервера.

    Reply
  14. Confucius

    (13) Респект! это то что нужно! СПасибо

    Reply
  15. markers

    Скажите пожалуйста, а «Скрипт очистки кеша 1С» просто удаляет папку с UUID базы или он всё-таки оставляет файлы с последним логином и пр.?

    Так-же, было бы удобно, выложить все обработки в один архив, ибо хотел бы скачать два варианта (ибо пока не определился какой лучше использовать в моей задаче), но 2 sm жалко.

    И ещё, не смотрели на VirusTotal, как антивири к скриптам относятся?

    Reply
  16. premierex

    (0) Однозначно, «+». Только вот маску CacheFolderNameMask

    ……..-….-….-….-…………

    следовало бы заменить. Под неё подпадают даже вот такие строки This*is*-*a*t-est*-of*t-he*JavaScr@*, что GUID’ом, естественно не является.

    Reply
  17. premierex

    (0) Да, забыл пример привести. Вот такая маска для определения GUID’а подойдет больше: [A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}. Хотя выражение [A-Za-z0-9] можно, конечно и упростить до w, но тогда в шаблон поиска кроме латинских букв и цифр попадет ещё и символ «_», что, в общем-то не так уж и критично.

    Reply
  18. Eugen-S

    (15)

    markers,

    «Скрипт очистки кеша 1С» — удаляет всё содержимое папки с UUID

    «Скрипт очистки программного кэша 1С 8» — удаляет только папки «Config» и «ConfigSave» в папках кэша конфигураций

    Прогнал скрипты на VirusTotal, у антивирусов к скриптам претензий нет.

    Reply
  19. Eugen-S

    (17)

    premier,

    благодарю за конструктивную критику! Обновил маску для определения GUID’а в скриптах.

    Reply
  20. ice-net

    аналог на cmd + удаление кэша выборочных баз текущего пользователя

    https://infostart.ru/public/846507/

    Reply
  21. Rustig

    (0) добрый день.

    скачал.

    но файлы дампа не удалились, и в папке Local и Roaming все папки и файлы остались без изменения.

    стоит Windows 10 Pro, 64х-разрядная.

    фотки прикладываю.

    Reply
  22. Rustig

    (0) на сервере в терминале та же картина

    Reply
  23. Eugen-S

    (22)

    Rustig, какой версией скрипта Вы пользовались, какие окна выводились скриптом при его работе?

    Reply
  24. Rustig

    скачал «все пользователи», выходит окно «Успешное выполнение скрипта»

    Reply
  25. Rustig

    (23) на сервере в терминале Local очистился, после того, как прощелкал папки пользователей — выходило окно «у вас не хватает прав» — я нажимал продолжить и заходил. Я под админскими правами.

    а файлы Roaming не удалились.

    Reply
  26. Eugen-S

    (25) Удаление файлов в «Roaming» и не предусмотрено логикой скрипта.

    Ну а с входом в папки, какой-то прикол новых виндов, прав не хватает, но тем не менее скрипт не валится с ошибкой.

    На Win7 с выключенным UAC скрипт работает без проблем.

    Reply
  27. Rustig

    (23) судя по вашему алгоритму папка Roaming не затрагивается. А ее разве не стоит также чистить?

    Reply
  28. Rustig

    (26) изменил в алгоритме путь на

    //Путь к папкам кэшей различных версий 1С

    <resource id=»GlobalCachePath»>

    AppDataRoaming1C

    </resource>

    все почистилось, только места не прибавилось после чистки Roaming.

    место прибавилось после чистки Local.

    в принципе, сработало. спасибо.

    Reply
  29. Eugen-S

    (27) В папке «Roaming» вроде как настройки пользователей хранятся. Чистить или не чистить эту папку — вопрос риторический, однако, судя по количеству тех кто скачал и пользуется скриптом для устранения ошибок связанных с кэшем 1С, очистки только папок в «Loacal1C» вполне хватает.

    Reply
  30. Eugen-S

    (28) Вот поэтому я «Roaming» и не трогаю. И ещё после очистки «Roaming» пользовательские настройки слетят. Так что, лучше вернуть на место «AppDataLocal1C».

    Reply
  31. Rustig

    (30) я создал два файла — с локал и роуминг.

    локально на Виндоус 10 Про, кстати, тоже почистилось.

    после чистки Роуминг места не прибавилось, зато все внешние обработки и отчеты исчезли из меню Файл-открыть. И тут я пожалел, что удалил Роуминг…

    Так что у вас я бы назвал «мягкое и безболезненное» удаление кэша — как надо пользователю.

    Еще раз спасибо.

    Reply
  32. Terve!R

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

    Что мешает проверять наличие запущенного процесса 1cv8 у конкретного пользователя, не на всем сервере?

    Reply
  33. Eugen-S

    (32) Спасибо за предложение! Я посмотрю, что можно сделать.

    Reply
  34. Alex1053669

    Слишком много обработок, на эту тему, в одних и тех же местах, одно и то же удаляют. Но автору респект.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *