кэш сервера 1с linux

Как очистить Кэш в 1С

Что такое кэш?

Программа 1С:Предприятие создана таким образом, что в процессе работы постоянно стремится оптимизировать скорость выполнения операций. С этой целью на компьютере пользователя создается «кэш», в котором хранится часто используемая информация, например: расположение и формы окон, служебные данные пользователя, настройки отборов, шрифтов и т.д.

Кэширование позволяет сократить количество обращений к серверу и, тем самым, повысить скорость работы 1С:Предприятие. Этот механизм экономит время, но и содержит ряд проблем.

Если после обновления конфигурации у Вас «поплыли» формы, перестал работать отчет, выскакивают окна с ошибками, то вероятнее всего проблема решается очисткой кэша.

Как очистить кэш?

Существуют два основных способа очистки кэша.

1. Запуск базы 1С с использованием параметра «/ClearCache»

Данный метод очень прост. В окне выбора информационной базы выберите ту, чей кэш нужно очистить. Нажмите кнопку «Изменить».

В последнем окне Редактирования информационной базы задайте параметр запуска «/ClearCache». Нажмите «Готово» и запустите информационную базу.

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

2. Очистка кэша 1С вручную

Для удаления файлов кэша вручную необходимо найти папки, где кэш хранится. Для операционных систем Win7 и выше временные файлы хранятся по адресу:

Ниже на рисунке показано, как выглядят файлы кэша – папки с длинными непонятными именами. В нашем случае файл всего один.

Для очистки кэша нужно удалить эти папки.

Важно! Удалять папки можно только тогда, когда завершены процессы работы с 1С:Предприятие.

3. Очистка кэша в 1С на сервере или пользовательском ПК с помощью готовых скриптов

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

Этот способ поможет очистить кэш 1С как на клиенте, так и на сервере. Для этого Вам понадобится доступ к соответствующим папкам сервера

4. Дополнительно

Будьте внимательны, в этой папке можно чистить не все. Перечислю что чистить можно:

Важно иметь ввиду, что после очистки кэша запуск 1С немного замедлится.

Источник

Очистка кэша 1С для пользователя и на сервере

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

Общая информация об очистке кэша в 1С

Кэш служит своеобразным буфером обмена для оптимизации работы 1С. В нем хранятся наиболее востребованные файлы конфигурации, к которым чаще всего обращается пользователь. Это дает возможность не доставать их каждый раз из хранилища базы, тем самым ускоряя работу программы.

Ошибка при входе в базу

Но бывают случаи, когда платформа неверно проводит кэширование. Так бывает из-за системных сбоев, ошибок компьютера, отключения электроэнергии. Результатом становятся ошибки в работе конфигурации или закрытие доступа к информационной базе.

Основные способы очистки кэша

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

Вручную

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

Папка с кешем хранится по этому адресу: C:\Users\User\AppData\Local\1C\1Cv82

Важно! Первый запуск после чистки кэша 1с будет происходить дольше обычного. Это произойдет, потому что программа будет создавать новые папки для хранения временных файлов.

Очистка временных файлов 1С

Второй способ тоже под силу использовать самостоятельно. Он не совсем корректен, так как временные файлы остаются на жестком диске после решения проблемы. Что же нужно сделать:

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

Очистка с помощью параметра ClearCache

Если проблемы с запуском 1С случаются постоянно, то следует обратиться к еще одному надежному способу. Но важно учесть один момент: он действует только в режиме тонкого клиента. Как это работает:

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

Возможные сложности

Подходить к очистке clear cache 1c следует очень аккуратно, чтобы не удалить нужную информацию. В каталогах SICache, DBNameCache, ConfigSave, Config лежат файлы, служащие кэшем для разных компонентов конфигурации 1С. Информация в них повторяет ту, что хранится в базе данных, и служит для увеличения производительности и ускорения запуска клиентских приложений.

Что нужно учесть перед тем, как почистить кэш 1с:

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

