Здравствуйте.
Пока велась доработка в системе появилось новое пользовательское поле. После наката обновлений поле перестало работать(как минимум код формы был потерт и информация о пользовательском контроле потеряна). В тестовой среде было создано поле с таким же именем. Выгружены все сервисы содержащие слово Incident за исключением сервиса tbl_Incident. Произведен повторный накат на продуктив. Поле заработало, но доступ к нему есть не у всех. Вопрос:
1) Можно ли узнать список всех сервисов которые изменяються при создание нового пользовательсокго поля?
2) Как вести разработку если переодически появляються новые пользовательские поля? Только между измененим пользовательских полей можно копировать сервисы, изменять и возращать обратно?
С уважением. Михаил.
Нравится
Борис, отвечаю на вопросы:
1. Сервисы, которые изменяются при создании поля: таблица ( tbl_Incident), запрос ( sq_Incident), датасет ( ds_Incident), карточка редактирования (wnd_IncidentEdit) и реестр записей (wnd_IncidentsGridArea).
2.
"Борисов Михаил Евгеньевич" написал:Только между измененим пользовательских полей можно копировать сервисы, изменять и возращать обратно?
Да, либо переносить вручную добавленные в момент разработки поля.
Просматривал трассировку создания пользовательского поля, есть подозрение, что еще изменяеться сервисы,таблицы связанные с правами. Появление нового пользовтельского поля ничего не меняет в правах, а в таблице сервисов?
Импортировал перечисленные сервисы:
tbl_
sq_
ds_
wnd_
поле даже не появилось. Трасировка показывает, что добавление пользовательского поля вызывает изменение таблицы сервисов, свойств сервисов, выставление grant может еще что то происходит, лог огромный.
"Бондарь Наталия" написал:карточка редактирования (wnd_IncidentEdit)
ой ли?
мне тоже интересно, где хранится коллекция пользовательских полей?
"Андросов Дмитрий" написал:
Бондарь Наталия пишет:
карточка редактирования (wnd_IncidentEdit)
ой ли?
мне тоже интересно, где хранится коллекция пользовательских полей? в поле tbl_Service.XMLData для записей сервисов uf_?
Ну отчасти верю, там вроде появляеться пустой блок fgUserFields. А вот содержимое наверняка тащиться из tbl_Service и вот ещё узнать каким кодом это выполняеться, подозреваю что ядро террасофт - не нашел как можно программно манипулировать контролами сгенерированными по пользовательским полям, только через DataSet.
Внесу небольшие корректировки: при добавлении пользовательских полей изменения вносятся в сервис таблицы, запроса, датасета и сервис пользовательских полей (uf_).
Окно карточки редактирования заполняется полями (поля помещаются динамически в группу фреймов fgUserFields) на основании содержимого сервиса uf_.
Логику наполнения сервисов при добавлении пользовательского поля выполняет ядро.
но где же все-таки сохраняется коллекция полей? неужели в записи для uf_ в tbl_Service?
Коллекция полей сохраняется в uf_ (можете посмотреть выгрузив сервис и открыв выгруженный xml файл на просмотр с помощью текстового документа).