В работе часто возникает ситуация, когда в одной информационной базе «1С:Бухгалтерия» (БП) ведется учет по нескольким организациям, а для расчета зарплаты для каждой из них используется отдельная база «1С:Зарплата и управление персоналом» (ЗУП), например, базовой версии. При настройке обмена данными в такой схеме можно столкнуться с трудностями: первая синхронизация проходит успешно, а вторая завершается с ошибками.
Рассмотрим типичную проблему: после обмена данными с первой базой ЗУП, при попытке синхронизации со второй, система не может корректно обработать ответный файл подтверждения. В журнале регистрации появляются ошибки о том, что файл не найден, а сама «1С:Бухгалтерия» воспринимает вторую настройку обмена как дубль первой. Давайте разберемся, почему это происходит и как это исправить.
Корень проблемы кроется в способе создания информационных баз. Каждая база 1С имеет свой уникальный внутренний идентификатор — GUID. Система синхронизации использует этот идентификатор, чтобы точно понимать, какая база является источником, а какая — приемником данных.
Если вторая база ЗУП была создана путем простого копирования файла первой базы (например, файла 1Cv8.1CD), то у обеих баз оказывается абсолютно одинаковый GUID. Для «1С:Бухгалтерии» обе эти базы выглядят как одна и та же. Из-за этого возникает конфликт:
Как подтвердилось в ходе обсуждения на форуме, ошибка была именно в этом: «Из шаблона, после чего скопировал .cd в другой каталог». Это действие и привело к дублированию идентификатора и последующим проблемам с обменом.
Наиболее корректный и надежный способ решить проблему — создать вторую информационную базу ЗУП правильно, чтобы она получила свой собственный уникальный GUID. Этот метод гарантирует отсутствие конфликтов в будущем.
Рассмотрим по шагам:
ВыгрузкаЗагрузкаДанныхXML.epf. Выгрузите данные из старой базы и загрузите их в новую.Настройки → Общие настройки → Префикс этой информационной базы. Например, для первой базы — «З1», для второй — «З2».После этих действий «1С:Бухгалтерия» будет корректно распознавать обе базы ЗУП как две разные системы, и обмен данными будет работать штатно в обе стороны.
Если пересоздание базы и перенос данных кажутся слишком трудоемкими, существует альтернативный способ — программно изменить GUID у скопированной базы. Этот метод подходит для более опытных пользователей и администраторов.
Суть метода:
С помощью специальной обработки или небольшого программного кода можно присвоить информационной базе новый, случайно сгенерированный уникальный идентификатор. Для этого используется метод глобального контекста УстановитьИдентификаторИнформационнойБазы(). Найти готовые обработки для смены GUID можно на специализированных ресурсах для разработчиков 1С.
Внимание! Перед выполнением таких операций обязательно сделайте резервную копию информационной базы. Некорректное вмешательство может привести к потере данных.
После смены GUID необходимо также заново настроить синхронизацию, как описано в предыдущем пункте.
В исходной ситуации автор использовал сложную схему с созданием Распределенной Информационной Базы (РИБ), чтобы разделить базу БП по организациям для первоначальной выгрузки данных в базовые ЗУП. Это избыточный и сложный путь.
Стандартный механизм начального заполнения и последующей синхронизации позволяет легко настроить отбор по нужной организации без разделения баз.
При настройке синхронизации между БП ПРОФ и ЗУП Базовая на этапе настройки правил обмена достаточно указать, по какой конкретно организации нужно выгружать данные. Для этого в настройках синхронизации (на стороне БП) есть специальные фильтры. Вы просто создаете два обмена, и в каждом указываете свою организацию. Это штатный, простой и надежный механизм.