Странная проблема, http-сеанс с запозданием видит изменения в базе данных
Приветствую.
Столкнулся с такой проблемой.
Есть справочник с реквизитом булево. Допустим, записываю его - Истина в пользовательском режиме.
Затем отправляю из одной базы в другую запрос по http-сервису, где в функции обращаюсь к реквизиту этого справочника. Ставлю отладку http-соединения, вижу, что норм - реквизит справочника = Истина. Потом в пользовательском режиме ставлю реквизит = Ложь. И еще раз отправляю http-запрос.
Также ставлю отладку http-соединения, вижу, что реквизит все равно = Истина. Потом спустя некоторое количество секунд (пока стоит точка останова), реквизит становится - Ложь.
Заметил, что если не сразу после смены реквизита отправлять http-запрос, а подождать несколько секунд, то все нормально.
Пробовал имитировать запрос по http просто вызовом той же функции локально - проблемы нет. Именно http сеанс как-бы с запозданием видит изменения в базе данных.
Кто сталкивался, в чем может быть проблема ?
Столкнулся с такой проблемой.
Есть справочник с реквизитом булево. Допустим, записываю его - Истина в пользовательском режиме.
Затем отправляю из одной базы в другую запрос по http-сервису, где в функции обращаюсь к реквизиту этого справочника. Ставлю отладку http-соединения, вижу, что норм - реквизит справочника = Истина. Потом в пользовательском режиме ставлю реквизит = Ложь. И еще раз отправляю http-запрос.
Также ставлю отладку http-соединения, вижу, что реквизит все равно = Истина. Потом спустя некоторое количество секунд (пока стоит точка останова), реквизит становится - Ложь.
Заметил, что если не сразу после смены реквизита отправлять http-запрос, а подождать несколько секунд, то все нормально.
Пробовал имитировать запрос по http просто вызовом той же функции локально - проблемы нет. Именно http сеанс как-бы с запозданием видит изменения в базе данных.
Кто сталкивался, в чем может быть проблема ?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Меняю реквизит элемента справочника, запоминаю его версию данных.
Запускаю после этого запрос по http, который получает версию данных этого же элемента справочника, и пишет в журнал регистрации. Так вот, версия данных в журнале остается ровно той, которая была до записи элемента справочника.
А если сделать запрос по http спустя несколько секунд, то он уже видит реальную версию. + в отладке http, если подождать на точке останова, то видно как сначала версия данных одна, а потом она сама меняется, если вычислять ее спустя несколько секунд.
Запускаю после этого запрос по http, который получает версию данных этого же элемента справочника, и пишет в журнал регистрации. Так вот, версия данных в журнале остается ровно той, которая была до записи элемента справочника.
А если сделать запрос по http спустя несколько секунд, то он уже видит реальную версию. + в отладке http, если подождать на точке останова, то видно как сначала версия данных одна, а потом она сама меняется, если вычислять ее спустя несколько секунд.
(6) Не. Серверная. Просто открываю элемент справочника и записываю его. По журналу регистрации видно, что я записал, и в форме в "ПриЗаписиНаСервере" пишу в журнал версию данных справочника, и состояние реквизита. После этого сразу отправляю из другой базы повторно http-запрос. И он получает запросом этот элемент справочника, получаю объект и его версия остается предыдущая. Я как понял, если через 20 секунд ( время жизни сеанса в настройках http) еще раз отправить запрос http, то он уже видит новую версию элемента справочника . Как-то так.
Видимо в 1С http-сеанс как-то кэширует результат функции, и на время жизни сеанса его сохраняет. Хотя в свойствах модуля, из которого вызывается функцию нет опции повторного использования возвращаемых значений...
Видимо в 1С http-сеанс как-то кэширует результат функции, и на время жизни сеанса его сохраняет. Хотя в свойствах модуля, из которого вызывается функцию нет опции повторного использования возвращаемых значений...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот