![]() |
![]() |
|
Проблема с обновлением кэша в 1С 8.х | ☑ | ||
---|---|---|---|---|
0
nasarka
03.09.09
✎
11:21
|
Часто при обновлениях конфигурации базы даных у пользователей новые изменения не отражаются, либо работают не правильно. После очистки кэша 1С в локальных настройках текущего пользователя проблема устраняется, так как создаётся новый кэш.
Я понимаю, что разработчики 1С делают локальное кеширование модулей (сам когда-то так делал в других разработках) для ускорения быстродействия визуальной части программы, чтоб при повторном открытии окошка модули загружались не из сервера базы данных, а из локального хранилища. Может кто знает, как устранить эту проблему не прибегаю к ручной очистки кэшированых данных |
|||
1
ZanderZ
03.09.09
✎
11:23
|
автоматическая чистка кэша
|
|||
2
nasarka
03.09.09
✎
11:24
|
простите, а это как?
|
|||
3
Salvador Limones
03.09.09
✎
11:26
|
Откажись от демонического обновления.
|
|||
4
ZanderZ
03.09.09
✎
11:28
|
(2) ну после завершения работы
|
|||
5
nasarka
03.09.09
✎
11:29
|
Salvador Limones
3 - 03.09.09 - 11:26 Откажись от демонического обновления. На работе это очень отразится? А то могут и каждый рах окошки через сеть по минуте открыватся? Можете навести последовательность инструкцей? |
|||
6
rcs
03.09.09
✎
11:29
|
(2) элементарно. Надо написать обработку очистки кэша и придумать механизм вызова на каждом рабочем месте, где есть 1С.
|
|||
7
nasarka
03.09.09
✎
11:30
|
ZanderZ
4 - 03.09.09 - 11:28 (2) ну после завершения работы это задаётся в конфигурации как то? Или стандартных механизмов нет и надо писать самому? |
|||
8
ZanderZ
03.09.09
✎
11:31
|
(7) кнечно самому
|
|||
9
nasarka
03.09.09
✎
11:31
|
rcs
6 - 03.09.09 - 11:29 (2) элементарно. Надо написать обработку очистки кэша и придумать механизм вызова на каждом рабочем месте, где есть 1С. Насколько я знаю, пока 1С полностю не закрыта, то не дает система удалять файлы |
|||
10
ZanderZ
03.09.09
✎
11:32
|
(9) ну млин напиши батничек при запуске вначале кэш чистит потом 1С запускает
|
|||
11
nasarka
03.09.09
✎
11:35
|
ZanderZ
10 - 03.09.09 - 11:32 (9) ну млин напиши батничек при запуске вначале кэш чистит потом 1С запускает При трех разных конфигурациях, помстоянных обновлениях как платформ, так и конфигураций и больше 200 пользователей - это проблема с прописками батников |
|||
12
ZanderZ
03.09.09
✎
11:36
|
(11) тогда (3)
|
|||
13
nasarka
03.09.09
✎
11:37
|
Насколько я знаю, пока 1С полностю не закрыта, то не дает система удалять файлы. ТОесть как 1С из своекго же сеанса будет удалять саму же себя? ТОесть файлы из которых она запущена?
|
|||
14
ZanderZ
03.09.09
✎
11:40
|
(13) при завершении работы текущей с текущей базой запускай другую базу в которой при начале работы системы удаляешь кэш той базы )
|
|||
15
Vovan1975
03.09.09
✎
11:40
|
(11) вот для этих целей и придуманы сценарии. Админа своего напряги с задачей при логине пользюка сносить определенный каталог нафик, либо чтобы каждому пользюку альтернативный ярлычок на рабочий стол подвешивал, который вызывает батничек, сносящий каталог а затем запущающий одноэс.
|
|||
16
МихаилМ
03.09.09
✎
11:43
|
В 7.7 обновление MD без выгона пользователей осушествляется убиванием ссылок на MD и dds.
Возможно такая же стратегия прокатит и в 8.1, но может 1с и отвалится- надо проверить. тк 8.1 не многопоточна, то не требуется и никаких семафорв для блокировки обращения к этим файлам. Повторю - это пока теоретическая концепция. |
|||
17
nasarka
03.09.09
✎
11:46
|
Боюсь админы такого не осилят, хотя и есть их 50 человек ))) Они виндоуса умеют хорошо переустанавливать и сервера сносить. А насчет идеи
ZanderZ 14 - 03.09.09 - 11:40 (13) при завершении работы текущей с текущей базой запускай другую базу в которой при начале работы системы удаляешь кэш той базы ) спасибо. Можна попробовать с задержкой при открытии второй базы в 5С где-то, чтоб первая конфигурция успела закрытся |
|||
18
Sammo
03.09.09
✎
11:48
|
Хм, а как вы делаете обновления, связанные с реструктуризацией данных?
|
|||
19
nasarka
03.09.09
✎
11:50
|
Sammo
18 - 03.09.09 - 11:48 Хм, а как вы делаете обновления, связанные с реструктуризацией данных? И с реструктурезацией и даже если просто визуальную часть поменять или дописать общий модуль. Это не постоянная проблема, просто возникает время от времени у 10-50% пользователей |
|||
20
МихаилМ
03.09.09
✎
11:59
|
+(16)
Возможно также не удалять файлы, а перезаписывать в них информацию из клиентской 1с8(возможно и серверной такое прокатит но там несколко процессов могут обращаться к файлу ). Сейчас нет под рукой нужного АПО - проверить не могу. |
|||
21
nasarka
03.09.09
✎
12:02
|
v8: Проблема с обновлением кэша в 1С 8.х
Хм, а как знать, что какая-то клиентская 1с8 обновилась корректно и при том, что название файлов кэша идет по ID. Или я неправильно что-то понял |
|||
22
rcs
03.09.09
✎
12:05
|
(13) лично я сделал так: При старте базы проверка, нужно ли очищать кэш. Если нужно, то выводится предупреждение о необходимости очистки кэша и просьбой-предупреждением закрыть все остальные 1С-ки, иначе они будут принудительно закрыты. После нажатия на "ОК" из макета обработки в папку временных файлов записывается скрипт vbs, который сначала убивает все процессы 1cv8.exe, затем чистит кэш метаданных, затем снова запускает ту базу, которая запустила его самого.
Сама проверка на необходимость очистки кэша делается так: если в регистре сведений ДатыОчисткиКэшаМетаданных есть запись о том, что для этих компьютера/пользователя/домена дата и дата в записи совпадает с датой в константе ДатаОчисткиКэша, то очищать кэш не надо, иначе надо. |
|||
23
nasarka
03.09.09
✎
12:09
|
rcs
Можна кусочек кода 1С и скрипта вижуал бейсика? )))) |
|||
24
nasarka
03.09.09
✎
12:19
|
Я так понял что константу ДатаОчисткиКэша и регистр сведения ДатаОчисткиКэшаМетаданных или что-то аналогичное надо дописывать. Вот бы еще значение константы ДатаОчисткиКэша не забывать каждый раз перезабивать Идея хорошая. Спасибо
|
|||
25
rcs
03.09.09
✎
12:29
|
(23) альтруизм нынче не в моде :)
|
|||
26
rcs
03.09.09
✎
12:48
|
(11) (24) если у вас 3 разные базы, то возникнет проблема хранения данных о дате очистки кэша. В одной базе будет запись, в других нет.
Предлагаю написать простенькую программку-стартер в виде базы 1С и внедрить этот механизм туда. Пользователи заходят в другие базы только через базу-стартер. Попутно можно решить ещё много задач: блокирование пользователей от входа в базу, управление списками пользователей всех баз в одном месте, централизованное управление списками баз у пользователя и ещё много чего можно сделать. |
|||
27
nasarka
03.09.09
✎
12:58
|
Всем Спасибо за идеи. Что-то да напишу )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |