Добрый день!
В 7.6 есть возможность включить журнал изменений по какому-то объекту
Для этого необходимо в объекте включить соответствующий признак, а также в объекте указать соответствующие поля, по которым должны отслеживаться изменения.
Вопросы:
1)Можно ли посмотреть журнал изменений, встав на конкретную запись в системе?
например в карточке контрагента/обращения/контакт выбрать действие - "показать журнал изменений", и сразу же откроется история изменений именно по этой записи.
Искать в общем журнале неудобно, долго
2) Далее, в журнале изменений видно, что какой-то пользователь что-то менял в объекте, но не видно что же собственно он менял - например, в объекте "Обращения" отслеживаются изменения нескольких полей - ответственный, состояния и т.п.
Хотелось бы посмотреть, какие конкретно поля менялись, и что именно - в этом же и заключается смысл отслеживания изменений. Есть на данный момент такая возможность?
Возможность просмотреть историю изменений по конкретной записи, а также, какие именно поля менялись, была на платформе 3.х (3.4).
В версию 7.х данной возможности пока нет?
Нравится
По поводу вопроса с журналом изменений по конкретной записи увидела, что необходимо добавлять деталь самостоятельно
тема http://www.community.terrasoft.ru/forum/topic/12526
Хотя, на мой взгляд, было бы логично, если бы деталь включалась бы автоматически.
А что по поводу просмотра, какие именно поля менялись? Причем, насколько я вижу через sql, история изменения этих полей записывается - но только почему-то не выводится в клиенте такая информация
Дарья, здравствуйте.
Когда Вы настраиваете журнал изменений, Вы выбираете колонки для логирования.
После того, как добавите деталь, Вы можете вывести в реестр настроенные колонки.
Отсортируйте по дате изменения и смотрите, какие колонки были изменены.
Добрый день! Спасибо
Тогда вопрос по добавлению детали
В теме http://www.community.terrasoft.ru/forum/topic/12526
предлагается создать в конфигурации объект представления VwSysContactLog, и скрипт для создания представления в бд.
Этот объект надо унаследовать от другого какого-то объекта?
На принтскрине в объекте перечислены следующие поля ID, Name, ChangeTracked.
ChangeTracked - это справочник судя по всему - на какой справочник ссылка должна быть?
Id - это уникальный идентификатор, не вижу такой тип поля при добавлении поля в объект, как его добавить?
Если я хочу на деталь выводить колонки для логирования, такие как ответственный, статус и т.п., мне тогда нужно добавить их как поля в этот объект представления?
Дарья, здравствуйте!
1. Если Вы присмотритесь внимательно, то по скриншотам видно, что:
- Родительский объект не указан;
- ID указан, который был добавлен руками как новая колонка (уникальный идентификатор).
2. ChangeTracked – это ссылка на логируемый объект.
3. Отображение колонок зависит, от того как Вы настроите логирование объекта в журнале изменений. Отобразите колонки, которые Вам нужны.
«Поигратесь» создавать объект на основании представления экспериментальным путем и в результате все станет ясно.
Спасибо - с деталью получилось вывести колонки.
Остался вопрос по общему журналу изменений.
В журнале есть действие "Показать все изменения выделенной записи".
Я так понимаю, непосредственно с этим действием связана страница «RecordAllChangesGridPage»
из темы http://www.community.terrasoft.ru/forum/topic/13020
Вижу, что в функции идет окрашивание записи в целом(красная,синяя,зеленая)
и окрашивание одного поля в реестре(т.е. логируемого поля, если его значение изменено),
но эта ветка из форума по 5.х
Получается, что в 5.х в форму действия "Показать все изменения выделенной записи" можно каким-то образом вывести логируемые колонки в форму этого действия (раз в схеме прописана их подсветка),
а в 7.х подобный функционал еще не появился. Правильно ли я понимаю?
Хотела бы в детали журнала изменений по конкретному объекту также сделать подсветку тех логируемых колонок, которые были изменены.
Можно ли ориентироваться на подобный код из 5.х, который вы приводили
в теме http://www.community.terrasoft.ru/forum/topic/13020
var cellsBackground = new Dictionary();
if (PreviousRow != null && HighlightColumns) {
var previousRow = PreviousRow as Entity;
foreach (var column in row.Schema.Columns) {
if ((column.Name != "ModifiedOn") && (column.Name != "ModifiedBy")
&& (column.Name != "ChangeTrackedBy") && (column.Name != "ChangeTrackedOn")
&& (column.Name != "ChangeType")) {
object currentValue = row.GetColumnValue(column.Name);
object prevValue = previousRow.GetColumnValue(column.Name);
if (!Object.Equals(currentValue, prevValue)) {
cellsBackground.Add(column.Name, new DataSourceRowColumnBackgroundColorConfigValue("#FFF30F"));
}
}
}
}
PreviousRow = row;
config.AddConfig(new DataSourceRowColorConfigValue(backgroundColor));
config.AddConfig(new DataSourceRowColumnsBackgroundColorConfigValue(cellsBackground));
return config;
}
Или же принципы подсветки поля в 7.х другие?
Можно ли в 7. отображать другим цветом одно поле в реестре, или подобная возможность есть только в 5.х пока?
Дарья, ниже приведен пример как реализовать подсветку записей.
Цель: Реализовать подсветку записей реестра если у продажи на объекте поле IsNotInterest= true
Реализация:
Создаем метод gridRecolor.
gridRecolor: function () { var gridData = this.getGridData(); var items = gridData.getItems(); var loadedObject = {}; Terrasoft.each(items, function (item) { item.customStyle = null; var facilityId = item.get("Facility").value; var opportunityId = item.get("Opportunity").value; var isNotInterest = item.get("IsNotInterest"); //Если условие подходит, меняем цвет записи на темно-серый. if (isNotInterest) { item.customStyle = { 'color' : "darkgrey" } } var primaryValue = item.get(item.primaryColumnName); //Формируем новый набор данных уже с подсветкой loadedObject[primaryValue] = item; }, this); gridData.clear(); //загружаем новый набор данных gridData.loadAll(loadedObject); },
Замещаем метод onGridDataLoaded, добавив в него вызов gridRecolor
onGridDataLoaded: function () { this.callParent(arguments); this.gridRecolor(); },
Вам остается только изменить предоставленный пример согласно Вашей бизнес-задаче.
Добрый день!
Спасибо, я видела этот пример - он подсвечивает всю запись реестра.
Мой вопрос был в том - можно ли сейчас подсветить отдельное поле(ячейку) в реестре в 7.х ( в 5.х как я вижу была такая возможность). Только запись можно целиком, получается?
и правильно ли я понимаю, что в общем журнале изменений в 7.х сейчас не получится посмотреть, что именно изменено ( только если деталь сделать):
"Получается, что в 5.х в форму действия "Показать все изменения выделенной записи" можно каким-то образом вывести логируемые колонки в форму этого действия (раз в схеме прописана их подсветка),
а в 7.х подобный функционал еще не появился. Правильно ли я понимаю?"
Дарья, уточнил у департамента разработки.
Выделять цветом можно только на уровне всей записи.