Как настроить обмен данными между базами 1С
Содержание
Синхронизация в типовых конфигурациях 1С 8.3 настраивается через раздел Администрирование → Синхронизация данных. Перед этим флаг «Синхронизация данных» нужно включить в настройках того же раздела и задать базе уникальный префикс — иначе номера документов из двух баз начнут накладываться друг на друга.
Между типовыми конфигурациями (Бухгалтерия, Управление торговлей, ЗУП) правила обмена уже встроены — свой код писать не нужно, помощник сам предложит готовый сценарий. Ручная разработка правил конвертации требуется только для нетиповых баз или обмена с внешними системами.
Ниже — порядок действий от подготовки баз до расписания и разбора конфликтов. Пути приведены для интерфейса «Такси» (платформа 8.3.2x и новее).
Что сделать в обеих базах до первого обмена
Синхронизация связывает две информационные базы. Готовить нужно обе, и начинать лучше с префиксов.
Префикс информационной базы. Задаётся в Администрирование → Настройки синхронизации данных (в некоторых конфигурациях — Общие настройки). Префикс — это одна-две буквы перед номером документа: БП-000000123. У каждой базы он свой и уникальный. Если обе базы оставить с пустым префиксом, после обмена документы с одинаковыми номерами будут считаться одним объектом.
Префикс меняют только до начала обмена. Смена префикса в работающей базе с уже выгруженными данными ломает сопоставление объектов и приводит к дублям.
Резервные копии. Перед первым запуском сделайте архив обеих баз. Обмен меняет данные сразу в двух местах, и откатить неудачную настройку проще из копии, чем вычищать задвоенные справочники вручную.
Единые справочники. Номенклатура, контрагенты, организации, склады должны совпадать по ключевым реквизитам (ИНН, наименование). Если в одной базе контрагент заведён с ИНН, а в другой без него, механизм не свяжет записи и создаст дубль. Перед обменом стоит прогнать поиск и удаление дублей в обеих базах.
Права и дата запрета. Пользователю, от имени которого идёт обмен, нужны полные права на синхронизацию. Проверьте также дату запрета изменения: если она закрывает период, из которого выгружаются данные, объекты за закрытые даты не загрузятся и попадут в предупреждения.
Как создать настройку синхронизации
Включите флаг «Синхронизация данных» в Администрирование → Настройки синхронизации данных. После этого в разделе Администрирование → Синхронизация данных появится команда создания новой настройки.
Порядок в помощнике:
- Выберите программу, с которой настраиваете обмен (например, «Бухгалтерия предприятия, редакция 3.0»). Список содержит конфигурации, для которых в вашей базе есть встроенные правила.
- Укажите способ подключения ко второй базе — это главный выбор на всём этапе.
- Задайте настройки отбора: по каким организациям, с какой даты и какие виды данных передавать.
- Выполните первую (начальную) выгрузку и загрузите её во второй базе.
Способ подключения определяет, нужен ли ручной перенос файла и как быстро данные окажутся во второй базе:
| Способ обмена | Когда подходит | Что учесть |
|---|---|---|
| Прямое подключение (локальная сеть) | Обе базы на одном сервере или в одной сети | Самый быстрый; нужны адрес базы и учётные данные |
| Через интернет (веб-сервис) | Базы в разных офисах, есть публикация на веб-сервере | Требуется опубликованный веб-сервис второй базы |
| Через каталог | Нет прямого доступа между базами | Файлы выгрузки кладутся в общую папку, перенос ручной или по расписанию |
| Через FTP | Обмен между удалёнными точками | Нужны реквизиты FTP-сервера |
| Через электронную почту | Небольшой объём, нет общей папки | Медленно, не для больших баз |
Для двух баз на одном сервере выбирайте прямое подключение — оно идёт без промежуточных файлов и настраивается за пару минут. Файловые способы (каталог, FTP, почта) оставьте для случаев, когда сетевого доступа между базами нет.
Узлы обмена: как база понимает, с кем синхронизируется
Каждая настройка синхронизации создаёт узел обмена — запись о второй базе. В плане обмена всегда есть два узла: этот (ваша база, помечена специальным значком) и узел-получатель.
Узел хранит адрес подключения, отборы и служебную информацию о том, что уже выгружено. Открыть список узлов можно из карточки настройки синхронизации — там же правятся параметры подключения, если сменился адрес сервера или пароль.
Через узел задаётся начальная выгрузка. При первом обмене из базы-источника выгружается весь массив данных по заданным отборам, во второй базе он загружается и сопоставляется с существующими записями. Это самый тяжёлый этап: по крупной базе он идёт десятки минут, поэтому первую выгрузку планируют на нерабочее время.
При начальной выгрузке механизм пытается сопоставить приходящие объекты с уже имеющимися во второй базе, а не создавать всё заново. Справочники связываются по ключевым реквизитам: контрагенты — по ИНН и КПП, номенклатура — по наименованию и артикулу, организации — по ИНН. Если в обеих базах эти данные заполнены одинаково, записи склеятся в одну; если расходятся хотя бы в одном знаке — появится дубль. Поэтому сверка справочников из первого раздела важнее всех последующих настроек: исправить расхождение до обмена — минуты, разобрать дубли после — часы.
Не создавайте вторую настройку синхронизации между теми же базами «про запас». Два встречных узла начнут выгружать одни и те же объекты навстречу друг другу и порождать конфликты.
Правила конвертации данных: когда их настраивают вручную
Правила конвертации (ПКД) описывают, как объект одной конфигурации превращается в объект другой: какой документ в какой, какое поле в какое. В типовых обменах эти правила встроены в конфигурацию и обновляются вместе с ней — трогать их не нужно.
Ручная настройка правил нужна в трёх случаях:
- 🔧 обмен с нетиповой (доработанной) базой, где появились свои документы и реквизиты;
- 🔗 обмен с внешней системой — сайтом, складской программой, банковским сервисом;
- 📦 перенос данных между конфигурациями, для которых готового сценария в списке нет.
Современные типовые конфигурации синхронизируются через универсальный формат EnterpriseData. Он играет роль общего языка: источник выгружает данные в формат, приёмник читает из него, и прямые правила «документ → документ» между каждой парой конфигураций не нужны.
Правила под EnterpriseData разрабатывают в конфигурации «Конвертация данных , редакция 3.0». Она ставится как расширение и позволяет задать соответствие объектов базы и формата без изменения исходной конфигурации. Для старых обменов на базе выгрузки в XML применялась «Конвертация данных 2.0» — её встречают в давно настроенных парах баз.
Правила описывают три вещи: какие объекты выгружать, как их поля ложатся в поля формата (сопоставление), и при каких условиях объект вообще попадает в выгрузку (отбор).
Если данные загружаются, но часть реквизитов пустая, — почти всегда дело в сопоставлении полей: реквизит источника не привязан к полю формата. Проверять начинайте с него.
Запуск, расписание и контроль обмена
Запустить обмен вручную можно из карточки настройки синхронизации командой выполнения синхронизации. Механизм отрабатывает в обе стороны: сначала принимает изменения из второй базы, затем отправляет свои.
Для постоянного обмена настраивают расписание. В карточке настройки открывается сценарий, где задаётся, как часто выполнять синхронизацию — например, каждые 15 минут в рабочее время или раз в сутки ночью. Расписание выполняет регламентное задание, поэтому в файловой базе синхронизация по расписанию идёт, только пока открыт сеанс; в клиент-серверной работает фоном на сервере.
За результатом следят в самом разделе Синхронизация данных. Там видны дата и время последнего обмена и блок предупреждений. В предупреждения попадают:
- объекты, не загруженные из-за даты запрета изменения;
- конфликты между базами;
- ссылки на несуществующие объекты (не найден элемент, на который ссылается загружаемый документ).
Заведите привычку раз в день открывать предупреждения синхронизации. Молчаливо накопленные непринятые объекты — частая причина, почему «в одной базе документ есть, а в другой нет».
Остановка регламентного задания или перезапуск сервера прерывает запущенный обмен. Делайте это в паузе между сеансами синхронизации: прерванная выгрузка не повреждает базу, но часть данных придётся догонять следующим обменом.
Конфликты данных: кто побеждает и как это настроить
Конфликт возникает, когда один и тот же объект изменили в обеих базах между сеансами обмена. Механизм не может решить сам, какая версия верна, и фиксирует расхождение.
Исход определяет приоритет узла, заданный в настройке обмена. Возможны два режима:
- Приоритет у одной из баз — при конфликте принимается её версия, изменение во второй базе отклоняется. Так настраивают пары, где одна база ведущая (например, учётные данные правятся только в Бухгалтерии).
- Регистрация для ручного разбора — конфликтующие версии не перезаписываются автоматически, а попадают в предупреждения, где человек выбирает нужную.
Разбираются конфликты в блоке предупреждений: открываете объект, видите обе версии и принимаете решение. После обработки запись уходит из списка.
Отдельно стоят ошибки «не найден объект»: загружаемый документ ссылается на справочник, который во вторую базу ещё не пришёл. Обычно это лечится повторным обменом (следующий сеанс донесёт недостающий элемент) либо начальной выгрузкой справочников, если настройка отборов отрезала часть данных.
Снизить число конфликтов помогает дисциплина: ключевые справочники ведут в одной базе, а не параллельно в двух. Чем меньше объектов правится одновременно с двух сторон, тем реже механизм вообще доходит до конфликта.
Как ускорить обмен и снизить нагрузку
Медленная синхронизация почти всегда упирается в объём выгрузки и способ подключения. Несколько приёмов, которые реально сокращают время:
- 📅 Ограничьте период. В отборах укажите дату, с которой выгружать данные. Переносить движения пятилетней давности в новую пару баз нет смысла — обмену хватает текущего и прошлого года.
- 🏢 Отберите по организации и складу. Если во второй базе нужна только одна организация, настройте отбор по ней. Это убирает из выгрузки лишние документы на старте.
- 🔌 Выберите прямое подключение, если базы в одной сети. Файловый обмен через каталог или почту всегда медленнее из-за записи и чтения промежуточных файлов.
- 🌙 Тяжёлые операции — на ночь. Начальную выгрузку и крупные догрузки планируйте регламентным заданием на нерабочее время, чтобы не конкурировать с пользователями за ресурсы сервера.
- ⚙️ Не ставьте слишком частое расписание. Обмен каждые 5 минут по большой базе держит сервер в постоянной нагрузке. Для большинства сценариев достаточно 15–30 минут или обмена по событию.
Прежде чем остановить регламентное задание синхронизации для перенастройки, предупредите пользователей: активные сеансы обмена оборвутся, и незавершённую выгрузку придётся запускать заново.
Если после всех отборов обмен всё равно идёт долго, смотрите на инфраструктуру: файловая база по сети медленнее клиент-серверной, а веб-сервис чувствителен к качеству канала между офисами.