gifts2017

Журнал регистрации по конкретному документу или справочнику

Опубликовал Алексей Леонов (axelerleo) в раздел Администрирование - Журнал регистрации

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

Данное решение рассчитано на управляемый интерфейс. Для обычного интерфейса подход будет другой, и здесь он не рассматривается.
Описанный механизм будет работать на УТ 11, Комплексной автоматизации в режиме управляемого приложения, и в принципе на любой конфигурации на управляемых формах.

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

Итак, определим, что же нам понадобится.
В рассматриваемом варианте реализации (а я прекрасно понимаю, что одну и ту же задачу можно решить кучей способов) нам понадобится

Общая команда "ЖурналРегистрацииПоОбъекту";
Группа команд "ЖурналРегистрации";
Отчет "Журнал регистрации по объекту".

Общую команду размещаем в нашей группе команд (можно обойтись без группы, но лично мне так удобее в дальнейшем добавлять/удалять команды), и указываем режим использования параметра - "Одиночный"
Обязательно указываем типы параметра команды - нужно отметить флажками все справочники и все документы. А также можно добавить и другие метаданные, если вдруг мы захотим. Например, планы видов характеристик.

В модуле команды пишем

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

ОткрытьФорму("Отчет.ЖурналРегистрацииПоОбъекту.ФормаОбъекта",Новый Структура("ПараметрОбъект", ПараметрКоманды));

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

В отчете создаем форму отчета. В форме создаем пустой реквизит с типом "Таблица значений" и добавляем его на форму.

В модуле формы пишем

 

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Перем ПараметрКоманды;

ПараметрКоманды = Параметры.ПараметрОбъект;

ТЗ_рез = РеквизитФормыВЗначение("ТаблицаЖурналаРегистрации");
ВыгрузитьЖурналРегистрации(ТЗ_рез,Новый Структура("Данные", ПараметрКоманды),,,10000);
Для Каждого СтрокаТЗ Из ТЗ_рез Цикл
СтрокаТЗ.Уровень = Строка(СтрокаТЗ.Уровень);
СтрокаТЗ.СтатусТранзакции = Строка(СтрокаТЗ.СтатусТранзакции);
КонецЦикла; 
МассивРеквизитов = Новый Массив;
Для Каждого Колонка ИЗ ТЗ_рез.Колонки Цикл
НоваяКолонка = Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "ТаблицаЖурналаРегистрации");
МассивРеквизитов.Добавить(НоваяКолонка);
КонецЦикла; 
ИзменитьРеквизиты(МассивРеквизитов); 
ЗначениеВРеквизитФормы(ТЗ_рез, "ТаблицаЖурналаРегистрации");

//Создаем элементы на форме для отображения колонок
ЭлементТЗ = Элементы["ТаблицаЖурналаРегистрации"];
Для Каждого Колонка ИЗ ТЗ_рез.Колонки Цикл
НовыйЭлементФормы = Элементы.Добавить("ТаблицаЖурналаРегистрации"+Колонка.Имя, Тип("ПолеФормы"), ЭлементТЗ);
НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлементФормы.ПутьКДанным = "ТаблицаЖурналаРегистрации" + "." + Колонка.Имя;
КонецЦикла;
КонецПроцедуры

Вот и все. Простейший вариант открытия журнала регистрации по конкретному объекту готов.
Небольшое замечание. На клиенте недоступны типы УровеньЖурналаРегистрации и СтатусТранзакцииЗаписиЖурналаРегистрации, поэтому преобразуем их в строку.

 Журнал регистрации

 Журнал регистрации 2

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

Следите за обновлениями статьи, оставляйте голоса и комментарии! Спасибо!

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Конфигурация Журнал регистрации по конкретному объекту
.cf 29,96Kb
11.06.15
2
.cf 29,96Kb 2 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Павел А (Pavean) 10.06.15 16:32
Я так понимаю что пока от http://infostart.ru/public/338203/ ничем не отличается по функционалу?
2. Алексей Леонов (axelerleo) 10.06.15 16:48
(1) Pavean, Пока что да, за исключением того, что БСП не используется:)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа