gifts2017

ЧеКист (Чистка Кэша) - универсальное средство очистки локального кэша 1С

Опубликовал Константин Хрипков (mbreaker) в раздел Администрирование - Сервисные утилиты

Простое в эксплуатации и универсальное в применении средство для исправления ошибок, возникающих с локальным кэшем на клиенте. Легко устанавливается и быстро развертывается в сети. Имеет мобильное исполнение в виде внешней обработки. Понятная любому пользователю логика работы.

Предвосхищая бурную полемику в комментариях на тему "а зачем нужен очередной чистильщик кэша, если уже есть [далее длинный список]?", скажу сразу: каждый выбирает то средство, которое ему удобно и полезно. Просто из всего того, что на момент разработки было уже написано - ничего, к сожалению, для меня не подошло, подробности читайте ниже.

Итак, какие ставились цели:

  1. Средство должно позволять чистить пользовательский кэш (сохраненные значения, размеры и положение форм и т.п.) и кэш конфигураций (рабочая копия конфигурации на клиенте), как оба сразу, так и каждый по отдельности.
  2. Средство должно отрабатывать только ту ИБ, которую явно указывает пользователь, не затрагивая данные других ИБ.
  3. Cредство должно быть достаточно простым, чтобы по телефону или e-mail в двух словах можно было бы объяснить рядовому пользователю, что ему нужно выполнить.
  4. Средство должно легко разворачиваться в сети на большом количестве пользователей.
  5. Средство не должно использовать никакие иные компоненты, кроме самой платформы и штатных библиотек Windows.

Вариации на тему ключа /ClearCache не рассматривались в принципе, т.к. данный ключ работает только для чистки кэша тонкого клиента (не все ещё об этом знают, но это действительно так).

Утилиты, базирующиеся на открываемой пользователем обработке не удовлетворяли в основном по причине №4 (обработку пришлось бы добавлять в каждую ИБ, а их слишком много).

Утилиты не на платформе 1С выбывали из кандидатов по причинам №4 и 5.

Скрипты через AutoIt и прочие скриптовые вариации отпали по причинам №2, 4, 5

Специально обученные чистке кэша люди, бегающие по зоопарку из > 200 пользователей при каждом случае некорректного динамического обновления, даже в теории не предполагались. Впрочем как и отказ от динамических обновлений (сколько бы их не предавали анафеме - плюсов от них существенно больше, чем минусов).

Варианты закончились - цели остались. Так и родился ЧеКист.

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

Утилита поставляется в двух вариантах:

  1. самостоятельная конфигурация (установочный комплект сжат в один zip-файл);
  2. внешняя обработка для мобильного использования (есть ограничение использования: обработка не чистит кэш БД, из которой была запущена).
Первый вариант (основной) предполагает стационарное размещение локально или по сети именно в нём кроется реализация достижения цели №4 (быстрое сетевое развёртывание): ИБ ЧеКиста прописывается в список общих ИБ и таким образом становится доступным сразу всем сетевым пользователям и для всех баз (даже для локальных).

Второй вариант подходит для "полевого" применения с флешки. Когда нужно быстро устранить проблему у клиента, но очень не хочется проводить целое расследование на тему "какую именно папку нужно грохнуть?"

Обратите внимание, что для версии 8.1 необходимо скачать соответствующие варианты поставок!

