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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в 1С8 узнать, кто зарегистрировал объект для обмена?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #35479
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        1с8 как узнать кто зарегистрировал объект к обмену

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

          Alex, привет!

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

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С