Добавление полей на деталь адрес раздела контакты

Добрый день! Как добавлять новые поля для деталей? Пытаюсь создать замещающий объект для объекта ContactAddress (адрес контакта), всплывает ошибка при публикации: Ошибка сохранения: The index 'IXf2TtxFZHAoXwCl9ZAxppiwow' is dependent on column 'ContactId'.
ALTER TABLE ALTER COLUMN ContactId failed because one or more objects access this column.

И как добавлять новую деталь?

Нравится

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

Добрый день, Владимир!
Это известная проблема, сейчас находится на стадии решения. Не могли бы Вы сообщить, какая у Вас версия BPMonline и какие колонки Вы добавляете в замещающий объект? Это поможет нам в решении.
Пока что для корректной публикации нужно просто удалить индекс скриптом:

DROP INDEX index_name ON table_name

То есть, в Вашем случае будет так:

DROP INDEX IXf2TtxFZHAoXwCl9ZAxppiwow ON ContactAddress

Для новой детали необходимо создать объект и страницу детали, а затем зарегистрировать ее в таблице [SysDetail], например так:

insert into SysDetail (Caption, DetailSchemaUId, EntitySchemaUId)
values ('Accounts', --подпись
(select [UId] from SysSchema where Name = 'AccountDetailV2'), --страница детали
 (select [UId] from SysSchema where Name = 'Account')) --объект детали

После этого деталь станет доступна для добавления через мастер разделов.

Версия BPMonline 7.3. Пытаюсь добавить 3 поля типа строка(250) и 1 справочник. Удалил индекс, как вы написали, теперь всплывает при публикации другая ошибка:

Ошибка сохранения: Introducing FOREIGN KEY constraint 'FKAuB3PzQnb2ZiDvt4kSSHQd219l8' on table 'ContactAddress' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint. See previous errors.

Что делать??

Здравствуйте, Владимир!
Прошу указать также сборку, например 7.3.0.654.
Попробуйте удалить внешний ключ на таблицу[Contact]:

ALTER TABLE ContactAddress
DROP CONSTRAINT FKXf2TtxFZHAoXwCl9ZAxppiwow

Сборка 7.3.0.499. Спасибо большое! Получилось!

После удаления ненужных полей имею подобную проблему:

Ошибка сохранения: The object 'DFPjiT5BAEkjVmUpHb20LutF87I' is dependent on column 'UsrFloatPointsPLCG'. ALTER TABLE DROP COLUMN UsrFloatPointsPLCG failed because one or more objects access this column. 

 

Удалил неиспользуемые поля.

Теперь не могу опубликовать изменения: ошибка выше.

Это говорит о том, что поля он удаляет,  но индексы, на них указывающие - нет.

Проблема известна очень давно, обещали решить.

Полей было удалено много (При Сохранить никаких ошибок не возникало, только при Опубликовать). 

Сейчас не могу откатить изменения (не нашёл такого функционала).

Для решения проблемы - возвращаю поля обратно так: 

+ делаю "Опубликовать", база блокируется на ~15 минут

+ получаю ошибку, типа, как вверху

+ добавляю недостающее поле

+ повторяю процедуру.

 

При таком алгоритме в среднем восстанавливаю 1 поле в 15 минут.

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