Хочу выразить благодарность fishca за разработку "Построение дерева информационных баз на основе файла ibases.v8i" (http://infostart.ru/public/19841/), которая легла в основу отображения древовидного списка баз и существенно сократила время разработки ЧеКиста.


 

Обновлена версия до 1.0.2.3 

  • * Исправлено удаление кэша конфигурации при запуске под Windows XP

Обновлена версия до 1.0.2.2

  • + Добавлена отдельная поставка и обработка для 8.1
  • + Добавлена возможность множественного выделения ИБ для групповой чистки
  • + При двойном нажатии автоматически выполняется чистка кэша конфигурации (наиболее востребованная процедура для восстановления работоспособности конфигурации после сбой при динамическом обновлении)
  • * Реорганизованы пункты контекстного меню
  • * Название пункта меню "Очистить всё" заменено на "Очистить оба кэша", чтобы исключить ассоциацию с групповым действием

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

Наименование Файл Версия Размер
Установочный пакет v8.2 243
.zip 332,86Kb
16.08.13
243
.zip 1.0.2.3 332,86Kb Скачать
Мобильная внешняя обработка v8.2 192
.epf 11,74Kb
16.08.13
192
.epf 1.0.2.3 11,74Kb Скачать
Установочный пакет v8.1 10
.zip 199,58Kb
16.08.13
10
.zip 1.0.2.3 199,58Kb Скачать
Мобильная внешняя обработка v8.1 15
.epf 11,39Kb
16.08.13
15
.epf 1.0.2.3 11,39Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Иван Иванов (Famza) 08.08.13 15:03
(0) При выборе "Очистить все" будут очищаться кэши по папкам/подпапкам в дереве ИБ?
2. Константин Хрипков (mbreaker) 08.08.13 15:25
(1) "Очистить всё" - это последовательное исполнение действий "Очистить кэш конфигурации" и "Очистить кэш пользователя". В обоих действиях удаляются полностью каталоги кэшей со всеми вложенными файлами и подкаталогами.
Любое действие предваряет проверка на наличие или возможность удаления файла 1Cv8.lck в пользовательском кэше (признак запущенного толстого клиента).
3. Константин Хрипков (mbreaker) 08.08.13 15:34
(1) Извиняюсь, не сразу понял суть вопроса... Ответ - нет. Рекурсивного перебора по дереву ИБ здесь нет.

Сам я не сторонник принципа "а давайте жахнем всё, просто на всякий случай". Но если идея групповой очистки будет востребована - включу в план на следующую версию.
4. Иван Иванов (Famza) 08.08.13 15:46
(0) Ну я воспринял "Очистить все" - значит всё и у всех ИБ. А вот по папкам в дереве ИБ очистка для меня актуальна однозначно - уж слишком много баз )))
5. Константин Хрипков (mbreaker) 08.08.13 17:17
(4) Групповое выделение и обработку реализовал в версии 1.0.2.1, выложу чуть позже. К ветвям дерева привязываться не стал, выделение через ctrl или shift гораздо универсальнее.
6. serpent Пентюхов С. Г. (serpent) 09.08.13 09:46
Внешняя обработка НА 1C 8.1 УТ 10 не открывается и не конвертируется :-(
7. Константин Хрипков (mbreaker) 09.08.13 12:21
(6) serpent, исправил в версии 1.0.2
Обновленная версия будет размещена сегодня вечером
8. serpent Пентюхов С. Г. (serpent) 09.08.13 12:59
(7) Ну вот, попал на -1 стартМани
9. Константин Хрипков (mbreaker) 09.08.13 15:09
(8) serpent, за регистрацию ошибки +1$m переводом.
Надеюсь следующая версия понравится больше.
10. serpent Пентюхов С. Г. (serpent) 09.08.13 15:11
11. Константин Хрипков (mbreaker) 09.08.13 18:24
(4) Famza, (10) serpent, пожелания реализованы в новой версии 1.0.2.2, версия уже доступна для скачивания
12. Константин Хрипков (mbreaker) 09.08.13 18:25
(10) serpent, для 8.1 сформированы отдельные поставки
13. serpent Пентюхов С. Г. (serpent) 12.08.13 08:45
14. Сергей Сергеев (Рамзес) 14.08.13 11:57
Да, у динамического обновления много плюсов. Но есть большой минус - не знаешь что от него ожидать. Как-то несколько раз я сталкивался с ситуацией, когда после динамического обновления пропадали мои изменения в коде и я вносил последующие изменения в уже некорректный код. Так когда же нужна процедура очистки кэша? Всякий раз после динамического обновления?
15. Константин Хрипков (mbreaker) 14.08.13 16:54
(14) Рамзес, в подавляющем большинстве случаев очистка кэша конфигурации при динамическом обновлении нужна только тогда, когда между моментом обновления и штатным перезапуском клиента происходит аварийное завершение работы клиента. Другие варианты больше относятся к случайностям, чем к закономерностям.

Очистка же кэша пользователя требуется существенно реже и, как правило, поводом для неё бывают:
  • сохранение некорректного значения методом СохранитьЗначение(), восстановление которого вызывает исключение и падение платформы
  • некорректное сохранение положения окна, если команда "Восстановить положение окна" не помогает
  • сохранение некорректных настроек списка, если кнопка "Стандартная настройка" не помогает
  • "сползание" привязки элементов в форме (редко, но метко, и лечится ТОЛЬКО чисткой кэша пользователя)
16. Виталий Черненко (SeiOkami) 15.08.13 09:12
Прошелся по всем базам. Везде сообщение "кэш конфигурации уже чист". Хотя он не разу не чист =(
17. Константин Хрипков (mbreaker) 15.08.13 09:31
(16) SeiOkami, сообщите версию Windows и пути, по которым Вы проверяете кэши.
Также запустите утилиту командной строки, введите команду set без параметров и посмотрите значение переменной окружения USERPROFILE.
Для корректной работы ЧеКиста нужно, чтобы данная переменная содержала правильные настройки:
  • для Windows 7 - [диск]:\Users\профиль_пользователя
  • для ранних Windows - [диск]:\Documents and Settings\профиль_пользователя или [диск]:\DOCUME~1\профиль_пользователя
18. Константин Хрипков (mbreaker) 16.08.13 17:01
(16) SeiOkami, спасибо за регистрацию ошибки при работе утилиты под Windows XP.
Исправлено в релизе 1.0.2.3
по традиции: +1$m переводом
19. Андрей Бертыш (ignor) 03.09.13 20:02
Хотелось бы послушать/почитать об очистке серверного кеша
20. Андрей Бертыш (ignor) 03.09.13 20:03
хотелось бы почитать об очистке серверного кэша
21. Константин Хрипков (mbreaker) 04.09.13 11:21
(20) ignor, а что подразумевается под термином "серверный кэш"?
23. Константин Хрипков (mbreaker) 05.09.13 13:10
(22) ignor, не получается отвечать более оперативно, т.к. нахожусь в отпуске в другой стране.
Такого понятия, как "серверный кэш", пока в платформе нет, есть только зарегистрированные пожелания сделать кэширующий механизм для получения значений таблицы констант через объектную модель, т.к. вызовы к ним очень частые и каждый раз данные забираются из БД (конечно СУБД ещё кэширует часто используемые выборки, но все равно имеют место потери на накладных расходах).

А то, о чём идёт речь в указанной ветке Мисты - это просто служебные файлы, подробнее о них можно почитать на самой же Мисте: http://www.forum.mista.ru/topic.php?id=662246
24. Дмитрий Кишкин (DmitryKishkin) 06.09.13 13:49
Скачал, опробовал - все работает. Автору - сенькс.
25. Константин Хрипков (mbreaker) 09.09.13 12:19
(24) DmitryKishkin, пользуйтесь на здоровье! :)
26. Николай (provnick) 18.01.14 08:57
Не понял, как это увидеть, я имею в виду сработало или нет, при обновлении (конвертации 1.0-2.1.9) базы Розница для Казахстана чистил руками, скриптами, переходил на платформу 8.3 все равно ошибка: Ошибка загрузки документа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/area-template}appearance Форма: Элемент Тип: {http://v8.1c.ru/8.1/data-composition-system/area-template}TableCellAppearance
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: item Форма: Элемент Тип: {http://v8.1c.ru/8.1/data-composition-system/core}ParameterValue
по причине:
Ошибка преобразования данных XDTO:
Значение: {http://v8.1c.ru/8.1/data/ui/style}ПросроченныеДанныеЦвет Тип: {http://v8.1c.ru/8.1/data/ui}Color
по причине:
Ошибка отображения типов:
Отображение типа 'String' в тип '{http://v8.1c.ru/8.1/data/ui}Color'
Может есть идеи?
27. Николай (provnick) 18.01.14 09:01
Убирал галочки с XDTO пакетов, с обработок, с некоторых общих модулей, нихт, завершить работу или перезапустить, рекомендуют чистить кэш, но увы, воз и ныне....
28. Константин Хрипков (mbreaker) 24.01.14 15:24
(26)(27) Хм... Пост выглядит как-то сумбурно, Вам не кажется? Может немного предыстории поможет? А то мне это напоминает отрывок из шоу "Уральские пельмени", где Соколов спрашивает: "А можно мне с вами?"
29. ффф ыыы (zqzq) 23.04.14 09:28
Специально обученные чистке кэша люди, бегающие по зоопарку из > 200 пользователей при каждом случае некорректного динамического обновления, даже в теории не предполагались.
Кстати... Файлы кэша же привязывается к внутреннему ИД базы в списке баз. Так что в теории достаточно удалить и заново добавить базу в общий список баз и у всех 200 пользователей кэш сбросится (при условии запуска из общего списка).
30. Константин Хрипков (mbreaker) 23.04.14 11:22
(29) zqzq, не только в теории, но и на практике... и не только кэш, но и все сохранённые настройки (даже имя пользователя при старте)... причём у всех двухсот сразу... они все возьмутся за руки и прибегут "радоваться" к дверям администратора, восхваляя все его заслуги пред отечеством за последние лет... э-э-э... пять...

к чему я это? ах, да... экскаватор - это замечательная вещь, облегчающая на порядок жизнь человека, но использовать его в огороде для того, чтобы вскопать грядку, наверное, не очень рационально, именно поэтому человечество для таких случаев продолжает использовать лопату! :)

P.S. для избавления от глюков динамического обновления помогает чистка кэша конфигурации, а пользовательский кэш чистить в 99% случаев бессмысленно.
31. ффф ыыы (zqzq) 24.04.14 08:55
(30) mbreaker, в версии 1С 8.2 практически все значимые настройки перенесены в БД в хранилища настроек и привязаны к пользователю 1С, а заход лучше под пользователем Windows делать по возможности. Так что тут дело вкуса скорее. Максимум какие-нибудь настройки положений окон и шрифта окона сообщений сбросятся.

Проверил на 8.2 толстом обычном клиенте, настройки сохраненных значений реквизитов обычной формы не сбрасываются при передобавлении базы в список.
32. Вячеслав Петрович (kozlovvp) 16.05.14 12:24
Работает ли это решение для платформы 8.3?
33. Алексей Карвацкий (AVK_Alex) 20.05.14 12:07
Сторонние утилиты более мобильны - позволяют очистить кэш в 1 клик. А здесь достоинство гибкость...
Попробуем :)
34. Алексей Карвацкий (AVK_Alex) 20.05.14 12:22
Когда ожидать версию под управляемые формы (все-таки поддержка...)?
Про такси-метро пока не спрашиваю...
35. Алексей Карвацкий (AVK_Alex) 20.05.14 12:31
Неплохо бы:
1. Настройку видимости баз. Например, когда баз несколько десятков, а пользователь работает с 2-3... Это будет непросто, т.к.:
- список формируется при открытии и нигде не хранится;
- не предусмотрены пользователи, т.е. не к кому такую настройку привязать.
2. Чекиста по умолчанию в списке не показывать (дабы не смущать тех, кто на бронепоезде).
36. Константин Хрипков (mbreaker) 22.05.14 01:36
37. Константин Хрипков (mbreaker) 22.05.14 01:43
(34) Ну, пока целесообразности в этом не видел, т.к. основной "рабочий" вариант применения всё-таки отдельно стоящая конфигурация, а для неё разницы нет в УФ, НФ или Такси. Сейчас куда более интересно разобраться с "глюками" управляемых форм и СКД, которые повсеместно лезут в БП 3.0 и не лечатся сбросом кэшей (помогает только перепрописание БД в списках).
38. Константин Хрипков (mbreaker) 22.05.14 01:48
(35) Если честно не понял сути ни первого, ни второго предложений.

Можно поподробнее, что подразумевается под "видимостью" баз? Фильтр?

И что значит "по умолчанию"? Стартер 1С - это часть платформы и в нём нет режимов запуска. А альтернативные стартеры - это не тема этой публикации.
39. Adapter Бахтыреев (adapter) 20.10.14 14:16
версия 1.0.2.3 при открытии ошибка
{Обработка.ЧеКист.Форма.Форма.Форма(173)}: Ошибка при вызове метода контекста (ЭтоКаталог): Ошибка доступа к файлу: D:\UserProfiles\alex\Application Data\1C\1CEStart\ibases.v8i

видимо не учитывается что в win7 каталог 1с уже в другом месте


40. Константин Хрипков (mbreaker) 20.10.14 17:11
(39) adapter, да нет, скорее это в Вашем конкретном случае просто нарушена штатная структура символических ссылок, которую Win7 формирует для обратной совместимости со старыми версиями программ.
В Win7 действительно содержимое папки %user_profile%\Application Data перекочевало в %user_profile%\AppData\Roaming, но для совместимости система формирует символическую ссылку ("ярлык") в папке %user_profile% с названием "Application Data" со связью на %user_profile%\AppData\Roaming.
В своей обработке я использую эту особенность, чтобы не заниматься вычислением конкретного местоположения в зависимости от версии системы.
У Вас, видимо, этого линка по какой-то причине нет.
41. Adapter Бахтыреев (adapter) 21.10.14 12:32
да, у меня системный диск на ssd (для быстродействия) а папка users на обычном hdd. Хоть и делал все штатными средствами Вин, но видимо поэтому нету у меня этих ярлыков. Неплохо было бы проверять существование каталога на подобные случаи.

Я дописал в конфу определение версии Вин. Можете включить в свой новый релиз если хотите:
https://drive.google.com/file/d/0B3_BNCh_2-MxMnJob0dua0JHWHM/view?usp=sharing
42. Артем Артеменко (dock) 03.02.15 21:53
43. Константин Хрипков (mbreaker) 04.02.15 17:51
(42) dock, под 8.3 прекрасно работает версия для 8.2, просто для 8.1 пришлось делать отдельную поставку из-за несовместимости интерфейса, отсюда и появление номера версии в наименовании обработки.
Но про вариант реализации под УФ специально для рабочих мест, где установлен только тонкий клиент, я обязательно подумаю...
Похоже, что в скором времени такая и самому понадобится...
44. Вячеслав (Borunmeert) 18.06.15 14:01
А если у пользователя под Windows права ограничены на эти папки. Кэш очистит?
45. Алекс Ю (AlexO) 24.01.16 22:23
(0)
чистить пользовательский кэш (сохраненные значения, размеры и положение форм и т.п.) и кэш конфигураций
И как вы их разделяете?
Чем не устраивает обычная очистка через CMD типа bat-файл для автоматической чистки КЭШа.?
Тем более, вокруг всего этого устраивать "пляски" с названиями - "ЧЕКИСТ!", - и прочий пафос из разряда "Предвосхищая бурную полемику в комментариях на тему "а зачем нужен очередной чистильщик кэша, если уже есть [далее длинный список]?"" :)
46. Константин Хрипков (mbreaker) 25.01.16 21:45
(45) AlexO, специально для тех, кто с характерным "нулём" на конце и предпочитает не вчитываться в тексты пабликов перед генерацией комментариев, привожу две цитаты оттуда в ответ вопросы:
1) Как вы их разделяете?
пользовательский кэш (сохраненные значения, размеры и положение форм и т.п.) и кэш конфигураций (рабочая копия конфигурации на клиенте)

