Как правило, в рамках проектов по внедрению «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 ко множеству, необходимо взять УИД подразделения верхнего уровня БП и скопировать в УИД подразделения нижнего уровня в ЗУП, таким образом вы получаете при первой синхронизации данных нужный вам мэппинг — как итог вы получаете требуемое отражение зарплаты в проводках БП по подразделениям верхнего уровня.
Однако это работает только один раз, так как в системные регистры по умолчанию встроена своя логика синхронизации и при повторной синхронизации эта логика затирает внесенные вручную настройки.
Если говорить детально, то система сопоставит УИД подразделений, и если найдет УИД подразделения верхнего уровня сопоставленного с подразделением нижнего уровня, переименует верхнее подразделение БП в последнее прописанное подразделение нижнего уровня ЗУП, перебирая все подразделения, фиксируя последнее сопоставленное.
Таким образом данный подход к синхронизации не является рабочим, у системы есть встроенная логика синхронизации на уровне системных регистров, и она будет в приоритете при синхронизации несмотря на попытки внести ручные правки в регистр. Поэтому рекомендуем использовать вариант № 2, о котором расскажем ниже.
Вариант № 2. Доработка правил синхронизации с использованием технологии расширений
Реализация доработки с помощью технологии расширений позволит вам оставить типовой как саму конфигурацию, так и и механизм типовой синхронизации. В рамках этой задачи вам необходимо будет:
в 1С:БП дописать отдельный регистр сопоставления подразделений, который доступен в режиме пользователя, в котором вы настраиваете нужные вам правила меппинга — множество подразделений ЗУП нижнего уровня к одному подразделению верхнего уровня БП;
в 1С:БП в документе «Отражение зарплаты в бухучете» дописать механизм замены подразделений, для пользователя доступен по кнопке «Заменить подразделения» (механизм обращается к указанному в п.1 регистру).
По итогу пользователь отправляет абсолютно типовым способом синхронизации документ «Отражения зарплаты в бухучете» с существующими подразделениями нижнего уровня в 1С:ЗУП, документ в таком же формате приходит в 1С:БП, далее пользователь нажимает кнопку «Заменить подразделения», проводит документ — и получает проводки в требуемом виде, с подразделениями верхнего уровня БП.
Так как механизм сопоставления реализован на уровне регистра, доступного для настройки обычному пользователю, то появление нового сопоставления не требует привлечения разработчика для добавления новой записи на уровне конфигуратора, а решается созданием новой строки меппинга пользователем в соответствующем регистре.
Таким образом для решения задачи нестандартной синхронизации мы рекомендуем использовать вариант № 2, который мы и реализовали у клиента.
Данный подход работает корректно и без сбоев, а пользовательский режим настройки правил меппинга делает использование и поддержание сопоставление в актуальном состоянии легким и доступным для бухгалтера без привлечения специалистов 1С.
Если в вашей компании тоже есть нестандартные задачи по синхронизации между 1С:ЗУП и 1С:БП вы всегда можете обратиться к нашим специалистам за консультацией и они подберут оптимальный подход для решения ваших задач.
Получите дорожную карту по внедрению 1С разработанную для вашей компании бесплатно!
Наши специалисты подготовят индивидуальную карту по внедрению именно для вас
Реклама: ООО «Интеллект Альянс», ИНН 7736639977, erid: LjN8K9UeB
Начать дискуссию