Почему при пометке на удаление документ не регистрируется в обмене УТ 11 — БП 3.0?

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

При работе с типовыми обменами между конфигурациями «1С:Управление торговлей» (УТ) и «1С:Бухгалтерия предприятия» (БП), работающими на базе универсального формата (EnterpriseData), специалисты часто сталкиваются с ситуацией, когда документ, помеченный на удаление в базе-источнике, упорно отказывается «переезжать» в базу-приемник. В итоге в БП документ остается активным или проведенным, что приводит к расхождениям в учете. Рассмотрим подробно причины этого поведения и способы решения проблемы.

Анализируем механизм регистрации изменений

Для начала разберем, как объект попадает в обмен. В системе 1С существует план обмена, за которым закреплены определенные правила. Регистрация объекта может происходить автоматически (через подписки на события) или вручную. Однако, даже если мы пытаемся зарегистрировать объект принудительно через обработку РегистрацияИзмененийДляОбмена, система все равно пропускает этот запрос через фильтры, заложенные в коде или правилах регистрации объектов (ПРО).

Выясним причину, по которой пометка на удаление игнорируется. Оказывается, в типовых правилах часто заложена логика «защиты от мусора». Если документ был создан ошибочно, не был проведен (остался в статусе черновика) и тут же помечен на удаление, система считает, что такой объект не представляет ценности для бухгалтерской базы. В этом случае срабатывает отказ в регистрации.

Разберем влияние статуса проведения документа

Проанализируем интересную особенность, выявленную на практике. Логика регистрации в типовых конфигурациях часто завязана на «состояние» документа. Рассмотрим сценарии:

  1. Документ был проведен, затем помечен на удаление: В этом случае система видит, что объект ранее был «значимым», и успешно регистрирует изменение (снятие проведения и пометку), чтобы в БП данные также актуализировались.
  2. Документ был просто записан, а потом помечен на удаление: Здесь система регистрации может счесть, что объект никогда не передавался в приемник (так как непроведенные документы часто исключаются фильтрами), и игнорирует пометку.
  3. Документ был проведен, затем перезаписан без проведения, а после помечен: Это самый коварный сценарий. Цепочка состояний может сбить с толку стандартные подписки на события, и объект «зависнет» в БП в своем последнем успешном состоянии.

Изучаем Менеджер обмена через универсальный формат

В современных конфигурациях за логику выгрузки отвечает не только план обмена, но и специальный программный модуль — МенеджерОбменаЧерезУниверсальныйФормат. Это обработка, в которой прописаны правила конвертации данных в формат XML (JSON).

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


Процедура ПриРегистрацииДанных(Данные, ПараметрыРегистрации)
    
    Если Данные.ПометкаУдаления И НЕ ОбъектБылРанееВыгружен(Данные.Ссылка) Тогда
        ПараметрыРегистрации.Отказ = Истина;
        Возврат;
    КонецЕсли;

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

Здесь ОбъектБылРанееВыгружен — это условная функция, которая проверяет наличие записи о синхронизации объекта в специальных регистрах сведений. Если записи нет, регистрация пометки на удаление будет заблокирована.

Проверяем даты запрета и фильтры

Еще одна причина, по которой пометка не передается — это дата запрета загрузки или выгрузки данных. Важно помнить, что пометка на удаление — это тоже изменение объекта. Если дата документа попадает в закрытый период, установленный в настройках синхронизации данных, то даже ручная регистрация может «слететь» в момент начала обмена.

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

Как решить проблему: пошаговая инструкция

Если вы столкнулись с тем, что документ не уходит в БП с пометкой на удаление, выполните следующие действия:

  1. Проверьте статус документа в источнике: Был ли он вообще когда-либо проведен? Если нет, попробуйте его сначала провести, а затем снова пометить на удаление. Это принудительно вызовет событие регистрации.
  2. Используйте типовую обработку регистрации: Зайдите в «Параметры синхронизации данных» — «Состав отправляемых данных». Найдите нужный документ и проверьте, есть ли он в списке зарегистрированных. Если нет — добавьте его вручную.
  3. Анализируйте Журнал регистрации: В базе-приемнике (БП) посмотрите журнал регистрации в момент обмена. Возможно, объект приходит, но срабатывает Дата запрета загрузки на стороне бухгалтерии.
  4. Корректировка правил (для продвинутых): Если проблема системная и касается множества документов, придется использовать конфигурацию «Конвертация данных 3.0», чтобы изменить Правила Регистрации Объектов (ПРО). Нужно найти соответствующее ПКО (правило конвертации объекта) и убедиться, что свойство Отказ не устанавливается в Истина при наличии пометки удаления.

Заключение

Проблема с «неуходящей» пометкой удаления — это чаще всего не баг, а заложенная разработчиками логика фильтрации данных. Система старается минимизировать передачу лишней информации. Однако в реальном учете это часто мешает. Понимание того, что МенеджерОбменаЧерезУниверсальныйФормат и статус проведения играют ключевую роль, позволит вам быстро локализовать и устранить расхождения между базами УТ и БП.

← На главную