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

Сериализация независимого регистра сведений

Сценарий. При записи набора записей независимого регистра сведений — сериализовать каждую запись в отдельное сообщение.

Что передаётся в Объект

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

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

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

    Результат = кфкИнтеграция.ПараметрыСообщения();

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

    Результат.Данные = Данные;
    Результат.Заголовки.Вставить("ДатаСериализация", ТекущаяУниверсальнаяДата());

    Возврат Результат;

КонецФункции

Пустой набор (удаление)

Если набор пуст

Если набор записей при записи пуст (удаление), в Объект будут только значения полей отбора, а Свойства.ЭтоУдаление = Истина. Проверяйте этот флаг перед обращением к полям данных.

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

    Результат = кфкИнтеграция.ПараметрыСообщения();
    Данные = Новый Структура;

    Если Свойства.ЭтоУдаление Тогда
        // Только поля отбора
        Данные.Вставить("period", Объект.Период);
        Данные.Вставить("ref",    Объект.Номенклатура);
        Данные.Вставить("deleted", Истина);
    Иначе
        Данные.Вставить("period",   Объект.Период);
        Данные.Вставить("ref",      Объект.Номенклатура);
        Данные.Вставить("qty",      Объект.Количество);
        Данные.Вставить("uuid",     Объект.Идентификатор);
        Данные.Вставить("deleted",  Ложь);
    КонецЕсли;

    Результат.Данные = Данные;
    Возврат Результат;

КонецФункции

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