При работе в связке программ 1С:ЗУП и 1С:Бухгалтерия часто возникает задача оперативной передачи данных о сотрудниках. Стандартная синхронизация в первую очередь ориентирована на перенос физических лиц и данных о начислениях через документ Отражение зарплаты в бухучете в конце месяца. Однако бухгалтерии может потребоваться информация о сотрудниках (должность, подразделение) в течение месяца для оформления доверенностей, авансовых отчетов, учета спецодежды и других хозяйственных операций. Давайте разберемся, как решить эту задачу.
Проанализируем ситуацию: нам нужно, чтобы новые сотрудники, принятые в ЗУП, оперативно появлялись в БП со всеми необходимыми кадровыми данными, не дожидаясь конца расчетного периода. Рассмотрим несколько способов решения этой задачи, от простого к более продвинутому.
Для начала выясним, как работает штатный обмен. В стандартной настройке синхронизации между 1С:ЗУП и 1С:БП основной фокус сделан на обмене справочником Физические лица. Это логично, так как в бухгалтерии расчеты ведутся именно с физлицами.
Информация из справочника Сотрудники, включая их должность и подразделение, как правило, переносится в составе документа Отражение зарплаты в бухучете. Этот документ является итоговым за месяц и содержит всю необходимую информацию для формирования проводок по зарплате. Если установить в настройках синхронизации детализацию по сотрудникам, то при проведении этого документа данные о сотрудниках попадут в бухгалтерию. Но это произойдет только после расчета зарплаты, что не решает нашу задачу оперативного учета.
Проблема: Данные нужны в середине месяца, а стандартный механизм передает их в конце. Кроме того, как справедливо отмечают пользователи, даже при синхронизации в БП могут попадать только "физики", а в документах вроде авансового отчета не будет хватать данных о должности или подразделении. Это связано с тем, что полные кадровые сведения хранятся в регистрах, связанных с кадровыми документами (например, Прием на работу), которые по умолчанию из ЗУП в БП не передаются.
Если у вас появляется один-два новых сотрудника в месяц, и нужно срочно передать их в бухгалтерию, можно воспользоваться ручной регистрацией объектов к обмену. Этот способ не требует доработок и подходит для разовых случаев.
Рассмотрим по шагам:
Администрирование – Синхронизация данных.Состав отправляемых данных или похожий по смыслу раздел, где можно управлять составом выгрузки.Зарегистрировать изменения или Состав отправляемых данных, где можно выбрать конкретные объекты.Физические лица и Сотрудники, которых необходимо выгрузить, и зарегистрируйте их для следующего сеанса обмена.Этот метод прост, но не подходит для регулярной работы, так как требует постоянного ручного вмешательства и контроля.
Для постоянного и автоматического решения задачи лучше всего подходит небольшая доработка системы с помощью расширения. Идея состоит в том, чтобы принудительно регистрировать к обмену каждого нового или измененного сотрудника (физическое лицо) сразу после его записи в базе ЗУП. Это гарантирует, что при следующем сеансе обмена по расписанию данные гарантированно уйдут в БП.
Давайте создадим простое расширение, которое будет выполнять эту функцию. Это позволит не изменять типовую конфигурацию и избежать проблем при обновлениях.
Шаг 1. Создание расширения
В режиме конфигуратора создайте новое расширение. Назовем его, например, ПринудительнаяРегистрацияДляОбмена.
Шаг 2. Добавление объекта в расширение
В дереве конфигурации найдите справочник ФизическиеЛица. Захватите его и перенесите в ваше расширение. Система предложит создать форму или модуль — нам нужен модуль объекта.
Шаг 3. Добавление кода в модуль объекта
В расширении откройте модуль объекта справочника ФизическиеЛица и добавьте обработчик события ПередЗаписью с использованием аннотации &После. Это означает, что наш код выполнится сразу после основного типового обработчика.
Вставим следующий код:
&После("ПередЗаписью")
Процедура расш_ПередЗаписью(Отказ)
// Указываем, что для плана обмена между ЗУП и БП
// данный объект нужно выгружать всегда, независимо от стандартных правил.
ОбменДанными.УстановитьРежимВыгрузкиОбъекта(ЭтотОбъект.Ссылка, "ОбменБухгалтерияПредприятияЗарплатаИУправлениеПерсоналом30", Истина);
// Альтернативный, более "низкоуровневый" вариант, который был предложен на форуме
// Он напрямую работает со свойствами объекта, но может быть менее универсальным.
// РежимВыгрузкиПриНеобходимости = Перечисления.РежимыВыгрузкиОбъектовОбмена.ВыгружатьВсегда;
// РежимВыгрузкиПерсональныеДанные = Перечисления.РежимыВыгрузкиОбъектовОбмена.ВыгружатьВсегда;
// НеВыгружатьПерсональныеДанныеФизическихЛиц = Ложь;
КонецПроцедуры
Разберем код подробнее:
&После("ПередЗаписью"): Наша процедура расш_ПередЗаписью будет вызвана после выполнения стандартной процедуры ПередЗаписью объекта ФизическоеЛицо.ОбменДанными.УстановитьРежимВыгрузкиОбъекта(...): Это стандартный и предпочтительный способ регистрации объекта для обмена. Мы передаем в него ссылку на текущий объект (ЭтотОбъект.Ссылка), имя плана обмена (в современных конфигурациях он часто называется ОбменБухгалтерияПредприятияЗарплатаИУправлениеПерсоналом30) и флаг, указывающий на принудительную регистрацию.После добавления этого кода сохраните расширение и подключите его к базе данных ЗУП в пользовательском режиме (Администрирование – Печатные формы, отчеты и обработки – Расширения).
Важно понимать разницу между планом обмена и расписанием синхронизации.
Таким образом, наше расширение отвечает за регистрацию, а стандартные настройки синхронизации — за периодичность отправки. Убедитесь, что у вас настроена автоматическая синхронизация по расписанию с удобным для вас интервалом.
Даже после успешной передачи физического лица и сотрудника в 1С:Бухгалтерия вы можете столкнуться с тем, что в документах (например, в Авансовом отчете) не подставляется должность или подразделение. Это происходит потому, что эти данные не являются простыми реквизитами справочника Сотрудники в БП. Они хранятся в отдельных регистрах сведений и привязываются к кадровым документам (прием, перевод).
Чтобы в БП появилась полная кадровая история, необходимо настроить правила обмена так, чтобы из ЗУП выгружались и кадровые документы (Прием на работу, Кадровый перевод). Внимание: в типовой синхронизации это обычно отключено, так как предполагается, что весь кадровый учет ведется исключительно в ЗУП. Включение передачи этих документов может потребовать более глубокой настройки правил конвертации и должно выполняться с осторожностью, чтобы не вызвать дублирование данных или другие конфликты в учете.
В большинстве случаев для оперативных задач достаточно самого факта наличия сотрудника в БП, а полная детализация появится позже с документом Отражение зарплаты в бухучете.