Можно воспользоваться следующим порядком действий:
1. В центральной базе создать новую периферийную базу.
2. Выгрузить первоначальный образ периферийной базы.
3. Теперь необходимо из этого образа получить два файла, которые были указаны ранее. Проще всего это сделать так, в пустую папку загружаете первоначальный образ базы, но прерываете загрузку после появления в каталоге необходимых файлов. Как правило, 1С их создает первыми сразу после распаковки из архива первоначального образа.
4. Создаете копию центральной базы, удаляете из нее *.cdx и 1SUPDTS.DBF, а также заменяете файлы 1SDBSET.DBF и 1SSYSTEM.DBF полученными в п.3… и все. Осталось только провести переиндексацию.
Время необходимое для создания периферийной базы на примере 2-х годичной базы размером 4 Гб:
стандартным способом
1. Выгрузка данных 15 минут
2. Загрузка данных 14 часов.
этим методом
1. Выгрузка данных: 15 минут
2. Копирование базы, удаление файлов, замена файлов, переиндексация: 20 минут
Разница очень серьезная.
Но этот способ имеет главный недостаток: при загрузке данных стандартным способом 1С выполняет полную проверку данных, таким образом устраняя часть проблем имеющихся в базе. А для предложенного варианта необходимо будет выполнить тестирование и исправление (если установить все галки, то занимает около 10 часов).
Таким образом, использовать данный метод возможно для тех случаев, когда необходимо срочно создать периферийную базе взамен поврежденной существующей.
Все гениальное просто
Небольшая поправочка: это если для всех объектов стоит миграция «Все информационные базы». ИМХО у тех, кто всерьез использует УРИБ, это часто не так.
хороший метод, много времени сэкономил.
Плюсую, от себя добавлю: метод так же хорош при утере центральной базы. Был случай: слетел сервер с центральной базой, наглухо. С бэкапами протянул и по человечачи не сделал. Короче — атас, размер 10гб (SQL), ни о какой выгрузке стандартными средствами речи и быть не может, и дело не во времени, просто 1с77 этого не умеет при огромных размерах (файловая 8 кстати тоже). И так:
1. копируем периферию (любую самую актуальную)
2. в таблице 1SDBSET меняем М на С (указываем что периферия не является текущей базой)
3. в таблице 1SDBSET меняем P на M (указываем текущая база будет центральной)
4 Поле DBFNCP DBFNPC, меняем местами и переносим на строчку периферии.
5 Сюда же накидываем остальные периферийные базы, не забывая про DBSIGN, DBUUID (лучше взять из самих баз)
6. чистим 1SUPDTS — оно нам не надо, править охренеешь
7 1SSYSTEM не трогаем
Ну а дальше веселуха)) дальше надо путем манипуляций с 1SDWNLDS надо провести все обновления с того момента как слетела база..
DWNLDID — Идентификатор сессии обмена тупо порядковый номер, с добавлением кода базы откуда обновление Но с малой поправкой, пересчет идет с 0 до 9 , а потому буковы (не 16 ричная система, больше, насколько? мозг не грел)
DBSIGN — Код базы, с которой идет данный обмен.
DIRECT — O — Пакет является исходящим для текущей базы, I — Входящим
ACKNOWL — A — Признак подтвеждения обработки пакета
примерная логика такова:
в периферии находим последний входящий с подтверждением (DIRECТ — I, ACKNOWL — A)
и переносим в центральную предварительно ее вычистив, меняем I на O, и удаляем А
и так со всеми периферийными базами. Важно: не проводить обмен, пока все записи не будут готовы.
Всем благ, может кому поможет)) я на этом сэкономил около 4 дней)
7.