При синхронизации физических лиц между "1С:Зарплата и управление персоналом" (ЗУП) и "1С:Бухгалтерия предприятия" (БП) пользователи часто сталкиваются с ситуацией, когда актуальный справочник физических лиц (ФЛ) и сопутствующие данные (паспорта, адреса) не передаются в БП автоматически. Типовой механизм обмена ЗУП-БП по умолчанию регистрирует физических лиц к обмену только в том случае, если они попадают в документ "Отражение зарплаты в бухучете" как субъекты удержаний. Это значительно усложняет поддержание актуальности справочника в БП, особенно если необходимо перенести большое количество сотрудников или обновить их данные без проведения зарплатных документов.
Рассмотрим подробнее, почему возникают такие сложности и как мы можем их решить, используя обработки для выгрузки данных физических лиц, а также другие типовые и модифицированные возможности конфигураций.
По умолчанию, при сводной синхронизации, "Физические лица" переносятся в "1С:Бухгалтерию" только если они присутствуют на вкладке "Удержания" документа "Отражение зарплаты в бухучете". Для успешной синхронизации необходимо корректно сопоставлять элементы справочников в обеих базах, чтобы избежать дублирования информации. Это особенно важно для таких ключевых полей, как ФИО, дата рождения, ИНН и СНИЛС. Сопоставленные вручную объекты запоминаются, и при последующих синхронизациях соответствие осуществляется по уникальному идентификатору. Для записей справочников, которые еще не участвовали в синхронизации, соответствия находятся по ключевым полям, таким как наименование, ИНН, СНИЛС, дата рождения для физических лиц.
Прежде чем приступать к настройке и выполнению синхронизации, мы настоятельно рекомендуем создать резервные копии баз данных. Также важно убедиться, что пользователь, под которым выполняется синхронизация, имеет достаточные права для записи данных в обе базы. Несоответствие версий ЗУП и БП или их несовместимость могут вызвать ошибки, поэтому желательно использовать конфигурации, выпущенные примерно в одно время.
Наиболее эффективный и часто используемый способ решения проблемы — это изменение стандартных правил регистрации объектов обмена. По умолчанию в правилах есть фильтры, которые препятствуют регистрации физических лиц к обмену, если они не задействованы в зарплатных документах.
Разберем по шагам, как мы можем это сделать:
Выгрузка правил регистрации: Для начала нам понадобится выгрузить текущие правила регистрации из конфигурации. Это можно сделать через стандартные средства или инструменты регистрации объектов для обмена, часто используя "Конвертацию данных 2.0" (КД2) для редактирования.
Идентификация объектов: В выгруженных правилах нам нужно найти блоки, отвечающие за регистрацию изменений для следующих объектов:
Справочник.ФизическиеЛица (Справочник "Физические лица")РегистрСведений.ФИОФизическихЛиц (Регистр сведений "ФИО физических лиц")Удаление фильтров регистрации: Внутри секции регистрации для указанных объектов нам необходимо найти и удалить строки, содержащие фильтрующие условия. В частности, часто встречаются такие условия, как РежимВыгрузкиПриНеобходимости или другие проверки, приводящие к установке Отказ = Истина;, если физическое лицо не связано с зарплатными документами.
Например, для РегистрСведений.ФИОФизическихЛиц мы ищем и удаляем следующий фрагмент кода:
Если Объект.Количество > 0 Тогда
ИмяКолонкиОбъектаВладелец = "ФизическоеЛицо";
МассивОбъектовВладельцев = Новый Массив;
Для каждого ЗаписьНабора Из Объект Цикл
Если МассивОбъектовВладельцев.Найти(ЗаписьНабора[ИмяКолонкиОбъектаВладелец]) <> Неопределено Тогда
// Получатели для этого ОбъектаВладельца уже определены
Продолжить;
КонецЕсли;
МассивОбъектовВладельцев.Добавить(ЗаписьНабора[ИмяКолонкиОбъектаВладелец]);
ВладелецСсылка = ЗаписьНабора[ИмяКолонкиОбъектаВладелец];
Если ЗначениеЗаполнено(ВладелецСсылка) Тогда
ВладелецОбъект = ВладелецСсылка.ПолучитьОбъект;
Если ВладелецОбъект <> Неопределено Тогда
ПолучателиОбъектаВладельца = ОбменДаннымиСобытия.ОпределитьПолучателей(ВладелецОбъект, ПРО.ИмяПланаОбмена);
Если ПолучателиОбъектаВладельца <> Неопределено Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Получатели, ПолучателиОбъектаВладельца, Истина);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
И также для Справочник.ФизическиеЛица ищем и удаляем строку:
РежимВыгрузкиПриНеобходимости
Кроме того, нам может потребоваться удалить условие Если Объект.ЭтоГруппа Тогда Отказ = Истина; КонецЕсли для справочника "Физические лица", если оно присутствует и мешает регистрации.
Загрузка модифицированных правил: После внесения изменений нам необходимо загрузить модифицированные правила обратно в конфигурации ЗУП и БП. Это можно сделать через настройки синхронизации данных, используя опцию "Загрузить правила регистрации объектов" или "Загрузить правила конвертации объектов".
После применения этих изменений, при добавлении или изменении физического лица в ЗУП, оно будет автоматически регистрироваться к обмену и выгружаться в БП, независимо от его участия в документах "Отражение зарплаты в бухучете".
Если мы не хотим или не можем изменять типовые правила обмена, мы можем использовать "Консоль запросов с возможностью обработки полученного результата" для ручной регистрации изменений. Этот метод позволяет принудительно зарегистрировать выбранные физические лица к обмену.
Отбор данных: Откроем консоль запросов в ЗУП и создадим запрос, который отбирает нужные нам физические лица. Например, мы можем выбрать всех физических лиц или отфильтровать их по определенным критериям.
Обработка результата запроса: После выполнения запроса и получения списка физических лиц, мы переходим к обработке полученного результата. Нам потребуется выполнить следующий код:
Для каждого Строка из Результат Цикл
Узел = ПланыОбмена.ОбменЗарплата3Бухгалтерия3.НайтиПоНаименованию("ИмяБазыБП",истина);
ПланыОбмена.ЗарегистрироватьИзменения(Узел,Строка.Ссылка);
КонецЦикла;
В этом коде:
Результат – это таблица, полученная из нашего запроса, содержащая ссылки на физических лиц.ПланыОбмена.ОбменЗарплата3Бухгалтерия3 – это наш план обмена между ЗУП 3 и БП 3."ИмяБазыБП" – необходимо заменить на точное наименование узла вашей базы БП, которое указано в настройках синхронизации данных в ЗУП.ПланыОбмена.ЗарегистрироватьИзменения(Узел,Строка.Ссылка); – эта строка регистрирует изменение для каждого физического лица (Строка.Ссылка) в указанном узле обмена (Узел).Запуск синхронизации: После выполнения этого кода мы запускаем стандартную синхронизацию данных. Все зарегистрированные физические лица должны быть выгружены из ЗУП.
Важное примечание: Как показывает практика, даже после такой принудительной выгрузки, БП может "отмахнуться" от данных и не принять их, если физические лица не были задействованы в зарплатных документах. В таких случаях может потребоваться дополнительный обходной путь, описанный ниже.
Если ни изменение правил, ни ручная регистрация через консоль запросов не дают желаемого результата (например, БП не принимает данные), мы можем использовать этот обходной путь. Он основан на том, что типовой механизм регистрирует физических лиц, когда они участвуют в зарплатных документах.
Создание фиктивных документов: В ЗУП мы создаем два документа:
Оба документа мы заполняем всеми сотрудниками, чьи физические лица нам нужно синхронизировать. Важно, чтобы физические лица попали на вкладку "Удержания" в документе "Отражение зарплаты в бухучете" (хотя бы с нулевыми суммами).
Запуск синхронизации: После создания и проведения этих документов мы запускаем синхронизацию данных ЗУП-БП.
Удаление фиктивных документов: После успешной синхронизации и принятия данных в БП, мы удаляем созданные нами "Начисление зарплаты" и "Отражение зарплаты в бухучете" как в ЗУП, так и в БП. Это позволит избежать искажения учета.
Этот метод является трудоемким, но он гарантирует, что БП примет данные, поскольку для нее они будут выглядеть как стандартный зарплатный обмен.
Еще один вариант, который мы можем рассмотреть, — это создание второй синхронизации ЗУП-БП, используя "Универсальный формат обмена" или загрузку данных в Бухгалтерию 3.0 в формате XML.
Этот подход имеет свои особенности:
Независимая регистрация: Согласно отзывам, синхронизация через универсальный формат регистрирует физических лиц независимо от их участия в зарплатных документах. БП, как правило, принимает такие данные без проблем.
Потенциальные сложности: Мы должны быть осторожны, если у нас есть "Зарплатные проекты". Если в ЗУП зарплатные проекты настроены, но у физических лиц отсутствуют банковские счета или другие важные реквизиты, универсальный обмен может выдавать ошибки проверки данных XDTO. Например, сообщение "Ошибка проверки данных XDTO: Структура объекта '/КлючевыеСвойства' не соответствует типу: { Проверка свойства 'Банк': форма: Элемент имя: { тип: { Не установлено значение одного из следующих свойств: НомерСчета" указывает на проблему с отсутствием реквизита "НомерСчета" для банковского счета.
Если мы выбираем этот путь, нам необходимо внимательно проверить полноту данных физических лиц, особенно связанных с банковскими реквизитами и зарплатными проектами, чтобы избежать ошибок обмена.
В некоторых случаях проблема может быть решена изменением настроек детализации выгрузки документов в параметрах синхронизации.
Настройки обмена: В ЗУП зайдем в настройки синхронизации данных с БП.
Детализация выгрузки: Найдем параметр, отвечающий за детализацию выгрузки документов (например, для документов "Отражение зарплаты в бухучете"). Вместо значения "Сводно по всем" мы можем установить "По каждому сотруднику".
Дата выгрузки: Также мы можем попробовать изменить дату выгрузки данных на более раннюю, чтобы инициировать повторную регистрацию и выгрузку.
Это может помочь в тех ситуациях, когда типовой механизм не "видит" сотрудников для регистрации.
Встречается и обратная ситуация: когда учет велся в БП, а затем был приобретен ЗУП, и необходимо перенести физических лиц из БП в новую базу ЗУП. Типовая первая синхронизация обычно переносит только данные по организации.
Для переноса физических лиц из БП в ЗУП мы можем использовать следующий алгоритм:
Начальная настройка в ЗУП: Откроем в ЗУП обработку "Начальная настройка" (или "Помощник начальной настройки программы"). В ней должна быть опция или галка "Перенести данные из других программ" (или аналогичная формулировка).
Выгрузка данных из БП: Следуя указаниям помощника, мы сохраняем внешнюю обработку для выгрузки данных из БП 3.0. Затем открываем эту обработку в БП через меню "Файл" -> "Открыть" и выгружаем данные (включая физических лиц) в файл.
Загрузка данных в ЗУП: С помощью того же помощника в ЗУП мы загружаем созданный файл с данными. Это позволит перенести физических лиц и связанные с ними данные из БП в ЗУП.
Этот метод является стандартным для начального переноса данных при переходе на новую учетную систему.
Отключение использования библиотек БСП: Некоторые пользователи сообщали об успехе, когда в настройках ЗУП и БП отключали режим "Использовать библиотеки БСП" в составе регистрации изменений. После этого можно вручную добавить нужное физическое лицо к выгрузке, и обмен проходит.
Настройка отражения зарплаты: Перед включением синхронизации данных между ЗУП и БП, нам необходимо настроить отражение зарплаты в обоих приложениях. В БП нужно включить режим "Во внешней программе" и задать настройки учета заработной платы. В ЗУП способы отражения зарплаты в учете характеризуются наименованием и описываются в справочнике "Способы отражения зарплаты в бухгалтерском учете". Наименование элементов этого справочника должно совпадать в обеих базах для корректной передачи данных.
Настройка обмена в одной программе: Непосредственно настройку обмена достаточно установить в одной из программ (ЗУП или БП) и выгрузить файл с настройками для загрузки в другую систему.
Выбор конкретного решения зависит от нашей ситуации, наличия доступа к конфигурированию и количества физических лиц, требующих синхронизации. В большинстве случаев, изменение правил регистрации является наиболее чистым и долгосрочным решением, но при его невозможности, обходные пути также помогают добиться нужного результата.