Как настроить синхронизацию ЗУП и БП: часть организаций сводно, часть детально?

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

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

В типовых настройках синхронизации переключатель "С детализацией по сотрудникам" устанавливается глобально для всего узла обмена. Если у вас ведется учет по нескольким организациям в одной базе ЗУП и выгружается в одну базу БП, типовой функционал не позволяет гибко настроить детализацию для каждой фирмы отдельно. Попытка создать вторую настройку синхронизации с той же базой, но с другими правилами, приведет к ошибке неуникальности префиксов и потенциальному задвоению данных (GUID).

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

Анализ проблемы и выбор стратегии

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

  1. Конфиденциальность: Скрыть зарплаты топ-менеджмента или сотрудников головной организации от рядовых бухгалтеров.
  2. Оптимизация: Уменьшить объем данных в бухгалтерии, если по части организаций детальный учет на счете 70 не требуется.

Рассмотрим два основных технических решения, предложенных в обсуждении:

  1. Модификация на стороне источника (ЗУП): Вмешательство в процесс выгрузки через расширение конфигурации.
  2. Модификация на стороне приемника (БП): Сворачивание данных после их загрузки.

Также обсудим критические моменты, связанные с налогообложением (УСН) и альтернативные варианты (RLS).

Решение 1: Модификация выгрузки на стороне ЗУП (через Расширение)

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

Для реализации этого подхода нам потребуется создать расширение конфигурации в ЗУП. Разберем алгоритм действий:

Шаг 1. Добавление признака в справочник Организации

В расширение добавляем справочник Организации и создаем новый реквизит (булево), например, ВыгружатьЗарплатуСводно. Выводим его на форму элемента справочника, чтобы администратор мог управлять настройкой в пользовательском режиме.

Шаг 2. Перехват выгрузки документа "Отражение зарплаты в бухучете"

Стандартный обмен данными использует Правила конвертации объектов (ПКО) или планы обмена. Однако самым надежным способом вмешаться в данные без правки сложных XML-правил является подписка на событие или вмешательство в менеджер обмена при формировании пакета.

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

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

  1. Проверяем, какой объект сейчас выгружается. Если это ДокументОбъект.ОтражениеЗарплатыВБухучете, идем дальше.
  2. Получаем организацию документа.
  3. Проверяем наш добавленный реквизит ВыгружатьЗарплатуСводно у этой организации.
  4. Если истина — программно сворачиваем табличные части документа во временной структуре или копии объекта, которая пойдет в XML.

Код сворачивания должен группировать данные по Подразделение, СтатьяРасходов, СпособОтраженияЗарплатыВБухучете и суммировать ресурсы (Сумма, НДФЛ и т.д.), очищая при этом поле Сотрудник (или ФизическоеЛицо).

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

Сложность: Требует квалификации программиста для внедрения в механизмы БСП (Библиотеки стандартных подсистем) или XDTO-пакетов.

Решение 2: Сворачивание данных на стороне БП (Подписка на событие)

Этот способ проще в реализации и часто используется как "обходной путь". Идея заключается в том, чтобы выгружать из ЗУП всё детально (в настройках синхронизации ставим галочку "С детализацией по сотрудникам"), а уже в Бухгалтерии при записи документа "зачищать" лишнее по определенным организациям.

Давайте посмотрим, как это реализовать:

Шаг 1. Настройка синхронизации

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

Шаг 2. Создание подписки на событие в БП

В конфигурации 1С:Бухгалтерия (через расширение) создаем подписку на событие ПередЗаписью для документа ОтражениеЗарплатыВБухучете.

В обработчике подписки пишем следующий алгоритм:


Процедура ОтражениеЗарплатыПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    
    // Проверяем, включен ли обмен данными. 
    // Если документ правит пользователь руками, возможно, сворачивать не надо.
    Если Не Источник.ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    // Список организаций, по которым нужно сворачивать данные
    // Лучше хранить это в регистре или доп. реквизите, как в первом способе
    НужноСворачивать = Ложь; 
    Если Источник.Организация.Код = "00001" Тогда // Пример условия
        НужноСворачивать = Истина;
    КонецЕсли;

    Если НужноСворачивать Тогда
        // Выполняем свертку табличной части "Начисления"
        // Группируем по Подразделению, Способу отражения и т.д.
        // Очищаем субконто "Сотрудники"
        СвернутьТабличнуюЧастьНачисления(Источник);
        
        // Аналогично для НДФЛ и Удержаний, если требуется
    КонецЕсли;

КонецПроцедуры

Важный нюанс: В БП аналитика на счете 70 обычно требует заполнения субконто "Работники организаций". При сводной проводке это субконто либо остается пустым, либо заполняется служебным значением (например, "Сотрудники (сводно)"). Убедитесь, что ваш код корректно обрабатывает это заполнение, иначе документ не проведется.

Недостатки: Данные о зарплате сотрудников фактически приходят в базу БП в момент обмена. Если включить версионирование объектов или посмотреть XML-файл обмена, данные можно увидеть. Это "защита от честного человека" (от рядового бухгалтера), но не от администратора или аудитора базы.

Особенности учета: УСН и расходы

При выборе метода "сводно" необходимо учитывать систему налогообложения организации. Если применяется УСН (Доходы минус Расходы), возникают серьезные сложности.

Для признания расходов на оплату труда в КУДиР (Книга учета доходов и расходов) системе необходимо выполнение двух условий:

  1. Начисление зарплаты (Отражение зарплаты).
  2. Выплата зарплаты (РКО или Списание с расчетного счета).

В типовой 1С:Бухгалтерии механизмы признания расходов ориентируются на аналитику по сотрудникам. Если вы свернули начисления до одной строки "Все сотрудники", а выплаты из банка приходят ведомостями (или даже сводными платежками, но без прямой связки), программа не сможет автоматически "схлопнуть" начисление и оплату.

В результате, расходы на оплату труда не попадут в КУДиР автоматически. Бухгалтеру придется использовать документ ЗаписьКнигиУчетаДоходовИРасходов и вносить суммы вручную. Поэтому для организаций на УСН настоятельно рекомендуется использовать детальную выгрузку.

Альтернатива: Ограничение доступа (RLS)

Если единственная причина, по которой вы хотите делать сводную выгрузку, — это желание скрыть доходы руководства от рядовых бухгалтеров, рассмотрите использование механизма RLS (Row Level Security) в 1С:Бухгалтерии КОРП (и частично в ПРОФ).

Вместо того чтобы ломать обмен данными, можно:

  1. Выгружать всё детально.
  2. Настроить "Группы доступа физических лиц".
  3. Закрыть доступ к просмотру данных по определенным физлицам (директорам) для роли "Бухгалтер".

В этом случае проводки будут формироваться корректно, отчетность (6-НДФЛ, РСВ) в БП можно будет собрать (если это делает Главбух с полными правами), но рядовой сотрудник вместо фамилии директора увидит <Объект не найден> или сообщение об ограничении доступа.

Резюме

Давайте подведем итог. Стандартными средствами настроить "гибридную" выгрузку нельзя. Попытка создать второй узел обмена приведет к ошибкам. У вас есть три пути:

Вне зависимости от выбранного метода, помните про ограничения УСН: сводная зарплата там требует ручного отражения в налоговом учете.

← На главную