Найти в Дзене
Digital

Потеря данных при копировании базы 1С 7.7 в ОС Windows

Оглавление

Что имеем: у клиента установлена ОС Windows 8 x64, 1С 7.7 Бухгалтерия, а базы располагаются в каталоге:

C:\Program Files (x86)\1Cv77\<названия_баз>\

При копировании каталога одной из баз в другое расположение теряются данные.

Более того, дата изменений файлов *.dbf и *.cdx в целевой папке подозрительно «старая» — за 2013 г., хотя последние операции выполнены в 2020-м. В программе это видно по справочникам и журналам 1С.

Далее — при открытии 1С из каталога с копией базы исчезают все документы. При этом, если выгрузить ИБ через Конфигуратор, а затем восстановить на другом диске — содержимое БД переносится нормально.

Потеря данных при копировании базы 1С 7.7 в ОС Windows
Потеря данных при копировании базы 1С 7.7 в ОС Windows

В чем же дело?

Ошибка №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

  1. Скопировать файлы и папки из «C:\Program Files (x86)\1Cv77\<название_базы>\» в новую папку назначения.
  2. Скопировать файлы из «C:\Users\%Username%\AppData\Local\VirtualStore\Program Files (x86)\ 1Cv77\<название_базы>» в папку назначения с заменой файлов/папок.
Пути будут различаться для каждого конкретного случая, т. к. зависят от места хранения баз 1С и имени пользователя ОС.

✅ Нам этот способ помог, база 1С 7.7 со всеми данными успешно скопирована в новое расположение. Проверьте и вы — все получится.

_____________________________________

⚡ Подписывайтесь на канал или задавайте вопрос на сайте — постараемся помочь всеми техническими силами. Безопасной и производительной работы в Windows и 1С.