14.11.2011

Особенность повторного использования возвращаемых значений

Внимание! Материал данной статьи устарел. Рекомендуется использовать документацию к платформе "1С:Предприятие 8".

Особенность касается общих модулей с установленными флагами "Сервер", "Вызов сервера", у которых свойство "Повторное использование возвращаемых значений" имеет значение "На время сеанса".

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

В процессе вызова платформа предпринимает попытку поиска возвращаемого значения в клиентском кэше:

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

При разработке конфигураций не следует рассчитывать на побочные эффекты, такие, как изменение объектов, хранимых в кэше. Для принудительного обновления данных в кэше рекомендуется использовать метод ОбновитьПовторноИспользуемыеЗначения (RefreshReusableValues).

Если все-таки отдельные объекты изменяются в кэше, то избежать неопределенности можно одним из следующих способов: