Автоматическое удаление кэша для текущей ИБ



Реализация фонового процесса для автоматической очистки кэша по ночам (для SQL-баз). Результат представлен в виде обработки.
Как достали эти пользователи, которые звонят и говорят, что их система не работает. Заходишь, проверяешь — все работает.
Приходится чистить кэш скриптом или руками. Пользователю не объяснишь, что такое кэш и зачем его надо чистить.

 ВНИМАНИЕ! Данная обработка в процессе своей работы закрывает все 1С для текущей ИБ без предупреждения!

Принцип работы:

 1) Закрывает соединения только текущей ИБ на кластере серверов;

 2) Отключает процессы Windows только текущей ИБ;

 3) Чистит кэши только нужной ИБ.

В модуле объекта обработки представлено 3 пропроцедуры:

1) Функция ДобавитьПрисоединенныеФайлыКСообщению(Объект, МассивСтруктур, СоглашениеЭД)

Служит для информирования пользователей о результатах работы рег. задания;

2) Процедура РегламентнаяЧисткаКэша(ЛогинКластера=»», ПарольКластера=»», ИмяПользователяWindows=»», ИмяПользователя1С=»») Экспорт

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

3) Процедура ОчисткаКэшаСебе() Экспорт

Данная процедура проверяет при старте системы необходимость очистки кэша для данного пользователя, основываясь на значении константы «ДатаОчисткиКэша». В случаем необходимости вызывает фоновым заданием РегламентнаяЧисткаКэша для конкретного пользователя.

Что необходимо сделать для начала работы?

1) Если сервер 64-битный, то нужно сделать так:

http://www.forum.mista.ru/topic.php?id=668883

2) Добавить в ИБ константу «ДатаОчисткиКэша» типа Дата, в которой будет прописываться дату очистки кэша.

3) Прописать в любой неглобальный общий модуль процедуру  Процедура РегламентнаяЧисткаКэша(ЛогинКластера=»», ПарольКластера=»», ИмяПользователяWindows=»», ИмяПользователя1С=»») Экспорт из модуля объекта обработки ВнешняяОбработкаОчисткиКэша.epf (в дальнейшем будем исходить из того, что название этого неглобального общего модуля есть «НашОМ»)

3.5) В самом начале процедуры необходимы жестко задать параметры авторищации на кластере:

ЛогинКластера = "admin";
ПарольКластера = "password";

4) Внести необходимые изменения в процедуру Процедура ОчисткиКэшаСебе() Экспорт в самом конце:

 
       МассивПараметров = Новый Массив;
МассивПараметров.Добавить("admin"); //Логин администратора кластера (если нет, оставить пустым)
МассивПараметров.Добавить("password"); //Пароль администратора кластера (если нет администраторов кластера, оставить пустым)
МассивПараметров.Добавить(Пользователь); //Имя пользователя Windows
МассивПараметров.Добавить(Пользователь1С); //Имя пользователя 1С
ФоновыеЗадания.Выполнить("НашОМ.РегламентнаяЧисткаКэша",МассивПараметров
, Новый УникальныйИдентификатор, "Тестовое задание");
Предупреждение("Ваш кэш безнадежно устарел. Необходимо перезапустить 1С! Работа системы будет завершена",5);
Здесь нужно прописать логин и пароль администратора кластера и наименование общего модуля НашОМ. После этого  сохраняем обработку ВнешняяОбработкаОчисткиКэша.epf;

Здесь нужно прописать логин и пароль администратора кластера и наименование общего модуля НашОМ. После этого сохраняем обработку ВнешняяОбработкаОчисткиКэша.epf.

5) Создать регламентное задание «АвтоматическаяОчисткаКэша«, имя метода «НашОМ.РегламентнаяЧисткаКэша», определить расписание (например каждое Воскресенье в 2 часа ночи), проставить галки «Предопределенное», «Использование»;

 6) Прописать в «Модуль Обычного приложения» и в «Модуль Управляемого приложения»  процедуру Процедура ОчисткаКэшаСебе() Экспорт из модуля объекта обработки ВнешняяОбработкаОчисткиКэша.epfСделать вызов данной процедуры из процедуры «ПередНачаломРаботыСистемы()»

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

Изменения в типовую конфигурацию приводятся на примере БухгалтерияПредприятия 2.0.

7) Внести изменения в общий модуль «ЭлектронныеДокументыСлужебныйВызовСервера» (вместо company.ru можно и нужно указать адрес сайта своей компании):

а) В процедуру «ОтправкаПакетовЭД» общего модуля «ЭлектронныеДокументыСлужебныйВызовСервера» вместо 31 строки процедуры вставляем следующий код:

 

   // Код изменен
обработан = ложь;
если ПакетЭД.ЭлектронныеДокументы.Количество()>0 тогда
ОбъектВладелец = ПакетЭД.ЭлектронныеДокументы[0].ОбъектВладелец;
Комментарий = ОбъектВладелец.Комментарий;
Текст = ОбъектВладелец.Текст;
Тема = ?(ПустаяСтрока(Комментарий),Текст,Комментарий);

если Найти(Тема, "company.ru:")>0 тогда
АдресКаталогаОтправки = СформироватьФайлыДляОтправки(ОбъектВладелец);
обработан = Истина;
конецесли;
конецесли;
если НЕ обработан тогда
АдресКаталогаОтправки = СформироватьФайлыДляОтправки(ПакетЭД);
конецесли;
//АдресКаталогаОтправки = СформироватьФайлыДляОтправки(ПакетЭД);


Изменения в процедуре "ОтправкаПакетовЭД" общего модуля "ЭлектронныеДокументыСлужебныйВызовСервера"

б) Изменения в процедуре «ПередатьПисьмоСВложениями» общего модуля «ЭлектронныеДокументыСлужебныйВызовСервера» вместо 17 строки вставляем код:

 

 // Код изменен
Обработан = Ложь;
 если ПакетЭД.ЭлектронныеДокументы.Количество()>0 тогда
ОбъектВладелец = ПакетЭД.ЭлектронныеДокументы[0].ОбъектВладелец;
Комментарий = ОбъектВладелец.Комментарий;
Текст = ОбъектВладелец.Текст;
Тема = ?(ПустаяСтрока(Комментарий),Текст,Комментарий);

если Найти(Тема, "company.ru:")>0 тогда
Обработан = Истина;
конецесли;
конецесли;
если НЕ Обработан тогда
Тема = СформироватьТемуПисьма(Отправитель, Получатель);
конецесли;

Также в структуре ПараметрыОтправки для элемента «Тема» передаем параметр «Тема».

Изменения в процедуре "ПередатьПисьмоСВложениями" общего модуля "ЭлектронныеДокументыСлужебныйВызовСервера"

8) Добавляем нового контрагента с наименованием «Ответственные по IT»;

9) В 1С:Предприятие заходим в меню «СервисНастройка программы«, переходим на вкладку «Электронные документы» и проставляем галку «Использовать обмен электронными документами (ЭД)»;

Настройка программы

10) В 1С:Предприятие заходим в меню «СервисОбмен электронными документами-Учетные записи электронной почты». Параметры можно уточнить у админов, возможно придется создавать новый ящик. У нас следующие настройки:

Учетная запись электронной почты

11) В 1С:Предприятие заходим в меню «СервисОбмен электронными документами-Профили настроек ЭДО». Создаем новый профиль с примерно такими настройками:

Помощник настройки прямого обмена с контрагентами

12) В 1С:Предприятие заходим в меню «СервисОбмен электронными документами-Настройки ЭДО». Заполняем в поле контрагента «Ответственные по IT» и организацию. Нажимаем кнопку «Создать».

Настройки ЭДО 1

13) Заполням параметры, как на 2 следующих картинках и сохраняем:

Настройки ЭДО создание 1

Настройки ЭДО создание 2

14)  В 1С:Предприятие заходим в меню «СервисОбмен электронными документами-Настройки ЭДО».  Переходим на вторую закладку «Все настройки«, заходим в нашу созданую настройку и выставляем состояние принудительно в статус «Действует»

Настройка ЭДО

15) В процедуре Процедура РегламентнаяЧисткаКэша(ЛогинКластера=»», ПарольКластера=»», ИмяПользователяWindows=»», ИмяПользователя1С=»») Экспорт (и в обработке и общем модуле НашОМ) в самом конце раскомментируем блок отправки сообщения:

 

 ТекстДок.ДобавитьСтроку("Формируется письмо для отправки.");

Текст = НСтр("ru = 'Закончено регламентное задание.'");

ЗаписьЖурналаРегистрации(НСтр("ru = 'Автоматическая чистка кэша 1С'"),
УровеньЖурналаРегистрации.Информация, , , Текст);

