Очистка кэша 1с без помощи системного администратора


Очистка кэша 1С без помощи системного администратора в виде отдельной базы.

Конфигурация создана для устранения ошибок, связанных с нарушением структуры локального кэша 1С, часто возникающих у пользователей после отключения электричества и т.п.
Например, "Неверный формат хранилища данных ‘file://C:/Users/NN/AppData/Local/1C/1cv8/067t1m89-295c-47c4-8922-f67f568rf70e/Config/RuntimeCacheStorage".  

Предполагается использование этой конфигурации в виде отдельной "Сервисной базы". Ссылка на эту базу помещается в список общих информационных баз (c ключом ClearCashe).

После того как пользователь осознал, что проблема именно с кешем 1С (самостоятельно или с помощью удаленной консультации специалиста по 1С), он выполняет следующие действия:
 — открывает в своем списке баз "Сервисную базу",
— нажимает кнопку "Очистить кэш базы данных 1С",
— отмечает список баз, по которым нужно очистить кэш,
— нажимает кнопку "Перейти к очистке кэша по отмеченным базам".

В результате очищаются локальные папки пользователя:

  • "%LOCALAPPDATA%"1C1Cv8IDБазы,
  • "%LOCALAPPDATA%"1C1Cv82IDБазы.

При установке флага "очищать настройки пользователя" очистятся локальные папки вида:

  • "%APPDATA%"1C1Cv8IDБазы,
  • "%APPDATA%"1C1Cv82IDБазы.

Флаг "очищать настройки пользователя" обычно не нужен. Он очищает такую информацию как логин указанный при предыдущем входе в информационную базу и т.п.

Протестировано на платформе 8.3.11.2867.

Основное преимущество отдельной базы по сравнению с похожими по функционалу обработками и "батниками":

  •  удаленно пользователю намного проще объяснить как открыть "Сервисную базу" из его списка баз 1С и нажать в ней несколько кнопок, чем объяснить как открыть сетевую папку с "батником" по очистке кеша и запустить его.

