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