Как правило, в рамках проектов по внедрению «1С:Зарплата и управление персоналом 8» (1С:ЗУП) обязательной задачей является синхронизация базы с системой ведения бухгалтерского учета, в большинстве случаев этой системой является «1С:Бухгалтерия предприятия 8» (1С:БП). Со стороны самой 1С предоставляется типовой механизм обмена между двумя конфигурациями, который позволяет связать базы по основным точкам обмена.
Иногда задача синхронизации 1С:ЗУП и 1С:БП может оказаться нетривиальной и не укладывающейся в рамки типового механизма синхронизации, с одним из таких случаев мы столкнулись на одном из последних проектов по внедрению 1С:ЗУП 3.1.
Особенность синхронизации заключалась в сопоставлении справочника «Подразделения» между двумя базами.
Справочник «Подразделения» в 1С:ЗУП 3.1 был настроен с нуля в рамках внедрения системы с нуля — состав подразделений был минимальным и необходимым для ведения учета, не было лишних или неактуальных сущностей.
Справочник «Подразделения» в «1С:Бухгалтерии», наоборот, исторически использовался несистематизированно, некоторые подразделения дублировались, были неактуальные подразделения, потому что они использовались в старых документах (учет в базе начали вести в 2018 году), то есть один и тот же справочник хранил как архивную, так и актуальную информацию. В рамках проекта со стороны заказчика не было возможности нормализовать данные справочника «Подразделения» в 1С:БП.
С учетом вышеописанного важной задачей в рамках синхронизации было сопоставление подразделений не 1 к 1, как предусмотрено типовым механизмом от 1С, а многие к одному (множество подразделений нижнего уровня в 1С:ЗУП 3.1 к одному подразделению верхнего уровня в 1С:БП).
Для решения поставленной задачи при анализе мы рассмотрели два варианта, сравнили плюсы и минусы каждого и проработали риски. Итогом хотим поделиться с вами — как делать нужно и как делать не стоит.
Вариант № 1. Внесение сопоставления в системные регистры
Казалось бы, идеальный вариант, не нужно дорабатывать типовые правила обмена, достаточно просто внести сопоставление в регистр и не выходе получишь правильное сопоставление подразделений при синхронизации, однако не все так просто как может показаться и есть технические ограничения, из-за которых этот вариант нерабочий.
Такой вариант предполагает, что сначала выполняется типовая синхронизация данных. Для обмена между ЗУП и БП создается документ «Отражение зарплаты в бухучете», передается в БП — таким образом подразделения 1С:ЗУП прописываются в базе 1С:БП.
После этого проводится сопоставление 1 к 1 между подразделениями ЗУП и БП, далее, используется регистр «Публичные идентификаторы синхронизируемых объектов», поскольку в него пишутся уникальные идентификаторы данных (УИД) для каждого подразделения: УИД в ЗУП для синхронизированных объектов и УИД в БП также для синхронизированных объектов.
Чтобы провести сопоставление 1 ко множеству, необходимо взять УИД подразделения верхнего уровня БП и скопировать в УИД подразделения нижнего уровня в ЗУП, таким образом вы получаете при первой синхронизации данных нужный вам мэппинг — как итог вы получаете требуемое отражение зарплаты в проводках БП по подразделениям верхнего уровня.
![](https://i.klerk.ru/-ZFtd_s08_RqUfDAyZj9o1KyTwj6mxFhjRkvehNqTKA/w:1500/aHR0cHM6Ly93d3cu/a2xlcmsucnUvdWdj/L2Jsb2dQb3N0LzE2/YTE4MjQ3MGQzMzQy/MmM5ZTQwYTU0MTFh/NDRlNjZhLnBuZw.webp)
Однако это работает только один раз, так как в системные регистры по умолчанию встроена своя логика синхронизации и при повторной синхронизации эта логика затирает внесенные вручную настройки.
Если говорить детально, то система сопоставит УИД подразделений, и если найдет УИД подразделения верхнего уровня сопоставленного с подразделением нижнего уровня, переименует верхнее подразделение БП в последнее прописанное подразделение нижнего уровня ЗУП, перебирая все подразделения, фиксируя последнее сопоставленное.
Таким образом данный подход к синхронизации не является рабочим, у системы есть встроенная логика синхронизации на уровне системных регистров, и она будет в приоритете при синхронизации несмотря на попытки внести ручные правки в регистр. Поэтому рекомендуем использовать вариант № 2, о котором расскажем ниже.
Вариант № 2. Доработка правил синхронизации с использованием технологии расширений
Реализация доработки с помощью технологии расширений позволит вам оставить типовой как саму конфигурацию, так и и механизм типовой синхронизации. В рамках этой задачи вам необходимо будет:
в 1С:БП дописать отдельный регистр сопоставления подразделений, который доступен в режиме пользователя, в котором вы настраиваете нужные вам правила меппинга — множество подразделений ЗУП нижнего уровня к одному подразделению верхнего уровня БП;
в 1С:БП в документе «Отражение зарплаты в бухучете» дописать механизм замены подразделений, для пользователя доступен по кнопке «Заменить подразделения» (механизм обращается к указанному в п.1 регистру).
![](https://i.klerk.ru/xl3VhA8MkDXVMBJv7m_P5-HPlrS-3hcYdDhG_HWyPjs/w:1500/aHR0cHM6Ly93d3cu/a2xlcmsucnUvdWdj/L2Jsb2dQb3N0Lzg5/Y2Y3NGVmYTBmMzlh/YWMzMTM1YWQxYWFj/NDcxNTY1LnBuZw.webp)
По итогу пользователь отправляет абсолютно типовым способом синхронизации документ «Отражения зарплаты в бухучете» с существующими подразделениями нижнего уровня в 1С:ЗУП, документ в таком же формате приходит в 1С:БП, далее пользователь нажимает кнопку «Заменить подразделения», проводит документ — и получает проводки в требуемом виде, с подразделениями верхнего уровня БП.
![](https://i.klerk.ru/ieBrqginZ5eKvUJ9wRAyH1Qw8mSpiiu8wjyBZhTAblo/w:1500/aHR0cHM6Ly93d3cu/a2xlcmsucnUvdWdj/L2Jsb2dQb3N0L2My/ZmY3YWY1MzVhMDAy/MjU5MWFlOGU4ZWMz/NjU2OTllLnBuZw.webp)
Так как механизм сопоставления реализован на уровне регистра, доступного для настройки обычному пользователю, то появление нового сопоставления не требует привлечения разработчика для добавления новой записи на уровне конфигуратора, а решается созданием новой строки меппинга пользователем в соответствующем регистре.
Таким образом для решения задачи нестандартной синхронизации мы рекомендуем использовать вариант № 2, который мы и реализовали у клиента.
Данный подход работает корректно и без сбоев, а пользовательский режим настройки правил меппинга делает использование и поддержание сопоставление в актуальном состоянии легким и доступным для бухгалтера без привлечения специалистов 1С.
Если в вашей компании тоже есть нестандартные задачи по синхронизации между 1С:ЗУП и 1С:БП вы всегда можете обратиться к нашим специалистам за консультацией и они подберут оптимальный подход для решения ваших задач.
Получите дорожную карту по внедрению 1С разработанную для вашей компании бесплатно!
Наши специалисты подготовят индивидуальную карту по внедрению именно для вас
![](https://i.klerk.ru/Y3hGsZDZtEyef83nIGQTDuxWX0V5xpkdnilfBNi4UlU/w:200/h:200/aHR0cHM6Ly93d3cu/a2xlcmsucnUvdWdj/L2Jsb2dQb3N0LzI2/MzFhMTEyY2RlNzkx/NWM4M2U2MDJlYmNh/ZTcwOGE5LnBuZw.webp)
Оставьте контакты, эксперт с вами свяжется:
Реклама: ООО «Интеллект Альянс», ИНН 7736639977, erid: LjN8K9UeB
Начать дискуссию