Чистка кэша 1С для 8.2 и 8.3 (Windows 7 и Windows 8)

Опубликовал Dima Dima (bayce) в раздел Администрирование - Чистка базы

2 bat файла для автоматической чистки кэша 1С
Для Windows 7 и Windows 8.

В zip архиве лежат 2 bat файла для чистки кэша 1с платформы 8.2 и платформы 8.3.

Подходят для любых конфигураций.

Для чистки кэша на платформе 8.2 запускайте файл ЧисткаКэша82.

Для чистки кэша на платформе 8.3 запускайте файл ЧисткаКэша83.

Перед запуском файла закройте 1С.

 

Bat файл сначала проверяет на наличие кэша 1с. В случае наличия кэша удаляет его.

Удаляются только каталоги временных файлов 1С.

 

При не правильном использовании bat-файлов автор ответственности не несет.

 

Скачать файлы

Наименование Файл Версия Размер
Чистка кэша 1с.rar
.rar 0,68Kb
03.01.15
59
.rar 0,68Kb 59 Скачать

См. также

Комментарии
1. Константин Юрин (kostyaomsk) 70 05.01.15 10:01 Сейчас в теме
Недавно уже вышло полное собрание по всевозможным чисткам КЭШа 1С 8 в публикации Hasher Pro 1C 8 \ Полная очистка Кэша 1С 8.х \ Создание скрипта очистки VBS + BAT \ Дополнительные возможности.
Расскажите нам про этого "кота в мешке", что в *.bat файлах
для чистки кэша 1с платформы 8.2 и платформы 8.3

Их особенности, недостатки. В чем новизна? В чем опастность? А то запустят и потом сюрприз будет. Например, истошный крик бухгалтеров: "...ГДЕ БАЗЫ???..." Хорошо если только список очистится :)
К слову, в упомянутой публикации есть список ссылок на главные методики (разработки), такие как:
Данные статьи и комментарии к ним вдохновляли Hasher Pro 1C 8 своими функциями и идеями:
Чистка кэша 1С 8.1 - 8.2 - 8.3 (удаление кэша для ВСЕХ пользователей терминального сервера) + запуск с ключом
Чистка кэша 1С. Универсальная обработка
Очистка кэша пользователя
Очистка кэша 1С из сеанса 1С Предприятие
Удаление профайлов пользователей 1с
Очистка кэша 1С из 1С
2. Константин Юрин (kostyaomsk) 70 05.01.15 10:04 Сейчас в теме
А кому совсем лень вот исходник всем известного батника:
@echo 'Удаляется ключевой каталог настроек и Кэша 1С:Предприятия'
rmdir '%AppData%\1C\1Cv8' /S /Q
rmdir '%LOCALAPPDATA%\1C\1Cv8' /S /Q
3. Dima Dima (bayce) 19 05.01.15 17:06 Сейчас в теме
(1) kostyaomsk,
По поводу опасности, модераторы попросили написать. Лично я ни какой опасности не вижу.
4. Dima Dima (bayce) 19 05.01.15 17:10 Сейчас в теме
(2) kostyaomsk,

в коде использовано такое выражение
("%USERPROFILE%\AppData\Roaming\1C\1Cv8\*")
этот кот для 8.2 не пойдет. Это для 8.3
чистить временные папки данного пользователя.


