В процессе эксплуатации связки программ 1С:Зарплата и Управление Персоналом 3.1 и 1С:Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с ситуацией, когда данные в документах (суммы, сотрудники, счета) успешно обновляются при синхронизации, но изменение статуса документа — например, установка пометки на удаление или снятие с проведения в ЗУП — совершенно игнорируется базой-приемником. Рассмотрим детально, почему это происходит и как настроить корректную трансляцию этих состояний.
Для начала разберем, как именно современные конфигурации 1С передают информацию об удалении. В актуальных версиях обмен строится на универсальном формате EnterpriseData. В отличие от старых правил обмена (XML), где пометка на удаление была просто реквизитом DeletionMark, в новом формате это событие может обрабатываться как отдельный тип сообщения — "Удаление объекта".
Проанализируем ситуацию: если в базе ЗУП мы помечаем ведомость на удаление, платформа должна сформировать в файле выгрузки специальную запись. Однако, если в правилах обработки на стороне Бухгалтерии установлен программный запрет на изменение статуса проведенных ранее документов или на само удаление данных, пришедших извне, пометка не будет установлена. Выясним основные причины такого поведения.
Одной из самых распространенных причин является установленная Дата запрета загрузки данных. Часто бухгалтеры закрывают период в Бухгалтерии раньше, чем завершается работа в ЗУП. Если ведомость, которую вы пытаетесь пометить на удаление, относится к периоду до даты запрета, синхронизация проигнорирует это изменение.
Разберем, как это проверить:
Важно понимать, что при закрытом периоде программа защищает данные от любых изменений, включая смену статуса Проведен или ПометкаУдаления.
При настройке синхронизации мы часто устанавливаем фильтры: по организациям, подразделениям или дате начала выгрузки документов. Посмотрим на ситуацию с технической стороны: когда мы помечаем документ на удаление, он может перестать соответствовать условиям фильтра. Например, если в ЗУП при очистке документа случайно была удалена организация или изменена дата на очень старую, такой объект просто не попадет в пакет выгрузки.
Проанализируем состав отправляемых данных:
Если документа нет в списке, его нужно зарегистрировать вручную. Однако, как отмечают пользователи, даже ручная регистрация не всегда помогает, если нарушена логика работы правил на стороне приемника.
Рассмотрим важную особенность документа Ведомость. В Бухгалтерии этот документ редко существует сам по себе — на его основании обычно создаются Списание с расчетного счета или Расходный кассовый ордер. Если ведомость уже "оплачена" в Бухгалтерии (т.е. на нее ссылается проведенный финансовый документ), типовые правила обмена могут блокировать снятие проведения или пометку на удаление, чтобы не нарушить целостность учета и не оставить финансовые документы "висящими в воздухе".
Выясним, есть ли связи у документа:
В Бухгалтерии откроем ведомость и проверим Структуру подчиненности. Если там есть проведенные документы оплаты, их необходимо распроводить вручную перед тем, как синхронизация сможет "удалить" ведомость из ЗУП.
Проанализируем раздел Предупреждения при синхронизации данных (находится в меню синхронизации). 1С ведет учет версий объектов. Если после последней успешной синхронизации документ был изменен вручную и в ЗУП, и в Бухгалтерии, возникает ситуация Коллизии. По умолчанию система может быть настроена так, что приоритет отдается данным в Бухгалтерии, и изменения из ЗУП (включая пометку на удаление) будут проигнорированы как "менее приоритетные".
В этом случае в журнале предупреждений появится запись, которую нужно подтвердить вручную, выбрав версию из ЗУП как верную.
Если стандартные настройки не помогают, придется заглянуть "под капот" обмена. Хотя в управляемых формах правила зашиты в конфигурацию, мы можем проверить настройки через параметры обмена. В некоторых релизах существовал флаг "Разрешить удаление объектов в приемнике". Если он снят, пометки на удаление игнорируются программно.
Также стоит проверить модуль менеджера плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Рассмотрим пример кода, который может отвечать за игнорирование статусов в правилах обработки (условно):
// Фрагмент логики обработки удаления
Если СвойстваОбъекта.ПометкаУдаления И ОбъектПриемник.Проведен Тогда
// Если объект в БП уже проведен, некоторые правила
// могут запрещать установку пометки без ручного вмешательства
Возврат;
КонецЕсли;
В таких случаях решением является либо обновление конфигураций до актуальных релизов (где исправлены ошибки работы с флагом DeletionMark), либо использование расширений для корректировки правил загрузки.
Подводя итог, если ведомости не помечаются на удаление в Бухгалтерии, выполним следующие шаги:
План обмена.Помните, что пометка на удаление — это не просто смена "галочки", а системное событие, которое требует отсутствия блокировок со стороны связанных объектов и настроек безопасности данных в базе-приемнике.