Запись в журнал регистрации изменений дополнительных сведений

04.05.17

База данных - Журнал регистрации

Небольшая доработка программы "Управление торговлей 11" для записи информации в журнал регистрации изменений дополнительных сведений (регистр сведений) по объектам. Должна работать на всех релизах.

Периодически от пользователей появлялись вопросы типа: "как найти, кто поставил галочку в документе"? Версионирование объектов включено, есть журнал регистрации, да вот незадача - галочка эта находится не в реквизитах документа, а в Дополнительных свойствах, привязанных к этому документу. В журнале регистрации запись такая, конечно же фиксируется, но информации по ней - практически ноль, только то, что Метаданные = РегистрСведений.ДополнительныеСведения, а хотелось бы видеть сам объект, свойство и новое значение. Причем по объекту желательно сделать возможность поиска (=отбора).

Повозившись немного, реализовал-таки этот механизм, получилось по-моему довольно удобно. Чтобы другим не изобретать велосипед, поделюсь своим решением.
Итак, во-первых, создаем Подписку на событие "ПередЗаписью" источника "РегистрСведенийНаборЗаписей.ДополнительныеСведения":
______________________________________________________________________________________________________________________
____________________________________________________________________________________________
указываем место расположение обработчика, код обработчика со вспомогательной процедурой следующий:
_____________________________________________________________________________________________
Процедура ПриЗаписиДополнительныхСведенийПередЗаписью(Источник, Отказ, Замещение) Экспорт
    
    Объект = Источник.Отбор.Объект.Значение;
    
    НаборЗаписей = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Объект.Установить(Объект);
    НаборЗаписей.Прочитать();
    
    СтарыеЗначения = НаборЗаписей.Выгрузить();
    МассивОбработанныхСвойств = Новый Массив;
    
    Для каждого Запись Из Источник Цикл
        СделатьЗапись = Ложь;
        НайденнаяСтрока = СтарыеЗначения.Найти(Запись.Свойство, "Свойство");
        Если НайденнаяСтрока = Неопределено Тогда
            СделатьЗапись = Истина;
        Иначе    
            Если НайденнаяСтрока.Значение <> Запись.Значение Тогда
                СделатьЗапись = Истина;
            КонецЕсли; 
        КонецЕсли; 
        
        Если СделатьЗапись Тогда
            СделатьЗаписьЖурналаРегистрацииОбИзмененииДопСведения(Объект, Запись.Свойство, Запись.Значение);
        КонецЕсли; 
        МассивОбработанныхСвойств.Добавить(Запись.Свойство);    
    КонецЦикла; 
    
    // отдельно обработаем те свойства, значения которых выставлено в Ложь (они не попадают в Источник)
    Для каждого ТекСтрока Из СтарыеЗначения Цикл
        Если МассивОбработанныхСвойств.Найти(ТекСтрока.Свойство) = Неопределено Тогда
            СделатьЗаписьЖурналаРегистрацииОбИзмененииДопСведения(Объект, ТекСтрока.Свойство, Ложь);
        КонецЕсли; 
    КонецЦикла; 
    
КонецПроцедуры

Процедура СделатьЗаписьЖурналаРегистрацииОбИзмененииДопСведения(Объект, Свойство, Значение)

    ЗаписьЖурналаРегистрации("Данные.Изменение", 
        УровеньЖурналаРегистрации.Информация,
        Метаданные.РегистрыСведений.ДополнительныеСведения,
        Объект,
        "У свойства: """ + Свойство + """ установлено новое значение: """ + Значение + """");

КонецПроцедуры
Пример результата из журнала:
___________________________________________________________________
___________________________________________________________________
Данное решение применимо и для других конфигураций, в которых указанный регистр сведений имеет аналогичную структуру. В противном случае, текст процедуры нужно поправить, подставив "свои" имена реквизитов.

журнал регистрации регистр сведений дополнительные сведения

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

21600 руб.

15.05.2017    42645    10    24    

38

Версионирование объектов для Альфа-авто, ред 4 и 5.

Оптовая торговля Розничная торговля Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Управленческий учет Платные (руб)

Подсистема версионирования объектов для конфигураций Рарус: Альфа-авто на базе типовой подсистемы от 1С. Позволяет хранить историю изменений документов и справочников, кто, что, когда и какие данные изменял, а так же вернуться к предыдущим версиям объекта.

4800 руб.

03.09.2016    42312    33    24    

37

LogManager - Внешний журнал регистрации в SQL

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Журнал регистрации платформы 1С в SQL. Общая база хранения всех журналов. Через com-подключение регламентным заданием периодически догружает журналы регистраций из рабочих баз. Предоставляет настраиваемый доступ к журналам по правам подразделений. Формирует отчеты по пользователям и данным.

10000 руб.

23.05.2014    55595    52    16    

47

Мониторинг баз и серверов 1С

Журнал регистрации Мониторинг Платформа 1С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    31133    14    21    

66

LogiCH - хранение и анализ журнала регистрации в сверхбыстрой СУБД ClickHouse

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Конфигурация LogiCH эффективно решает проблему хранения и анализа записей журналов регистрации. Разработка использует столбцовую СУБД ClickHouse, одну из самых быстрых Big Data OLAP СУБД. Любой анализ журнала можно выполнить в одном отчете, в котором доступны все возможности СКД с учетом ограничений RLS. Количество подключаемых баз не ограничено и не влияет на скорость построения анализа.

5000 руб.

28.11.2018    19633    13    6    

37

Регламентное сокращение журнала регистрации

Инструменты администратора БД Журнал регистрации Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+

1 стартмани

29.12.2023    1399    15    dima_gsv    1    

12

Магия преобразований: ЖР, ТЖ, RAS/RAC, логи - универсальное решение Vector

Мониторинг Журнал регистрации Технологический журнал Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    3150    4    AlexSTAL    0    

42

Мониторинг состояния с отправкой в telegram

Журнал регистрации Инструменты администратора БД Мониторинг Мессенджеры и боты Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Абонемент ($m)

Внешняя обработка для БСП-конфигураций с простым программным интерфейсом. Предназначена для мониторинга состояния системы. Базово реализована отправка ошибок из журнала регистрации, но можно легко добавить мониторинг других журналов, каких-либо действий пользователей, состояния системы (например закрытие месяца).

3 стартмани

26.09.2023    1839    11    doom2good    10    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. necropunk 9 04.05.17 17:15 Сейчас в теме
Хе-хе, буквально месяц назад абсолютно такую же задачу решал и абсолютно тем же способом. Хотя, мне очень не нравится нагружать журнал регистрации - на больших базах искать в нем что-то вменяемое бывает довольно мучительно. Видел базу, в которой если период поиска ставишь больше месяца - база вообще падает, приходится сервер рестартить.
+
2. Mortiferus 362 04.05.17 19:46 Сейчас в теме
(1) Согласен, с журналом бывает такое... В данном случае хотелось по-быстрому, не создавая лишних регистров.
+
3. v.l. 434 10.08.18 09:01 Сейчас в теме
(1) Это решено на платформе начиная с релиза 8.3.5. Там ЖР представлен в базе SQLite.
+
5. crash-16 20.03.20 08:18 Сейчас в теме
(3) только вроде такой журнал еще хуже - 1с признали это )
+
4. vkozak 03.03.20 16:16 Сейчас в теме
Качественная и полезная шпаргалка.
Спасибо!!
+
Оставьте свое сообщение