Настройка синхронизации данных между конфигурациями семейства 1С — это процесс, который часто преподносит сюрпризы техническим специалистам. Одной из наиболее распространенных схем является односторонний обмен из 1С:Комплексная автоматизация 2 (КА 2) в 1С:Бухгалтерия предприятия 3 (БП 3), выполняемый через универсальный формат обмена (EnterpriseData) на базе плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат. В процессе такой настройки интеграторы регулярно сталкиваются с ситуацией, когда справочники ДоговорыКонтрагентов и Подразделения отказываются выгружаться или загружаться в базу-приемник.
В этой статье мы подробно проанализируем причины возникновения данной проблемы, разберем внутреннюю логику работы механизмов платформы 1С и предоставим пошаговый алгоритм устранения неполадок как на стороне базы-источника, так и на стороне приемника.
Симптомы проблемы с договорами обычно выглядят следующим образом: обмен завершается успешно и без явных ошибок, документы (например, РеализацияТоваровУслуг) переносятся, однако поле «Договор» в них остается незаполненным. При этом сам справочник договоров в базе-приемнике пуст, а в базе-источнике (КА 2) в карточке контрагентов может даже отсутствовать сама вкладка «Договоры».
Для того чтобы понять, почему договоры игнорируются системой обмена, нам необходимо рассмотреть два независимых фактора: настройки функциональных опций в источнике и жесткие ограничения в правилах конвертации приемника.
Фактор 1. Ограничение загрузки на стороне базы-приемника (БП 3)
В правилах конвертации формата EnterpriseData (разрабатываемых с помощью конфигурации «Конвертация данных 3.0») заложена строгая проверка функциональных опций базы-приемника. Проанализируем фрагмент кода, управляющий загрузкой договоров в БП 3:
// Если обе функциональные опции отключены, то грузить договора не имеет смысла.
Если Не КомпонентыОбмена.ПараметрыКонвертации.ИспользуютсяДоговорыСКлиентами
И Не КомпонентыОбмена.ПараметрыКонвертации.ИспользуютсяДоговорыСПоставщиками Тогда
ИспользованиеПКО.Справочник_ДоговорыКонтрагентов_Получение = Ложь;
Возврат;
КонецЕсли;
Если в базе-приемнике 1С:Бухгалтерия предприятия в настройках параметров учета или функциональности отключено ведение расчетов по договорам, то обработчик загрузки полностью блокирует создание и обновление элементов справочника ДоговорыКонтрагентов. Поэтому перед началом отладки обязательно убедитесь, что в базе-приемнике включены соответствующие опции работы с договорами.
Фактор 2. Функциональные опции в базе-источнике (КА 2)
В комплексных ERP-решениях (к которым относится и КА 2) учет по договорам является опциональным. Архитектура системы позволяет вести расчеты в разрезе «Соглашений» или в целом по контрагенту (без детализации). Если механизмы договоров не активированы в настройках разделов, система физически не отображает вкладку «Договоры» в справочнике контрагентов и игнорирует регистрацию договоров в плане обмена.
Для решения этой проблемы выполним следующие шаги в базе КА 2:
После активации данных опций в карточке контрагента появится вкладка Договоры, а документы начнут требовать указания конкретного договора для расчетов. При проведении документов система автоматически начнет регистрировать измененные договоры на узле плана обмена для последующей выгрузки.
Вторая проблема, с которой сталкиваются пользователи, — это отсутствие выгрузки справочника подразделений. Разберем, почему стандартные ожидания («если справочник есть в источнике, он должен просто перенестись в приемник») здесь не работают.
Архитектурные различия справочников подразделений
В конфигурациях 1С:Комплексная автоматизация 2 и 1С:Бухгалтерия предприятия 3 структура хранения информации о структуре компании принципиально различается:
СтруктураПредприятия (управленческие подразделения) и регламентированный справочник ПодразделенияОрганизаций (для кадрового учета и расчета зарплаты).ПодразделенияОрганизаций.Особенности выгрузки «по ссылке» в формате EnterpriseData
Справочник управленческих подразделений (СтруктураПредприятия) в КА 2 не зарегистрирован как самостоятельный объект отправки в плане обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Это означает, что вы не можете просто выбрать этот справочник и принудительно зарегистрировать его к выгрузке. Система работает по иному принципу:
ПодразделенияОрганизаций.Таким образом, если вы делаете первоначальную выгрузку «чистой» НСИ без документов, подразделения в базе-приемнике не появятся. Чтобы они перенеслись, необходимо выгрузить хотя бы один документ, в котором эти подразделения задействованы.
Часто в процессе настройки обмена у разработчиков возникает соблазн доработать правила конвертации и добавить в план обмена выгрузку детальных кадровых (прием на работу, кадровый перевод, увольнение) или зарплатных документов. Рассмотрим, почему это архитектурная ошибка и как правильно выстроить схему взаимодействия баз.
Конфигурация 1С:Бухгалтерия предприятия 3 исторически не предназначена для ведения сложного подетального расчета заработной платы и детального кадрового учета, если эти функции уже возложены на более мощный источник (КА 2 или ЗУП 3). Методология 1С предполагает следующую схему передачи данных:
ОтражениеЗарплатыВФинансовомУчете. При его выгрузке данные могут детализироваться по сотрудникам (если это необходимо для субконто счета 70) или передаваться сводно по всей организации без персональных данных сотрудников.Попытка дописать правила обмена в Конвертации данных 3.0 для переноса первичных кадровых документов потребует огромных трудозатрат:
EnterpriseData, добавляя туда новые типы данных, которых изначально нет в стандарте.МенеджерОбменаЧерезУниверсальныйФормат в обеих базах (источнике и приемнике).Вывод: не усложняйте систему. Для корректного отражения кадровой структуры и затрат на оплату труда переносите только сводные документы финансового учета, а детальный учет оставляйте на стороне Комплексной автоматизации.
Если после настройки синхронизации вы обнаружили нехватку данных, выполните диагностику по следующему чек-листу:
Catalog.ДоговорыКонтрагентов) и подразделениями.EnterpriseData сопоставляет объекты преимущественно по их уникальным идентификаторам (GUID). Если вы предварительно создали договоры вручную в обеих базах, при обмене система может не сопоставить их по наименованию и создать дубли. Для предотвращения дублирования используйте встроенные инструменты сопоставления данных при первой синхронизации.Использование этих простых правил и понимание архитектуры универсального формата обмена позволит вам быстро локализовать проблему и добиться стопроцентной согласованности данных в ваших информационных базах 1С.