Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Bug #948225

Updated by Сергей Старых 10 months ago

https://partners.v8.1c.ru/forum/t/2076020/m/2076020 
 Конфигурация ПО 

 1С 8, файловый и клиент-серверный режимы 

 Проблема 

 Не выполняется перенос объектного кэша транзакции в обычный кэш после ее фиксации 

 Воспроизведение 

 Восстановить базу из выгрузки. Запустить 2 экземпляра управляемого клиентского приложения. При этом каждые 2 секунды начнет выполняться код 

     НачатьТранзакцию(); 
     Сообщить("Чтение в транзакции = " + Справочники.Справочник1.тет.Наименование); 
     ЗафиксироватьТранзакцию(); 
     Сообщить("Чтение вне транзакции = " + Справочники.Справочник1.тет.Наименование); 

 и в обоих приложениях будут выведены сообщения 

 Чтение в транзакции = 06.08.2022 10:12:40 
 Чтение вне транзакции = 06.08.2022 10:12:40 

 Где считанное значение совпадает "в транзакции" и "вне транзакции". 

 Нажать в первом приложении кнопку "Изменить объект". При этом выполнится код 

     Объект = Справочники.Справочник1.тет.ПолучитьОбъект(); 
     Объект.Наименование = ТекущаяДата(); 
     Объект.Записать(); 

 Сразу посмотреть в окно второго приложения. Там некоторое время (до 20 секунд) будут выводиться сообщения 

 Чтение в транзакции = 06.08.2022 10:13:12 
 Чтение вне транзакции = 06.08.2022 10:12:40 

 Где считанное в транзакции значение является актуальным, а считанное после ее фиксации значение является устаревшим. 

 Таким образом обещанный в документации https://its.1c.ru/db/pubdevguide83#content:304:hdoc перенос объектного кэша транзакции в обычный кэш в данном примере не выполняется. 

 Если транзакция завершена успешно (Commit), данные всех объектов, содержащиеся в транзакционном кеше, переносятся в обычный кеш 

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

 Исследование проведено в рамках поиска способа досрочно обновить объектный кэш конкретной ссылки https://partners.v8.1c.ru/forum/topic/1383850 

 !clipboard-202208061033-mfffs.png! 

Back