Привет всем !,
возникает ошибка при создании нового раздела,
Ошибка: Ссылка на объект не указывает на экземпляр объекта..

Нравится

4 комментария

1. Какой пакет у Вас указан в системной настройке 'CurrentPackageId'?

2. Какие права у пользователя, под которым создается новый раздел?

Алла Савельева, 
1. Значение по умолчанию: Custom
2. Права Системного Администратора

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

Либо превышена максимальная длина названия объекта, ограничения были в старых версиях везде, а сейчас оставлены при работе с Oracle.

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

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

Создавал со всеми возможными вариантами ...
Решение: переключится на вкладку "Страница" потом на "Раздел" и сохранить, и это вроде сработало

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

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

Нельзя ли вновь добавить такую возможность?

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

Здравствуйте, Иван!

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

Спасибо за Ваш отзыв!

Марина

Броневич Марина,

здравствуйте!

С возможностью регистрации раздела на Портале было бы неплохо.

Борис, здравствуйте!

Добавление раздела на портал пользовательскими средствами не производится. 
Для портала и основной системы создавать раздел и карточку нужно отдельно (при условии, что они будут привязаны к одной сущности).
Для основной системы добавление осуществляется стандартными действиями. Для портала – согласно инструкции Установка+разделов+на+портале.doc (во вложении).
Например, если нужно создать раздел и карточку для сущности Обращение (Case), то для основной системы это будут CaseSection и CasePage.
А для портала – PortalCaseSection и PortalCasePage соответственно. И все эти схемы будут связаны с сущностью Case. Во вложении, как описал (https://www.dropbox.com/s/0tve6612s7e69se/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%2B%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2%2B%D0%BD%D0%B0%2B%D0%BF%D0%BE%D1%80%D1%82%D0%B0%D0%BB%D0%B5.doc?dl=0)

Иван, здравствуйте!

Для регистрации попробуйте следующую инструкцию - https://www.dropbox.com/s/fv8pm25pstaanis/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%2B%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%2B%D0%BD%D0%B0%2B%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%2B%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%2B%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%2B%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0.doc?dl=0

Вильшанский Дмитрий,

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

Иван, можете попробовать самостоятельно усовершенствовать инструкцию и опубликовать на community. Со своей стороны зафиксировали Ваше пожелание.

Вильшанский Дмитрий,

Спасибо, Дмитрий, в конечном итоге всё получилось, приведу копипасту из обсуждения в соседней ветке:

Новый раздел действительно появился в списке добавления в рабочее место, в прошлый раз я этого не заметил (к своему стыду).

После добавления он долго не появлялся в основном меню и подвисал при сохранении с надписью "регистрация раздела", но в конечном итоге после перекомпиляций и сбросов редиса появился, но зависал при попытке его открыть. Отладчик показал, что сбой в загрузке происходит в схеме ProfileUtilities в методе getDefaultGridSettings() на строке:

var columnName = config.primaryDisplayColumn.name;

config.primaryDisplayColumn приходил undefined, в итоге я остановил выполнение в этом месте и в консоли вручную задал его значение:

config.primaryDisplayColumn = {
  name: "Name" //Подставил имя столбца из моего объекта
};

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

Еще раз спасибо!

Добрый день! После создания раздела я не могу работать с группами фильтров, хотя создал объект ***Folder, и унаследовал его от базовой группы. Теперь фильтрацию можно сохранить, но элемент меню "показать группы" отсутствует, они видны только после добавления новой группы, и работают не так, как хотелось бы.

Пожалуйста, подскажите как исправить эту ситуацию.

Небеддаг Иван Владимирович,

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

Ответ был предоставлен в топике - https://community.terrasoft.ru/questions/poradok-sozdania-razdela-vrucn…

 

Дублирую:

Для того, чтоб можно было настраивать группы в новом разделе, необходимо создать 2 новых объекта с названиями в БД, которые формируются определенным образом:

1) *название объекта раздела*Folder (например, ContactFolder), родитель - "Базовая группа ( Base )" (BaseFolder);

2) *название объекта раздела*InFolder (например, ContactInFolder), родитель - "Базовый элемент в группе ( Base )" (BaseItemInFolder).

Параметры объектов указывайте аналогичные тем, которые установлены у объектов группы для базовых разделов, например, у тех же ContactFolder и ContactInFolder. Также в объекте *...*InFolder необходимо указать у колонки "Folder" справочник - объект *...*Folder из п.1, а также создать справочную колонку, которая будет ссылаться на объект раздела. Пример - http://prntscr.com/jz06kf.

Примечание. Если Вы регистрируете раздел на основании объекта, в названии которого отсутствует префикс (например, Usr), то у объектов в п.1 и 2 тоже префикса не должно быть. Можно временно отключить необходимость префикса в системной настройке SchemaNamePrefix. 

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

Добрый день!

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

Не мог бы кто-нибудь предоставить пошаговую инструкцию по созданию и регистрации нового раздела без использования мастера разделов?

Нравится

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

Иван, здравствуйте!

Мастером можно создать раздел только вместе с новым объектом, создать раздел на основании существующего объекта можно пока только вручную. 

Ниже приведен приблизительный алгоритм реализации (объект «OrderProduct»):

1) Создать страницу раздела.

Для этого Вам необходимо создать схему AlDOrderProductSectionV2 со следующим кодом:

define("AlDOrderProductSectionV2", [],
	function() {
		return {
			entitySchemaName: "OrderProduct",
			messages: {},
            mixins: {},
            attributes: {},
            methods: {},
            diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
		};
	}
);

 

2) Для объекта "OrderProduct" уже есть запись в таблице SysModuleEntity (объекты разделов). Для получения Id записи необходимо выполнить скрипт:

select SysModuleEntity.Id from SysModuleEntity
join SysSchema
on SysSchema.UId = SysModuleEntity.SysEntitySchemaUId
where SysSchema.Name = 'OrderProduct'

 

3) Получив SysModuleEntity.Id необходимо зарегистрировать сам раздел.

Для регистрации раздела необходимо добавить запись в таблицу SysModule.

Запрос приблизительно следующий:

insert into SysModule
(SectionSchemaUId, Code, SysModuleEntityId, CardSchemaUid, SectionModuleSchemaUid, CardModuleUid)
values
(/*Uid созданной на первом шаге схемы*/, /*Код раздела*/, /*Результат запроса из второго пункта*/, /*UID незамещенной схемы OrderProductPageV2 из таблицы SysSchema*/, /*DF58589E-26A6-44D1-B8D4-EDF1734D02B4*/, /*4E1670DC-10DB-4217-929A-669F906E5D75*/)

Также необходимо заполнить значения полей:

Caption, Image16, Image20, ModuleHeader, Image32d, LogoId

 

4) Добавьте раздел в нужное рабочее место

В результате очистки кеша, Redis и перезахода в систему раздел будет в нужном рабочем месте, но без кнопки "Добавить".

 

5) Скрипт добавит кнопку:

update SysModuleEdit
set ActionKindCaption = 'Добавить продукт к заказу'
where SysModuleEntityId = (select SysModuleEntity.Id from SysModuleEntity
join SysSchema
on SysSchema.UId = SysModuleEntity.SysEntitySchemaUId
where SysSchema.Name = 'OrderProduct')

После выполнения скрипта нужно будет выйти из системы, очистить кеш, войти в систему.

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

Add comment

Одеяненко Юлия,

К сожалению, после вышеуказанных действий, раздел не появился. Пытался отследить запросы через профайлер в момент добавления раздела через мастер, но там сотни запросов, этот вариант тоже, кажется, отпадает.

Иван, проверила сама данную инструкцию - она работает, после выполнения всех действий раздел появляется в списке разделов для добавления в рабочее место, после добавления открывается. Также, если у Вас версия 7.11+, рекомендуем после выполнения всех действий сгенерировать исходный код и скомпилировать конфигурацию (связано с появлением статического контента в новых версиях). Также рекомендуем установить у созданной в п.1 схемы в качестве родителя BaseSectionV2

Одеяненко Юлия,

Спасибо, Юлия! Новый раздел действительно появился в списке добавления в рабочее место, в прошлый раз я этого не заметил (к своему стыду).

После добавления он долго не появлялся в основном меню и подвисал при сохранении с надписью "регистрация раздела", но в конечном итоге после перекомпиляций и сбросов редиса появился, но зависал при попытке его открыть. Отладчик показал, что сбой в загрузке происходит в схеме ProfileUtilities в методе getDefaultGridSettings() на строке:

var columnName = config.primaryDisplayColumn.name;

config.primaryDisplayColumn приходил undefined, в итоге я остановил выполнение в этом месте и в консоли вручную задал его значение:

config.primaryDisplayColumn = {
  name: "Name" //Подставил имя столбца из моего объекта
};

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

Еще раз спасибо!

Одеяненко Юлия,

Юлия, к сожалению, я столкнулся с новой проблемой:

в добавленном разделе нельзя настроить фильтры. Я добавил объект ***Folder, и унаследовал его от базовой группы. Теперь фильтрацию можно сохранить, но элемент меню "показать группы" отсутствует, они видны только после добавления новой группы, и работают не так, как хотелось бы.

Не могли бы Вы мне помочь, рассказав, какие действия мне необходимо выполнить для того, чтобы этот функционал заработал корректно?

Небеддаг Иван Владимирович,

для того, чтоб можно было настраивать группы в новом разделе, необходимо создать 2 новых объекта с названиями в БД, которые формируются определенным образом:

1) *название объекта раздела*Folder (например, ContactFolder), родитель - "Базовая группа ( Base )" (BaseFolder);

2) *название объекта раздела*InFolder (например, ContactInFolder), родитель - "Базовый элемент в группе ( Base )" (BaseItemInFolder).

Параметры объектов указывайте аналогичные тем, которые установлены у объектов группы для базовых разделов, например, у тех же ContactFolder и ContactInFolder. Также в объекте *...*InFolder необходимо указать у колонки "Folder" справочник - объект *...*Folder из п.1, а также создать справочную колонку, которая будет ссылаться на объект раздела. Пример - http://prntscr.com/jz06kf.

Примечание. Если Вы регистрируете раздел на основании объекта, в названии которого отсутствует префикс (например, Usr), то у объектов в п.1 и 2 тоже префикса не должно быть. Можно временно отключить необходимость префикса в системной настройке SchemaNamePrefix. 