kostyaomsk; +1 Ответить 1
5. Dima Dima (bayce) 19 05.01.15 17:13 Сейчас в теме
(1) kostyaomsk,
для 8.2 надо использовать такой код
("%USERPROFILE%\AppData\Roaming\1C\1Cv82\*")
6. Константин Юрин (kostyaomsk) 70 06.01.15 21:26 Сейчас в теме
(4) bayce, вот это уже вам "плюс". Я просто для примера привел. Скрипты - дело системных администраторов. Используются знания операционной системы. Нужно ведь не запускать что попало, а хоть посмотреть что там внутри в скрипте. А если нужна автоматизация то уже под каждую версию и операционку свой писать, помня об особенностях. Сам каждый раз начинаю метаться - искать скрипт по чистке на чужой машине с чужими базами. Сейчас стал вести базу полезных решений. Видел даже как 1С-профи мечется в поисках простых скриптов по чистке КЭШа 1С. Дело то это админское (для штатных специалистов) следить за базами :) Значит ваш скрипт по очистке кэша универсален
для 8.2 и 8.3 (Windows 7 и Windows 8)
Вернее разбит на файлы с версиями. Я на всякий случай запомнил публикацию - мало ли пригодится.
А насчет опасности скрипта очистки КЭШа - насчет удаления того чего надо в операционной системе и чего не надо. И меньшая, очистка списка баз :) у пользователей.
Самое безопасное - это параметр командной строки когда появились проблемы /ClearCache и все.
Считаю, скрипт писать (тем более если в 1С 8 текст склеивается программно в зависимости от условий) для серьезных дел. Обычно 2-3 строчки для запуска из планировщика windows чего-то касающегося 1С.
Прикрепленные файлы:
7. Dima Dima (bayce) 19 07.01.15 01:23 Сейчас в теме
(6) kostyaomsk,
Вот с /ClearCache все и начиналось.
Переделывал один из стандартных отчетов в УНФ. При запуске 1с отражался отчет со старыми настройками. /ClearCache не помогала никак. Пришлось чистить временные папки. Сначало руками, потом надоело, решил все это дело автоматизировать. Так и появились эти батники.