2) Чем не устраивает?
4. Средство должно легко разворачиваться в сети на большом количестве пользователей.

Мой же ответ на "бла-бла-бла... пляски... бла-бла-бла... пафос..." можно прочитать на youtube в начале любого из роликов +100500 после фразы "ДИСКЛЕЙМЕР. НЕКОТОРЫЕ ИЗ ПРЕДСТАВЛЕННЫХ ВИДЕО МОГУТ ОКАЗАТЬСЯ ДИКИМИ БАЯНАМИ-БАБАЯНАМИ..." (не увлекаюсь, но тут уж очень в тему пришлось)
В особенности это касается конкретного представителя отдельного вида HOMO COPYPASTUS, единственной заслугой которого является перепечатка штатной документации к платформе, а целью посещения ИС - бесконечный и бессмысленный троллинг в комментариях.
P.S. Искренне надеюсь, что данный представитель уж в коем-то веке не станет подтверждать свой имидж последующим "словесным поносом" и благоразумно промолчит, избавив мир от низкопробного словоблудия, а меня от утомительного стирания уведомлений о поступлении очередной порции "фекалий" в комментариях.
47. Константин Хрипков (mbreaker) 25.01.16 21:50
(44) Borunmeert, у пользователя не может не быть прав на эти папки, т.к. в процессе работы туда пишет программа (1С), запущенная из-под этого же пользователя. Не было бы прав, 1С и не запустилась бы.
48. Andrew Chuprina (chuprina_as) 01.02.16 11:56
Сделайте, пожалуйста, возможность очистки кеша заданному пользователю.
49. Константин Хрипков (mbreaker) 01.02.16 15:30
(48) chuprina_as, при подходе, реализованном в данном решении, такое сделать невозможно.
А для описанной задачи нужны более продвинутые средства. Что-то типа MS System Center... Но это уже совсем другая пьеса.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа