Почему при обмене из 1С:Комплексная автоматизация 2 не выгружаются договоры и подразделения?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет IT и автоматизация бизнеса
← На главную

Настройка синхронизации данных между конфигурациями семейства 1С — это процесс, который часто преподносит сюрпризы техническим специалистам. Одной из наиболее распространенных схем является односторонний обмен из 1С:Комплексная автоматизация 2 (КА 2) в 1С:Бухгалтерия предприятия 3 (БП 3), выполняемый через универсальный формат обмена (EnterpriseData) на базе плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат. В процессе такой настройки интеграторы регулярно сталкиваются с ситуацией, когда справочники ДоговорыКонтрагентов и Подразделения отказываются выгружаться или загружаться в базу-приемник.

В этой статье мы подробно проанализируем причины возникновения данной проблемы, разберем внутреннюю логику работы механизмов платформы 1С и предоставим пошаговый алгоритм устранения неполадок как на стороне базы-источника, так и на стороне приемника.


Часть 1. Разбираемся с выгрузкой договоров контрагентов

Симптомы проблемы с договорами обычно выглядят следующим образом: обмен завершается успешно и без явных ошибок, документы (например, РеализацияТоваровУслуг) переносятся, однако поле «Договор» в них остается незаполненным. При этом сам справочник договоров в базе-приемнике пуст, а в базе-источнике (КА 2) в карточке контрагентов может даже отсутствовать сама вкладка «Договоры».

Для того чтобы понять, почему договоры игнорируются системой обмена, нам необходимо рассмотреть два независимых фактора: настройки функциональных опций в источнике и жесткие ограничения в правилах конвертации приемника.

Фактор 1. Ограничение загрузки на стороне базы-приемника (БП 3)

В правилах конвертации формата EnterpriseData (разрабатываемых с помощью конфигурации «Конвертация данных 3.0») заложена строгая проверка функциональных опций базы-приемника. Проанализируем фрагмент кода, управляющий загрузкой договоров в БП 3:


// Если обе функциональные опции отключены, то грузить договора не имеет смысла.
Если Не КомпонентыОбмена.ПараметрыКонвертации.ИспользуютсяДоговорыСКлиентами
    И Не КомпонентыОбмена.ПараметрыКонвертации.ИспользуютсяДоговорыСПоставщиками Тогда
    ИспользованиеПКО.Справочник_ДоговорыКонтрагентов_Получение = Ложь;
    Возврат;
КонецЕсли;

Если в базе-приемнике 1С:Бухгалтерия предприятия в настройках параметров учета или функциональности отключено ведение расчетов по договорам, то обработчик загрузки полностью блокирует создание и обновление элементов справочника ДоговорыКонтрагентов. Поэтому перед началом отладки обязательно убедитесь, что в базе-приемнике включены соответствующие опции работы с договорами.

Фактор 2. Функциональные опции в базе-источнике (КА 2)

В комплексных ERP-решениях (к которым относится и КА 2) учет по договорам является опциональным. Архитектура системы позволяет вести расчеты в разрезе «Соглашений» или в целом по контрагенту (без детализации). Если механизмы договоров не активированы в настройках разделов, система физически не отображает вкладку «Договоры» в справочнике контрагентов и игнорирует регистрацию договоров в плане обмена.

Для решения этой проблемы выполним следующие шаги в базе КА 2:

  1. Перейдем в раздел НСИ и администрирование -> Настройка НСИ и разделов.
  2. Откроем подраздел Продажи. В блоке опций найдем и установим флаг Использовать договоры с клиентами. Если в базе ведется розничная торговля, также убедимся в активности флага использования договоров в розничных продажах.
  3. Перейдем в подраздел Закупки и аналогичным образом активируем опцию Использовать договоры с поставщиками.

После активации данных опций в карточке контрагента появится вкладка Договоры, а документы начнут требовать указания конкретного договора для расчетов. При проведении документов система автоматически начнет регистрировать измененные договоры на узле плана обмена для последующей выгрузки.


Часть 2. Специфика переноса подразделений в EnterpriseData

Вторая проблема, с которой сталкиваются пользователи, — это отсутствие выгрузки справочника подразделений. Разберем, почему стандартные ожидания («если справочник есть в источнике, он должен просто перенестись в приемник») здесь не работают.

Архитектурные различия справочников подразделений

В конфигурациях 1С:Комплексная автоматизация 2 и 1С:Бухгалтерия предприятия 3 структура хранения информации о структуре компании принципиально различается:

Особенности выгрузки «по ссылке» в формате EnterpriseData

Справочник управленческих подразделений (СтруктураПредприятия) в КА 2 не зарегистрирован как самостоятельный объект отправки в плане обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Это означает, что вы не можете просто выбрать этот справочник и принудительно зарегистрировать его к выгрузке. Система работает по иному принципу:

  1. Подразделения мигрируют исключительно «по ссылке» в составе документов (например, документов реализации товаров, поступлений услуг или кадровых документов).
  2. При формировании XML-пакета выгрузки в узел обмена помещается не ссылка на элемент, а текстовое представление наименования подразделения и его уникальные реквизиты (включая регистрационные данные в налоговом органе для регламентированных подразделений).
  3. На стороне приемника (БП 3) при получении документа система анализирует входящие данные. Происходит поиск подразделения по наименованию (и привязке к организации). Если подходящий элемент не найден, БП 3 создает новое подразделение автоматически в справочнике ПодразделенияОрганизаций.

Таким образом, если вы делаете первоначальную выгрузку «чистой» НСИ без документов, подразделения в базе-приемнике не появятся. Чтобы они перенеслись, необходимо выгрузить хотя бы один документ, в котором эти подразделения задействованы.


Часть 3. Почему не стоит пытаться переносить кадровые и зарплатные документы напрямую

Часто в процессе настройки обмена у разработчиков возникает соблазн доработать правила конвертации и добавить в план обмена выгрузку детальных кадровых (прием на работу, кадровый перевод, увольнение) или зарплатных документов. Рассмотрим, почему это архитектурная ошибка и как правильно выстроить схему взаимодействия баз.

Конфигурация 1С:Бухгалтерия предприятия 3 исторически не предназначена для ведения сложного подетального расчета заработной платы и детального кадрового учета, если эти функции уже возложены на более мощный источник (КА 2 или ЗУП 3). Методология 1С предполагает следующую схему передачи данных:

Попытка дописать правила обмена в Конвертации данных 3.0 для переноса первичных кадровых документов потребует огромных трудозатрат:

  1. Вам придется расширять XDTO-пакеты формата EnterpriseData, добавляя туда новые типы данных, которых изначально нет в стандарте.
  2. Потребуется модифицировать общий модуль МенеджерОбменаЧерезУниверсальныйФормат в обеих базах (источнике и приемнике).
  3. Каждое обновление конфигураций от фирмы 1С будет приводить к риску затирания ваших доработок, так как правила обмена часто обновляются вместе с релизами конфигураций.

Вывод: не усложняйте систему. Для корректного отражения кадровой структуры и затрат на оплату труда переносите только сводные документы финансового учета, а детальный учет оставляйте на стороне Комплексной автоматизации.


Часть 4. Чек-лист для диагностики и исправления проблем обмена

Если после настройки синхронизации вы обнаружили нехватку данных, выполните диагностику по следующему чек-листу:

  1. Проверьте режим выгрузки: На период отладки синхронизации рекомендуется отказаться от прямого подключения к базе и выполнять выгрузку через промежуточный XML-файл. Это позволит вам вручную открыть файл обмена (например, через текстовый редактор Notepad++ или специализированные XML-вьюверы) и визуально проверить, присутствуют ли в выгружаемом пакете узлы с договорами (Catalog.ДоговорыКонтрагентов) и подразделениями.
  2. Анализ регистрации изменений: Воспользуйтесь стандартной обработкой «Регистрация изменений для обмена» (ее можно открыть через параметры синхронизации данных, выбрав пункт «Состав отправляемых данных»). Проверьте, зарегистрированы ли измененные объекты к отправке. Если договоров в списке зарегистрированных объектов нет, зарегистрируйте их принудительно для проверки.
  3. Проверка соответствия GUID: Помните, что обмен через EnterpriseData сопоставляет объекты преимущественно по их уникальным идентификаторам (GUID). Если вы предварительно создали договоры вручную в обеих базах, при обмене система может не сопоставить их по наименованию и создать дубли. Для предотвращения дублирования используйте встроенные инструменты сопоставления данных при первой синхронизации.

Использование этих простых правил и понимание архитектуры универсального формата обмена позволит вам быстро локализовать проблему и добиться стопроцентной согласованности данных в ваших информационных базах 1С.

← На главную