kostyaomsk; +1 Ответить
8. Константин Юрин (kostyaomsk) 70 07.01.15 17:53 Сейчас в теме
Про папки
временных файлов
это Вы про переменные окружения Windows? Путь C:\temp по умолчанию? Я по инструкции сделал с админских сайтов перенос с системного диска (отдельный винчестер), т.к. заканчивалось место и происходил большой треск винчестера. После переноса (если бы это был RAM-диск) все буквально летало и компьютер работает тихо.
Прикрепленные файлы:
9. Dima Dima (bayce) 19 07.01.15 20:15 Сейчас в теме
(8) kostyaomsk,
Нет зачем все временные папки чистить.
Только временные папки 1С, где хранятся настройки данного пользователя.
10. Константин Юрин (kostyaomsk) 70 08.01.15 15:14 Сейчас в теме
Уточните что к 1С относится, а что к операционке. Главное что в операциоке нельзя или нежелательно трогать. Тема то затрагивает системное администрирование. Почему-то во всех программах чистки системы (типа CCleaner) везде стоит ограничение на файлы папки temp "не удалять файлы старше 24 часов" и прочие "радости".
Я про то что 1С то починим...
11. Dima Dima (bayce) 19 08.01.15 17:09 Сейчас в теме
(10) kostyaomsk,
1с 83 хранит в выше указанной мною папке ,настройки для данного пользователя Windows
таких папок 2.
в Temp папках (их несколько), хранятся временные данные программ ( например логи, какие нибуть промежуточные данные и тд), нужны для работ программ в том числе и 1С. Насколько я знаю, настройки пользователя 1с в Temp не хранит.
kostyaomsk; +1 Ответить 1
12. Константин Юрин (kostyaomsk) 70 11.01.15 12:13 Сейчас в теме
(11) bayce, уточню насчет
настройки пользователя 1с в Temp не хранит
я тут делал обработку для создания в этом каталоге из двоичных данных временного файла внешней обработки (и еще одну неудачную реализацию в клиент-серверном передачу копии файла лога в этот временных каталог на сервере и дальше опять на клиента. Вижу постоянно кучу новых открытых файлов *.tmp на время работы 1С 8. Правда это в файловом варианте тестировалось. Нужно доделать и выложить уже.
13. Dima Dima (bayce) 19 11.01.15 14:04 Сейчас в теме
(12) kostyaomsk,
А для чего эта обработка нужна?
14. Dima Dima (bayce) 19 11.01.15 14:30 Сейчас в теме
(12) kostyaomsk,
Вы хотите передавать файл с клиента на сервер?
15. Константин Юрин (kostyaomsk) 70 15.01.15 14:48 Сейчас в теме
(13) (14) bayce, было несколько задач, когда нужно было создавать временные файлы в каталоге по-умолчанию. Одна для получения из двоичных данных другой обработки (макета), для создания обработкиОбъект по ссылке для вызова метода (нетиповая ВДГБ ломбард и еще одна похожая). Даже просто создание с перезатиранием чего-то в каталоге temp.
По передече лога с клиента на сервер тоже хотелось получить универсальную обработку, которая не была бы привязана к среде, режиму исполнения толстый и тонкий клиент (в основном тонкий). При загрузки из Екселя и выполнении объемных запросов по частям приходится возвращаться с сервера на клиент, т.к. нельзя по-другому отобразить промежуточные результаты индикатора процесса. Также чтоб не указывать и не двоить лог на клиенте и сервере (потом не соберешь - запутаешься и так по логам лазить занятие неблагодарное) лучше его передавать на сервер как двоичные данные, создавать из них как текстовый документ в темп папке сервера и потом возвращать при переходе опять на клиент. Если вообще ошибка - то тут ничего не сделать - пропал лог. Еще можно подумать как тут поступить. Главное, чтоб обработка до конца отработала и там где ошибки загрузки все записала для обработки оператором элеметов базы. Иначе полчаса приходится настраивать пути.
16. Dima Dima (bayce) 19 15.01.15 22:32 Сейчас в теме
(15) kostyaomsk,
А если два человека одновременно запустят обработку, что будет , тогда?
Ведь в Темр всего один файл.
Я как делал на подобии, но я по моему делал через хранилище.
Если в параметрах хранилища указать ссылку на форму, то оно живет ровно столько, сколько живет форма, а не 2-3 серверных вызова.
17. Константин Юрин (kostyaomsk) 70 17.01.15 10:37 Сейчас в теме
Там именно с ссылкой на форму чтоб "жила столько сколько открыта форма". А вот Насчет параллельно работы нескольких пользователей я проверял что функция
ПолучитьИмяВременногоФайла()
каждый раз выдает различные значения. Из справки
Для записи данных во временный файл необходимо сначала сформировать имя такого файла. При этом во избежание случайных потерь имеющихся файлов требуется получить уникальное имя. Данный метод предназначен для получения такого имени. При выполнении метода файл не создается.
Если файл не будет удален средствами встроенного языка, он будет удален платформой при следующем запуске.

И, главное примечание в справке: Рекомендуется удалять временный файл самостоятельно после его использования, т.к. при активном создании файлов временные файлы могут занять значительную часть дискового пространства раньше, чем произойдет перезапуск платформы.
Данная рекомендация особенно актуальна для кода, исполняемого на сервере, так как регламент его эксплуатации может не предполагать регулярного перезапуска.
18. Константин Юрин (kostyaomsk) 70 28.01.15 14:37 Сейчас в теме
(16) (14) bayce, (13), кстати вот эта самая начатая обработка (раз она мне по другой теме попалась) на тему КЭШ и протоколы с передачей клиент-сервер. После нее точно в случае некорректной загрузки на длительный период времени может остаться куча файлов и глюки на сервере. Причем было условие на разных серверах могла работать в т.ч. на локальном ПК.
Как раз про передачу между клиентом и сервером
А вот главные процедуры по работе с временными файлами:
Процедура ЗагрузитьИзЕкселя(парФорма, АдресЕкселя, ФлагОшибкиЗагрузки) Экспорт
	Перем КолСтрокВЛисте; // Вернется из процедуры
	// Вытащить лог на сервере
	Попытка
		СоздатьФайлыНаСервереПереданныеСКлиента(парФорма, АдресЕкселя);
		
		ДобавитьВЛогНаСервере("чтение из екселя на сервере");
		// РАБОТА по чтению из Екселя!!!
		
        ЗагрузитьМетодом_MSADODB(ПутьЕкселяСервер, "Лист1", , , ,КолСтрокВЛисте); // Отрегулировать из реквизитов формы 
		///ТЕСТОШИБКИ = 55555 / 0; //СЕРВЕР!!!
		
		// доработатать и загрузить методом АДО.
		
		ДобавитьВЛогНаСервере("Успешно закончили чтение из Екселя!");
		// После всего запись лога в хранилище!!!
		УдалитьФайлы(тмпПутьСервер, "*.vf2"); // На сервере ексель не нужен!!!
		
		парФорма.ДвоичныйЛог = Новый ДвоичныеДанные(ПолныйПутьЛогаСервер);
		
		УдалитьФайлы(тмпПутьСервер, "*.vf1"); // Удалим следы с сервера по логу!
	Исключение
		инфСервер = ИнформацияОбОшибке();
		ФлагОшибкиЗагрузки = Истина; // Потом перейдет на клиент
		стрОшибокСервер = ПодробныйТекстАнализаОшибкиНаСервере(инфСервер);
		ДобавитьВЛогНаСервере("Ошибки периода исполнения на сервере "+стрОшибокСервер,333);
		парФорма.ДвоичныйЛог = Новый ДвоичныеДанные(ПолныйПутьЛогаСервер); // Передадим "Лог" на клиент
	КонецПопытки;
КонецПроцедуры



Процедура СоздатьФайлыНаСервереПереданныеСКлиента(парФорма, АдресЕкселя)
	ДвоичныеЛог = парФорма.ДвоичныйЛог; // Форму с "Сервера на сервер" передали как параметр. Можно и не так.
	
	тмпПутьСервер = КаталогВременныхФайлов();
	
	УдалитьФайлы(тмпПутьСервер, "*.vf*"); //Перед записью на сервере Вдруг файлы предыдущего сеанса открыты по ошибке?!
	
	ПолныйПутьЛогаСервер = ПолучитьИмяВременногоФайла("vf1"); // Не для записи!!! Для поиска где файл
		
	ДвоичныеЛог.Записать(ПолныйПутьЛогаСервер); // Лог записан на сервере!
	ДвоичныеЛог = 0; // Тепрь и на сервере не нужны!!!
	
	ТекстДокСервер = Новый ТекстовыйДокумент;
	ТекстДокСервер.Прочитать(ПолныйПутьЛогаСервер); // Писать сюда все!
	ТекстДокСервер.ДобавитьСтроку("Начало записи в лог на сервере "+ТекущаяДата() ); // запись на сервере его времени!
	ТекстДокСервер.Записать(ПолныйПутьЛогаСервер);
	
	// Вытащить ексель на сервере
	
	ДвоичныеЕксель = ПолучитьИзВременногоХранилища(АдресЕкселя);
	
	ПутьЕкселяСервер = ПолучитьИмяВременногоФайла("vf2"); // Полный путь!!!
	
	ЕксельФайлСервер = Новый Файл(ПутьЕкселяСервер); // УдалитьФайлы(*.tmp) - если проблемы на сервере!
	
	ДвоичныеЕксель.Записать(ПутьЕкселяСервер); // файл во временном каталоге готов!
КонецПроцедуры	
...Показать Скрыть
Прикрепленные файлы:
ЗагрузкаВБухгалтерию3.epf
19. Макас (makas) 41 10.07.15 10:13 Сейчас в теме
ОБРАБОТКА НЕ ПОНРАВИЛАСЬ, так как очистила настройки пользователя :-((((
20. Dima Dima (bayce) 19 10.07.15 10:57 Сейчас в теме
(19) makas,
Она для этого и создавалась.
Можете модифицировать, что бы настройки пользователей не затрагивала при чистке.
Оставьте свое сообщение