Часто переходят с клиент-серверного режима на терминальный, если количество машин в сети становится больше десяти. Пользователи, работая с данными конфигурации 1С, каждый раз обращаются к серверу. Кэш сервера 1с неизменно увеличивается, что рано или поздно приводит к сбоям в работе.

Важно! Чтобы не дожидаться этого момента, почистить кэш 1с можно заранее с помощью PowerShell.

Этим действием запускается работа PowerShell на сервере. Он самостоятельно удалит кэш 1с у всех пользователей.

Теперь о том, как настроить автоматическую очистку кэша 1с:

С этого момента планировщик начнет самостоятельно запускать 1c clearcache по заданному расписанию, и очищение будет происходить в каталогах:

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

Часто встает вопрос, возможно ли восстановить данные 1С из кэш-файлов? Пример из жизни системного администратора:

Неудачно обновил конфигурацию, не сделав предварительно ее копию. В итоге cf-файл (файл конфигурации) был потерян. Зато сохранились кэш-файлы с разными расширениями в директах AppData\Local и Roaming.

Почистить clearcache 1с несложная задача даже для обычного пользователя, зато она поможет избежать многих ошибок в работе. Если вовремя и правильно проводить техническое обслуживание, корректно работать в программе, не допуская ее экстренных отключений, то и 1С станет настоящим помощником и не подведет в самый трудный момент.

Источник

Как очистить кэш Сервера 1С

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

Конечно, данная тема также подымается и на курсе: Администратор 1С!

Сегодня мы опять будем разбираться с кэшем, но уже с другим: «Серверным»!

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

Различного рода ошибки в клиент-серверной 1С, которые возникают, как говорят: «из неоткуда», также могут быть следствием ошибок на уровне «серверного кэша».

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

Как сделать все правильно:

1.Находим папку reg_1541

Обычно по пути C:\Program Files\1cv8\srvinfo\reg_1541\

2.Далее ищем каталог snccntx + уникальный идентификатор

Источник

Сервер приложений 1С на Linux

В последнее время, всё чаще и чаще меня начинает душить жаба.
Большая, зелёная, она угнездилась где-то внутри и формирует категорическое нежелание платить за что либо, даже если это не мои личные деньги! Не платить вообще, или же по максимуму минимизировать затраты там, где это возможно.
И если ко всему прочему, необходимо организовать работу с 1С в малой или средней компании, при ограниченном бюджете, то напрашивается желание собрать сервер из того что есть и накатить на него что-нибудь бесплатное.
Это всё к тому, что совсем необязательно покупать для 1С-сервера, лицензии от MS Windows Server+Terminal Cals и MS SQL сервер. Также необязательно рассматривать различные утилиты бэкапа и прочего софта реализующего все фишки работы терминального сервера 1С.

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

Наименование Стандартное лицензирование (руб.) Вариант Linux + Postgres SQL (руб.)
Лицензии Windows
Windows Server 2012 Std. 45012 0
MS Windows Terminal Services Client Access License 2012 Single Language 1-device NoLevel OLP 102960 (20×78) 0
Лицензии 1С
1С: Предприятие 8.3.Лицензия на сервер (x86-64) 86400 86400
1С: Предприятие 8.3 Клиентская лицензия на 20 рабочих мест 78000 78000
Лицензии SQL
Лицензия на сервер MS SQL Server Standard 2012 Runtime для пользователей 1С: Предприятие 8 13381 0
Клиентский доступ на 20 рабочих мест к MS SQL Server 2012 Runtime для 1С: Предприятие 8 117748 0
Итого 443501 164400
Экономия 0 279101

Вполне возможно, что для форточек существуют какие-то пакетные предложения, с оптимизированной ценой для конкретного сервера.
Однако, это не означает того, что MS может уронить цены на свои продукты (лицензии) до нуля.
Из всего, что необходимо будет приобрести для Linux — это клиентские лицензии 1С, в случае использования файлового варианта баз. Или же покупка клиент-серверной платформы от них же, в случае использования SQL.
Ниже мы рассмотрим оба варианта реализации сервера.

