Почему при обмене из УТ 10.3 в БП 3.0 документы со снятым флагом «Отражать в БУ» не помечаются на удаление и как это исправить?

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

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

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

Как работает механизм удаления объектов при синхронизации

Для того чтобы понять суть проблемы, сначала проанализируем, каким образом платформа «1С:Предприятие» передает информацию об удалении или исключении объектов из обмена. В основе типового обмена лежит технология «Конвертации данных 2.1» и использование планов обмена.

Когда в базе-источнике (УТ 10.3) происходит изменение объекта, срабатывает следующий алгоритм:

  1. При записи документа со снятым флагом ОтражатьВБухгалтерскомУчете механизм регистрации фиксирует изменение, и ссылка на документ помещается на узел плана обмена.
  2. Во время запуска выгрузки данных движок обмена считывает зарегистрированные объекты и сопоставляет их с Правилами регистрации объектов (ПРО).
  3. Правила регистрации определяют, должен ли данный объект выгружаться. Если объект не соответствует установленным фильтрам (в нашем случае — у него снят признак отражения в БУ), система понимает, что этот документ больше не должен находиться в базе-приемнике.
  4. Вместо выгрузки самого тела документа и его реквизитов, выгружается специальная транзакционная команда <УдалениеОбъекта>, содержащая уникальный идентификатор (GUID) документа.
  5. При загрузке в базу-приемник (БП 3.0) универсальный формат обмена обрабатывает команду удаления. Физически документ из базы не удаляется, так как на него могут ссылаться другие объекты или регистры. Вместо этого для него устанавливается признак ПометкаУдаления = Истина.

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

Выясняем причину сбоя для «Поступлений» и «Возвратов»

Проанализируем, почему стандартное поведение нарушается для документов «Поступление товаров и услуг» и «Возврат товаров от покупателя».

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

Внутри этих обработчиков выполняются запросы к базе данных. Если в тексте этих запросов отсутствует жесткое условие проверки признака ОтражатьВБухгалтерскомУчете = Истина, то происходит следующее:

Пошаговое руководство по исправлению правил регистрации

Чтобы восстановить логику автоматической пометки на удаление, нам потребуется внести изменения в правила регистрации объектов с помощью конфигурации «Конвертация данных 2.1».

Шаг 1. Модернизация запросов в Конвертации данных

Выполним корректировку правил регистрации по шагам:

  1. Запустите информационную базу «Конвертация данных 2.1» и загрузите в нее актуальные правила регистрации (ПРО) для вашего обмена (обычно это XML-файл правил, который можно выгрузить из состава макетов конфигурации или из папки шаблонов обновлений).
  2. Найдите в дереве правил регистрации объекты ДокументСсылка.ПоступлениеТоваровУслуг и ДокументСсылка.ВозвратТоваровОтПокупателя.
  3. Перейдите на вкладку «Обработчики событий» для выбранного правила.
  4. Откройте для редактирования код обработчиков При обработке и При обработке (дополнительный).
  5. Внимательно изучите тексты запросов, которые выполняются в коде. Вам необходимо локализовать секцию ГДЕ основного запроса.
  6. Добавьте в условия запросов проверку реквизита отражения в бухгалтерском учете. Модифицированный фрагмент запроса должен выглядеть следующим образом:

// Пример добавления условия в запрос обработчика для Поступления товаров и услуг
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Источник.Ссылка КАК Ссылка
    |ИЗ
    |	Документ.ПоступлениеТоваровУслуг КАК Источник
    |ГДЕ
    |	Источник.Ссылка В (&ОбъектыВыгрузки)
    |	И Источник.ОтражатьВБухгалтерскомУчете = ИСТИНА";

Аналогичное условие Источник.ОтражатьВБухгалтерскомУчете = ИСТИНА необходимо внедрить во все запросы обработчиков событий «При обработке» для обоих проблемных документов. После внесения изменений сохраните правила регистрации объектов в XML-файл.

Шаг 2. Загрузка обновленных правил в УТ 10.3

После сохранения новых правил их необходимо применить к действующему обмену в базе-источнике:

  1. Откройте конфигурацию «Управление торговлей 10.3» в режиме предприятия.
  2. Перейдите в меню Сервис → Обмен данными с продуктами на платформе 1С:Предприятие 8 → Настройка обмена данными.
  3. Выберите вашу настройку синхронизации с БП 3.0 и откройте ее свойства.
  4. Перейдите на вкладку Параметры обмена и загрузите измененный XML-файл в поле «Правила регистрации объектов».
  5. Сохраните изменения в настройках обмена.

Шаг 3. Ретроспективное исправление «зависших» документов

Для того чтобы документы, у которых ранее уже был снят флаг БУ, наконец-то пометились на удаление в бухгалтерии, их нужно принудительно перерегистрировать к обмену. Сами по себе они больше не запишутся, так как пользователи с ними не работают.

Выполним процедуру повторной регистрации:

  1. В УТ 10.3 откройте обработку «Регистрация изменений для обмена» (ее можно найти через меню Операции → Обработки → Регистрация изменений для обмена).
  2. В открывшемся окне выберите узел плана обмена, соответствующий вашей базе БП 3.0.
  3. В дереве метаданных найдите разделы «Поступление товаров и услуг» и «Возврат товаров от покупателя».
  4. Нажмите правой кнопкой мыши по нужному классу объектов и выберите «Зарегистрировать изменения». Примените отбор по тем документам, у которых снят флаг отражения в бухгалтерском учете за интересующий вас период времени.
  5. Выполните запуск синхронизации. Теперь при выгрузке система обработает эти документы по новым правилам, поймет, что они не соответствуют условиям экспорта из-за отсутствия признака БУ, исключит их из регистрации и отправит в БП 3.0 команду удаления. Документы в приемнике гарантированно получат пометку на удаление.

Альтернативные способы решения (без изменения правил)

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

Использование групповой обработки в БП 3.0

Если расхождения носят массовый характер, можно выровнять базы вручную непосредственно в информационной базе БП 3.0:

  1. Сформируйте в УТ 10.3 список документов «Поступление товаров и услуг» и «Возврат товаров от покупателя» за отчетный период, у которых снят флаг ОтражатьВБухгалтерскомУчете.
  2. В базе БП 3.0 откройте обработку «Групповое изменение реквизитов» (раздел Администрирование → Обслуживание → Корректировка данных).
  3. Выберите объект «Поступление товаров и услуг», настройте отбор по списку номеров или дат, соответствующему перечню из УТ 10.3.
  4. В табличной части реквизитов найдите поле «Пометка удаления», установите значение Да и нажмите кнопку «Изменить реквизиты».

Этот способ требует регулярного контроля со стороны администратора или ведущего бухгалтера, но позволяет быстро привести учет в соответствие без программирования.

← На главную