Почему при синхронизации ЗУП и Бухгалтерии не переносится пометка на удаление ведомостей?

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

В процессе эксплуатации связки программ 1С:Зарплата и Управление Персоналом 3.1 и 1С:Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с ситуацией, когда данные в документах (суммы, сотрудники, счета) успешно обновляются при синхронизации, но изменение статуса документа — например, установка пометки на удаление или снятие с проведения в ЗУП — совершенно игнорируется базой-приемником. Рассмотрим детально, почему это происходит и как настроить корректную трансляцию этих состояний.

Анализ механизма обмена через Enterprise Data

Для начала разберем, как именно современные конфигурации 1С передают информацию об удалении. В актуальных версиях обмен строится на универсальном формате EnterpriseData. В отличие от старых правил обмена (XML), где пометка на удаление была просто реквизитом DeletionMark, в новом формате это событие может обрабатываться как отдельный тип сообщения — "Удаление объекта".

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

1. Проверка даты запрета загрузки данных

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

Разберем, как это проверить:

  1. Перейдем в раздел Администрирование — Синхронизация данных.
  2. Проверим гиперссылку Дата запрета загрузки.
  3. Если дата установлена, попробуем временно ее снять или сдвинуть назад и повторить обмен.

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

2. Настройки фильтрации в плане обмена

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

Проанализируем состав отправляемых данных:

  1. В окне синхронизации нажмем кнопку Состав отправляемых данных (иконка с синим монитором).
  2. Найдем в списке объект Ведомость на выплату зарплаты.
  3. Убедимся, что конкретный экземпляр документа зарегистрирован к обмену.

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

3. Специфика связанных документов в Бухгалтерии

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

Выясним, есть ли связи у документа:

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

4. Коллизии и предупреждения при синхронизации

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

В этом случае в журнале предупреждений появится запись, которую нужно подтвердить вручную, выбрав версию из ЗУП как верную.

5. Программная проверка правил (для администраторов)

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

Также стоит проверить модуль менеджера плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Рассмотрим пример кода, который может отвечать за игнорирование статусов в правилах обработки (условно):


// Фрагмент логики обработки удаления
Если СвойстваОбъекта.ПометкаУдаления И ОбъектПриемник.Проведен Тогда
    // Если объект в БП уже проведен, некоторые правила 
    // могут запрещать установку пометки без ручного вмешательства
    Возврат; 
КонецЕсли;

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

Итоги и рекомендации

Подводя итог, если ведомости не помечаются на удаление в Бухгалтерии, выполним следующие шаги:

  1. Проверим дату запрета загрузки в Бухгалтерии — она не должна быть позже даты документа.
  2. Проверим связи документа — если ведомость оплачена в БП, сначала нужно отменить проведение платежных документов.
  3. Очистим регистрацию документа и зарегистрируем его заново вручную через План обмена.
  4. Обновим платформу и конфигурации — для связки ЗУП 3.1.15 и БП 3.0.85 характерны ошибки обработки статусов, которые были исправлены в более поздних патчах.

Помните, что пометка на удаление — это не просто смена "галочки", а системное событие, которое требует отсутствия блокировок со стороны связанных объектов и настроек безопасности данных в базе-приемнике.

← На главную