Все файлы приложения делятся на две категории: программные файлы и файлы данных.
К программным файлам относятся исполняемые файлы (.exe, *.dll) и различные вспомогательные файлы, которые расположены в каталоге установки программы вместе с исполняемыми файлами, такие как шаблоны отчетов, печатные формы документов (.frf, *.fr3 ) и другие.
Каталогом для хранения программных файлов (откуда запускаются программы АРМ кассира, АРМ менеджера и т.д.) является каталог установки приложения - путь, который пользователь указал в процессе установки программы на компьютер. По умолчанию каталогом программных файлов является "C:\Program Files (x86)\VT\VTShop".
К файлам данных относятся те файлы, которые создаются и изменяются в процессе работы программ. В частности файл базы данных (Database.gdb), файлы для хранения настроек программ (*.ini) и т.п. Файлы данных хранятся в каталоге данных приложения. Это каталог текущего пользователя Windows: Users\<UserName>\AppData\Roaming\VT\VTShop. Он создается автоматически при первом запуске программы.
Раньше такого разделения не было. Файлы данных создавались в каталоге программных файлов (Program Files). Начиная с релиза 2.3.2 (от 30.04.2020) файлы данных теперь создаются в отдельном каталоге (AppData) . Сделано это по причине того, что создание и изменение файлов данных в папке C:\Program Files вызывало проблемы при работе в Windows под ограниченным пользователем . Также это приводило к ряду других проблем. В частности, сбой ПК и последующее автоматическое восстановление Windows из контрольной точки могло приводить к "откату" файла базы данных, и как следствие - к потере части содержимого базы данных. Количество потерянных данных определяется тем, насколько давно была создана точка восстановления системы.
С обновлениями уже имеющегося ПО дело обстоит несколько иначе. Поскольку к файлу БД могут быть подключены программы, установленные на других ПК, то перемещение файла базы данных автоматически приведет к ошибке подключения к БД с таких рабочих мест. Поэтому при обновлении мы не можем автоматически переместить данные из папки программных файлов в папку пользовательских данных. Т.е при обновлении, если пользовательские файлы были расположены в папке программных файлов, то они там и останутся и все будет работать, как и раньше.
Приложение определяет путь хранения пользовательских данных по расположению конфигурационного файла программы (ArmCachier.ini – для АРМК, ArmManager.ini – для АРММ и т. д.). Если конфигурационный файл расположен в папке программы (в программных файлах), то пользовательские данные программа будет искать по старому алгоритму – в папке программных файлов. Если в папке программы отсутствует конфигурационный файл, то все пользовательские данные, в том числе и конфигурационные файлы, будут храниться в папке AppData. Механизм определения папки программных файлов не зависит от пути установки программы. Неважно куда будет произведена установка программы, в «C:\Program Files\...» или в какую-то другую папку, пользовательские данные всё равно будут сохраняться в папку AppData, если в каталоге программы будет отсутствовать конфигурационный файл.
Тот случай, который Вы описываете, как раз связан с нюансами работы под ограниченным пользователем. Поскольку пользователь не имеет прав на запись в папку программных файлов, то Windows, скорее всего, автоматически сохраняет измененный файл в виртуальное хранилище «C:\Users\<UserName>\AppData\Local\VirtualStore\Program Files (x86)\VT\VTShop». Если изменяемый Вами файл присутствует по указанному пути, то это как раз описываемый случай. Но в этом случае, теоретически, Windows должна подменять файл и при его чтении. Чтобы сказать что-то более конкретное – нужно изучать проблему «на месте». В следующих версиях мы доработаем алгоритм работы с пользовательскими шаблонами отчетов – они также будут сохраняться в папку AppData. На данный момент решением Вашей проблемы может стать запуск программ от имени администратора или добавление прав на запись в папку программных файлов для текущего пользователя Windows.