Иван Небеддаг пишет:
config.primaryDisplayColumn приходил undefined, в итоге я остановил выполнение в этом месте и в консоли вручную задал его значение:config.primaryDisplayColumn = {   name: "Name" //Подставил имя столбца из моего объекта };

Подскажите пожалуйста где именно в консоли вы задали значение? И что за "имя столбца объекта" подставили?

Идрисов Артур Ильдарович,

Имя столбца объекта можете подставить любое, лишь бы оно в Вашем объекте было. Можете использовать "Id", не ошибетесь. 

А на первый вопрос даже не знаю, что ответить. Вы просто ставите точку останова перед строкой, где происходит ошибка, переходите во вкладку консоль и пишете config.primaryDisplayColumn = {   name: "Id" }, после чего продолжаете выполнение кода.

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

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

Добрый день! При создании нового раздела в системе bpm'online не происходит его регистрация и невозможно использовать его в других модулях, например, для создания в меню быстрого запуска, либо нового замещения уже своего раздела.
Как зарегистрировать новый раздел?

Нравится

3 комментария

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

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

Более подробно Вы можете узнать в Академии (Настройка интерфейса ->Мастер разделов).

Спасибо, Алексей, но не то. При использовании мастера раздел НЕ регистрируется!

Нашел решение: необходимо добавить SQL-скрипт
DECLARE @LookupEntityName nvarchar(max) = 'имя схемы'
DECLARE @LookupPageName nvarchar(max) = 'имя страницы'

INSERT INTO SysModuleEntity (SysEntitySchemaUId)
VALUES ((SELECT UId FROM SysSchema WHERE Name = @LookupEntityName))

INSERT INTO SysModuleEdit (SysModuleEntityId, CardSchemaUId)
VALUES
(
(SELECT Id FROM SysModuleEntity WHERE SysEntitySchemaUId in
(SELECT UId FROM SysSchema WHERE Name = @LookupEntityName)
),
(SELECT UId FROM SysSchema WHERE Name = @LookupPageName)
)

Илья, разделы регистрируются.
Чтобы приложение наполнилось новыми разделами и можно было с ними работать необходимо перезаходить в приложение.

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

Необходимо выполнить (до этого делал только на обычном Terrasoft, тут не получается)
Создать раздел для заполнения
Цель звонка:
новостройка
новостройка Рихард
вторичное жилье
загородная недвижимость
коммерческая недвижимость
повторный звонок
другое
Пользователь должен поставить галочку напротив одного из вариантов.
2) По итогам выполнения п.1 результат вносится в таблицу вида:
Таблица 1: Статистика входящих звонков
дата
новост-ройка
новостройка Рихард
вторичное жилье
загородная недвижимость
коммерческая недвижимость
повторный звонок
другое

Нравится

3 комментария

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

Процедура создания стандартного раздела выполняется в несколько этапов:

1. Создание основного объекта раздела. Например, для раздела “Контрагенты” таким объектом является “Контрагент”, а для раздела “Контакты” – “Контакт”. Объект раздела должен содержать колонки для хранения данных записей раздела.
2. Создание объектов “группа” и “элемент в группе” для корректной работы группировки записей в разделе.
3. Создание страницы карточки раздела, при помощи которой пользователь сможет добавлять новые, а также редактировать добавленные ранее записи раздела.
4. Создание страницы основного реестра раздела, который будет содержать записи раздела.
5. Создание страницы самого раздела, с помощью которой формируется структура раздела, в частности, эта страница содержит основной реестр раздела, дерево групп и область деталей.
6. Регистрация раздела в системе.

Для создания объектов и страниц используются дизайнер объектов и дизайнер страниц, соответственно. Для регистрации раздела в системе используется раздел “Рабочие места”.

литература есть по этому поводу

Николай, вся необходимая информация по ссылке ниже.
Если возникнут дополнительные вопросы - задавайте.

Скачать

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

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

Скажите пожалуйста,можно ли создать новый раздел в демо-версии Terrasoft CRM?

Нравится

2 комментария

Да, можно. Нужно запустить клиентское приложение c ключом /wnd=wnd_CreateNewWorkspace

Добавил маленькую инструкцию с скриншотами, для полной ясности.
Просьба посмотреть комментарий
http://www.community.terrasoft.ru/forum/topic/7006#comment-29940

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

Создаю раздел с помощью конструктора, затем пользователи начинают им пользоваться (логично).
Но. Пользователи по умолчанию создают в нем записи с закрытым доступом (только для себя).

Подскажите пожалуйста, как сделать так, чтобы по умолчанию пользователь создавал в новоиспеченном разделе записи с доступом "Все пользователи"?

Нравится

3 комментария

А в разделе "Администрирование" во вкладке "Права по умолчанию" для этого раздела у вас какой доступ стоит? Попробуйте поставить "Все пользователи"

Если Вы создали новый раздел конструктором, то после этого Вам необходимо:

1. Выставить права на новый раздел в "Администрирование" - "Права доступа к группе таблиц"
2. Выставить права в "Администрирование" - "Права доступа по умолчанию"

Спасибо, права по умолчанию помогли.

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