ТекстДляПисьма = "Успешно завершено регламентное задание (Автоматическая чистка кэша 1С). ";
Тема = "company.ru: успешное завершение регламентного задания по автоматической чистке кэша на "+ формат(дата, "ДФ=dd.MM.yyyy");

ИмяФайла = "Автоматическая чистка кэша" + формат(дата, "ДФ=dd.MM.yyyy")+".txt";

ВыбранныйФайл   = КаталогВременныхФайлов()+""+ИмяФайла;
ТекстДок.Записать(ВыбранныйФайл);

/////////////////////////////

ЭД = Документы.ПроизвольныйЭД.СоздатьДокумент();
ЭД.Дата = Дата;
ЭД.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Ответственные по IT");
ЭД.Организация = глЗначениеПеременной("ОсновнаяОрганизация");
ЭД.СтатусДокумента = перечисления.СтатусыЭД.НеОтправлен;
ЭД.Комментарий = Тема;
ЭД.Направление = перечисления.НаправленияЭД.Исходящий;
ЭД.Текст = ТекстДляПисьма;

// опрелеление соглашения обмена
СоглашениеЭД = Справочники.СоглашенияОбИспользованииЭД.ПустаяСсылка();

НастройкиЭД = ЭлектронныеДокументыСлужебный.ОпределитьНастройкиОбменаЭДПоИсточнику(ЭД.Ссылка);
Если ЗначениеЗаполнено(НастройкиЭД) Тогда
ЭД.ДополнительныеСвойства.Вставить("ЕстьСоглашение", Истина);

СоглашениеЭД = НастройкиЭД.СоглашениеЭД;
КонецЕсли;

ЭД.Записать(РежимЗаписиДокумента.Запись);

// присоединенные файлы
МассивНаОтправку = новый Массив;
СтруктураФайла  = Новый Структура;
МассивСтруктур  = Новый Массив;

АдресВХранилище = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВыбранныйФайл));
Если НЕ ПустаяСтрока(АдресВХранилище) Тогда

ФайлДанных = Новый Файл(ВыбранныйФайл);

СтруктураФайла.Вставить("ФайлБезРасширения",         ФайлДанных.ИмяБезРасширения);
СтруктураФайла.Вставить("ФайлРасширение",            ФайлДанных.Расширение);
СтруктураФайла.Вставить("АдресВоВременномХранилище", АдресВХранилище);
МассивСтруктур.Добавить(СтруктураФайла);

МассивНаОтправку = ДобавитьПрисоединенныеФайлыКСообщению(ЭД.ЭтотОбъект, МассивСтруктур, СоглашениеЭД);

КонецЕсли;
УдалитьФайлы(ВыбранныйФайл);

Соответствие = Новый Соответствие;

СтруктураРезультата = ЭлектронныеДокументыСлужебныйВызовСервера.СоздатьИОтправитьДокументыПЭД(МассивНаОтправку, Ложь, Соответствие);

На этом в общем-то все.

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

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

