Как настроить синхронизацию физических лиц из ЗУП 3.1 в БП 3.0, когда типовой обмен не регистрирует их к выгрузке?

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

При синхронизации физических лиц между "1С:Зарплата и управление персоналом" (ЗУП) и "1С:Бухгалтерия предприятия" (БП) пользователи часто сталкиваются с ситуацией, когда актуальный справочник физических лиц (ФЛ) и сопутствующие данные (паспорта, адреса) не передаются в БП автоматически. Типовой механизм обмена ЗУП-БП по умолчанию регистрирует физических лиц к обмену только в том случае, если они попадают в документ "Отражение зарплаты в бухучете" как субъекты удержаний. Это значительно усложняет поддержание актуальности справочника в БП, особенно если необходимо перенести большое количество сотрудников или обновить их данные без проведения зарплатных документов.

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

Особенности типового механизма обмена и сопоставление данных

По умолчанию, при сводной синхронизации, "Физические лица" переносятся в "1С:Бухгалтерию" только если они присутствуют на вкладке "Удержания" документа "Отражение зарплаты в бухучете". Для успешной синхронизации необходимо корректно сопоставлять элементы справочников в обеих базах, чтобы избежать дублирования информации. Это особенно важно для таких ключевых полей, как ФИО, дата рождения, ИНН и СНИЛС. Сопоставленные вручную объекты запоминаются, и при последующих синхронизациях соответствие осуществляется по уникальному идентификатору. Для записей справочников, которые еще не участвовали в синхронизации, соответствия находятся по ключевым полям, таким как наименование, ИНН, СНИЛС, дата рождения для физических лиц.

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

Решение 1: Модификация правил регистрации объектов обмена

Наиболее эффективный и часто используемый способ решения проблемы — это изменение стандартных правил регистрации объектов обмена. По умолчанию в правилах есть фильтры, которые препятствуют регистрации физических лиц к обмену, если они не задействованы в зарплатных документах.

Разберем по шагам, как мы можем это сделать:

  1. Выгрузка правил регистрации: Для начала нам понадобится выгрузить текущие правила регистрации из конфигурации. Это можно сделать через стандартные средства или инструменты регистрации объектов для обмена, часто используя "Конвертацию данных 2.0" (КД2) для редактирования.

  2. Идентификация объектов: В выгруженных правилах нам нужно найти блоки, отвечающие за регистрацию изменений для следующих объектов:

    • Справочник.ФизическиеЛица (Справочник "Физические лица")
    • РегистрСведений.ФИОФизическихЛиц (Регистр сведений "ФИО физических лиц")
  3. Удаление фильтров регистрации: Внутри секции регистрации для указанных объектов нам необходимо найти и удалить строки, содержащие фильтрующие условия. В частности, часто встречаются такие условия, как РежимВыгрузкиПриНеобходимости или другие проверки, приводящие к установке Отказ = Истина;, если физическое лицо не связано с зарплатными документами.

    Например, для РегистрСведений.ФИОФизическихЛиц мы ищем и удаляем следующий фрагмент кода:

    
    Если Объект.Количество > 0 Тогда
        ИмяКолонкиОбъектаВладелец = "ФизическоеЛицо";
        МассивОбъектовВладельцев = Новый Массив;
        Для каждого ЗаписьНабора Из Объект Цикл
            Если МассивОбъектовВладельцев.Найти(ЗаписьНабора[ИмяКолонкиОбъектаВладелец]) <> Неопределено Тогда
                // Получатели для этого ОбъектаВладельца уже определены
                Продолжить;
            КонецЕсли;
            МассивОбъектовВладельцев.Добавить(ЗаписьНабора[ИмяКолонкиОбъектаВладелец]);
            ВладелецСсылка = ЗаписьНабора[ИмяКолонкиОбъектаВладелец];
            Если ЗначениеЗаполнено(ВладелецСсылка) Тогда
                ВладелецОбъект = ВладелецСсылка.ПолучитьОбъект;
                Если ВладелецОбъект <> Неопределено Тогда
                    ПолучателиОбъектаВладельца = ОбменДаннымиСобытия.ОпределитьПолучателей(ВладелецОбъект, ПРО.ИмяПланаОбмена);
                    Если ПолучателиОбъектаВладельца <> Неопределено Тогда
                        ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Получатели, ПолучателиОбъектаВладельца, Истина);
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    

    И также для Справочник.ФизическиеЛица ищем и удаляем строку:

    РежимВыгрузкиПриНеобходимости

    Кроме того, нам может потребоваться удалить условие Если Объект.ЭтоГруппа Тогда Отказ = Истина; КонецЕсли для справочника "Физические лица", если оно присутствует и мешает регистрации.

  4. Загрузка модифицированных правил: После внесения изменений нам необходимо загрузить модифицированные правила обратно в конфигурации ЗУП и БП. Это можно сделать через настройки синхронизации данных, используя опцию "Загрузить правила регистрации объектов" или "Загрузить правила конвертации объектов".

После применения этих изменений, при добавлении или изменении физического лица в ЗУП, оно будет автоматически регистрироваться к обмену и выгружаться в БП, независимо от его участия в документах "Отражение зарплаты в бухучете".

