Решение проблемы динамического обновления 1С 8.X

Опубликовал kiba Ковальчук (kiba) в раздел Программирование - Инструментарий

При использовании динамического обновления периодически возникают различные проблемы в работе некоторых пользователей.
Решается эта проблема путем чистки каталога user\Local Settings\Application Data\1C\1Cv81 (или 1Сv8 для версии 8.0) , в котором содержится
данные кэша 1С. Данная процедура позволяет автоматизировать данный подход при завершении работы пользователя.

Решение представляет собой процедуру, вызов которой нужно добавить в обработчике "При завершении работы системы".
Процедура очищает каталог user\Local Settings\Application Data\1C\1Cv81 (или 1Сv8 для версии 8.0) с кэшем пользователя (из-за которого и возникает данная проблема).
(Папки Config, ConfigSave, SICache, DBNameCache)

Была решена основная трудность - невозможность удаления каталога user\Local Settings\Application Data\1C\1Cv81 из самой 1С (т.к. доступ к нему блокируется, пока программа активна).
Использование заключается в вызове экспортной процедуры ОчисткаКэша(), определенной в модуле обработки. Вызов нужно производить из модуля приложения в обработчике ПриЗавершенииРаботыСистемы().
Данное решение работает как на локальном рабочем месте, так и в терминале.
Важно! В режиме обработки очистка кэша не отработает! Используйте только через вызов процедуры из обработчика ПриЗавершенииРаботыСистемы().


Настройки пользователей не затираются!!!

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

Наименование Файл Версия Размер
ОчисткаКэша
.1225276178 6,65Kb
25.09.09
321
.1225276178 6,65Kb 321 Скачать бесплатно

См. также

Комментарии
0. kiba Ковальчук (kiba) 55 01.01.70 03:00 Сейчас в теме
При использовании динамического обновления периодически возникают различные проблемы в работе некоторых пользователей.
Решается эта проблема путем чистки каталога user\Local Settings\Application Data\1C\1Cv81 (или 1Сv8 для версии 8.0) , в котором содержится
данные кэша 1С. Данная процедура позволяет автоматизировать данный подход при завершении работы пользователя.



Перейти к публикации

1. Андрей Скляров (coder1cv8) 3282 29.10.08 15:42 Сейчас в теме
Пользовательские настройки вместе с кэшем затираются?...
2. Lomok (lomok) 29.10.08 15:51 Сейчас в теме
(1)А ты как думаешь? за 30 то деревянных :)
3. kiba Ковальчук (kiba) 55 29.10.08 16:37 Сейчас в теме
Настройки не затираются. Они хранятся в другом каталоге (user\Application Data\1C\1Cv81)
Затирается только кэш (папки Config, ConfigSave, SICache, DBNameCache)
4. Александр Окулов (PowerBoy) 2552 30.10.08 07:28 Сейчас в теме
Я чет, не понял - она каждый раз очищает кэш?
5. Андрей Скляров (coder1cv8) 3282 30.10.08 07:35 Сейчас в теме
6. Александр Окулов (PowerBoy) 2552 30.10.08 07:41 Сейчас в теме
(5) А потом при старте каждый раз создает! )
7. Сергей Старых (tormozit) 4168 15.11.08 22:05 Сейчас в теме
Удаляет кэш от всех баз сразу?)
8. Сергей Старых (tormozit) 4168 15.11.08 22:11 Сейчас в теме
Кстати под вистой WshShell.SpecialFolders.Item("AppData") не так работает, как под ранними ОС. Так что эта штука работать под вистой правильно не будет.
9. Олег (simol) 18.11.08 19:02 Сейчас в теме
Что-то у меня только cachedata удаляет, а cacheStorage оставляет
10. Сергей Лунев (luns) 18.11.08 19:03 Сейчас в теме
11. Олег (simol) 19.11.08 16:39 Сейчас в теме
При поиске в модулях спрашивает пароль. Неудобно, так как нельзя отойти.
12. kiba Ковальчук (kiba) 55 24.11.08 21:20 Сейчас в теме
По просьбам снят код с модуля обработки.
13. kiba Ковальчук (kiba) 55 24.11.08 21:25 Сейчас в теме
Самый главный замеченный минус - все-таки кэш нужен для ускорения работы 1С.
Поэтому если очищать его каждый раз при выходе, скорость работы
может замедлиться (загрузка, открытие форм и т.д.).
Как вариант, можно предусмотреть очистку кэша по запросу при выходе из 1С (правда пользователь должен понимать о чем его спрашивает программа),
очистка по определенным дням, очистка при установленной константе и т.д.
14. Валерий Агеев (awa) 2370 25.11.08 01:14 Сейчас в теме
(13) а функцию КонфигурацияБазыДанныхИзмененаДинамически() религия использовать не позволяет?
15. Петр (Root Of Life) 20.03.09 13:02 Сейчас в теме
Еще вариант автоматического убивателя кэша:
Создается CMD файл с содержанием:
rd "%UserProfile%\Local Settings\Application Data\1C\1Cv81" /s /q
и ложится сюда:
"C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка\.."
При каждом входе каждый пользователь сам себе чистит кэш.
16. Павел Кемский (Linx-p) 15.04.09 18:29 Сейчас в теме
17. Владимир Казначеев (Mogidin) 118 04.03.10 16:46 Сейчас в теме
у меня вот какая проблема, связанная с динамическим обновлением:
нужно быстренько внести в конфигурацию мелкие изменения в текстах модулей.
делаем, обновляем конфигурацию (что происходит динамически, т.к. с базой работают пользователи), перезапускаем 1с-ку... и получаем тормоза при загрузке конфигурации.
после такого действа загрузка конфигурации значительно замедляется у всех пользователей. избавиться от этого можно, например, установкой обновления конфигурации.
в чем причина такого поведения?
18. Evgeny Sc (JohnySC) 177 26.07.12 03:25 Сейчас в теме
(17) Mogidin, причина такого поведения я думаю становится понятной из этой статьи http://gilev.blogspot.com/2010/02/1-81.html
19. Ас К (Ac73) 04.06.13 15:26 Сейчас в теме
А у меня в каталоге \1С\8.1\ находиться файл ibases который также затирается, после чего список баз пустой.
20. Алекс Ю (AlexO) 114 12.11.13 12:52 Сейчас в теме
(19) Ac73,
А у меня в каталоге \1С\8.1\ находиться файл ibases который также затирается

К динамическому обновлению это отношения не имеет.
Возможно, вам поможет моя статья:
Администрирование и унификация списка баз пользователей в 8.2 (типовой механизм)
Там есть и про затирание списка, и масса примеров корреткной реализации, и возможностей работы со списками баз.