Как получить Name перечисления по его ID в Журнале изменений?

В детали к договору "Журнал изменений" новое поле перечисления отображается как идентификатор перечисления.
Не могу разобраться как ему присвоить имя из перечисления?
Уверен это какая-то мелочь. Может кто знает?

Нравится

37 комментариев

а в датасете у вас поле правильно создано?

Вы, наверное, с типом поля ошиблись.

Да нет, не ошибся, поле - перечисление...
И в реестре договоров в колонке этого поля отображается Name.
А вот в Журнале изменений отображается ID.
Может его нужно ещё где-то в датасете Журанала добавить?

А в таблице для этого поля перечисление указано?

"Глова Сергей" написал:А в таблице для этого поля перечисление указано?

Да, думаю без таблицы не работало бы -
"Швец Александр" написал:в реестре договоров в колонке этого поля отображается Name.

Может баг в журнале? счас проверю на своей базе:wink:

ООО "Лайнсервис"
www.ls-crm.ru

Попробовал включить логирование поля Пол в Контактах (перечисление, попавшееся на глаза первым) - так оно у меня в закладке Журнал изменений вообще не отображается никак:sad:, хотя другие поля - показывает. Версия 3.3.1.47
Опыт пока не удался

ООО "Лайнсервис"
www.ls-crm.ru

"Швец Александр" написал:Да, думаю без таблицы не работало бы

Почему не работало. Оно бы работало и симптомы были как-раз такие как у Вас.

"Александр Кудряшов" написал:Попробовал включить логирование поля Пол в Контактах (перечисление, попавшееся на глаза первым) - так оно у меня в закладке Журнал изменений вообще не отображается никакSad, хотя другие поля - показывает. Версия 3.3.1.47
Опыт пока не удался

Спасибо за попытку, забыл написать
версия 3.3.1.36 + FB.

Кстати мне стало интересно - это фича такая, что значения перечислений (мой пост выше, про Пол Контакта) не показываются в Журнале? У кого-нибудь есть работающая данная возможность на свежих версиях?

ООО "Лайнсервис"
www.ls-crm.ru

"Александр Кудряшов" написал:Кстати мне стало интересно - это фича такая, что значения перечислений (мой пост выше, про Пол Контакта) не показываются в Журнале? У кого-нибудь есть работающая данная возможность на свежих версиях?

Только что проверил у себя на 3.3.1 - фича присутствует :)

--
www.it-sfera.com.ua

Для того что бы перечисление нормально показывалось в Журнале изменений, необходимо что бы в таблице это поле было с типом Перечисление и было правильно указано для него перечисление. Это точно работало на 3.2.1 MS SQL.

"Раловец Ольга" написал:а в датасете у вас поле правильно создано?

датасет здесь не причем. Журнал изменений строится по сервису таблицы.

"Агутин Алексей" написал:Для того что бы перечисление нормально показывалось в Журнале изменений, необходимо что бы в таблице это поле было с типом Перечисление и было правильно указано для него перечисление

Априори в базе коробочной версии это условие должно выполняться для стандартной таблицы Контакты и не менее стандартного поля Пол

"Агутин Алексей" написал:Для того что бы перечисление нормально показывалось в Журнале изменений, необходимо что бы в таблице это поле было с типом Перечисление и было правильно указано для него перечисление. Это точно работало на 3.2.1 MS SQL.

Может и работало, но на указаных конфигурациях, к сожалению, не работает (включая выше изложенные условия+галочка "отслеживать изменения").

"Александр Кудряшов" написал:Априори в базе коробочной версии это условие должно выполняться для стандартной таблицы Контакты и не менее стандартного пол

Ну-ну :)

:) как раз в Контактах для поля Пол это и работает у меня . На новых версиях не проверял

поле "Пол" у меня тоже не отоюбражается в 3.3.1.47, но при его изменении запись появляется в журнале