Решение 2: Использование консоли запросов для принудительной регистрации

Если мы не хотим или не можем изменять типовые правила обмена, мы можем использовать "Консоль запросов с возможностью обработки полученного результата" для ручной регистрации изменений. Этот метод позволяет принудительно зарегистрировать выбранные физические лица к обмену.

  1. Отбор данных: Откроем консоль запросов в ЗУП и создадим запрос, который отбирает нужные нам физические лица. Например, мы можем выбрать всех физических лиц или отфильтровать их по определенным критериям.

  2. Обработка результата запроса: После выполнения запроса и получения списка физических лиц, мы переходим к обработке полученного результата. Нам потребуется выполнить следующий код:

    
    Для каждого Строка из Результат Цикл
        Узел = ПланыОбмена.ОбменЗарплата3Бухгалтерия3.НайтиПоНаименованию("ИмяБазыБП",истина);
        ПланыОбмена.ЗарегистрироватьИзменения(Узел,Строка.Ссылка);
    КонецЦикла;
    

    В этом коде:

    • Результат – это таблица, полученная из нашего запроса, содержащая ссылки на физических лиц.
    • ПланыОбмена.ОбменЗарплата3Бухгалтерия3 – это наш план обмена между ЗУП 3 и БП 3.
    • "ИмяБазыБП" – необходимо заменить на точное наименование узла вашей базы БП, которое указано в настройках синхронизации данных в ЗУП.
    • ПланыОбмена.ЗарегистрироватьИзменения(Узел,Строка.Ссылка); – эта строка регистрирует изменение для каждого физического лица (Строка.Ссылка) в указанном узле обмена (Узел).
  3. Запуск синхронизации: После выполнения этого кода мы запускаем стандартную синхронизацию данных. Все зарегистрированные физические лица должны быть выгружены из ЗУП.

Важное примечание: Как показывает практика, даже после такой принудительной выгрузки, БП может "отмахнуться" от данных и не принять их, если физические лица не были задействованы в зарплатных документах. В таких случаях может потребоваться дополнительный обходной путь, описанный ниже.

Решение 3: Временное создание зарплатных документов

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

  1. Создание фиктивных документов: В ЗУП мы создаем два документа:

    • "Начисление зарплаты" за любой прошедший период (например, январь 2019 года).
    • "Отражение зарплаты в бухучете".

    Оба документа мы заполняем всеми сотрудниками, чьи физические лица нам нужно синхронизировать. Важно, чтобы физические лица попали на вкладку "Удержания" в документе "Отражение зарплаты в бухучете" (хотя бы с нулевыми суммами).

  2. Запуск синхронизации: После создания и проведения этих документов мы запускаем синхронизацию данных ЗУП-БП.

  3. Удаление фиктивных документов: После успешной синхронизации и принятия данных в БП, мы удаляем созданные нами "Начисление зарплаты" и "Отражение зарплаты в бухучете" как в ЗУП, так и в БП. Это позволит избежать искажения учета.

Этот метод является трудоемким, но он гарантирует, что БП примет данные, поскольку для нее они будут выглядеть как стандартный зарплатный обмен.

Решение 4: Использование универсального обмена или второй синхронизации

Еще один вариант, который мы можем рассмотреть, — это создание второй синхронизации ЗУП-БП, используя "Универсальный формат обмена" или загрузку данных в Бухгалтерию 3.0 в формате XML.

Этот подход имеет свои особенности:

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

Решение 5: Изменение настроек детализации выгрузки

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

  1. Настройки обмена: В ЗУП зайдем в настройки синхронизации данных с БП.

  2. Детализация выгрузки: Найдем параметр, отвечающий за детализацию выгрузки документов (например, для документов "Отражение зарплаты в бухучете"). Вместо значения "Сводно по всем" мы можем установить "По каждому сотруднику".

  3. Дата выгрузки: Также мы можем попробовать изменить дату выгрузки данных на более раннюю, чтобы инициировать повторную регистрацию и выгрузку.

Это может помочь в тех ситуациях, когда типовой механизм не "видит" сотрудников для регистрации.

Решение 6: Передача физических лиц из БП в ЗУП (Обратный процесс)

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

Для переноса физических лиц из БП в ЗУП мы можем использовать следующий алгоритм:

  1. Начальная настройка в ЗУП: Откроем в ЗУП обработку "Начальная настройка" (или "Помощник начальной настройки программы"). В ней должна быть опция или галка "Перенести данные из других программ" (или аналогичная формулировка).

  2. Выгрузка данных из БП: Следуя указаниям помощника, мы сохраняем внешнюю обработку для выгрузки данных из БП 3.0. Затем открываем эту обработку в БП через меню "Файл" -> "Открыть" и выгружаем данные (включая физических лиц) в файл.

  3. Загрузка данных в ЗУП: С помощью того же помощника в ЗУП мы загружаем созданный файл с данными. Это позволит перенести физических лиц и связанные с ними данные из БП в ЗУП.

Этот метод является стандартным для начального переноса данных при переходе на новую учетную систему.

Дополнительные рекомендации и настройки

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

← На главную