Как получить Name перечисления по его ID в Журнале изменений?
В детали к договору "Журнал изменений" новое поле перечисления отображается как идентификатор перечисления.
Не могу разобраться как ему присвоить имя из перечисления?
Уверен это какая-то мелочь. Может кто знает?
Нравится
Да нет, не ошибся, поле - перечисление...
И в реестре договоров в колонке этого поля отображается 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 - фича присутствует :)
Для того что бы перечисление нормально показывалось в Журнале изменений, необходимо что бы в таблице это поле было с типом Перечисление и было правильно указано для него перечисление. Это точно работало на 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'. Триггер добавил запись в таблицу логирования (ну или что он там делает). Сейчас, я так понимаю это делается. А отобразить - это уже совсем другое дело и к триггеру отношения не имеет.
Нужно еще дополнительно смотреть в основном сервисе какое именно перечисление используется...
"Швец Александр" написал:В детали к договору "Журнал изменений" новое поле перечисления отображается как идентификатор перечисления.
по крайней мере этот способ логирования объясняет, почему появляются GUID вместо названий
А "пол" видимо просто выключили как-то в базовой версии из логирования, чтобы GUID не лезли. Как уже говорилось - перечислений не так уж и много в системе...:smile:
ООО "Лайнсервис"
www.ls-crm.ru
"Виталий Ковалишин aka samael" написал:Нужно еще дополнительно смотреть в основном сервисе какое именно перечисление используется...
Кому? Триггеру? Логирование получается уже работает. не работает отображение. Даже не так. Не правильно строится датасет, данные которого отображаются в журнале. Разве его тригер строит? Он же не умеет работать с сервисами.
Я не о триггере! Это понятно!
Я о датасете, который строит деталь.
В принципе сейчас в сервисе таблицы в полях типа перечисление уже есть выбор какое перечисление используется, и в построении датасета для детали "Журнал изменения" можно добавить возможность отображать значения.
А на момент, когда разрабатывали механизм логирования, сервис таблицы никак не мог быть связан с перечислениями.
Так что можно ожидать эту доработку в будущих версиях.
"Александр Кравчук" написал:и в построении датасета для детали "Журнал изменения" можно добавить возможность отображать значения
доделываем в базовой коробке?
ООО "Лайнсервис"
www.ls-crm.ru
"Александр Кудряшов" написал:доделываем в базовой коробке?
Доделаю в ядре. Ведь эти сервисы (SelectQuery и Dataset), которые используются для отображения данных из таблиц-логов, автогенерируются в ядре системы при сохранении таблицы.
В принципе, это можно попробовать сделать и для существующих версий, просто будет следующая сборка бинарных файлов.
Так там делов то - вместо одного датафилда другой создавать.
"Александр Кравчук" написал:Если получится, то вскоре выйдет новый билд
ждем известий: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; }
Подскажите, как решить это же вопрос с названием продукта при логировании продуктов в счетах?
Стоило создать новый топик, это совсем другой вопрос.
У вас продукт при логировании продукта в счете отображается в качестве идентификатора в журнале изменений? Какая версия/сборка?