Контроль изменений реквизитов справочников и документов




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

Очень часто бывает необходимость выяснить, кто же изменил значение реквизита или каким оно было на определенную дату. Поискал недолго на сайте, не нашел и решил написать что-то свое. 

Обработка использует внешние компоненты FormEx.dll и 1sqlite.dll. Легко подключается к любой конфигурации без доработок. Данные хранятся во внешнем файле.

При открытии формы справочника или документа делается снимок его состояния на момент открытия. После закрытия формы опять делается снимок состояния объекта и сравнение с предыдущим снимком. Если были изменения реквизитов, предлагает ввести причину изменений.

Снимки состояния и изменения реквизитов пишутся в БД history.sdb в каталоге базы. Для того, чтобы посмотреть изменения, нужно открыть форму интересующего справочника или документа и нажать на кнопку F4.

Подключение: в процедуре ПриНачалеРаботыСистемы добавить

парам=СоздатьОбъект("СписокЗначений");
парам.ДобавитьЗначение(1,"Режим");
ОткрытьФорму("Отчет",парам,КаталогИБ()+"ExtFormsИсторияОбъекта.ert");

22.10.2025г Добавил настройки контроля. В любом случае изменения фиксируются все, но запрос комментария и отражение изменений в карточке можно настраивать. Изменил сам интерфейс просмотра истории.

5 Comments

  1. zarius

    Почему именно F4 — для вызова формы изменений? Обычно F4 — активно используется пользователями в качестве стандартного поведения 1С — открытия для выбора формы списка активного реквизита.

    Reply
  2. kras_71

    Можете любую назначить там есть процедура ПриНажатииКнопки

    Reply
  3. kras_71

    Процедура ПриНажатииКнопкиКлавиатуры(конт,код,альт,шифт,контрл,символ,фсо)

    Если Число(код)=115 Тогда

    ИсторияИзмОбъекта();

    фсо=0;

    КонецЕсли;

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

    Reply
  4. zarius

    (2) (3)

    Понятно что можно любую — интересно было, почему у Вас именно F4?

    Ну и по структуре хранения табличных частей — хранить их целиком через ЗначениеВСтроку() — не есть хорошо (хотя, конечно, «не хорошо» — больше для меня, т.к. скачивал обработку как раз ради того, чтобы посмотреть как реализовано логирование ТЧ).

    Reply
  5. kras_71

    F4 просто понравилась ))). А по поводу табличных частей — ни кто не мешает Вам сделать ещё одну таблицу в Sql и хранить их там по строчно. Делал для себя на скорую руку, понятно, что нет предела совершенству, но меня и такой вариант устраивает.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *