Перейти к содержанию

Принудительная регистрация из кода

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

Единичный объект

// По ссылке
кфкИнтеграция.ПоместитьВОчередьИсходящих(СсылкаНаНоменклатуру);

Массив ссылок

МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
кфкИнтеграция.ПоместитьВОчередьИсходящих(МассивСсылок);

Порционная обработка

Адаптер разделит массив на порции автоматически и выполнит порционную регистрацию — даже для больших объёмов (миллионы объектов) не возникает длительной транзакции.

С явной маршрутизацией по ТипОбъект

Когда объект 1С не связан с настроенным типом метаданных (например, отправка «готового» сообщения), укажите строковый ключ ТипОбъект — по нему адаптер выберет нужный продюсер:

// ТипОбъект — ключ регистрации. Адаптер найдёт продюсер, у которого
// в «Объектах метаданных» есть строка с точно таким же значением в этом поле.
кфкИнтеграция.ПоместитьВОчередьИсходящих(Сообщение, "system.events");

Ключ регистрации

ТипОбъект не обязан совпадать с именем метаданных 1С. Это строковый ключ, сравниваемый на равенство. Намеренно выбирайте «непохожее» значение (system.events, crm.order-placed), чтобы сообщения попадали в топик только через API-вызов — без срабатывания подписок. Подробнее — Тип объект — ключ регистрации.

Как получать ссылку на продюсер

Подробнее — в Произвольные события → Как получать ссылку на продюсер. Коротко: избегайте ссылки на конкретный продюсер — маршрутизируйте по ТипОбъект.

Пакетная регистрация при массовом создании

Для массовых операций (импорт, миграция, пересчёт):

МассивОбъектов = Новый Массив;

Для Каждого СтрокаТаблицы Из ТаблицаДанных Цикл
    Dok = Документы.ЗаказПокупателя.СоздатьДокумент();
    // ... заполнение реквизитов ...
    Dok.Записать();
    МассивОбъектов.Добавить(Dok.Ссылка);
КонецЦикла;

кфкИнтеграция.ПоместитьВОчередьИсходящих(МассивОбъектов);

Про дедупликацию

Дедупликация

Если один и тот же объект зарегистрирован несколько раз до выгрузки — в Kafka уйдёт только последнее состояние. Промежуточные версии помечаются как «Дубль».

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

Смотрите также