Добавление пользовательского поля в SysAdminUnitPageV2

Добрый день. Необходимо в раздел Орг.структура добавить текстовое поле.
Добавил его в SysAdminUnit, VwSysadminUnit. Добавил элемент в diff.
Но при открытии раздела в консоли появляются следующие ошибки:
http://joxi.ru/Grqv86vTK3akmz
Подскажите, что упустил.

Нравится

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

Здравствуйте. Судя по первой ошибке запрос не может найти колонку UsrChannelSlack и вторую, которую вы замазали. Если вы не ошиблись с названием колонки в замещенной клиентской схеме, то, возможно, проблема в фильтрах или вы забыли очистить кеш браузера.
Возможно, банально забыли сохранить замещенные объекты (посмотрите наличие колонок в таблицах БД)
Сложно ответить без примера исходных кодов

И в догонку. Судя по URL Вы ведете разработку в продуктовом приложении. Это грубейшая ошибка. Вам следует развернуть отдельное приложение для разработки и для тестирования. Или хотя-бы создать отдельную конфигурацию (workspace)

Я бы начал с компиляции объекта VwSysAdminUnit, проверки его sql запроса в базе, проверки имен полей в клиентском модуле, а потом уже чистки кэша.

"Симута Роман Русланович" написал:Возможно, банально забыли сохранить замещенные объекты (посмотрите наличие колонок в таблицах БД)

+

И это, я понимаю когда номера машин на фото замазывают, но уж название поля - это шикарно :cool: при этом спалили логин и сайт...

Коллеги, все приведённые вами предположения были неоднократно проверенны мной до создания обращения.
Также мой пакет наследуется от всех пакетов, где есть схемы SysadminUnit.
Что касается ведения разработки на продуктивной среде, то база ещё не в промышленной эксплуатации и в случае проблем откат до базовой конфигурации не представляет проблем.

Может у кого есть кейс по добавлению поля в орг.структуру?
Буду очень благодарен.

"Коновалов Игорь" написал:И это, я понимаю когда номера машин на фото замазывают, но уж название поля - это шикарно при этом спалили логин и сайт...

А вы, Александр, ещё и внимание на этом заострили :lol:

в ранних сборках 7.8 была проблема с одинаковыми заголовками замещенных схем и соответственно, с порядком наследования. Например, для базового объекта было три разных схемы в одном пакете с одинаковыми заголовками. Поэтому после создания пользовательского объекта с родителем базовым объектом, надо было проверять из того ли пакета и тот ли это базовый объект.
В релизе 7.8.1681 проблема точно исправлена. в более ранних надо проверять

Роман, а вообще есть ли особенности при добавлении пользовательского поля в орг.структуру (SysAdminUnitPageV2)?
Я, например, заметил. что в нём не указывается entitySchema.

у меня Версия 7.8.0.1434

Схема объекта указана в "Базовая схема страницы редактирования раздела "Роли"" (SysAdminUnitRoleBasePageV2) от которой наследуется Схема страницы редактирования раздела "Организационные роли" (SysAdminUnitPageV2)

define("SysAdminUnitRoleBasePageV2", ["ConfigurationConstants", "SysAdminUnitRoleBasePageV2Resources"],
	function(ConfigurationConstants, resources) {
		return {
			entitySchemaName: "VwSysAdminUnit"....

т.к. схема объекта - VwSysAdminUnit, то именно ее и следует замещать, и в замещающей схеме добавить новую колонку, которую необходимо привязать к новому полю в тоже замещающей клиентской схеме SysAdminUnitPageV2
Никаких особых особенностей по идее быть не должно
единственное что надо внимательно смотреть для 7.8 какую схему из какого пакета в результате заместили :)

Я так понимаю, что моя проблема заключается в том, что я добавил поле в VwSysAdminUnit, а в сам select VwSysAdminUnit его не добавил.
Есть ли пример проведения данной операции для базы on-demand?

поторил кейс, получил ту же ошибку (см. вложение)
и она логична
поскольку название схемы VwSysAdminUnit имеет префикс Vw, то она связана не с таблицей, а с представлением (View) базы данных. поэтому стандартный механизм замещения не срабатывает, колонка в таблицу не может добавиться

очень приблизительный путь решения (и я очень не уверен в правильности)
создать в бд в таблице SysAdminUnit нужную колонку
создать в бд в представлении VwSysAdminUnit нужную колонку и связать с таблицей SysAdminUnit
может еще что нужно сделать

НО ДЕЛАТЬ ЭТО НА ТЕСТОВОЙ БД, ни в коем случае не на рабочей
для базы on-demand это сделать вряд-ли получится из-за требований по безопасности
нужно разворачиваться локально

"Коновалов Игорь" написал:Есть ли пример проведения данной операции для базы on-demand?

http://www.community.terrasoft.ru/blogs/11961
установите и гоняйте любые запросы

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