Как заставить банковские счета синхронизироваться из 1С:БП в 1С:ЗУП без задвоения?

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

При настройке интеграции между программами «1С:Бухгалтерия предприятия» (БП 3.0) и «1С:Зарплата и управление персоналом» (ЗУП 3.1) специалисты часто сталкиваются с проблемой: базы некоторое время велись независимо, в них уже заведены одинаковые организации и контрагенты, а при попытке настроить типовой обмен банковские счета «не идут» в принимающую базу либо безжалостно дублируются. Рассмотрим подробно, почему так происходит, как принудительно «протолкнуть» банковские счета из БП в ЗУП и как правильно сопоставить их, чтобы избежать появления дублей.

Выясним причину: почему банковские счета не переносятся автоматически?

В современных версиях конфигураций 1С, использующих универсальный формат обмена EnterpriseData, справочник БанковскиеСчета (как организаций, так и контрагентов или физических лиц) полноценно участвует в синхронизации. Однако при первом запуске обмена пользователи часто обнаруживают, что новые или измененные документы переносятся, а справочник расчетных счетов остается нетронутым в базе-приемнике. Этому есть две основные причины:

  1. Объекты были созданы до настройки обмена. Механизм регистрации изменений в 1С фиксирует для отправки только те данные, которые создаются или изменяются после того, как обмен был успешно настроен и активирован. Все «исторические» данные, внесенные в БП ранее, программа считает уже синхронизированными и игнорирует при обычном сеансе связи.
  2. Отсутствие связанных документов. В более ранних версиях правил обмена банковские счета могли выгружаться только «транзитом» — то есть в составе документов (например, ведомостей на выплату зарплаты). Если по конкретному счету не было движений документов в периоде выгрузки, сам по себе элемент справочника не переносился.

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

Шаг 1. Принудительная регистрация банковских счетов к отправке в БП 3.0

Чтобы заставить 1С «увидеть» существующие расчетные счета и отправить их в ЗУП при следующем сеансе обмена, выполним ручную регистрацию объектов. Проанализируем пошаговый алгоритм действий в интерфейсе «1С:Бухгалтерия предприятия»:

  1. Перейдем в раздел Администрирование, далее выберем пункт Синхронизация данных.
  2. Откроем ссылку Настройки синхронизации данных.
  3. Выберем в списке нашу настройку обмена с ЗУП 3.1 и нажмем на кнопку Состав отправляемых данных (иконка в виде синего и зеленого дисков со стрелками на панели инструментов).
  4. В открывшемся окне перед нами появится дерево всех объектов, участвующих в обмене. Найдем справочник БанковскиеСчета (или БанковскиеСчетаОрганизаций).
  5. Нажмем кнопку Зарегистрировать на командной панели. Здесь мы можем выбрать один из двух вариантов:
    • Все объекты выбранного типа — если нам нужно отправить абсолютно все расчетные счета, имеющиеся в базе.
    • Одиночный объект — если требуется перенести только конкретные расчетные счета определенных организаций.
  6. После выбора объекты добавятся в список зарегистрированных изменений (счетчик зарегистрированных объектов изменит свое значение). Закроем окно регистрации и запустим синхронизацию.

Если вам требуется выполнить регистрацию программно (например, в рамках написания собственной обработки для первоначального переноса данных), мы можем использовать следующий фрагмент кода на встроенном языке 1С:


// Пример программной регистрации всех расчетных счетов для узла обмена
УзелИнформационнойБазы = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("ЗП"); // Код узла ЗУП
Если ЗначениеЗаполнено(УзелИнформационнойБазы) Тогда
    ВыборкаСчетов = Справочники.БанковскиеСчета.Выбрать();
    Пока ВыборкаСчетов.Следующий() Цикл
        ПланыОбмена.ЗарегистрироватьИзменения(УзелИнформационнойБазы, ВыборкаСчетов.Ссылка);
    КонецЦикла;
    Сообщить("Регистрация банковских счетов успешно завершена."); КонецЕсли;

Шаг 2. Как избежать задвоения счетов (правильное сопоставление)

Когда данные отправляются из БП, в базе ЗУП уже могут существовать точно такие же расчетные счета, созданные пользователями вручную. Поскольку они создавались в разных базах, их внутренние уникальные идентификаторы (GUID) гарантированно различаются. Если просто выполнить автоматический обмен, система создаст дубликаты счетов в ЗУП.

По умолчанию в формате EnterpriseData сопоставление банковских счетов происходит по следующим ключевым полям: Владелец (Организация/Контрагент), Номер счета и Банк (по БИК). Тем не менее, для предотвращения ошибок рекомендуется использовать интерактивное сопоставление:

  1. При запуске синхронизации в ручном (интерактивном) режиме программа приостановит процесс на этапе анализа полученных данных и выведет окно Сопоставление данных.
  2. Найдем в списке сопоставляемых объектов справочник Банковские счета.
  3. Проанализируем предложенные программой связи. Если система не смогла автоматически сопоставить счета (например, из-за небольшого различия в написании наименования банка или отсутствия БИК), сопоставим их вручную, выбрав соответствующий элемент в правой и левой частях таблицы.
  4. После успешного ручного сопоставления и завершения сеанса обмена система запишет связь между GUID объектов в специальный регистр, и при последующих обменах они будут обновляться без создания дублей.

Шаг 3. Что делать, если дубли уже создались?

Рассмотрим ситуацию, когда синхронизация была выполнена без предварительного сопоставления, и расчетные счета в ЗУП все-таки задвоились. В этом случае нам потребуется выполнить комплексную очистку данных по следующей схеме:

  1. Поиск и удаление дубликатов:
    • В базе ЗУП перейдем в раздел Администрирование — Обслуживание — Корректировка данных.
    • Откроем обработку Поиск и удаление дублей.
    • В поле «Искать в» выберем справочник Банковские счета. Укажем правила сравнения (например, по совпадению номера счета).
    • Нажмем Найти дубли. Программа покажет список одинаковых счетов. Выберем «оригинальный» счет (тот, у которого больше связей с документами или который был перенесен из БП) и выполним замену дублей. Все ссылки в документах будут перенаправлены на один верный элемент.
  2. Корректировка регистра сопоставления:

    Иногда после удаления дублей при следующем обмене они могут появиться снова, так как в системе осталась неверная запись связи объектов. Связи между объектами баз хранятся в специальном регистре.

    • Через меню Сервис и настройки откроем окно Функции для специалиста (ранее — «Все функции»).
    • Найдем регистр сведений СоответствиеОбъектовИнформационныхБаз.
    • В таблице записей найдем строки, где типом приемника/источника выступает СправочникСсылка.БанковскиеСчета.
    • Проанализируем записи: если там содержатся ссылки на удаленные или неверно сопоставленные элементы, удалим эти записи вручную. При следующем обмене программа позволит нам сопоставить их заново и правильно.

Дополнительные технические рекомендации для стабильного обмена

Чтобы в будущем избежать сбоев при обмене данными между БП и ЗУП, рекомендуем обратить внимание на следующие настройки:

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

← На главную