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С принадлежит текущему пользователю. (Без этой доработки возникали проблемы с использованием этих скриптов на терминальных серверах)
Было бы хорошо, если бы была возможность чистки только кеша конфигурации. Ни в одной разработке такого нет, я для себя делал сам.
Вы можете описать алгоритм этого? Какие файлы папки удалять, какие нет?
Как то так….
iPanda, в исходом скрипте, который я выложил 124 строки, у Вас ошибка в 147-й. Как такое может быть?
(1) вот тут вроде бы естьhttps://infostart.ru/public/274485/
Скрипт «чистит» кеш только для одного пользователя, под которым он запущен.
pophmail, да, скрипт чистит кэш только у текущего пользователя, под которым он запущен. А почему слово «чистит» Вы взяли в кавычки?
(1)Благодарю за идею! Выкладываю вариант щадящей чистки кэша — «Скрипт очистки программного кэша 1С 8».
В папках кэша удалятся только папки «Config» и «ConfigSave», то есть только кэш конфигурации.
Не могу скачать (( Сам файл по ссылке не качается!
А можно ли как то доплить скрипт чтобы очищал кэш всем юзеров на терминальном сервере? те 10 юзеров заходят каждый под своей учеткой, вот чтобы кэш очистился у всех юзверей сервера!?
(10)
Можно трактовать двояко, что нужно сделать, скрипт который будет запускаться с правами админа, перебирать папки всех пользователей на сервере и чистить им кэш или скрипт, который воткнуть в автозагрузку юзера при входе на терминальный сервер?
(10)
Можно:https://infostart.ru/public/704323/
(10) ДобавилСкрипт очистки кэша 1С (все пользователи) , его отличие от предыдущих скриптов в том, что он автоматически определяет папку с профилями пользователей, далее выполняет поиск кэшей 1С в профилях всех пользователей и выполняет чистку кэшей 1С.
Этот скрипт необходимо запускать под учётной записью администратора, с административными полномочиями, чтобы учётная запись под которой он запущен имела доступ в профили других пользователей.
Целевая аудитория данного скрипта — администраторы серверов, которым необходимо однократным запуском скрипта почистить кэши 1С всех пользователей терминального сервера.
(13) Респект! это то что нужно! СПасибо
Скажите пожалуйста, а «Скрипт очистки кеша 1С» просто удаляет папку с UUID базы или он всё-таки оставляет файлы с последним логином и пр.?
Так-же, было бы удобно, выложить все обработки в один архив, ибо хотел бы скачать два варианта (ибо пока не определился какой лучше использовать в моей задаче), но 2 sm жалко.
И ещё, не смотрели на VirusTotal, как антивири к скриптам относятся?
(0) Однозначно, «+». Только вот маску CacheFolderNameMask
следовало бы заменить. Под неё подпадают даже вот такие строки This*is*-*a*t-est*-of*t-he*JavaScr@*, что GUID’ом, естественно не является.
(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, но тогда в шаблон поиска кроме латинских букв и цифр попадет ещё и символ «_», что, в общем-то не так уж и критично.
(15)
markers,
«Скрипт очистки кеша 1С» — удаляет всё содержимое папки с UUID
«Скрипт очистки программного кэша 1С 8» — удаляет только папки «Config» и «ConfigSave» в папках кэша конфигураций
Прогнал скрипты на VirusTotal, у антивирусов к скриптам претензий нет.
(17)
premier,
благодарю за конструктивную критику! Обновил маску для определения GUID’а в скриптах.
аналог на cmd + удаление кэша выборочных баз текущего пользователя
https://infostart.ru/public/846507/
(0) добрый день.
скачал.
но файлы дампа не удалились, и в папке Local и Roaming все папки и файлы остались без изменения.
стоит Windows 10 Pro, 64х-разрядная.
фотки прикладываю.
(0) на сервере в терминале та же картина
(22)
Rustig, какой версией скрипта Вы пользовались, какие окна выводились скриптом при его работе?
скачал «все пользователи», выходит окно «Успешное выполнение скрипта»
(23) на сервере в терминале Local очистился, после того, как прощелкал папки пользователей — выходило окно «у вас не хватает прав» — я нажимал продолжить и заходил. Я под админскими правами.
а файлы Roaming не удалились.
(25) Удаление файлов в «Roaming» и не предусмотрено логикой скрипта.
Ну а с входом в папки, какой-то прикол новых виндов, прав не хватает, но тем не менее скрипт не валится с ошибкой.
На Win7 с выключенным UAC скрипт работает без проблем.
(23) судя по вашему алгоритму папка Roaming не затрагивается. А ее разве не стоит также чистить?
(26) изменил в алгоритме путь на
//Путь к папкам кэшей различных версий 1С
<resource id=»GlobalCachePath»>
AppDataRoaming1C
</resource>
все почистилось, только места не прибавилось после чистки Roaming.
место прибавилось после чистки Local.
в принципе, сработало. спасибо.
(27) В папке «Roaming» вроде как настройки пользователей хранятся. Чистить или не чистить эту папку — вопрос риторический, однако, судя по количеству тех кто скачал и пользуется скриптом для устранения ошибок связанных с кэшем 1С, очистки только папок в «Loacal1C» вполне хватает.
(28) Вот поэтому я «Roaming» и не трогаю. И ещё после очистки «Roaming» пользовательские настройки слетят. Так что, лучше вернуть на место «AppDataLocal1C».
(30) я создал два файла — с локал и роуминг.
локально на Виндоус 10 Про, кстати, тоже почистилось.
после чистки Роуминг места не прибавилось, зато все внешние обработки и отчеты исчезли из меню Файл-открыть. И тут я пожалел, что удалил Роуминг…
Так что у вас я бы назвал «мягкое и безболезненное» удаление кэша — как надо пользователю.
Еще раз спасибо.
Спасибо, конечно, но для нас скрипт «все пользователи» почти бесполезен, т.к. хотелось бы чистить кэш только у пользователей, у которых не запущен процесс 1сv8, пока другие работают, а не приходилось бы выгонять всех пользователей и только потом запускать скрипт чисти кэша.
Что мешает проверять наличие запущенного процесса 1cv8 у конкретного пользователя, не на всем сервере?
(32) Спасибо за предложение! Я посмотрю, что можно сделать.
Слишком много обработок, на эту тему, в одних и тех же местах, одно и то же удаляют. Но автору респект.