Коллеги, приветствую.
Каким образом в системе создать двухуровневый справочник, чтобы подмножества значений для выбора из справочника второго уровня, зависело от значения, выбранного в справочнике первого уровня.
Нравится
Здравствуйте, Вадим!
Если Вы имеете ввиду справочник с деталью, то Вам сюда.
Если Вы хотите иерархический справочник, то в объекте нужно добавить спарвочное поле, которое ссылается на этот же объект, а в свойствах объекта найти "Родитель в иерархии" и указать там добавленноеполе.
В 7.1 XRM есть пример в разделе "Проекты", деталь "Структура":
Андрей, спасибо! Какие основные отличия справочника с деталью от иерархического справочника?
Правильно ли я понимаю, что оно сводится к тому, что справочник с деталью имеет максимум два уровня иерархии, а иерархический два и более? Или есть ещё какие-то расхождения?
Задача сводится к тому, чтобы к полю статус в карточке одного из разделов, добавить поле результат, которое предлагает результаты в зависимости от статуса.
По типу, как это реализовано в активностях.
Каким из этих двух методов это проще сделать?
Вадим, отличия справочников принципиальны.
В случае справочника с деталью, объект справочника связывается с другим объектом, тогда как в иерархическом справочнике связь есть самим этим объектом, то есть можно установить иерархию.
В таком случае Вам нужен справочник с деталью. Делайте все по аналогии с тем, как это в активностях.
Андрей, а в случае первого варианта (иерархического), правильно я понимаю, что нужно помимо добавления справочного поля в объекте, добавить в карточку редактирования соответсвующее поле?
Кирилл, первый вариант - это справочник с деталью.
Но, если Вы имеете ввиду иерархический справочник, то да, нужно либо добавить это поле в карточку, либо с помощью доп. логики заполнять поле родителя автоматически на основании выделенной записи.
Пытаюсь сделать справочник по инструкции (http://www.community.terrasoft.ru/terrasoft/bpmonlinesdk/CreateMasterDe…), но при компиляции выдаёт ошибку
Никаких дополнительных сведений система не даёт.
Вадим, здравствуйте.
При компиляции чего получаете такую ошибку?
При компиляции сборки.
Вот алгоритм, который приводит к такому результату (скопировано с портала Service Desk):
1. Создал пакет на нашем общем тестовом стенде: Vadim.
2. Унаследовал его от пакета Finotdel.
3. Добавил в него замещающий объект.
4. В качестве родительского объекта выбрал "лид".
5. Сохранил в метаданных, скомпилировал.
6. Добавил объект, где в качестве родительского выбрал "базовый справочник".
7. Сохранил, скомпилировал.
8. Открыл объект, созданный на первом шаге, добавил в колонки поле с типом справочник.
9. В параметре справочник выбрал созданный на втором этапе справочник.
10. Сохранил, попытался скомпилировать, но система выдала:
Ошибка сохранения: Ссылка на объект не указывает на экземпляр объекта.
Вадим, здравствуйте.
Возле объекта (справочник) не стоит ли галочка "требуется обновление в бд"?
Проверьте таблица в БД создана? Скорее всего Вы не можете сохранить второй объект, т.к. система не может создать constraint на несуществующую таблицу.
Дмитрий, вы абсолютно правы.
Два вопроса:
1. Каким образом исправить, нужно вручную создавать или есть возможность сделать это из "админки"?
2. Почему таблица не создалась сразу, нужно было где-то поставить какую-то опцию?
Вадим, если после публикации объекта, установлена галочка "Требуется обновление в БД", просто нажмите действие в разделе "Конфигурация" - "Структура БД - Обновить для требующих обновление"