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