Добрый день. Есть необходимость создать объект, где есть справочное поле ссылающееся на "Библиотека процессов (Представление)". Когда добавляем это поле и нажимаем публикацию падает такая ошибка. Не подскажете как решить эту проблему?

Изображение удалено.

Нравится

5 комментариев
Лучший ответ

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

Добрый день.

 

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

 

Вариантом решения может быть создание своего представления, в котором одно из полей будет ссылаться на представление 'Библиотека процессов'.

 

 

Алла Савельева пишет:

Добрый день.

Вам нужно в свойствах данного объекта установить признак 'Представление в базе данных', как на скриншоте ниже:

Нет. Это совет, как создать представление, на не в объекте ссылку на представление. 

Эта ошибка происходит из-за того, что система пытается создать внешний ключ (foreign key) на представление, а СУБД такой возможности не дает.



Нужно в свойствах справочной колонки, которая ссылается на представление указать признак "Не контролировать целосность". Это не будет создавать внешний ключ в БД.

 

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

Зверев Александр,

Это то что нужно, спасибо!

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

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

Введется разработка в пользовательском пакете, нужно добавить текстовое поле в замещающий объект Файл таким образом, что бы другие объекты, такие как AccountFile, ContactFile, тоже унаследовались от моего объекта Файл и имели в себе новое текстовое поле.

Насколько я понял решение состоит в настройке зависимости пакетов, но не до конца понимаю как должна выставляться иерархия. В настройках пакета стоит зависимость от Base

Нравится

1 комментарий

Илья, это разные явления,  замещение в разных пакетах схемы с одним и тем же именем и наследование (в одном или разных пакетах) одних схем от других с разными именами (например, ContactFile на основе базового File).

 

Если бы и базовая, и наследуемая схема были бы в одном пакете, после добавления поля в File было бы достаточно пересохранить AccountFile. Но у Вас схема есть только в коробочном пакете, её менять не получится.

 

Видимо, Вам нужно заместить File в пакете Custom (или другом, где разрабатываете), добавить поле, сохранить и опубликовать. Затем в том же пакете Custom заместить уже AccountFile, ContactFile, где появится и новая колонка, тоже сохранить и опубликовать, чтобы новая колонка создалась в БД.

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

Подскажите, пожалуйста, ещё - как добавлять колонки в существующие родительские и базовые объекты?

Нравится

1 комментарий

Здравствуйте, Евгений!

Для этого в системе можно создавать замещающие объекты. Подробнее Вы можете ознакомиться в документации http://academy.terrasoft.ru/documents/docs/technic/SDK/7.6.0/SectionCon….

Цитирую:
"Если вам необходимо внести изменения в объект или страницу, которые являются частью базового пакета, в меню [Добавить] выберите [Замещающий объект] либо [Замещающая страница] соответственно, и в свойствах созданной схемы в поле [Родительский объект] или [Родительская страница] укажите схему, которую следует замещать в текущем пакете."

То есть, Вы можете создать замещающий объект и добавить в него желаемые колонки.

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

Здравствуйте!
Разъясните, пожалуйста, как изменить определенные свойства объектов на странице раздела из кода js (visible, dependencies и т.д). ? Нужно на ините проставить зависимости и спрятать некоторые поля, унаследованные от родителя. Заранее спасибо.

Нравится

1 комментарий

необходимо программно изменить свойства объекта

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

bpm 7.0 on-site

Как установить первичную колонку для отображения в объекте?

Нравится

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

Здравствуйте, Илья.

Если это базовый объект, то создаете замещающий объект:

Устанавливаете родительский объект, который будете замещать:

Затем, открываете все свойства и устанавливаете значение для отображения:

В конце - публикуете.

А точно не обычный, а этот объект?
Мне необходим объект для создания нового раздела.
Вот на скриншоте не написано замещающий объект http://joxi.ru/hhVeUxjKTJCIAYD7BPU

Если объект из базовых пакетов - то замещающий объект. Если новый - то обычный.

Так как все таки сделать "Для объекта необходимо установить первичную колонку для отображения." при создании нового раздела? Конкретно нового раздела

Ваши скриншоты ну вообще ситуацию не проясняют(((

а вообще существует инструкция похожая как на msdn? типа для идиотов пошаговая... а то после освоения C#, MSSQL, Oracle и т.п. сложно переключится к такому типу документации(((

Здравствуйте, Сергей.

Ответил Вам отдельным письмом по обращению 0204410.

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