На почту приходят вот такие отчеты:
Производится удаление кэша для базы: Srvr="servername";Ref="basename2";
для пользователя ОС:nameofuser
для пользователя 1С:nameofuser
Версия платформы 1С:8.3.6.2100
Этап 1: Удаление соединений информационной базы с кластера серверов:
Подсоединяемся к агенту сервера:servername
Подсоединяемся к кластеру:Локальный кластер 1541 на сервере:servername
Получаем рабочие процессы на кластере:Локальный кластер 1541 на сервере:servername
Получаем ИБ на кластере:Локальный кластер 1541 на сервере:servername
Перебираем ИБ:basename1 на кластере:Локальный кластер 1541 на сервере:servername
Перебираем ИБ:basename2 на кластере:Локальный кластер 1541 на сервере:servername
Нашли нужную информационную базу ИБ:basename2 на кластере:Локальный кластер 1541 на сервере:servername
Получаем сессии ИБ:basename2 на кластере:Локальный кластер 1541 на сервере:servername
Проверяем сессию пользователя:nameofuser, с приложением :BackgroundJob
Проверяем сессию пользователя:nameofuser, с приложением :1CV8
Отключаем сессию пользователя:nameofuser, с приложением :1CV8
Проверяем сессию пользователя:nameofuser, с приложением :Designer
Отключаем сессию пользователя:nameofuser, с приложением :Designer
Закончен перебор всех сессий ИБ:ИБ:basename2  на кластере:Локальный кластер 1541 на сервере:servername
Перебираем ИБ:basename3 на кластере:Локальный кластер 1541 на сервере:servername
Этап 2: Завершение процессов 1CV8:
Подключение к компьютеру localhost
Получаем все операционные системы компьютера localhost
Перебираем операционную систему:Microsoft® Windows Home® 2025 Standard |C:Windows|DeviceHarddisk0Partition1 компьютера servername
Версия ОС:12.0.6001
Получаем пользователей компьютера:servername
Начало сбора 1С баз у пользователей компьютера:servername
Окончание сбора 1С баз у пользователей компьютера:servername
Количество баз 1С:37  у пользователей компьютера:servername
Имя сервера:localhost, ИмяБазы:basename1,Пользователь:nameofuser,НазваниеБазы:Название1,IDБазы:0d433934-8b88-4bcb-82a1-2e887d30e2d1
Имя сервера:localhost, ИмяБазы:basename2,Пользователь:nameofuser,НазваниеБазы:Название2,IDБазы:a4fa16d8-9f8a-46b9-9e8d-87cb872c343e
Имя сервера:localhost, ИмяБазы:baename3,Пользователь:nameofuser,НазваниеБазы:Название3,IDБазы:9324f288-c43e-4068-a4e7-e2e5f6e8de73
Выборка процессов 1С компьютера:servername
Идет проверка процесса 1С компьютера:servername пользователя:name1 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name2 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name3 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name3 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name4 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name5 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name6 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name7 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name8 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name9 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name10 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name9 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name8 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name7 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name6 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name5 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name4 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:name3 домена:servername
Идет проверка процесса 1С компьютера:servername пользователя:nameofuser домена:servername
Отбираем строки базы по параметрам: Имя сервера:localhost, ИмяБазы:basename2, Пользователь:nameofuser
Количество найденных Имя сервера:localhost ИмяБазы:basename2 Пользователь:nameofuser
Добираем строки базы по параметрам: Имя сервера:localhost ИмяБазы:basename2 Пользователь:nameofuser
Завершен процесс 1CV8 пользователя nameofuser
Командная строка  процесса:"C:Program Files (x86)1cv88.3.6.2100in\1cv8.exe" DESIGNER /IBName"BASENAME2" /AppAutoCheckVersion  /AppAutoCheckMode
ИмяПользователяWindows:nameofuser
Завершен процесс 1CV8 пользователя nameofuser
Командная строка  процесса:"C:Program Files (x86)1cv88.3.6.2100in\1cv8.exe" DESIGNER /IBNameBASENAME2" /AppAutoCheckVersion  /AppAutoCheckMode
ИмяПользователяWindows:nameofuser
Идет проверка процесса 1С компьютера:servername пользователя:nameofuser домена:servername
Отбираем строки базы по параметрам: Имя сервера:localhost, ИмяБазы:basename2, Пользователь:nameofuser
Количество найденных Имя сервера:localhost ИмяБазы:basename2 Пользователь:nameofuser
Добираем строки базы по параметрам: Имя сервера:localhost ИмяБазы:basename2 Пользователь:nameofuser
Завершен процесс 1CV8 пользователя nameofuser
Командная строка  процесса:"C:Program Files (x86)1cv88.3.6.2100in1cv8.exe" ENTERPRISE /IBName"basename2" /N"nameofuser" /UseHwLicenses+ /Lru /VLru /DisableStartupMessages /DEBUG /DisplayPerformance /DisplayAllFunctions /EnableCheckModal /EnableCheckExtensionsAndAddInsSyncCalls /DEBUG /DEBUGGERURL"tcp://[::1]:1562"   /O Normal
ИмяПользователяWindows:nameofuser
Создание bat-файла для перезапуска 1CV8 для пользователя nameofuser
Строка в bat-файл для перезапуска 1CV8 для пользователя "C:Program Files (x86)1cv88.3.6.2100in1cv8.exe"  ENTERPRISE /S"localhostasename2" /AppAutoCheckVersion /AppAutoCheckMode
Предполагаемое имя bat-файла: C:Users
ameofuserAppDataLocal1C
un1cafterclearcache.bat
bat-файл: C:Users
ameofuserAppDataLocal1C
un1cafterclearcache.bat записан
Завершен процесс 1CV8 пользователя nameofuser
Командная строка  процесса:"C:Program Files (x86)1cv88.3.6.2100in1cv8.exe" ENTERPRISE /IBName"basename2" /N"nameofuser" /UseHwLicenses+ /Lru /VLru /DisableStartupMessages /DEBUG /DisplayPerformance /DisplayAllFunctions /EnableCheckModal /EnableCheckExtensionsAndAddInsSyncCalls /DEBUG /DEBUGGERURL"tcp://[::1]:1562"   /O Normal
ИмяПользователяWindows:nameofuser
Создание bat-файла для перезапуска 1CV8 для пользователя nameofuser
Строка в bat-файл для перезапуска 1CV8 для пользователя "C:Program Files (x86)1cv88.3.6.2100in1cv8.exe"  ENTERPRISE /S"localhostasename2" /AppAutoCheckVersion /AppAutoCheckMode
Предполагаемое имя bat-файла: C:Users
ameofuserAppDataLocal1C
un1cafterclearcache.bat
bat-файл: C:Users
ameofuserAppDataLocal1C
un1cafterclearcache.bat записан
Этап 3: Удаление каталогов с кэшем:
Удален каталог с кэшем C:Users
ameofuserAppDataRoaming1C1cv82e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataLocal1C1cv82e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataRoaming1C1cv802e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataLocal1C1cv802e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataRoaming1C1cv812e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataLocal1C1cv812e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataRoaming1C1cv822e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataLocal1C1cv822e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataRoaming1C1cv832e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataLocal1C1cv832e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataRoaming1C1cv842e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataLocal1C1cv842e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataRoaming1C1cv8t2e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataLocal1C1cv8t2e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataRoaming1C1cv8Update2e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Удален каталог с кэшем C:Users
ameofuserAppDataLocal1C1cv8Update2e0230ae-cc42-41a1-b0c1-ecb90f2ca95b
Процедура завершена. Формируется письмо для отправки.

