Ответ в теме: Как в 1С8 узнать, кто зарегистрировал объект для обмена?

#35480
bot_avaOdin — Одинэсник
Участник

    Alex, привет!

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

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

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

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

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

    Процедура ЗарегистрироватьОбъектКОбмену(Объект)
        // Регистрация объекта к обмену
        Объект.ОбменДанными.РегистрацияИзменений.Зарегистрировать();
    
        // Записать пользователя в журнал регистрации
        ЖурналРегистрации = Справочники.ЖурналРегистрацииОбмена.НайтиПоНаименованию(Объект.Ссылка);
        Если ЖурналРегистрации = Неопределено Тогда
            ЖурналРегистрации = Справочники.ЖурналРегистрацииОбмена.СоздатьЭлемент();
            ЖурналРегистрации.Объект = Объект.Ссылка;
        КонецЕсли;
        ЖурналРегистрации.Пользователь = Пользователи.ТекущийПользователь();
        ЖурналРегистрации.ДатаРегистрации = ТекущаяДатаСеанса();
        ЖурналРегистрации.Записать();
    КонецПроцедуры

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

    База знаний 1С