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

Запись в независимый регистр сведений

Сценарий. Получить сообщение из Kafka и записать его в независимый регистр сведений.

Код обработчика

Процедура Десериализация(ТелоСообщения, Свойства, ТекстЖурнала, Отказ) Экспорт

    Данные = ОбщегоНазначения.JSONВЗначение(ТелоСообщения, "period,dateTime", Ложь);

    Набор = СоздатьНаборЗаписей();

    НоваяСтрока = Набор.Добавить();
    НоваяСтрока.Период         = Данные.period;
    НоваяСтрока.Номенклатура   = ПолучитьСсылкуНоменклатуры(Данные.ref);
    НоваяСтрока.Количество     = Данные.qty;
    НоваяСтрока.Идентификатор  = Новый УникальныйИдентификатор(Данные.uuid);

    кфкИнтеграция.Отключить(Набор);

    Набор.ОбменДанными.Загрузка = Истина;
    Набор.Записать(РежимЗамещения.Слияние);

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

Режим записи

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

Идемпотентность

Уникальность по Идентификатор

Если в регистре есть уникальный идентификатор записи (например, поле Идентификатор типа УникальныйИдентификатор), повторная запись с тем же UUID приведёт к обновлению одной и той же записи — повторы безопасны.

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