9 Comments

  1. roofless

    простите за невежество, а что такое «логин пароль базы» и «логин пароль кластера»?

    Reply
  2. EMelihoff

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

    Reply
  3. anreko

    (1) В сервере 1С: Предприятия свои пользователи, там нужен пользователь с админ. правами (их может в принципе и не быть, тогда нужно указвать пустой логин и пустой пароль, и пользователь в 1С с админ. правами.

    (2) Программа пока хорошо чистит только, если на одном сервере и база и сервер 1С:Предприятия. Для домена пока не тестирована, потому что негде. И по-любому пока нужны права администратора домена, иначе не получится, либо шара c$ должна быть доступна на всех компьютерах, из-под которых запускается 1С.

    А что значит локальный пользователь?

    Минусы — более долгий первый запуск 1С-базы жертвы у пользователей. Других проблем не знаю. Мы думаем сделать запуск 1 раз в неделю.

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

    У нас домена нет, все находится на одном компьютере — работают пользователи, SQL-база и сервер 1С-Предприятия.

    Reply
  4. roofless

    (3) тогда так и пишите: логин и пароль администратора кластера / логин и пароль администратора базы

    Reply
  5. anreko

    (4) Спасибо, подправлю в следующей версии.

    Reply
  6. anreko

    Обновлена версия обработки, теперь 1.1. добавлен блок кода для вставки в процедуру «ПриНачалеРаботыСистемы()»

    Reply
  7. EMelihoff

    (3) «А что значит локальный пользователь?» это значит, что цепляется не через терминал на котором крутится SQL, а со своей машины, и кэш надо чистить там

    Reply
  8. anreko

    Обновил версию обработки, теперь 1.11. Добавил повторный запуск 1с при индивидуальной чистке кэша через bat-файл.

    Составил подробную инструкцию по внедрению.

    Замечания и предложения — внимательно выслушиваются.

    Кто скачивал обработку ранее, просьба прислать в личку вашу почту — вышлю новую версию обработки.

    Reply
  9. anreko

    Обновил версию обработки, теперь 1.12.

    Исправлены ошибки:

    1) ТЕПЕРЬ корректно обрабатываются пользователи, у которых локальный каталог пользователя отличается от имени пользователя. Например пользователь a.ivanova имеет папку пользователя C:Usersa.petrova. РАНЬШЕ Кэш данных пользователей не очищался.

    2) ТЕПЕРЬ выполнение программы продолжается, если не найден файл с базами. РАНЬШЕ Выполнение программы завершалось с ошибкой.

    3) ТЕПЕРЬ несуществующие каталоги проверяются тихо без вывода в отчет. РАНЬШЕ Все каталоги были представлены, как удаленные.

    Reply

Leave a Comment

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