38 Comments

  1. ISP

    Можно же просто удалить базу из списка

    Reply
  2. ojleg

    Идея отличная! Простая и немного сэкономит времени администраторам. Правда, наверняка, уже была здесь ранее.

    Reply
  3. Kott01

    Серьезно? Для очистки кэша собственная конфигурация?!

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

    Reply
  4. Артано

    (1) А можно голову при мигрени ампутировать, тоже помогает железно

    Reply
  5. Артано

    Если бы была возможность отдельно удалить кэш конфигурации не затрагивая данные форм и настройки то конфа была бы намного удобнее для реальных целей

    Reply
  6. MSK_Step

    (4)А чем вариант плохой?

    Reply
  7. kembrik

    Так себе способ. Админ по телефону должен сказать три слова, «Сделайте логон-логофф» перед этим добавив скрипт на нужную базу на машину юзера в AD, который как раз и будет чпокать «%LOCALAPPDATA%»1C1Cv8IDБазы и т.д.

    Ну, или он ЗП свою зря получает

    Reply
  8. Bassgood

    (6) Данные от «старой» базы остаются лежать во временных файлах

    Reply
  9. mihanov

    (1) Базу, которая у пользователя отображается через общие сетевые списки, не удалишь из списка просто так.

    Reply
  10. mihanov

    (7) В Вашем случае админ будет постоянно повторять эти действия (и это еще при условии, что есть единая AD в группе компаний), а в моем — только первые пару раз, если пользователь не совсем безнадежный.

    Reply
  11. mihanov

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

    Reply
  12. mihanov

    (3) По сути это небольшая внешняя обработка (а не «собственная конфигурация»). Но так как база со сломанным кешем иногда не открывается совсем, выдавая ошибку сразу после ввода пароля, то внешняя обработка — не вариант.

    Reply
  13. Dream_kz
    удаленно пользователю намного проще объяснить как открыть «Сервисную базу» из его списка баз 1С и нажать в ней несколько кнопок, чем объяснить как открыть сетевую папку с «батником» по очистке кеша и запустить его

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

    Reply
  14. MSK_Step

    (8)Да пусть остаются, если старую базу удалить из списка, они уже мешать не будут. Или вы и кеш от Хрома чистите? или только к кеш от 1с так придираетесь?

    Reply
  15. MSK_Step

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

    Так если пользователи не будут закрывать сервисную базу, то минус ключи, минус ресурсы сервера на rphost.

    Так ради работы с 1с для программиста полезная обработка, но не для пользователя

    Reply
  16. MSK_Step

    (10)У вас так часта такая ошибка?

    Reply
  17. swimdog

    Нормальная идея, если нет возможности встроить обработку в саму программу. Или, если она не открывается. А все остальное решаемо

    (15) Например, можно поставить автоматическое закрытие базы после очистки. И ключи уже не используются.

    Reply
  18. GenAcid

    (13) А как пользователю в батнике указать конкретные базы по которым нужна очистка кэша?

    Reply
  19. Артано

    (6) Удаляется ВООБЩЕ ВСЁ. Как верно заметили ниже, данные остаются где были и фактически заводится новая база, где нет, например, настроек пользователя, которые ему дороги и повышают эффективность работы.

    Reply
  20. mihanov

    (16) да почти каждый день у кого-то из пользователей возникают такие проблемы. но в данном случае речь о количестве пользователей в общей сложности больше 200

    Reply
  21. Dream_kz

    (18) Никак, очистится весь кэш. На тонких формах все настройки хранятся в бд, так что ничего страшного

    Reply
  22. GenAcid

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

    Reply
  23. MSK_Step

    (17)

    А все остальное решаемо

    Вот поэтому батник или скрипт использовать проще

    Reply
  24. MSK_Step

    (20)

    больше 200

    у нас около 150, таких проблем нет. тогда может при закрытие 1с очищать кеш?

    Reply
  25. MSK_Step

    (19)

    которые ему дороги и повышают эффективность работы

    ну ок

    Reply
  26. mihanov

    (24) странно, что у вас таких проблем нет…что-то вы делаете не так)

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

    «может при закрытие 1с очищать кеш»

    Расскажите, пожалуйста, как при аварийном завершении 1Ски очистить кэш?)

    Reply
  27. MSK_Step

    (26)

    Расскажите, пожалуйста, как при аварийном завершении 1Ски очистить кэш

    Батником можно, в вашем случае вообще каждый день надо)))

    что-то вы делаете не так)

    Обновление без динамических, электричество — у нас батареи у каждого стоят. Компьютеры зависают, бывает.

    В общем — покупайте всем ноуты)) может в этом счастье.

    Платформа 8.3.2580(вроде так.) Сервер х64, Все базы прописаны через сетевой ярлык.

    Да. 1с запускается из сетевой папки. Это изврат,но удобней так.

    Reply
  28. e-tixom

    Форма выбора баз почему-то пустая. Не подскажете: в чем может быть проблема?

    Reply
  29. mihanov

    (28) я определяю список баз по информации в файле «%APPDATA%1C1CEStartibases.v8i

    ibases.v8i — хранится в каталоге <Данные приложений пользователя>/1C/1CEStart (например, C:Documents and SettingsuserApplication Data1C1CEStartibases.v8i или C:UsersuserAppDataRoaming1C1CEStartibases.v8i ) и содержит список информационных баз, зарегистрированных на данном клиентском компьютере. Этот список отображается в диалоге «Запуск 1С:Предприятия».

    *.v8i — В данном файле приводится описание формата файла описаний зарегистрированных информационных баз. Данный список используют все клиенты. Файл располагается на локальном компьютере в каталоге %APPDATA%1C1CEStart и по умолчанию имеет имя ibases.v8i.


    https://its.1c.ru/db/metod8dev#content:1591:hdoc:_top:ibases

    Видимо, у вас какие-то особенные настройки. Посмотрите, есть ли у вас файл, о котором идет речь, и где он располагается. Если такой файл есть, можете скинуть его мне, я посмотрю, в чем может быть проблема.

    Reply
  30. e-tixom

    (29) Все точно. Лежит здесь C:UsersuserAppDataRoaming1C1CEStartibases.v8i. Файл прикрепила.

    Reply
  31. e-tixom

    (29) Вижу: в написании ключа ошиблась, но это дело не меняет.

    Reply
  32. victor_k

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

    Процедура ПриНачалеРаботыСистемы()

    //(очистка кэша

    НеобходимоОчиститьКэш = ВосстановитьЗначение(«НеобходимоОчиститьКэш»);

    Если ТипЗнч(НеобходимоОчиститьКэш) <> Тип(«Булево») Тогда

    НеобходимоОчиститьКэш = Истина;

    КонецЕсли;

    Если НеобходимоОчиститьКэш Тогда

    СохранитьЗначение(«НеобходимоОчиститьКэш», Ложь);

    ЗапрашиватьВозможность = Ложь;

    ПерезапуститьПриЗавершении = Истина;

    ЗавершитьРаботуСистемы(ЗапрашиватьВозможность, ПерезапуститьПриЗавершении , «/ClearCache»);

    Возврат;

    КонецЕсли;

    СохранитьЗначение(«НеобходимоОчиститьКэш», Истина);

    //)очистка кэша

    *******

    Reply
  33. mihanov

    (32) А для чего тогда вообще кэш, если его очищать каждый раз при запуске?

    Reply
  34. Cooler

    (32)

    компактно в одном месте

    Чем это лучше прописывания параметра /ClearCache в параметрах командной строки ярлыка запуска 1С? Тоже «в одном месте», но еще компактнее и не требует изменения конфигурации.

    Более того, можно создать пользователю на рабочем столе два ярлыка для 1С — обычный и «аварийный», с параметром очистки кэша. И втолковать: «Если база не запускается или глючит — использовать аварийный ярлык». Фсё.

    Reply
  35. victor_k

    (34)

    Чем это лучше прописывания параметра /ClearCache в параметрах командной строки ярлыка запуска 1С? Тоже «в одном месте», но еще компактнее и не требует изменения конфигурации.

    Жаль, что не нашёл параметров для отключения кэширования вообще, тестировать вообще не возможно… Прибавка вскорости не значительная, а проблем много…

    У нас ibases.v8i формируется программно (список баз для каждого пользователя свой) и этот параметр там почему то не всегда срабатывает. Ну и второе VIP пользователи очень нервничают по поводу какой то кнопки, для очистке какого то кэша.

    Reply
  36. Cooler

    (35)

    У нас ibases.v8i формируется программно (список баз для каждого пользователя свой)

    Я ему про Фому, а он мне — про Ерему…

    Я писал про параметр запуска 1С в свойствах ярлыка Windows, после «C:Program Files1cv8common1cestart.exe», а не про список баз.

    Этим способом очистка кэша будет происходить для всех баз при каждом запуске — для большинства это неприемлемо, но вам, похоже, именно этого и надо.

    Reply
  37. victor_k

    (36) Спасибо, попробуем. Может знаете как отключить кэширование

    Reply
  38. victor_k

    К сожалению параметр /ClearCache не всегда срабатывает, так и оставили очистку каталогов батниками

    Reply

Leave a Comment

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