Ранее я уже приводил пример обработки переноса бухгалтерских проводок из одной базы в другую. Теперь выкладываю обработку для полного переноса данных - кому-нибудь да пригодится.
Основной плюс обработки - ее универсальность, т.е. работать будет на любой конфигурации, никаких правил переноса создавать не надо. 1С сама знает, по каким правилам записывать объекты и, соответственно, считывать.
- Константы
- Справочники
- Документы
- Регистры сведений
- Регистры накопления
- Регистры бухгалтерии
- Регистры расчета
- Планы видов характеристик
- Планы видов расчета
- Планы счетов
т.е. практически все, что нужно для нормальной работы. Перенос происходит через промежуточные xml-файлы, для каждого типа объекта - свой файл. Это сделано для того, чтобы не произошло переполнения оперативной памяти при переносе больших баз.
(В частности у меня при переносе данных в бухгалтерии память "наелась" на регистре сведений "Адресный классификатор", поэтому я отключил его перенос. Слава богу, его можно заполнить в любое время).
При выгрузке данных помечаем объекты, которые хотим перенести, указываем каталог выгрузки:
При загрузке в базу-приемник (должна иметь идентичную конфигурацию с базой-источником) также выбираем каталог загрузки и после обновления видим загружаемые файлы, из которых можем выбрать нужные:
Для того, чтобы объекты записывались в базу в любом случае, используется конструкция:
ЗагружаемыйОбъект.ОбменДанными.Загрузка = Истина;
соответственно в модулях таких объектов в процедуре ПередЗаписью() должно быть что-то типа:
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
чтобы пропустить возможные механизмы проверки на заполненность и/или корректность реквизитов объекта и т.п. В стандартных процедурах это уже, как правило, предусмотрено (это обеспечивает запись объектов при переносе из распределенных баз), для "своих" объектов это необходимо учесть.
Проверено на Бухгалтерии 2.0 последнего релиза (2.0.49.15).
05.09.2013 - перезалил файл, поскольку при переносе данных в УТ 10 произошла ошибка, связанная с тем, что одно из измерений (или реквизитов) в одном из регистров сведений называлось "Регистр".
19.09.2017 - К сожалению, на последних релизах может не работать. Столкнулся с этим на последней Бухгалтерии. Проблема с подписками на события При записи, Перед записью объектов (то, что я увидел). Вариант решения - временно их отключать, но для этого придется ковырять конфигурацию, либо не использовать обработку. Указывать полный перечень совместимости обработки с релизами не имею возможности.