Администрирование · 11 мин
Как сделать обмен данными в 1С:Предприятие
Как сделать обмен данными в 1С:Предприятие: планы обмена, синхронизация между базами, настройка правил, устранение ошибок и конфликтов.
Обмен данными в 1С:Предприятие нужен всякий раз, когда одна и та же информация должна жить в нескольких базах: центральный офис и филиалы, «Управление торговлей» и «Бухгалтерия», рабочая база и сайт. Платформа предлагает несколько встроенных механизмов — планы обмена, универсальный формат EnterpriseData, конвертацию данных через правила — и выбор конкретного способа определяет и трудоёмкость настройки, и надёжность результата.
Главная ошибка новичков — пытаться «просто скопировать документы» вручную или через обработки загрузки табличных данных. Такой подход ломает ссылки, дублирует контрагентов и не гарантирует, что изменения в одной базе попадут в другую. Штатные механизмы синхронизации решают именно эту задачу: они отслеживают изменённые объекты, передают только их и умеют сопоставлять уже существующие записи.
Ниже разобран практический путь: от выбора механизма до настройки расписания и контроля ошибок. Материал ориентирован на типовые конфигурации (БП, УТ, ERP, ЗУП) на управляемых формах, но принципы применимы и к самописным решениям.
Выбор механизма обмена: что подходит под вашу задачу
Прежде чем что-то настраивать, определите сценарий. Если обе базы — типовые конфигурации фирмы «1С» (например, УТ 11 и БП 3.0), правильный путь — встроенная синхронизация данных через универсальный формат EnterpriseData. Она настраивается через мастер, не требует программирования и поддерживается при обновлениях конфигураций.
Если одна из конфигураций сильно доработана или самописная, потребуются правила конвертации данных, созданные в конфигурации «Конвертация данных 2.1» или «3.0». Это отдельный инструмент разработчика: в нём описывается, как объект одной конфигурации превращается в объект другой. Трудоёмкость выше, но контроль полный.
Для обмена с внешними системами (сайт, CRM, складское оборудование) чаще используют файловые выгрузки в XML/JSON, веб-сервисы или HTTP-запросы. Это уже задача разработки, а не настройки, и её стоит делегировать программисту, если у вас нет опыта работы с веб-сервисами в 1С.
Сравнение вариантов обмена
Подходит для связи типовых конфигураций. Настраивается мастером, не требует кода. Ограничение: состав передаваемых объектов фиксирован типовыми правилами.
Подходит для доработанных и самописных конфигураций. Требует навыков разработки и сопровождения правил при обновлениях.
Для интеграции с не-1С системами. Требует программирования с обеих сторон и продуманной обработки ошибок.
Подготовка баз к обмену
Обмен должен идти между актуальными и согласованными данными. Перед настройкой проверьте три вещи. Во-первых, версии конфигураций: для типовой синхронизации желательно, чтобы обе базы были на поддерживаемых релизах — старые версии могут не знать новые поля формата. Во-вторых, заполненность ключевых справочников: валюты, единицы измерения, ставки НДС должны совпадать, иначе документы не загрузятся или загрузятся с ошибками.
В-третьих, сделайте резервную копию обеих баз. Первоначальная синхронизация может создать дубли контрагентов и номенклатуры, если сопоставление пройдёт неудачно, и откат через копию — самый быстрый способ всё исправить. Для файловых баз достаточно скопировать каталог, для клиент-серверных — сделать выгрузку в dt или средствами СУБД.
Настройка синхронизации между типовыми конфигурациями
В типовых конфигурациях настройка выполняется через раздел «Администрирование» → «Синхронизация данных» (в некоторых конфигурациях — «НСИ и администрирование»). Включите флажок «Синхронизация данных», затем создайте новую настройку и выберите, с какой программой будет обмен.
Мастер предложит вариант подключения: прямое подключение к базе через локальную сеть или интернет, обмен через каталог (файлы выгрузки), через FTP или электронную почту. Для баз в одной сети удобнее прямое подключение или общий сетевой каталог. Для удалённых баз без VPN — обмен через каталог с последующей передачей файлов или через веб-сервисы, если они опубликованы.
Далее мастер выполнит первоначальную выгрузку данных и предложит сопоставить объекты: покажет списки контрагентов, номенклатуры, организаций, которые есть в обеих базах, но ещё не связаны. Пройдите сопоставление внимательно — именно на этом шаге предотвращаются дубли. После подтверждения данных вторая база загрузит пакет, и синхронизация перейдёт в штатный режим.
- 1Сделайте резервные копии обеих баз
- 2Включите «Синхронизация данных» в разделе «Администрирование»
- 3Создайте настройку синхронизации и выберите вторую программу
- 4Укажите способ подключения: каталог, прямое подключение или веб-сервис
- 5Выполните первоначальную выгрузку и сопоставьте справочники
- 6Подтвердите загрузку во второй базе и проверьте результат
- 7Настройте расписание автоматического обмена
Настройка правил и состава передаваемых данных
В настройке синхронизации можно ограничить состав данных: передавать только документы по выбранным организациям, начиная с определённой даты, только справочники без документов и т.п. Это снижает объём пакетов и уменьшает риск передать лишнее — например, зарплатные документы в торговую базу.
Обратите внимание на режим выгрузки документов: проведёнными или без проведения. Обычно между УТ и БП документы передаются проведёнными, но если в приёмнике документы дорабатываются вручную, имеет смысл передавать их непроведёнными, чтобы бухгалтер сам контролировал проведение.
Для нестандартных требований — например, «не передавать контрагентов-физлиц» или «подставлять конкретный склад по умолчанию» — типовые правила дорабатываются в «Конвертации данных». Изменённые правила подключаются в настройке синхронизации вместо типовых. Учтите: при обновлении конфигурации доработанные правила нужно перепроверять на совместимость.
Автоматический обмен по расписанию
После успешной ручной синхронизации настройте автоматический запуск. В настройке синхронизации есть расписание: обмен может выполняться каждые N минут, раз в день в указанное время или по событию (например, при завершении работы пользователя). Для клиент-серверных баз расписание выполняется регламентным заданием на сервере; для файловых — отдельным сеансом 1С, который должен быть запущен.
Практическая рекомендация по частоте: для связки «торговля — бухгалтерия» обычно достаточно обмена 1–4 раза в день. Слишком частый обмен (каждые 5 минут) создаёт лишнюю нагрузку и повышает вероятность коллизий, когда один и тот же документ редактируют в обеих базах одновременно.
Убедитесь, что регламентные задания не заблокированы: в клиент-серверном варианте проверьте в консоли кластера, что блокировка регламентных заданий снята, а в файловом — что сеанс, выполняющий обмен, реально запускается по расписанию операционной системы или стартует с параметром выполнения обмена.
Контроль ошибок и разбор конфликтов
Результаты каждого сеанса обмена фиксируются в журнале: в разделе синхронизации есть ссылка «Результаты синхронизации данных» (или «Предупреждения»). Здесь видны незагруженные объекты, ошибки проведения документов и коллизии — ситуации, когда объект изменён в обеих базах с момента последнего обмена.
Коллизии разрешаются по правилу приоритета: по умолчанию выигрывает версия той базы, которая указана главной, либо более поздняя по времени изменения. Просматривайте коллизии вручную, если документы критичны: автоматическое «затирание» чужих правок — частая причина расхождений в учёте.
Типичные ошибки загрузки: незаполненные обязательные реквизиты в базе-приёмнике, отсутствующие элементы справочников (например, договор контрагента, который не сопоставлен), закрытый период в бухгалтерской базе. Большинство из них лечится ручной корректировкой данных и повторной выгрузкой конкретного объекта через функцию «Зарегистрировать изменения» в плане обмена.
Как проверить результат обмена
Все пакеты отправлены и приняты, предупреждений нет или они разобраны
Есть незагруженные объекты, ошибки проведения, растущее число предупреждений
Тестовый документ из одной базы появился в другой с теми же суммами и реквизитами
Документ отсутствует, продублирован или загружен с пустыми полями
Количество контрагентов и номенклатуры не растёт скачкообразно после обмена
Появились дубли с похожими наименованиями
Обмен через планы обмена вручную: когда это нужно
Под встроенной синхронизацией в типовых конфигурациях лежат планы обмена — объекты метаданных, которые регистрируют изменённые данные для каждого узла. Работать с ними напрямую имеет смысл в двух случаях: когда вы пишете собственный обмен в коде, и когда нужно точечно повторить выгрузку объекта.
Для повторной отправки конкретного документа откройте план обмена (через «Все функции» → «Планы обмена»), выберите узел и используйте команду регистрации изменений: добавьте объект в состав изменений узла. При следующем сеансе обмена он будет выгружен повторно, даже если не редактировался. Это стандартный способ «дотолкнуть» потерявшийся документ.
Программный обмен строится на тех же примитивах: ПланыОбмена.ВыбратьИзменения() для чтения зарегистрированных изменений, запись сообщения через ЗаписьXML, чтение — через ЧтениеXML с проверкой номеров принятых и отправленных сообщений. Если вы не уверены в этих механизмах, не модифицируйте типовые процедуры обмена — лучше оформите свою логику отдельными процедурами.
Перед обновлением конфигурации, участвующей в обмене, выполните полный цикл синхронизации и убедитесь, что очереди пусты. Обновление с «зависшими» пакетами чаще всего и приводит к ошибкам формата после обновления.
Частые вопросы
Можно ли настроить обмен между базами с разными конфигурациями, например самописной и БП 3.0?
Да, но не через типовой мастер — он поддерживает только предусмотренные пары конфигураций. Для самописной базы разрабатываются правила в «Конвертации данных» либо обмен строится программно через веб-сервисы или файлы в универсальном формате.
Что делать, если после обмена появились дубли контрагентов?
Сначала остановите автоматический обмен, чтобы дубли не размножались. Затем используйте типовую обработку «Поиск и удаление дублей» (раздел «Администрирование» → «Обслуживание»): она заменит ссылки на дубли ссылками на основной элемент. После чистки выполните сопоставление в настройке синхронизации заново.
Почему документ выгрузился, но не загрузился во вторую базу?
Частые причины: незаполнен обязательный реквизит в приёмнике, не сопоставлен элемент справочника, на который ссылается документ, или период закрыт для изменений. Точную причину показывает протокол в «Результатах синхронизации» — там указан объект и текст ошибки.
Как перенести в другую базу только один документ, а не всё подряд?
Откройте план обмена через «Все функции», выберите нужный узел и зарегистрируйте в нём только этот документ через функцию регистрации изменений. При следующем сеансе обмена уйдёт именно он, если состав правил разрешает его передачу.
Работает ли обмен, если базы находятся в разных городах и нет общей сети?
Да. Используйте обмен через каталог с передачей файлов любым способом (облачное хранилище, FTP, почта) либо опубликуйте веб-сервисы синхронизации, если базы доступны по интернету. Прямое подключение без общей сети не требуется.
Нужно ли останавливать работу пользователей на время обмена?
Нет, штатная синхронизация выполняется параллельно с работой пользователей. Исключение — первоначальная выгрузка большого объёма данных: её лучше запускать в нерабочее время, чтобы не снижать отзывчивость базы.
Что важно запомнить
Обмен в 1С строится на планах обмена и в типовых конфигурациях настраивается мастером синхронизации. Критичны три вещи: резервные копии перед первым запуском, аккуратное сопоставление справочников и регулярный контроль журнала результатов. Нестандартные требования закрываются правилами конвертации или программным обменом, но сначала всегда проверяйте, не решает ли задачу типовой механизм.