Как изменить состав отправляемых данных при обмене между БП 3.0 и УТ 11?

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

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

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

В современных конфигурациях 1С, работающих на базе Библиотеки стандартных подсистем (БСП), механизм обмена данными разделяет объекты на две основные категории:

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

Проанализируем ситуацию: если вам нужно отправить только конкретные записи, необходимо не только добавить их в «Дополнительно», но и очистить список «Выбрано по общим правилам».

Как очистить список зарегистрированных объектов через интерфейс

Рассмотрим по шагам, как вручную изменить состав данных для отправки, не прибегая к программированию. Многие пользователи ищут эту настройку внутри параметров самой синхронизации, но доступ к ней удобнее всего получить из списка настроек обмена.

  1. Перейдем в раздел Администрирование — Синхронизация данных — Настройки синхронизации данных.
  2. Выберем нужную настройку обмена (например, с УТ 11).
  3. Нажмем кнопку Состав отправляемых данных (обычно она выглядит как иконка с синими кубиками или списком).
  4. В открывшейся форме мы увидим дерево объектов метаданных. В колонке «Выбрано по общим правилам» будет указано количество зарегистрированных объектов.
  5. Чтобы убрать ненужные объекты, выделим строку (или группу строк) и нажмем Отменить регистрацию (кнопка с красным крестиком или через правую кнопку мыши).

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

Где физически хранятся данные о регистрации изменений

Выясним важный технический момент: где система «запоминает», что объект нужно отправить? Многие начинающие разработчики пытаются найти эти данные в Регистрах сведений, но это не совсем так.

Платформа 1С:Предприятие 8 использует для этого специальные **внутренние таблицы изменений**. Рассмотрим, как это устроено:

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

Посмотрим на пример запроса, который позволяет увидеть все зарегистрированные физические лица для конкретного узла:


ВЫБРАТЬ
    ТвояТаблица.Ссылка КАК Объект,
    ТвояТаблица.Узел КАК УзелОбмена
ИЗ
    Справочник.ФизическиеЛица.Изменения КАК ТвояТаблица
ГДЕ
    ТвояТаблица.Узел = &УзелОбмена

Программное управление регистрацией изменений

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

1. Регистрация объекта на узле

Для того чтобы программно добавить объект в очередь на отправку, используем метод ЗарегистрироватьИзменения(). В качестве параметров передается узел (ссылка на элемент плана обмена) и сам объект (ссылка или массив ссылок).


// Пример регистрации одного физического лица
Узел = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию("УТ 11");
ФизЛицоСсылка = Справочники.ФизическиеЛица.НайтиПоРеквизиту("ИНН", "1234567890");

Если Не ФизЛицоСсылка.Пустая() Тогда
    ПланыОбмена.ЗарегистрироватьИзменения(Узел, ФизЛицоСсылка);
    Сообщить("Объект зарегистрирован для обмена");
КонецЕсли;

2. Отмена регистрации объекта

Если объект попал в обмен ошибочно, мы можем программно удалить его из очереди:

ПланыОбмена.УдалитьРегистрациюИзменений(Узел, ФизЛицоСсылка);

3. Полная очистка узла

Чтобы полностью очистить узел от всех зарегистрированных изменений (сбросить очередь отправки), можно передать Неопределено вместо ссылки на конкретный объект:

ПланыОбмена.УдалитьРегистрациюИзменений(Узел, Неопределено);

Почему объекты регистрируются снова?

Разберем ситуацию, когда вы очистили регистрацию, но через некоторое время объекты снова появились в списке «Выбрано по общим правилам». Это происходит из-за механизма Авторегистрации.

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

Кроме того, в БП 3.0 и УТ 11 активно используются Правила регистрации объектов (ПРО). Это специальные XML-схемы, которые проверяют условия перед регистрацией. Если вы хотите навсегда исключить типы объектов из обмена, вам следует проверить настройки фильтров в самой синхронизации (например, фильтр по организации или дате начала выгрузки).

Инструменты для визуального контроля

Проанализируем инструменты, которые помогут вам визуально отслеживать процесс. Хотя в БП 3.0 есть встроенная форма «Состав отправляемых данных», для администратора часто полезнее использовать внешнюю обработку «Регистрация изменений для обмена данными» (входит в состав инструментов разработчика на ИТС). Она позволяет:

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

← На главную