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


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

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

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

  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» (//infostart.ru/public/19841/), которая легла в основу отображения древовидного списка баз и существенно сократила время разработки ЧеКиста.


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

  • + Добавлена поддержка платформы 8.3
  • + Добавлена поддержка переопределения местоположения кэша через location.cfg

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

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

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

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

57 Comments

  1. Famza

    (0) При выборе «Очистить все» будут очищаться кэши по папкам/подпапкам в дереве ИБ?

    Reply
  2. mbreaker

    (1) «Очистить всё» — это последовательное исполнение действий «Очистить кэш конфигурации» и «Очистить кэш пользователя». В обоих действиях удаляются полностью каталоги кэшей со всеми вложенными файлами и подкаталогами.

    Любое действие предваряет проверка на наличие или возможность удаления файла 1Cv8.lck в пользовательском кэше (признак запущенного толстого клиента).

    Reply
  3. mbreaker

    (1) Извиняюсь, не сразу понял суть вопроса… Ответ — нет. Рекурсивного перебора по дереву ИБ здесь нет.

    Сам я не сторонник принципа «а давайте жахнем всё, просто на всякий случай». Но если идея групповой очистки будет востребована — включу в план на следующую версию.

    Reply
  4. Famza

    (0) Ну я воспринял «Очистить все» — значит всё и у всех ИБ. А вот по папкам в дереве ИБ очистка для меня актуальна однозначно — уж слишком много баз )))

    Reply
  5. mbreaker

    (4) Групповое выделение и обработку реализовал в версии 1.0.2.1, выложу чуть позже. К ветвям дерева привязываться не стал, выделение через ctrl или shift гораздо универсальнее.

    Reply
  6. serpent

    Внешняя обработка НА 1C 8.1 УТ 10 не открывается и не конвертируется 🙁

    Reply
  7. mbreaker

    (6) serpent, исправил в версии 1.0.2

    Обновленная версия будет размещена сегодня вечером

    Reply
  8. serpent

    (7) Ну вот, попал на -1 стартМани

    Reply
  9. mbreaker

    (8) serpent, за регистрацию ошибки +1$m переводом.

    Надеюсь следующая версия понравится больше.

    Reply
  10. serpent

    (9) Будем ждать.

    Reply
  11. mbreaker

    (4) Famza, (10) serpent, пожелания реализованы в новой версии 1.0.2.2, версия уже доступна для скачивания

    Reply
  12. mbreaker

    (10) serpent, для 8.1 сформированы отдельные поставки

    Reply
  13. serpent

    (12)Спасибо… проверим

    Reply
  14. Рамзес

    Да, у динамического обновления много плюсов. Но есть большой минус — не знаешь что от него ожидать. Как-то несколько раз я сталкивался с ситуацией, когда после динамического обновления пропадали мои изменения в коде и я вносил последующие изменения в уже некорректный код. Так когда же нужна процедура очистки кэша? Всякий раз после динамического обновления?

    Reply
  15. mbreaker

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

    Очистка же кэша пользователя требуется существенно реже и, как правило, поводом для неё бывают:

    • сохранение некорректного значения методом СохранитьЗначение(), восстановление которого вызывает исключение и падение платформы
    • некорректное сохранение положения окна, если команда «Восстановить положение окна» не помогает
    • сохранение некорректных настроек списка, если кнопка «Стандартная настройка» не помогает
    • «сползание» привязки элементов в форме (редко, но метко, и лечится ТОЛЬКО чисткой кэша пользователя)
    Reply
  16. SeiOkami

    Прошелся по всем базам. Везде сообщение «кэш конфигурации уже чист». Хотя он не разу не чист =(

    Reply
  17. mbreaker

    (16) SeiOkami, сообщите версию Windows и пути, по которым Вы проверяете кэши.

    Также запустите утилиту командной строки, введите команду set без параметров и посмотрите значение переменной окружения USERPROFILE.

    Для корректной работы ЧеКиста нужно, чтобы данная переменная содержала правильные настройки:

    • для Windows 7 — [диск]:Usersпрофиль_пользователя
    • для ранних Windows — [диск]:Documents and Settingsпрофиль_пользователя или [диск]:DOCUME~1профиль_пользователя
    Reply
  18. mbreaker

    (16) SeiOkami, спасибо за регистрацию ошибки при работе утилиты под Windows XP.

    Исправлено в релизе 1.0.2.3

    по традиции: +1$m переводом

    Reply
  19. ignor

    Хотелось бы послушать/почитать об очистке серверного кеша

    Reply
  20. ignor

    хотелось бы почитать об очистке серверного кэша

    Reply
  21. mbreaker

    (20) ignor, а что подразумевается под термином «серверный кэш»?

    Reply
  22. mbreaker

    (22) ignor, не получается отвечать более оперативно, т.к. нахожусь в отпуске в другой стране.

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

    А то, о чём идёт речь в указанной ветке Мисты — это просто служебные файлы, подробнее о них можно почитать на самой же Мисте: http://www.forum.mista.ru/topic.php?id=662246

    Reply
  23. DmitryKishkin

    Скачал, опробовал — все работает. Автору — сенькс.

    Reply
  24. mbreaker

    (24) DmitryKishkin, пользуйтесь на здоровье! 🙂

    Reply
  25. provnick

    Не понял, как это увидеть, я имею в виду сработало или нет, при обновлении (конвертации 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’

    Может есть идеи?

    Reply
  26. provnick

    Убирал галочки с XDTO пакетов, с обработок, с некоторых общих модулей, нихт, завершить работу или перезапустить, рекомендуют чистить кэш, но увы, воз и ныне….

    Reply
  27. mbreaker

    (26)(27) Хм… Пост выглядит как-то сумбурно, Вам не кажется? Может немного предыстории поможет? А то мне это напоминает отрывок из шоу «Уральские пельмени», где Соколов спрашивает: «А можно мне с вами?«

    Reply
  28. zqzq
    Специально обученные чистке кэша люди, бегающие по зоопарку из > 200 пользователей при каждом случае некорректного динамического обновления, даже в теории не предполагались.

    Кстати… Файлы кэша же привязывается к внутреннему ИД базы в списке баз. Так что в теории достаточно удалить и заново добавить базу в общий список баз и у всех 200 пользователей кэш сбросится (при условии запуска из общего списка).

    Reply
  29. mbreaker

    (29) zqzq, не только в теории, но и на практике… и не только кэш, но и все сохранённые настройки (даже имя пользователя при старте)… причём у всех двухсот сразу… они все возьмутся за руки и прибегут «радоваться» к дверям администратора, восхваляя все его заслуги пред отечеством за последние лет… э-э-э… пять…

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

    P.S. для избавления от глюков динамического обновления помогает чистка кэша конфигурации, а пользовательский кэш чистить в 99% случаев бессмысленно.

    Reply
  30. zqzq

    (30) в версии 1С 8.2 практически все значимые настройки перенесены в БД в хранилища настроек и привязаны к пользователю 1С, а заход лучше под пользователем Windows делать по возможности. Так что тут дело вкуса скорее. Максимум какие-нибудь настройки положений окон и шрифта окона сообщений сбросятся.

    Проверил на 8.2 толстом обычном клиенте, настройки сохраненных значений реквизитов обычной формы не сбрасываются при передобавлении базы в список.

    Reply
  31. kozlovvp

    Работает ли это решение для платформы 8.3?

    Reply
  32. AVK_Alex

    Сторонние утилиты более мобильны — позволяют очистить кэш в 1 клик. А здесь достоинство гибкость…

    Попробуем 🙂

    Reply
  33. AVK_Alex

    Когда ожидать версию под управляемые формы (все-таки поддержка…)?

    Про такси-метро пока не спрашиваю…

    Reply
  34. AVK_Alex

    Неплохо бы:

    1. Настройку видимости баз. Например, когда баз несколько десятков, а пользователь работает с 2-3… Это будет непросто, т.к.:

    — список формируется при открытии и нигде не хранится;

    — не предусмотрены пользователи, т.е. не к кому такую настройку привязать.

    2. Чекиста по умолчанию в списке не показывать (дабы не смущать тех, кто на бронепоезде).

    Reply
  35. mbreaker

    (32) Да, работает.

    Reply
  36. mbreaker

    (34) Ну, пока целесообразности в этом не видел, т.к. основной «рабочий» вариант применения всё-таки отдельно стоящая конфигурация, а для неё разницы нет в УФ, НФ или Такси. Сейчас куда более интересно разобраться с «глюками» управляемых форм и СКД, которые повсеместно лезут в БП 3.0 и не лечатся сбросом кэшей (помогает только перепрописание БД в списках).

    Reply
  37. mbreaker

    (35) Если честно не понял сути ни первого, ни второго предложений.

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

    И что значит «по умолчанию»? Стартер 1С — это часть платформы и в нём нет режимов запуска. А альтернативные стартеры — это не тема этой публикации.

    Reply
  38. adapter

    версия 1.0.2.3 при открытии ошибка

    {Обработка.ЧеКист.Форма.Форма.Форма(173)}: Ошибка при вызове метода контекста (ЭтоКаталог): Ошибка доступа к файлу: D:UserProfilesalexApplication Data1C1CEStartibases.v8i

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

    Reply
  39. mbreaker

    (39) adapter, да нет, скорее это в Вашем конкретном случае просто нарушена штатная структура символических ссылок, которую Win7 формирует для обратной совместимости со старыми версиями программ.

    В Win7 действительно содержимое папки %user_profile%Application Data перекочевало в %user_profile%AppDataRoaming, но для совместимости система формирует символическую ссылку («ярлык») в папке %user_profile% с названием «Application Data» со связью на %user_profile%AppDataRoaming.

    В своей обработке я использую эту особенность, чтобы не заниматься вычислением конкретного местоположения в зависимости от версии системы.

    У Вас, видимо, этого линка по какой-то причине нет.

    Reply
  40. adapter

    да, у меня системный диск на ssd (для быстродействия) а папка users на обычном hdd. Хоть и делал все штатными средствами Вин, но видимо поэтому нету у меня этих ярлыков. Неплохо было бы проверять существование каталога на подобные случаи.

    Я дописал в конфу определение версии Вин. Можете включить в свой новый релиз если хотите:

    https://drive.google.com/file/d/0B3_BNCh_2-MxMnJob0dua0JHWHM/view?usp=sharing

    Reply
  41. dock

    под 8.3 будет версия ?

    Reply
  42. mbreaker

    (42) dock, под 8.3 прекрасно работает версия для 8.2, просто для 8.1 пришлось делать отдельную поставку из-за несовместимости интерфейса, отсюда и появление номера версии в наименовании обработки.

    Но про вариант реализации под УФ специально для рабочих мест, где установлен только тонкий клиент, я обязательно подумаю…

    Похоже, что в скором времени такая и самому понадобится…

    Reply
  43. Borunmeert

    А если у пользователя под Windows права ограничены на эти папки. Кэш очистит?

    Reply
  44. AlexO

    (0)

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

    И как вы их разделяете?

    Чем не устраивает обычная очистка через CMD типа bat-файл для автоматической чистки КЭШа.?

    Тем более, вокруг всего этого устраивать «пляски» с названиями — «ЧЕКИСТ!», — и прочий пафос из разряда «Предвосхищая бурную полемику в комментариях на тему «а зачем нужен очередной чистильщик кэша, если уже есть [далее длинный список]?»» 🙂

    Reply
  45. mbreaker

    (45) AlexO, специально для тех, кто с характерным «нулём» на конце и предпочитает не вчитываться в тексты пабликов перед генерацией комментариев, привожу две цитаты оттуда в ответ вопросы:

    1) Как вы их разделяете?

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

    2) Чем не устраивает?

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

    Мой же ответ на «бла-бла-бла… пляски… бла-бла-бла… пафос…» можно прочитать на youtube в начале любого из роликов +100500 после фразы «ДИСКЛЕЙМЕР. НЕКОТОРЫЕ ИЗ ПРЕДСТАВЛЕННЫХ ВИДЕО МОГУТ ОКАЗАТЬСЯ ДИКИМИ БАЯНАМИ-БАБАЯНАМИ…» (не увлекаюсь, но тут уж очень в тему пришлось)

    В особенности это касается конкретного представителя отдельного вида HOMO COPYPASTUS, единственной заслугой которого является перепечатка штатной документации к платформе, а целью посещения ИС — бесконечный и бессмысленный троллинг в комментариях.

    P.S. Искренне надеюсь, что данный представитель уж в коем-то веке не станет подтверждать свой имидж последующим «словесным поносом» и благоразумно промолчит, избавив мир от низкопробного словоблудия, а меня от утомительного стирания уведомлений о поступлении очередной порции «фекалий» в комментариях.

    Reply
  46. mbreaker

    (44) Borunmeert, у пользователя не может не быть прав на эти папки, т.к. в процессе работы туда пишет программа (1С), запущенная из-под этого же пользователя. Не было бы прав, 1С и не запустилась бы.

    Reply
  47. chuprina_as

    Сделайте, пожалуйста, возможность очистки кеша заданному пользователю.

    Reply
  48. mbreaker

    (48) chuprina_as, при подходе, реализованном в данном решении, такое сделать невозможно.

    А для описанной задачи нужны более продвинутые средства. Что-то типа MS System Center… Но это уже совсем другая пьеса.

    Reply
  49. check2

    Ай спасибо тебе добрый человечище!

    Reply
  50. check2

    (50) Надо бы только только немного процедуру обновить в поставке:

    Функция КаталогВерсии(БД)
    
    КаталогВерсии = «1Cv82″;
    Если Лев(БД.Версия,3)=»8.1» Тогда
    КаталогВерсии = «1Cv81»;
     ИначеЕсли Лев(БД.Версия,3)=»8.3″ Тогда
    КаталогВерсии = «1Cv8»;
     КонецЕсли;
    
    Возврат КаталогВерсии;
    
    КонецФункции // КаталогВерсии()
    

    Показать

    А то уже 8.3 есть и не не в том каталоге кэш чистит

    Reply
  51. dock

    (51) Ну тогда уж следует и допиливать под УФ и работу под тонким клиентом 🙂

    Совершенству нет предела!

    Reply
  52. mbreaker

    (51) принято

    Reply
  53. mbreaker

    (50) на здоровье ))

    Reply
  54. adapter

    вот простой вариант под тонкий клиент, в том числе и такси

    http://infostart.ru/public/613030/

    Reply
  55. grey_yes

    Скачал «Мобильная внешняя обработка v8.3″…..

    ПОЧЕМУ не открывается в обычной Бухгалтерии 3.0 (такси)?????!!!!!!!!

    я понимаю зачем нужна обычная форма… Но зачем писать 8.3 если такси и управляемые не открываются?

    Reply
  56. mbreaker

    (57) В описании разработки нигде не заявлялись УФ или Такси, на всех скриншотах тоже только неуправляемые форма. А понятие «поддержка платформы 8.3» совершенно не тождественна понятию «разработка выполнена на управляемых формах». Поэтому не понимаю, в чём смысл столь эмоциональных претензий. Запустите БП 3.0 с ключом /RunModeOrdinaryApplication и пользуйтесь на здоровье.

    «C:Program Files1cv8common1cestart.exe» /RunModeOrdinaryApplication
    Reply

Leave a Comment

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