"Александр Кудряшов" написал:Априори в базе коробочной версии это условие должно выполняться для стандартной таблицы Контакты и не менее стандартного поля Пол

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

"Александр Кудряшов" написал:"Пол" в данной ситуации просто пример, естессно

Проверил на своей 3.3.1.36+FB
Журнал изменений поле "Пол" тоже не отображает...

Здравствуйте.

Сейчас логирование полей типа перечисление не поддерживается.

Это связано с тем, что логирование ведется с помощью триггеров, где нету доступа к сервисам конфигурации. Поэтому нельзя получить отображаемое значение такого поля (нельзя получить с помощью запроса в триггере).

Вот и разобрались:smile:

ООО "Лайнсервис"
www.ls-crm.ru

"Александр Кравчук" написал:Это связано с тем, что логирование ведется с помощью триггеров

Не совсем понятно почему. Значение в поле изменилось с 'ID1' на 'ID2'. Триггер добавил запись в таблицу логирования (ну или что он там делает). Сейчас, я так понимаю это делается. А отобразить - это уже совсем другое дело и к триггеру отношения не имеет.

Нужно еще дополнительно смотреть в основном сервисе какое именно перечисление используется...

--
www.it-sfera.com.ua

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

по крайней мере этот способ логирования объясняет, почему появляются GUID вместо названий
А "пол" видимо просто выключили как-то в базовой версии из логирования, чтобы GUID не лезли. Как уже говорилось - перечислений не так уж и много в системе...:smile:

ООО "Лайнсервис"
www.ls-crm.ru

"Виталий Ковалишин aka samael" написал:Нужно еще дополнительно смотреть в основном сервисе какое именно перечисление используется...

Кому? Триггеру? Логирование получается уже работает. не работает отображение. Даже не так. Не правильно строится датасет, данные которого отображаются в журнале. Разве его тригер строит? Он же не умеет работать с сервисами.

Я не о триггере! Это понятно!
Я о датасете, который строит деталь.

--
www.it-sfera.com.ua

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

Так что можно ожидать эту доработку в будущих версиях.

"Александр Кравчук" написал:и в построении датасета для детали "Журнал изменения" можно добавить возможность отображать значения

доделываем в базовой коробке?

ООО "Лайнсервис"
www.ls-crm.ru

"Александр Кудряшов" написал:доделываем в базовой коробке?

А как же! :cool:

--
www.it-sfera.com.ua

"Александр Кудряшов" написал:доделываем в базовой коробке?

Доделаю в ядре. Ведь эти сервисы (SelectQuery и Dataset), которые используются для отображения данных из таблиц-логов, автогенерируются в ядре системы при сохранении таблицы.

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

Так там делов то - вместо одного датафилда другой создавать.

"Underscore a.k.a. _" написал:Так там делов то - вместо одного датафилда другой создавать.

Попробую сегодня. Если получится, то вскоре выйдет новый билд.

"Александр Кравчук" написал:Если получится, то вскоре выйдет новый билд

ждем известий:smile:

ООО "Лайнсервис"
www.ls-crm.ru

Реализовано в 3.3.2.

Для более ранних версий это можно реализовать самостоятельно.
При создании сервиса таблицы журнала enum-полю не проставлялся соответствующий enum. Его нужно проставить вручную в администраторе.
Так же, в scr_DatabaseLogUtils в процедуре BuildChangesLogWindow в цикле по полям нужно сделать чтобы enum-поля не пропускались. Например заменить:

if (TableField.SQLName.search(/ID$/ig) > -1) {continue}

на:

if ((TableField.SQLName.search(/ID$/ig) > -1) &&
    (TableField.SQLDataType != sdtEnum)) {
    continue;
}

Подскажите, как решить это же вопрос с названием продукта при логировании продуктов в счетах?

Стоило создать новый топик, это совсем другой вопрос.
У вас продукт при логировании продукта в счете отображается в качестве идентификатора в журнале изменений? Какая версия/сборка?

Показать все комментарии