Перенос данных между базами 1С 8.3: все рабочие способы
Содержание
Если обе базы — одной конфигурации и одного релиза, самый быстрый путь это Администрирование → Синхронизация данных: типовой механизм перенесёт справочники и документы без программирования. Если конфигурации разные (например, из «Управления торговлей» в «Бухгалтерию»), понадобится формат EnterpriseData или правила конвертации данных.
Выбор метода выгрузки из 1С в 1С зависит от трёх вещей: совпадают ли конфигурации, нужен ли разовый перенос или регулярный обмен, и сколько данных переносите. Разберём каждый способ по шагам — от штатной синхронизации до программной выгрузки через веб-сервисы, а в конце соберём типовые ошибки с дублями и битыми ссылками.
Полная выгрузка всей базы целиком (файл .dt) здесь не рассматривается: она копирует базу один в один и годится только для переноса на другой сервер при полном совпадении конфигурации, а не для выборочного обмена данными.
Что выяснить до начала переноса
Прежде чем жать кнопки, определите исходные условия — от них зависит и метод, и объём ручной работы.
- 🔹 Конфигурации баз. Откройте в каждой базе
О программе(меню по значку i в правом верхнем углу) и сравните название и версию конфигурации. Одинаковые — подойдёт прямой XML-перенос. Разные — только EnterpriseData или КД. - 🔹 Направление и объём. Переносите один справочник, остатки на дату или всю историю документов? От этого зависит, хватит ли простой загрузки из файла или нужен полноценный план обмена.
- 🔹 Соответствие организаций и счетов. Если в базах по-разному заведены организации, склады, статьи затрат или план счетов — заранее составьте таблицу соответствий, иначе получите дубли.
Перед первой выгрузкой сделайте резервную копию базы -приёмника. Любой обмен меняет данные, и откатить неудачную загрузку проще из копии, чем вычищать задвоенные документы вручную.
Определиться с методом поможет короткая развилка.
Администрирование → Синхронизация данных: механизм запоминает, что уже выгружено, и при следующем запуске отправит только изменения.Синхронизация данных между типовыми базами
Самый надёжный штатный способ для типовых конфигураций на управляемых формах (БП 3.0, ЗУП 3.1, УТ 11). Механизм сам отслеживает изменения и переносит только новые и изменённые объекты.
- В обеих базах включите флаг в разделе
Администрирование → Синхронизация данных(в УТ и КА пункт может называться «Синхронизация данных»). - Создайте новую настройку синхронизации и выберите вид обмена: с такой же конфигурацией или через универсальный формат, если конфигурации разные.
- Укажите способ связи баз: прямое подключение к базе-приёмнику, обмен через каталог (папку с файлами выгрузки) или через FTP/веб-сервис.
- Настройте правила отправки и получения: за какой период выгружать документы, по каким организациям, какие виды данных.
- Выполните первую синхронизацию. В первый раз обычно выгружается справочная информация и начальные остатки, затем — только изменения.
Первая синхронизация на большой базе идёт долго и нагружает сервер. Запускайте её в нерабочее время, чтобы не тормозить остальных пользователей.
Плюс синхронизации в том, что это двусторонний механизм: можно настроить обмен в обе стороны и держать базы согласованными постоянно. Для разовой задачи «перенести и забыть» он избыточен — там проще обойтись XML или файлом.
Прямая выгрузка-загрузка через XML
Когда базы одной конфигурации и нужно перенести конкретные объекты разово, подойдёт типовая обработка выгрузки и загрузки данных в формате XML (поставляется на диске ИТС как внешняя обработка .epf).
- Откройте обработку в базе-источнике через
Файл → Открытьи укажите файл обработки. - Отметьте объекты для выгрузки: отдельные справочники, документы за период, регистры. Можно выгрузить всё или задать отбор.
- Сохраните результат в файл XML.
- В базе-приёмнике откройте ту же обработку в режиме загрузки и укажите сохранённый файл.
Главное условие — структура метаданных в обеих базах должна совпадать. Если в приёмнике нет реквизита, который есть в источнике, объект либо не загрузится, либо загрузится неполным.
Этот способ переносит объекты вместе с их внутренними идентификаторами (GUID). Поэтому повторная загрузка того же файла обновит ранее перенесённые объекты, а не создаст дубли — это удобно для донастройки.
Обмен между разными конфигурациями: EnterpriseData и КД
Если конфигурации не совпадают, прямой XML не подойдёт: у объектов разная структура. Нужен промежуточный формат и правила сопоставления.
Универсальный формат EnterpriseData — встроенный в современные типовые конфигурации. Выгрузка из источника описывает объект в формате, не привязанном к конкретной конфигурации, а приёмник раскладывает его по своим реквизитам. Типовые правила для пар вроде «УТ → БП» уже встроены в механизм синхронизации — отдельно ничего настраивать не нужно.
Конвертация данных 2.0 (КД 2.0) — отдельная конфигурация, в которой вручную рисуют правила обмена: какой объект источника в какой объект приёмника превращается и как сопоставляются реквизиты. Результат — файл правил, который подключают к универсальной обработке обмена XML. Подход старый, но до сих пор применяется для нетиповых доработанных баз.
Конвертация данных 3.0 (КД 3.0) — работает поверх формата EnterpriseData. Здесь настраивают только отличия от типовых правил, а не весь обмен с нуля. Это актуальный инструмент, когда штатной синхронизации не хватает из-за доработок.
| Метод | Когда выбирать | Сложность |
|---|---|---|
| EnterpriseData (типовой) | Обе базы типовые, пара поддержана | Низкая |
| КД 3.0 | Есть доработки, типовых правил мало | Средняя |
| КД 2.0 | Старые или сильно нетиповые конфигурации | Высокая |
Прежде чем строить правила в КД, проверьте, нет ли готового обмена в самой конфигурации. Для популярных пар конфигураций фирма «1С» уже поставляет правила — самому писать их с нуля чаще всего не нужно.
Перенос справочников через файл
Для одного-двух справочников тяжёлая артиллерия не нужна. Номенклатуру, контрагентов или цены переносят через обычный файл.
- Загрузка из табличного документа. Типовая обработка загрузки данных из табличного документа читает Excel или
.mxlи создаёт элементы справочника по колонкам файла. Перед загрузкой сопоставьте колонки файла с реквизитами справочника. - Загрузка прямо в форме списка. В ряде конфигураций в командной панели списка номенклатуры есть команда загрузки из внешнего файла — ищите её в меню «Ещё» над списком.
- Выгрузка в файл для переноса. Обратная операция: список выгружают в Excel командой сохранения из той же панели, правят и загружают в другую базу.
Способ подходит для плоских данных: наименование, артикул, цена, реквизиты контрагента. Документы с движениями по регистрам так не переносят — для них нужны XML или синхронизация.
Программная выгрузка: сервисы и внешние источники
Когда стандартных механизмов мало или нужен обмен с не-1С системой, данные выгружают кодом.
- HTTP-сервисы и веб-сервисы. В базе-источнике публикуют сервис, который по запросу отдаёт данные в JSON или XML. Приёмник (другая база 1С или внешняя система) обращается к сервису и разбирает ответ. Подходит для обмена в реальном времени.
- Внешние источники данных. Объект метаданных, через который 1С читает таблицы другой СУБД или другой базы напрямую по строке подключения. Удобно, когда нужно только читать данные источника, не копируя их целиком.
- COM-соединение. Внешнее соединение с другой базой 1С из кода. Способ рабочий, но чувствительный к версии платформы и разрядности — для новых проектов чаще берут HTTP-сервисы.
Простой пример выгрузки справочника в файл JSON средствами встроенного языка:
Запись = Новый ЗаписьJSON;
Запись.ОткрытьФайл("C:\Обмен\nomenklatura.json");
Запись.ЗаписатьНачалоМассива();
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Запись.ЗаписатьНачалоОбъекта();
Запись.ЗаписатьИмяСвойства("Код");
Запись.ЗаписатьЗначение(Выборка.Код);
Запись.ЗаписатьИмяСвойства("Наименование");
Запись.ЗаписатьЗначение(Выборка.Наименование);
Запись.ЗаписатьКонецОбъекта();
КонецЦикла;
Запись.ЗаписатьКонецМассива();
Запись.Закрыть();
В приёмнике файл читают объектом ЧтениеJSON и создают элементы справочника. Для разовой выгрузки код оформляют как внешнюю обработку
, чтобы не менять конфигурацию.
Дубли и битые ссылки: как не испортить базу-приёмник
Главная боль любого обмена — когда одни и те же объекты задваиваются или документы ссылаются на несуществующие элементы. Причины и что делать:
Общее правило: справочники переносите раньше документов, а поиск дублей настраивайте по уникальным реквизитам (ИНН, код, артикул), а не по названию. Это снимает большую часть проблем ещё до первой выгрузки.
После переноса обязательно сверьте результат, а не считайте задачу закрытой по факту «загрузка прошла без ошибок»:
- 🔹 Сравните количество элементов справочника и документов в источнике и приёмнике — расхождение сразу покажет, что часть объектов не дошла или задвоилась.
- 🔹 Проведите несколько перенесённых документов в приёмнике. Если проведение падает на пустом реквизите или несуществующей ссылке, справочники перенесены не полностью.
- 🔹 Сверьте контрольные суммы: обороты по ключевому регистру или остатки на дату переноса должны совпасть с источником.
Нашли расхождение — не правьте вручную десятки документов. Удалите загруженную порцию из копии, исправьте правило поиска или отбор и повторите выгрузку: один верный проход быстрее, чем ручная чистка.
Короткий чек-лист подготовки к обмену:
Автоматизация обмена по расписанию
Чтобы не запускать синхронизацию руками, её ставят на регламентное задание.
- В клиент-серверной базе откройте
Администрирование → Синхронизация данных → Настроить расписаниеи задайте периодичность: раз в час, в сутки или по минутам. - В файловой базе регламентные задания выполняются, только пока открыт сеанс. Для фонового обмена оставляют запущенным отдельный сеанс или переводят базу на сервер 1С.
- Для обмена через каталог настройте, чтобы источник выгружал файл по расписанию, а приёмник по своему расписанию его забирал.
Автоматический обмен без присмотра опасен тем, что ошибка в одной выгрузке молча копится. Настройте, чтобы о сбоях синхронизации приходило уведомление ответственному, и раз в период проверяйте журнал обмена.