Постановка задачи

Установка VM CentOS 6(занимает 2-3 минуты):

Загружаем шаблон LXC CentOS-6-default_20160205 из списка и жмем кнопку “Создать СТ”.
Также, при желании можно выбрать шаблон с Ubuntu, особой разницы нет.
Далее задаем параметры VM и выбираем скачанный шаблон.
Всё, в течении минуты у вас в наличии готовая ОС.
В файле /etc/hosts не должно быть записей формата localhost.localdomian или относящихся к IPv6, в случае отсутствия DNS-сервера, в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:

Далее, обновляем систему, устанавливаем X-server, шрифты и прочие нужности необходимые для расшаривания сервера 1С.
Сначала через консоль Proxmox:

Далее через терминал:

Здесь samba можно и не ставить, а все что нужно закачивать через WinSCP, но если мы делаем не для себя, а отдаем сервер клиенту, лучше установить, т.к. может понадобиться и регистрация в клиентском DNS, и закачка файлов именно через неё.
Проверяем включен ли SELinux:

Если нет (не Disabled), то правим файл /etc/sysconfig/selinux

Далее настраиваем терминальный сервер:

Добавляем необходимые шрифты и прочие утилиты:

Мы подготовили систему, и теперь пора определиться с установкой 1С.

Варианты установки 1С:

Установка для файлового варианта:
Устанавливаем необходимые пакеты:

Устанавливаем 1С предприятие:

-wsdir – имя алиаса веб-сервера для соединения с базой, в последствии мы будем обращаться к ней набирая в браузере адрес.сервера/base
-dir – директория где будут располагаться файлы web-интерфейса 1с (точнее один файл default.vrd);
-connStr – строка соединения с базой 1с предприятия;
-confPath – расположение конфигурационного файла web-сервера apache.

Рестартуем настраиваем Apache:

Набираем в браузере centos6-1c/demo и получаем знакомый интерфейс 1С:

Пробуем соединиться через RDP:

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

Установка для второго, SQL варианта:

Качаем 2 пакета, сам сервер и addon от 1С отсюда (нужен логин и пароль). Потом копируем с помощью winscp и распаковываем их в отдельную папку.
К сожалению, версия 9.4 ставится с ошибками (проблема с библиотекой libicu), поэтому ставим 9.3. Python из аддонов ставить не надо, выдаст ошибку.

Далее создаем русскую локализацию и инициируем служебную базу Postgres

Запускаем службу PostgreSQL и добавляем его в автозагрузку:

Создаем пароль пользователю: postgres, пользователь postgres является администратором баз данных по умолчанию. И в данном примере пароль будет 123654:

Даем возможность подключаться к Postgres по сети, для этого редактируем файл pg_hba.conf

После сохранения файла, перезапускаем сервис postgres:

Публикуем через http:

Рестартуем апач и 1С:

Проверяем работает ли сервер 1с предприятия. Для этого на сервере выполняем следующую комманду:

Через интерфейс Администрирования 1С Предприятия (клиент Windows) создаем базу:

Повторюсь, сервер должен отвечать клиенту по имени. Т.е. должен быть прописан либо в DNS, либо в hosts файле компьютера клиента.

Через конфигуратор (на windows-клиенте, или RDP), закачиваем бэкап вашей или демонстрационной базы.
Всё работает так же, как и в первом варианте, мы можем соединяться как через http, так и через RDP, плюс возможность соединения нативным клиентом.

Лицензирование:

В процессе тестирования, платформа ни разу не заикнулась о лицензиях. Замечу, что в тестах использовалась демонстрационная база скачанная с портала 1С. Слухи, что есть возможность работы 12 пользователей без ключа — оказались правдой. Однако то, что пригодно для тестов, нельзя пускать в production. Техническая возможность работать без ключа, не означает юридического разрешения это делать.

Для компаний с малым количеством пользователей 1С подойдет вот этот вариант (на 5 пользователей).

