При обмене данными между конфигурациями 1С:Зарплата и управление персоналом (ЗУП) и 1С:ERP Управление предприятием часто возникает ситуация, когда, несмотря на корректную выгрузку "Ведомости на выплату зарплаты" из ЗУП, соответствующий документ не появляется в базе ERP — для контроля таких ситуаций есть автоматическое сравнение документов между базами 1С. Эта проблема вызывает затруднения в учете и планировании денежных средств. Давайте подробно разберем, почему так происходит, и как мы можем решить эту задачу.
Изначально, мы наблюдаем, что настройки синхронизации в ЗУП предусматривают выгрузку сведений о выплате заработной платы как "Ведомостей на выплату зарплаты". При формировании файла обмена мы видим, что данные о ведомости, включая детальную информацию по суммам и сотрудникам, действительно присутствуют в виде XML-тега <Документ.ВедомостьНаВыплатуЗарплаты>. Однако, после загрузки этого файла в ERP, ни одной ведомости не создается (решить проблему поможет доработка типового обмена EnterpriseData для ЗУП и ERP). Создается впечатление, что данные либо не загружаются вовсе, либо обрабатываются совершенно иначе, чем мы ожидаем.
Для начала, мы можем проанализировать процесс обмена, используя стандартные инструменты 1С:Предприятия. Если мы сталкиваемся с такой проблемой, первым делом рекомендуется включить отладчик и просмотреть журнал регистрации в базе ERP. Это позволит нам отследить ход выполнения операций по загрузке данных и выявить, на каком этапе происходит отклонение от ожидаемого поведения. В частности, наше внимание должно быть направлено на общий модуль обмена, который обычно имеет название, схожее с МенеджерОбменаЧерезУниверсальныйФормат. В этом модуле сконцентрированы все процедуры обработки входящих данных, поступающих из других систем.
Ключевым моментом, который мы должны понять, является то, что в типовых конфигурациях 1С:ERP Управление предприятием не предусмотрена прямая загрузка документа "Ведомость на выплату зарплаты" из ЗУП. Разработчики системы 1С изначально заложили иной механизм: вместо прямого создания ведомости, данные о выплате заработной платы из ЗУП используются для формирования документа "Заявка на расходование денежных средств" (Заявка на ДС) в ERP. Этот подход позволяет более гибко управлять денежными потоками и включать выплаты зарплаты в общий процесс планирования и согласования расходов.
Это подтверждается наблюдениями опытных пользователей и анализом внутреннего кода. В файле обмена мы можем видеть, что для типа объекта Документ.ВедомостьНаВыплатуЗарплаты секция <msg:Receiving/> остается пустой, что указывает на отсутствие прямого механизма приема этого документа как такового в ERP. Тем не менее, ЗУП исправно выгружает все необходимые данные, включая информацию по НДФЛ, суммам и физическим лицам, как это видно из фрагмента XML:
<Документ.ВедомостьНаВыплатуЗарплаты>
<msg:AdditionalInfo xmlns:d4p1="http://v8.1c.ru/8.1/data/core" xsi:type="d4p1:Structure">
<d4p1:Property name="ВзысканныеСуммы">
<d4p1:Value xsi:type="d4p1:ValueTable">
<d4p1:column>
<d4p1:Name>ИдентификаторСтроки</d4p1:Name>
<d4p1:ValueType>
<d4p1:Type>xs:string</d4p1:Type>
<d4p1:StringQualifiers>
<d4p1:Length>36</d4p1:Length>
<d4p1:AllowedLength>Variable</d4p1:AllowedLength>
</d4p1:StringQualifiers>
</d4p1:ValueType>
</d4p1:column>
<d4p1:column>
<d4p1:Name>ВзысканнаяСумма</d4p1:Name>
<d4p1:ValueType>
<d4p1:Type>xs:decimal</d4p1:Type>
<d4p1:NumberQualifiers>
<d4p1:Digits>15</d4p1:Digits>
<d4p1:FractionDigits>2</d4p1:FractionDigits>
<d4p1:AllowedSign>Any</d4p1:AllowedSign>
</d4p1:NumberQualifiers>
</d4p1:ValueType>
</d4p1:column>
<!-- ... другие колонки ... -->
</d4p1:ValueTable>
</d4p1:Property>
<d4p1:Property name="НДФЛ">
<d4p1:Value xsi:type="d4p1:ValueTable">
<!-- ... детали НДФЛ ... -->
<Строка>
<Сумма>877</Сумма>
<ФизическоеЛицо>
<Ссылка>c27b2391-3cc5-11e4-ac01-485b3919ede5</Ссылка>
<ФИО>Василий Михайлович</ФИО>
<Фамилия>Тишкин</Фамилия>
<Имя>Василий</Имя>
<Отчество>Михайлович</Отчество>
<ДатаРождения>1980-05-12</ДатаРождения>
<КодВПрограмме>0000001641</КодВПрограмме>
<ИНН>582668524191</ИНН>
</ФизическоеЛицо>
</Строка>
</d4p1:ValueTable>
</d4p1:Property>
<ВидДоходаИсполнительногоПроизводства>ЗарплатаВознаграждения</ВидДоходаИсполнительногоПроизводства>
</msg:AdditionalInfo>
</Документ.ВедомостьНаВыплатуЗарплаты>
Это означает, что ЗУП свою работу выполнил и отправил все необходимые данные. Теперь задача ERP – решить, как эти данные будут использованы.
Для понимания логики обработки данных в ERP, мы можем обратиться к процедуре, отвечающей за получение ведомостей. В общем модуле обмена через универсальный формат, мы найдем процедуру ПОД_Документ_ВедомостьНаВыплатуЗарплаты_Получение_ПриОбработке. Именно эта процедура определяет, будет ли создаваться документ на основании полученных данных. Рассмотрим ее структуру:
Процедура ПОД_Документ_ВедомостьНаВыплатуЗарплаты_Получение_ПриОбработке(ДанныеXDTO, ИспользованиеПКО, КомпонентыОбмена)
ИспользоватьЗаявкиНаРасходованиеДС = КомпонентыОбмена.ПараметрыКонвертации.ИспользоватьЗаявкиНаРасходованиеДенежныхСредств;
Для Каждого ТекИспользованиеПКО Из ИспользованиеПКО Цикл
ИспользованиеПКО[ТекИспользованиеПКО.Ключ] = ИспользоватьЗаявкиНаРасходованиеДС;
КонецЦикла;
НДФЛ = Неопределено;
Если Не (ДанныеXDTO.Свойство("НДФЛ", НДФЛ)
И ЗначениеЗаполнено(НДФЛ)) Тогда
ИспользованиеПКО["Документ_ВедомостьВЗаявку_НДФЛ_Получение"] = Ложь;
КонецЕсли;
КонецПроцедуры
Как мы видим из кода, ключевым параметром здесь является КомпонентыОбмена.ПараметрыКонвертации.ИспользоватьЗаявкиНаРасходованиеДенежныхСредств. Если этот параметр установлен в значение Ложь (как было обнаружено в процессе отладки), то для каждого объекта, который должен был бы быть сконвертирован в заявку (в данном случае, ведомость), переменная ИспользованиеПКО также будет установлена в Ложь. Это означает, что система ERP не будет производить конвертацию ведомости в заявку, и, соответственно, никакие документы не будут созданы.
Кроме того, в процедуре предусмотрена проверка наличия данных по НДФЛ. Если данные по НДФЛ отсутствуют или не заполнены, то конвертация в заявку для НДФЛ будет также запрещена, устанавливая ИспользованиеПКО["Документ_ВедомостьВЗаявку_НДФЛ_Получение"] = Ложь;.
Таким образом, основная причина, по которой ведомости не создаются в ERP, заключается в том, что функциональная опция для использования заявок на расходование денежных средств в ERP отключена.
Чтобы обеспечить корректное создание заявок на расходование денежных средств в ERP на основании ведомостей из ЗУП, нам необходимо активировать соответствующую функциональную опцию в настройках ERP. Важно понимать, что включение этой опции может повлиять на общий бизнес-процесс управления денежными средствами, переводя его на работу с заявками. Если ваша база ERP уже является рабочей и не экспериментальной, мы должны быть готовы к тому, что это изменение затронет многие операции с платежами.
Настройка в 1С:Зарплата и управление персоналом (ЗУП):
Для правильной выгрузки ведомостей нам необходимо убедиться, что в настройках обмена ЗУП выбрана соответствующая опция. Перейдите в раздел "Дополнительные настройки отправки документов" и убедитесь, что там выбрана опция "Отправлять как заявки на расход денежных средств". Если по ошибке выбрана опция "Отправлять как ведомости на выплату зарплаты", выгрузка, скорее всего, не произойдет или не будет обработана корректно в ERP.
Настройка в 1С:ERP Управление предприятием:
Откройте базу ERP и перейдите в раздел:
НСИ и администрирование -> Казначейство и взаиморасчеты -> Заявки на расходование денежных средств
Здесь необходимо установить флажок, активирующий использование заявок на расходование денежных средств. После включения этой опции и перезапуска обмена, система ERP начнет корректно создавать заявки.
Когда опция "Заявки на расходование денежных средств" активирована и синхронизация выполняется корректно, система ERP автоматически создает несколько заявок на расходование денежных средств из одной ведомости на выплату зарплаты из ЗУП:
Заявка на выплату зарплаты: Создается одна заявка с хозяйственной операцией "Выплата по ведомости по зарплатному проекту" или схожей, в зависимости от типа ведомости из ЗУП.
Сумма этой заявки соответствует итоговой сумме "К выплате" из ведомости ЗУП.
Заявка на перечисление налогов и взносов: Создается вторая заявка с операцией "Перечисление налогов и взносов" и признаком "Перечисление в бюджет". Эта заявка предназначена для планирования перечисления удержанных налогов и взносов в соответствующие фонды.
На основании этих созданных заявок на расходование денежных средств в ERP в дальнейшем формируются документы, отражающие фактическое движение денежных средств:
Если по каким-то причинам стандартный механизм с заявками на расходование денежных средств не подходит, и вам критически важно создавать именно документ "Ведомость на выплату зарплаты" в ERP, то это потребует серьезной доработки правил обмена — для этого подойдёт набор доработанных правил обмена EnterpriseData для ERP и ЗУП. Это более сложный путь, поскольку типовые правила обмена ERP не предполагают такого сценария.
При доработке правил обмена, нам придется не только изменить логику в процедурах получения данных, но и решить ряд сопутствующих технических задач:
Создание нового документа: Нам потребуется создать или адаптировать объект "Ведомость на выплату зарплаты" в ERP, если его нет в явном виде, либо переписать правила конвертации из поступающих данных в имеющийся документ.
Заполнение табличной части: Одной из основных трудностей является корректное заполнение табличной части ведомости. Строки в этой табличной части должны быть привязаны к существующим объектам в текущей базе ERP (например, к элементам справочника "Сотрудники", "ФизическиеЛица", "Подразделения" и т.д.). При загрузке данных из внешней базы необходимо будет реализовать алгоритм поиска и сопоставления этих объектов. Если соответствия не будут найдены, потребуется либо создавать новые элементы, либо обрабатывать ошибки.
Взаимосвязь с другими подсистемами: Документ "Ведомость на выплату зарплаты" тесно связан с подсистемами казначейства, бухгалтерского и налогового учета. При создании такого документа вручную или через обмен, нам необходимо будет обеспечить его корректное взаимодействие со всеми этими подсистемами, что может потребовать дополнительных доработок и настроек.
В некоторых случаях, когда стандартный механизм обмена не удовлетворяет уникальным требованиям бизнеса или сталкивается с нетипичными сложностями, мы можем рассмотреть использование внешних обработок. Эти обработки, созданные для импорта ведомостей зарплаты из ЗУП в ERP, могут предложить более гибкие решения без необходимости прямого изменения конфигурации. Однако, их использование также требует тщательной проверки и адаптации к конкретным условиям.
Помимо основных решений, мы должны учитывать ряд дополнительных аспектов и потенциальных сложностей, которые могут возникнуть при синхронизации ведомостей:
Проверка журнала регистрации и отладчик: Всегда используем журнал регистрации и отладчик для детального анализа причин, по которым ведомости или заявки не создаются. Это наш основной инструмент для диагностики. Мы уже рассмотрели ключевую процедуру ПОД_Документ_ВедомостьНаВыплатуЗарплаты_Получение_ПриОбработке, но могут быть и другие точки отказа.
Ручная синхронизация справочников: Перед выгрузкой документов всегда рекомендуется выполнять ручную синхронизацию критически важных справочников, таких как СтруктураПредприятия, ФизическиеЛица, Сотрудники и СпособыОтраженияЗарплатыВБухгалтерскомУчёте. Это помогает избежать ошибок из-за отсутствия или несоответствия ссылочных данных.
Согласование заявок: В ERP предусмотрен мощный механизм согласования заявок на расходование денежных средств — его расширяет автоматизация маршрутов согласования документов в 1С:ERP. После их создания они могут пройти многоэтапный процесс утверждения ответственными лицами. Мы должны быть готовы настроить этот процесс в соответствии с внутренними регламентами компании.
Изменение даты выплаты: Если бухгалтер изменяет дату выплаты в ЗУП уже после того, как ведомость была выгружена и на ее основе создана заявка в ERP, то при следующем обмене может сформироваться новая заявка. В таких случаях старую заявку в ERP, возможно, придется удалять вручную, чтобы избежать дублирования или некорректного планирования.
Отражение НДФЛ: Мы можем столкнуться с необходимостью формирования отчета по НДФЛ в ЗУП без привязки к документу СписаниеБезналичныхДенежныхСредств, то есть сразу после создания ведомости на перечисление. В ERP такие процессы могут требовать дополнительной настройки и иногда сопровождаются ошибками распределения налогов. Для подготовки чистых данных в ведомостях есть исправление ошибочных начислений и задолженностей в 1С:ЗУП. Следует внимательно проверять корректность учета НДФЛ после синхронизации.
Использование разных организаций и баз ЗУП: При использовании нескольких организаций в ERP и отдельных баз ЗУП для каждой, справочник СтруктураПредприятия может выгружаться во все базы целиком. Это требует особого внимания при настройке синхронизации и разграничении прав доступа, чтобы избежать нежелательного смешивания данных или предоставления избыточных прав.
Таким образом, проблема не создания "Ведомостей на выплату зарплаты" в ERP при обмене из ЗУП имеет четкое решение, связанное с активацией функциональной опции "Заявки на расходование денежных средств" в ERP и корректной настройкой обмена в ЗУП. Если же требуются более глубокие изменения или специфическое поведение, мы должны быть готовы к доработке правил обмена и решению сопутствующих интеграционных задач.