Что имеем: у клиента установлена ОС Windows 8 x64, 1С 7.7 Бухгалтерия, а базы располагаются в каталоге:
C:\Program Files (x86)\1Cv77\<названия_баз>\
При копировании каталога одной из баз в другое расположение теряются данные.
Более того, дата изменений файлов *.dbf и *.cdx в целевой папке подозрительно «старая» — за 2013 г., хотя последние операции выполнены в 2020-м. В программе это видно по справочникам и журналам 1С.
Далее — при открытии 1С из каталога с копией базы исчезают все документы. При этом, если выгрузить ИБ через Конфигуратор, а затем восстановить на другом диске — содержимое БД переносится нормально.
В чем же дело?
Ошибка №1: размещение информационных баз 1С в каталогах программных файлов Windows — «%SystemDrive%\Program Files\» или «%SystemDrive% \Program Files (x86)\» (как правило, это диск C:\).
Как правильно или общие рекомендации по размещению ИБ:
- хранить базы 1С на диске, отличном от системного, например, в корне диска — «<буква_диска>:\Base1C» ;
- наименования каталогов желательно выбирать короткие и без пробелов;
- права учетной записи, от имени которой запускается программа, должны быть выданы на «изменение»;
- важный момент — настроено резервное копирование, способы организации и требования по настройкам определяются каждым самостоятельно.
Вернемся к нашей ситуации. Даже если вы копируете папку с полными правами администратора ОС — это не меняет ситуацию.
Почему? Т. к. в стартовом меню и проводнике Windows вы видите один путь, якобы правильный, но на самом деле программа 1С работает с файлами из другого каталога.
Корневая причина
Проблема скрывается в механизме User Account Control (UAC) и виртуализации ресурсов, в данном случае — папок.
Оказывается, приложение 1С версии 7.7 не имеет манифеста совместимости с OC Windows Vista/7/8. Поэтому для запуска не выводится предложение UAC на повышение прав.
По умолчанию NTFS-разрешения на запись в системные каталоги «Program Files»требуют подобного повышения, но этого не происходит.
Получается, база 1С находится в «C:\Program Files (x86)\1Cv77\», подтверждения на повышение прав для пользователя на запись и изменение данные — нет.
Поэтому ОС (UAC) начинает виртуализировать папку с базой по следующему пути (зависит от разрядности и названия открываемых папок с базами 1С внутри):
%UserProfile%\AppData\Local\VirtualStore\Program Files (x86)\1Cv77
Как корректно скопировать базу 1С 7.7
- Скопировать файлы и папки из «C:\Program Files (x86)\1Cv77\<название_базы>\» в новую папку назначения.
- Скопировать файлы из «C:\Users\%Username%\AppData\Local\VirtualStore\Program Files (x86)\ 1Cv77\<название_базы>» в папку назначения с заменой файлов/папок.
Пути будут различаться для каждого конкретного случая, т. к. зависят от места хранения баз 1С и имени пользователя ОС.
✅ Нам этот способ помог, база 1С 7.7 со всеми данными успешно скопирована в новое расположение. Проверьте и вы — все получится.
_____________________________________
⚡ Подписывайтесь на канал или задавайте вопрос на сайте — постараемся помочь всеми техническими силами. Безопасной и производительной работы в Windows и 1С.