Программная лицензия на сервер терминалов(веб-сервер):
Если 1С при запуске не затребует её сразу, то идём в Конфигуратор-Сервис-Лицензирование.
Программную лицензию (любую) рекомендуется получать «На этот компьютер» и «Всем пользователям данного компьютера».

USB ключ(HASP):
Сначала необходимо пробросить USB устройство в VM.
На proxmox:

Ищем нужное нам устройство и смотрим его ID: XXXX:YYYY
qm set 101 –usb0 host=XXXX:YYYY
где 101 — ID виртуальной машины куда будем пробрасывать порт.
Перезагружаем виртуалку.
Далее устанавливаем службу haspd:

Во время установки некоторые демоны не стартуют. Это нормально, потому что для их старта нужен модуль из пакета haspd-modules. Но haspd-modules нельзя поставить раньше, потому что по зависимостям haspd должен ставиться первым. Модуль, который выдает ошибку (фейлит) будет нормально запущен после установки модулей при следующем запуске сервера.
Правим конфиг /etc/haspd/hasplm.conf. Добавим в него строчку:
NHS_IP_LIMIT = 127.0.0.1, 172.16.2.0/24

Именно в этой строчке мы перечисляем сети (вместо 172.16.2.0 добавьте свою) и хосты, которые смогут видеть HASP-ключ.

Проверим работу демона haspd:

Демон haspd имеет встроенный веб сервер доступный по адресу: xx.xx.xx.xx:1947

Бэкап:

Можем сделать автоматический бэкап целой VM на удаленное хранилище (или же на другой диск) прямо из Proxmox:
Т.е. через веб-интерфейс Proxmox заходим во вкладку «Хранилище» и добавляем NFS-массив. Это может быть как обыкновенная NAS-хранилка, так и xNIX-сервер с папкой доступной через NFS (кому что удобнее). Затем, указываем содержимое (backup).
Сама 1С рекомендует вот это (нужны имя и пароль). Там говорится, что для файловой версии, достаточно простое копирование файлов, а клиент-серверную версию рекомендуется бэкапить средствами СУБД.

Если просто и быстро (без очистки), то можно в два действия:

и добавим задание в crontab:

В принципе, здесь нет ничего сложного — сейчас любая хранилка поддерживает NFS, так что подмонтировать и создать автоматический бэкап на нее не составит никаких проблем, так же как и на Windows ресурс.
Однако, очень часто возникает вопрос о безопасности хранения бэкапа. Правилом хорошего тона является хранение бэкапа минимум в двух географически разнесенных местах. Рассмотрим два варианта: классический FTP и облачный.

Простой бэкап с копированием по FTP:

Бэкап в облако с шифрованием:
В production рекомендую пользоваться консольным клиентом яндекс-диска.
Также, если вы используете какое то другое облако, поддерживающее webdav, можно монтировать его при помощи davfs.

Для корректной работы GPG добавляем строчку в /sbin/ifup-local:

В зависимости от того, в каком виде у вас БД (файловая или SQL) закомментируйте ненужные строки. В этом тестовом скрипте, использовался юзер postgres с паролем 123654 и БД — test2. Файловая база находилась в /home/1C.
На тот случай, если необходимо работать с диском яндекса напрямую, я оставил строки с CURL.
Даём скрипту права на запуск:

Добавим задание в crontab:

Постинсталл:

Фаервол:
Сервер 1с предприятия в большинстве случаев находится в пределах локальной сети и его вполне можно использовать с отключенным файрволом без большой угрозы безопасности.
Отключаем iptables:

Правильная настройка:
Консоли администрирования нужен доступ к агенту сервера (ragent) по порту 1540, а для создания базы понадобится еще и доступ к рабочим процессам по портам 1562-1591. Толстому клиенту нужен доступ к менеджеру сервера (rmngr) по порту 1541 и рабочим процессам порты 1562-1591. Менеджеру haspd нужны порты 475 и 1947.
Остальное зависит от Ваших настроек. Для стандартно настроенного фаервола в CentOS набор разрешающих правил в /etc/sysconfig/iptables будет выглядеть приближенно так:

Обновление:
Обновление конфигурации происходит абсолютно так же, как и на windows версии, т.е. через конфигуратор.
Платформа обновляется простой процедурой скачивания rpm пакетов с сайта releases.1c.ru/project/Platform83, далее необходимо зайти в каталог с ними и выполнить команду:

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

Привыкшим к Windows-версии ничего менять не надо, можно админить через тот же интерфейс с Windows клиента.
Однако, для ценителей есть и консольные команды.
Команда запуска в качестве демона:

По умолчанию процесс ras запускается на TCP 1545.
rac обращается к ras, который уже обращается (управляет) кластером серверов.
1) Просто help на всякий случай (кстати, он довольно понятный и ясный)

1C:Enterprise 8.3 Remote Administrative Client Utility ‘1C’ 1996-2015
Утилита администрирования платформы 1С: Предприятие

rac [mode] [command] [options] [arguments]

help Отображение справочной информации для указанного режима.
agent Режим администрирования агента кластера серверов
cluster Режим администрирования кластера серверов
manager Режим администрирования менеджера кластера серверов
server Режим администрирования рабочего сервера
process Режим администрирования рабочего процесса
service Режим администрирования сервиса менеджера кластера
infobase Режим администрирования информационной базой
connection Режим администрирования соединений
session Режим администрирования сеансов информационных баз
lock Режим администрирования блокировок
rule Режим управления требованиями назначения
profile Режим управления профилями безопасности кластера

2) Просмотр списка доступных кластеров серверов 1с для управления

3) Создание информационной базы

4) Просмотр списка информационных баз кластера

5) Просмотр списка подключений к информационным базам кластера

Подключение принтеров
Осуществляется через сервис CUPS, который устанавливается автоматом.
В сеансе RDP заходим по адресу localhost:631
При нажатии кнопки установить принтер — видим все сетевые принтеры в сети.
Если вы хотите пробросить свой личный принтер — дайте к нему доступ.

Выводы:

Мы сэкономили на лицензиях Windows Server + Terminal CALs, MS SQL Server + Connection CALs. Даже если посчитать стоимость лицензий от 1С, то Linux-вариант выигрывает! Также, собрав сервер из подручного железа, убедились в том, что по тестам(файловая версия), он работает быстрее чем windows-версия установленная на голом железе.
В итоге, мы смогли получить сервер (шаблон можно размножить), который можно рекомендовать в продакшн. Также, в дальнейшем, Proxmox как систему виртуализации, можно расширить и создать кластер.

P.S: Почему CentOS 6, а не 7? Потому что на момент написания статьи публикация приложения 1С через http поддерживала только apache 2.2. К тому же, в процессе настройки 7-й версии, появились какие то непонятные проблемы с polkitd.
P.P.S: Платформа, через некоторое время тестирования, все же потребовала лицензию.

Спасибо за внимание, жду Ваших комментариев!

Источник

Кэш сервера 1с linux

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами научились при в ходя пользователя на терминальный стол, подключать ему нужный список баз 1С, что согласитесь очень удобная вещь. Сегодня я с вами хочу поговорить про очистку кэша 1С у конкретного пользователя или у всех сразу, при входе в систему или в ручном режиме. Мы рассмотрим, что из себя представляет кэш и его назначение. Тема для меня была в новинку, поэтому я решил ее сохранить для себя, чтобы легко к ней можно было обратиться в будущем.

Для чего и что лежит в кэше 1С?

Когда пользователь запускает «1C Предприятие» и открывает нужную ему базу данных, у него в профиле создается папка с файлами в которой будет складываться кэш 1С. В кэш могут попадать настройки шрифта, цвет, расположение окон и тому подобное, элементы ускорения работы 1С, какие-то служебные данные.

Папки расположения кэша 1С

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

Для версии 1С 8.2

Для чего чистить кэш 1С?

К сожалению 1С, как и практически любой другой софт не могут работать всегда корректно и без ошибок. Я по несколько раз в неделю могу наблюдать случаи, что «1C Предприятие» неправильно работает с кэшированной конфигурацией, в результате чего у вас будет неадекватное поведение в данной конфигурации.

Лично я искал решение (Гипотеза) с зависанием терминального сервера, в логах которого я наблюдал вот такие ошибки:

1000
2
100
0x80000000000000

2819141
Application


1cv8.exe
8.3.14.1630
5c6e4d23
wbase83.dll
8.3.14.1630
5c6e4bb7
c0000005
00006844
7834
01d536fbd27b0449
C:\Program Files (x86)\1cv8\8.3.14.1630\bin\1cv8.exe
C:\Program Files (x86)\1cv8\8.3.14.1630\bin\wbase83.dll
638a47cf-a2f1-11e9-8156-0050568dcf1e

Методы очистки кэша 1С

Существует несколько методов и сценариев, которые можно использовать при работе с приложением:

Несколько сценариев из практики:

Ручная очистка папки с кэшем 1С

Удаление кэша 1C предприятия через PowerShell

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

Благодаря PowerShell вы можете выполнить более правильное удаление, так как затрагиваются только папки с кэшем GUID, пользовательские настройки остаются, в отличии от CMD.

Удаление кэша 1C предприятия через CMD

Командная строка, это один из самых старых и действенных методов по выполнению различных сценариев в Windows, пока даже PowerShell не может ее полностью заменить, например он не умеет делать команду ipconfig /release или ipconfig /renew. Для командной строки есть такие сценарии:

If Exist %USERPROFILE%\AppData\Roaming\1C\1Cv82 (

Удаление кэша 1C предприятия через JavaScript

WScript.Echo(«Будет выполнена очистка кэша 1с»);
var _fso = new ActiveXObject(«Scripting.Filesystemobject»);
var _wShell = new ActiveXObject(«WScript.Shell»);
var _wshNetwork = new ActiveXObject(«WScript.Network»);
var wmi = «winmgmts:!\\\\.\\root\\CIMV2″;
var _wmi = GetObject(wmi);
var _win_ver = _wShell.ExpandEnvironmentStrings(_wShell.RegRead(«HKEY_LOCAL _MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\CurrentVersion»));
var _profiles_path = _wShell.ExpandEnvironmentStrings(_wShell.RegRead(«HKEY _LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\ProfilesDirectory»))
var _user_profile = _wShell.ExpandEnvironmentStrings(«%USERPROFILE%»);
var _clear_all = _parse_bool_argument(«ClearAll»);
var _pids = «»;
var stop_1cv8 = ‘cmd /c taskkill.exe /f /im 1cv8*’;
var stop_1cestart = ‘cmd /c taskkill.exe /f /im 1cestart.exe’;
var stop_1c_part = ‘cmd /c taskkill.exe /f /pid ‘
var _sel_logged_users = «SELECT * FROM Win32_LoggedOnUser»;
var _sel_sesn_prcs = «SELECT * FROM Win32_SessionProcess»;
var _sel_prcs_by_pid = «SELECT * FROM Win32_Process WHERE (Name like ‘1cv8%’ or Name like ‘1cestart%’) and («;
var vbYesNo = 4;
var vbYes = 6;
var exceptDirectories = [«1CEStart»,»Licence 2.0″,»tmplts»];
var exceptFiles = [«LOCATION.CFG»,»1CV8STRT.PFL»,»APPSRVRS.LST»,»IBASES.V8I»];

if(_win_ver == «5.1») <
var user_app_1c = «\\Application Data\\1C»
var user_lcl_1c = «\\Local Settings\\1C»
>else <
var user_app_1c = «\\AppData\\Roaming\\1C»
var user_lcl_1c = «\\AppData\\Local\\1C»;
>

//киляем процессы 1с
log_w(«Started by «+_wshNetwork.UserDomain+»\\»+_wshNetwork.UserName);
if(_clear_all) <
log_w(«Очищаю кэш 1С для всех профилей»);
if(!_parse_bool_argument(«DontClose1cClient»)) <
log_w(«Завершаю работу всех клиентов 1С»);
RunAndRead(stop_1cv8);
RunAndRead(stop_1cestart);
>
_profiles = new Enumerator(_fso.GetFolder(_profiles_path).SubFolders);
for (;!_profiles.atEnd(); _profiles.moveNext()) <
_clean_profile(_profiles.item());
>
>else <
log_w(«Очищаю кэш текущего пользователя»);
for(var logged_users = new Enumerator(_wmi.ExecQuery(_sel_logged_users));!logged_users.atEnd(); logged_users.moveNext()) <
var acc = logged_users.item().Antecedent;
var logon_id = logged_users.item().Dependent;
var _logged_user_rexp = eval(«/»+_wshNetwork.UserName+»/gi»);
if(_logged_user_rexp.test(acc)) <
for(var sess_prcs = new Enumerator(_wmi.ExecQuery(_sel_sesn_prcs));!sess_prcs.atEnd(); sess_prcs.moveNext()) <
var p1 = sess_prcs.item().Antecedent;
var p2 = sess_prcs.item().Dependent;
var _pid_rexp = /Handle=»\d+»/gi;
if(p1 == logon_id) <
_pids += _pid_rexp.test(p2)?»ProcessId=»+((p2.match(_pid_rexp))[0]).replace(‘Handle=»‘,»»).replace(‘»‘,»»)+» or «:»»;
>
>
//WScript.Echo(logon_id);
>
>
_pids = _pids.replace(/\sor\s$/gi,»»)
//WScript.Echo(_pids);
var _sel_only_my_1c = _sel_prcs_by_pid+_pids+»)»;
var c1s = new Enumerator(_wmi.ExecQuery(_sel_only_my_1c));
if((!c1s.atEnd())&&(_wShell.popup(«Для продолжения необходимо закрыть 1с. Продолжаем?»,0,»Подтверждение»,vbYesNo)==vbYes)) <
log_w(«Получено согласие на закртие клиентов 1С текущего пользователя»);
for(;!c1s.atEnd();c1s.moveNext()) <
c1s_cl = c1s.item();
if(!_parse_bool_argument(«DontClose1cClient»)) <
cmd = stop_1c_part+c1s_cl.ProcessID;
log_w(«Завершаю «+cmd);
RunAndRead(cmd);
>
>
>
_clean_profile(_user_profile);
>
WScript.Echo(«Кэш очищен»);

function _parse_bool_argument(pa_arg_name) <
var pa_string = «»;
for(var pa_i = 0; pa_i «‘+rar_outname+'»‘;
rar_VSH.run(rar_str, 0, true);
if(rar_FSO.fileexists(rar_outname)) <
if(rar_FSO.getfile(rar_outname).size>0) <
var rar_in = rar_FSO.opentextfile(rar_outname);
var rar_ret = rar_in.readall();
rar_in.close();
>
else
rar_FSO.deletefile(rar_outname);
>else
rar_FSO = null;
rar_VSH = null;
rar_outname = null;
rar_str = null;
rar_in = null;
return rar_ret.replace(/^\r\n|(\r\n)<2,>|\r\n$/gi,»»);
>

function _clean_profile(cp_path) <
if(_fso.folderexists(cp_path+»\\»+user_app_1c)) <
ClearSubFolders(cp_path+»\\»+user_app_1c)
>
if(_fso.folderexists(cp_path+»\\»+user_lcl_1c)) <
ClearSubFolders(cp_path+»\\»+user_lcl_1c)
>
>

function ClearSubFolders(objFolder) <
var subfolder;
var filename;
var csf_subfolders = new Enumerator(_fso.GetFolder(objFolder).SubFolders);
for(;!csf_subfolders.atEnd();csf_subfolders.moveNext()) <
subfolder = csf_subfolders.item()
if(!in_array(subfolder.name,exceptDirectories)) <
var sf_path = subfolder.Path;
log_w(«Очищаю «+sf_path);
ClearSubFolders(sf_path)
try <
if(/1cv8\d*/gi.test(subfolder.Name)) <
RunAndRead(‘cmd /c rmdir «‘+sf_path+'»‘)
>else <
RunAndRead(‘cmd /c rmdir /S /Q «‘+sf_path+'»‘)
>
>catch(e) <
log_w(«Не смог удалить «+sf_path);
>
>else <
log_w(subfolder.Path + » в списке исключений»);
>
>
var csf_files = new Enumerator(_fso.GetFolder(objFolder).Files)
for(;!csf_files.atEnd();csf_files.moveNext()) <
var ffile = csf_files.item();
var fname = ffile.Path;
if(!in_array(ffile.name,exceptFiles)) <
try <
_fso.deletefile(ffile);
log_w(«Удалён «+fname);
>catch(e) <
log_w(«Не смог удалить «+fname);
>;
>
>
>

function log_w(lw_text_t) <
return;
var wait_limit = 999;
var wait_count = 0;
var lw_recorded = false
while(!lw_recorded) <
if(wait_count 9)?dateObj.getMonth()+1:»0″+(dateObj.getMonth()+1))+».»
+((dateObj.getDate()>9)?dateObj.getDate():»0″+dateObj.getDate())+»-»
+((dateObj.getHours()>9)?dateObj.getHours():»0″+dateObj.getHours())+»:»
+((dateObj.getMinutes()>9)?dateObj.getMinutes():»0″+dateObj.getMinutes())+»:»
+((dateObj.getSeconds()>9)?dateObj.getSeconds():»0″+dateObj.getSeconds())+»:»
+((dateObj.getMilliseconds()>99)?dateObj.getMilliseconds():((dateObj.getMilliseconds()>9)?»0″+dateObj.getMilliseconds():»00″+dateObj.getMilliseconds()))+»=»
+lw_text_t);
lw_log_file.close();
lw_log_file = null;
lw_fso = null;
lw_log = null;
dateObj = null;
lw_recorded = true;
>
catch(e) <
WScript.Sleep(100);
wait_count++;
lw_recorded = false;
>
>
else <
WScript.Echo(«Не смог записать сообщение «+lw_text_t+»\r\nв файл «+WScript.ScriptFullName+».log»);
lw_recorded = true;
>
>
>

Очистка кэша 1С через OneCleaner.exe

Запустив OneCleaner.exe она вам на вкладке «Кэш» покажет, что можно удалить, для действия нажимаем соответствующую кнопку.

Так же утилита может удалять старые платформы 1С, если потребуется, в любом случае полезная вещь.

Удаление кэша 1C предприятия через редактирование информационной базы

Необходимо в дополнительных параметрах запуска (в списке баз кнопка Изменить, последняя закладка) прописать команду /ClearCache. Пример использования:

Сценарии удаления кэша с групповой политикой

Как я и писал у вас два варианта, полная автоматизация при входе пользователя или выходе, минус в том что вы создадите большую нагрузку на сервер, но уменьшите возможные проблемы с работой платформы. Для этого готовим или cmd скрипт или PowerShell, создаем групповую политику для пользователя, не забываем убрать 5-ти минутную задержку выполнения скрипта.

Мне же больше по душе, это либо преобразовать скрипт PowerShell в EXE файл, скопировать через групповые политики на рабочий стол пользователя, чтобы он потом его легко сам запускал в нужный момент, так же подойдет и копирование bat файла или javascrip, это не важно, главное, что пользователь сможет сам его запустить. Как копировать файлы через групповую политику читаем по ссылке.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • Кэш программы что это
  • кэш магазина windows может быть поврежден
  • кэш магазина windows 10 поврежден как исправить
  • кэш клинер для виндовс 10
  • кэш иконок windows 10 cmd

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии