Перенос документов между базами 1С 8.3: файл XML, правила обмена и синхронизация
Содержание
Выгрузить документ из 1С в 1С проще всего через XML-файл. Если конфигурации одинаковые (например, БП 3.0 одного релиза в обеих базах), берите обработку «Выгрузка и загрузка данных XML»: отметили документ, выгрузили в файл, загрузили во вторую базу. Если конфигурации разные или релизы расходятся, нужна обработка «Универсальный обмен данными в формате XML» и файл правил, созданный в «Конвертации данных 2.0». Для регулярной передачи между типовыми программами есть встроенная синхронизация данных.
Типичная ситуация: бухгалтер ведёт две организации в двух базах и по ошибке провёл поступление не в той. Или филиал работает в отдельной копии, а головной офис хочет видеть его реализации. Перепечатывать 40 строк товаров вручную долго и рискованно, а сам перенос занимает 10–15 минут, если понимать, чем отличаются способы.
Каким способом перенести документ: сравнение вариантов
Способ выбирают не по удобству, а по тому, насколько похожи базы. От этого зависит, понадобятся ли правила обмена.
| Способ | Когда подходит | Риски |
|---|---|---|
| «Выгрузка и загрузка данных XML» | Одна и та же конфигурация и релиз в обеих базах | Ищет объекты только по внутреннему идентификатору — возможны дубли справочников |
| «Универсальный обмен данными в формате XML» + правила КД 2.0 | Разные конфигурации или разные релизы | Нужны правила под вашу пару конфигураций; самописные правила требуют отладки |
| Синхронизация данных (типовой обмен) | Регулярный обмен БП ↔ УТ, БП ↔ ЗУП, распределённые базы | Настройка дольше; ошибки сопоставления тянутся из обмена в обмен |
| Копирование табличной части через табличный документ | Нужно перенести только строки товаров или услуг | Шапку, ссылки и проводки придётся заполнить заново |
💡 Если документов один-два и в них по 3–5 строк, честнее ввести их руками. Обмен окупается от десятка документов или от длинных табличных частей.
Подготовка: копии баз, сверка конфигураций и правил обмена
Перед любым переносом ответьте на три вопроса.
- Совпадают ли конфигурации? Откройте в обеих базах
Справка → О программе(значок «i» или меню с тремя полосками). Сравните название конфигурации и номер релиза. Совпадение до последней цифры — путь к простой обработке выгрузки XML. - Есть ли в приёмнике нужные справочники? Документ ссылается на организацию, контрагента, договор, склад, номенклатуру. Если в приёмнике они заведены вручную, а не перенесены, у них другие внутренние идентификаторы — и программа их не узнает.
- Открыт ли период? Если в базе-приёмнике установлены даты запрета изменения, документ прошлого месяца не загрузится. Узнайте у главного бухгалтера, можно ли временно сдвинуть дату.
Перед загрузкой сделайте резервную копию базы
-приёмника. В файловом варианте это копия каталога базы при закрытой программе или выгрузка в .dt через Конфигуратор: Администрирование → Выгрузить информационную базу. Выгрузка .dt требует, чтобы в базе не работали пользователи.
Для второго способа заранее найдите правила обмена. Для типовых пар конфигураций они поставляются вместе с обновлениями и доступны на портале поддержки. Для нетиповых баз правила создаёт программист в конфигурации «Конвертация данных » редакции 2.x: файл правил — это обычный XML, который загружают в обработку.
Сами обработки бывают двух видов:
- 📦 внешние — файлы
.epf, открываются черезФайл → Открыть; - 🧩 встроенные — во многих типовых конфигурациях универсальный обмен уже есть, его ищут в
Все функции → Обработки.
Если пункта «Все функции» в главном меню нет, включите его: Сервис и настройки → Параметры → Отображать команду «Все функции».
При открытии внешней обработки платформа может показать предупреждение о безопасности. Открывайте только файлы из надёжного источника: внешняя обработка выполняет любой код с правами вашего пользователя.
Выгрузка документа в файл XML между одинаковыми базами
Это самый частый сценарий: две базы одной конфигурации, нужно перекинуть один или несколько документов. Обработку «Выгрузка и загрузка данных XML» (файл обычно называется ВыгрузкаЗагрузкаДанныхXML83.epf или похоже) распространяют вместе с материалами поддержки типовых решений.
Выгрузка в базе-источнике
- Откройте обработку через
Файл → Открыть. - На вкладке выгрузки найдите в дереве объектов раздел «Документы» и отметьте нужный вид, например «Поступление (акт, накладная, УПД)».
- Задайте период — начало и конец дня с документом. Чтобы выгрузить не все документы вида за период, настройте отбор по номеру или контрагенту.
- Укажите имя файла, например
C:\Obmen\postuplenie.xml. - Нажмите кнопку выгрузки и дождитесь сообщения о завершении.
Обработка сама добавляет в файл объекты, на которые ссылается документ: контрагента, договор, номенклатуру, единицы измерения. Поэтому файл даже для одного документа бывает в десятки килобайт.
Загрузка в базе-приёмнике
- Откройте ту же обработку во второй базе.
- Перейдите на вкладку загрузки и выберите файл
.xml. - Запустите загрузку и посмотрите сообщения внизу формы.
- Откройте загруженный документ, проверьте шапку и строки, проведите его.
💡 Обработка сопоставляет объекты по внутреннему уникальному идентификатору (GUID). Если обе базы когда-то были одной базой, справочники совпадут, и дублей не будет. Если контрагента в приёмнике создавали вручную, после загрузки появится второй контрагент с тем же ИНН. Дубли потом объединяют стандартным поиском и удалением дублей в разделе Администрирование.
Есть и обратная сторона GUID. Если документ с тем же идентификатором уже есть в приёмнике, загрузка перезапишет его версией из файла. Это удобно, когда исправляете ошибочно перенесённый документ, и опасно, когда приёмник — рабочая база, где документ уже правили.
Универсальный обмен данными по правилам «Конвертации данных 2.0»
Когда конфигурации разные, простая обработка не подойдёт: структура документов отличается, и платформа не поймёт, какое поле во что класть. Здесь нужны правила конвертации. Они описывают, что документ «Реализация товаров и услуг» одной программы превращается в нужный документ другой, а контрагенты ищутся по ИНН и КПП, а не по GUID.
Выгрузка с правилами
- Откройте обработку «Универсальный обмен данными в формате XML».
- На вкладке выгрузки в поле имени файла правил выберите XML с правилами и нажмите загрузку правил. Появится дерево правил выгрузки.
- Снимите флажки со всех правил, кроме нужного документа.
- Задайте период и, при необходимости, отбор по организации или номеру.
- Укажите имя файла данных и выполните выгрузку.
Загрузка во вторую базу
- Откройте ту же обработку в базе-приёмнике и перейдите на вкладку загрузки.
- Выберите файл данных. Правила в нём уже записаны: при выгрузке обработка кладёт их в начало файла, отдельно загружать не нужно.
- Запустите загрузку и проверьте протокол.
Несколько полезных настроек:
- 🔁 режим загрузки «как при обмене» — объекты пишутся без лишних проверок и без проведения, это быстрее, но документы потом нужно провести;
- 📝 протокол обмена в файл — включайте при первой выгрузке, без него трудно понять, на каком объекте всё сломалось;
- 🧪 отладка — правила с собственным кодом лучше гонять на копии базы, пока протокол не станет чистым.
💡 Правило поиска определяет почти всё. Поиск по ИНН и КПП почти исключает дубли контрагентов, поиск номенклатуры только по наименованию — нет: «Бумага А4» и «Бумага А4 » с пробелом для 1С разные строки.
Регулярная передача: синхронизация данных и регламентные задания
Если документы нужно переносить каждый день, ручная выгрузка не годится. Для типовых программ есть встроенный механизм: Администрирование → Синхронизация данных. Там включают флажок синхронизации, задают префикс базы и создают настройку обмена с нужной программой.
Транспорт выбирают при настройке:
- 📁 через общий каталог в локальной сети;
- 🌐 через FTP-ресурс;
- 🔗 через прямое подключение к другой базе или через интернет, если вторая база опубликована на веб-сервере.
В настройке указывают, какие данные отправлять: с какой даты, по каким организациям, нужны ли справочники целиком. Изменения регистрируются автоматически: изменили документ — он попадёт в следующий пакет.
Расписание обмена
В карточке настройки синхронизации есть расписание. Включите автоматическое выполнение и задайте интервал, например каждый день в 21:00 или каждые 2 часа в рабочее время. Расписание выполняет регламентное задание.
В файловом варианте регламентные задания выполняются только пока в базе открыт хотя бы один сеанс пользователя. Закрыли программу на ночь — обмен в 21:00 не случится. В клиент-серверном варианте задания выполняет сервер 1С, если в свойствах базы в кластере не установлена блокировка регламентных заданий.
Автоматизация универсальной обработки
Для нетипового обмена через универсальную обработку расписания из коробки нет. Варианты:
- Программист переносит вызов обмена в расширение конфигурации и вешает его на собственное регламентное задание.
- Обмен запускают из планировщика Windows командной строкой с параметром
/Execute, который открывает внешнюю обработку при старте.
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Filial" /N"Обмен" /P"пароль" /Execute"D:\Obmen\AutoVygruzka.epf"
Вместо 8.3.xx.xxxx подставьте каталог установленной версии платформы. Обработка AutoVygruzka.epf здесь — ваша, она выполняет выгрузку при открытии и завершает работу. Пароль в командной строке хранится открытым текстом, поэтому заведите для обмена отдельного пользователя с минимальными правами.
Ошибки при загрузке документа в другую базу
Источник подробностей в любом случае — журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отберите события по времени загрузки и уровню «Ошибка»: там будет имя объекта, на котором сорвалась запись.
Безопасность и контроль целостности перенесённых данных
Файл обмена — это открытый XML. В нём суммы, ИНН контрагентов, цены закупки. Относитесь к нему как к выписке из учёта.
- 🔒 Не пересылайте файл через публичные мессенджеры и не оставляйте на общем диске после загрузки.
- 🗜️ В синхронизации через каталог или FTP включите сжатие исходящего сообщения и задайте пароль архива — оба параметра есть в настройках транспорта.
- 👤 Под обмен заведите отдельного пользователя в базе-приёмнике: ему нужны права на запись переносимых объектов, но не на администрирование.
Проверить, что всё перенеслось без потерь, можно за пять минут:
- Сравните сумму документа и число строк в табличной части в обеих базах.
- Сформируйте оборотно-сальдовую ведомость по нужному счёту (например, 41 или 60) за день документа в источнике и приёмнике — обороты по документу должны совпасть.
- Если переносили пачку, сравните количество документов в журналах за период. Отбор по дате и организации в списке документов есть в обеих базах.
- Проверьте, что в справочниках приёмника не появилось новых элементов, которых вы не ждали: отсортируйте список контрагентов и номенклатуры по дате создания или коду.
Если загрузка пошла не так, не исправляйте документы руками по одному. Восстановите приёмник из копии, сделанной на шаге подготовки, поправьте настройки и загрузите ещё раз — это быстрее и чище.
Частые вопросы
Можно ли перенести документ из 1С в 1С копированием через буфер обмена?
Ещё → Вывести список, сохранить в Excel и загрузить строки в документ второй базы, если в форме есть загрузка из файла. Шапку придётся заполнить вручную.