1. Фильтрация лукапа такое же как и в обычной карточке?

Вот такой код:

"UsrLookup2": {
                lookupListConfig: {
                    filter: function() {
                        var filters = new Terrasoft.createFilterGroup();
                        filters.name = "CategoryFilter";
                        filters.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.AND;
                        filters.isEnabled = true;
                        filters.addItem(Terrasoft.createColumnFilterWithParameter(
                            Terrasoft.ComparisonType.NOT_EQUAL, "МоеПоле", ""));
                        //filters.addItem(Terrasoft.createIsNotNullFilter("МоеПоле"));
                        return filters;
                    }
                }
            }

Не срабатывает - в окне выбора остаются записи которые должны были пропасть, кроме того в запросе к БД - нет такого фильтра

2. Можно ли по нажатии на кнопку прорисовать новое поле? нажимать можно неограниченное кол-во раз, создать много полей, задизейблить и потом откривать - не вариант

Нравится

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

Радчук Виталий Владимирович,

По фильтрации лукапа: строчку 

filters.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.AND;
замените на

filters.logicalOperation = this.Terrasoft.LogicalOperatorType.AND;

И уберите вот эту строчку 

filters.isEnabled = true;

И ещё почитайте этот пост.

По второму вопросу смотрите статью на академии.

По фильтрации попробуйте вместо Вашего кода написать таким образом:

"UsrLookup2": {
                lookupListConfig: {
                    filter: function() {
                        var filters = new Terrasoft.createFilterGroup();
                        filters.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.AND;
                        filters.isEnabled = true;
                        filters.add("CategoryFilter", Terrasoft.createColumnFilterWithParameter(
                            Terrasoft.ComparisonType.NOT_EQUAL, "МоеПоле", ""));
                        //filters.addItem(Terrasoft.createIsNotNullFilter("МоеПоле"));
                        return filters;
                    }
                }
            }

 

По второму вопросу посмотрите обсуждение здесь.

Алла Савельева,

По первому - не помогло. Еще заметил, что не могу запустить серверный код! ошибка 500, вот код: 

	var config1 = {
					serviceName: "ShowReport1CService",
					methodName: "CreateReport3",
					callback: function(response) {
						var result = response.CreateReport3Result;
					},
					data: {
					},
					scope: this,
					timeout: 1000000
				};
				ServiceHelper.callService(config1);

и на стороне сервера

[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
		ResponseFormat = WebMessageFormat.Json)]
		public string CreateReport3()
		{
			return "asd";

В чем моя ошибка?

Радчук Виталий Владимирович,

По фильтрации лукапа: строчку 

filters.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.AND;
замените на

filters.logicalOperation = this.Terrasoft.LogicalOperatorType.AND;

И уберите вот эту строчку 

filters.isEnabled = true;

И ещё почитайте этот пост.

По второму вопросу смотрите статью на академии.

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

Запускаем БП - в нем нужно прописать выгрузку FileStream или byte[] как обычный файл, чтобы после выполнения кода - началась загрузка файла

Нравится

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

Радчук Виталий Владимирович,

Можно.

onSalesDesktopV2: function() {
    var token = "CardModuleV2/UsrAwaitingPageV2";
    this.sandbox.publish("PushHistoryState", {hash: token});
}

 

Точно БП? В таком случае делать аналогично тому, как работает скачивание отчётов. Примерно:

1) Бп генерирует файл, складирует в IDataStore по определённому ключу (допустим генерируется guid). Далее из бп высылается сообщение на клиент с ключом.

2) Клиент принимает сообщение, снова обращается на сервер, но уже за скачиванием.

3) На сервере надо написать класс и функцию, которая будет возвращать стрим с дополнительными header-ами.

Всроде все. Можно вместо БП использовать сервис и тогда просто делать return ключа и не гемороиться с сообщениями.

Варфоломеев Данила,

тоесть нет простого пути(

БП мне нужен только для открития преднастроенной страницы, ее из клиента можно както открить?

Радчук Виталий Владимирович,

Можно.

onSalesDesktopV2: function() {
    var token = "CardModuleV2/UsrAwaitingPageV2";
    this.sandbox.publish("PushHistoryState", {hash: token});
}

 

Пащенко Александр Сергеевич,

Дошло руки до этого, хочу убрать бп и вызвать страницу из кода.

"CardModuleV2/UsrAwaitingPageV2" - это точно так как нужно? 

UsrAwaitingPageV2 - название страницы? То что пишет в define.

CardModuleV2 - остается.

Пишет множество ошибок:

Заголовок для подписи "LOOKUPfa02a572-e764-48bf-ad0b-4997972a368f" не был найден.
 
Невозможно найти колонку по конфигурации: "{"layout":{"colSpan":12,"rowSpan":1,"column":12,"row":1,"layoutName":"Header"},"bindTo":"UsrLookup2","enabled":true,"contentType":5,"name":"LOOKUPfa02a572-e764-48bf-ad0b-4997972a368f"}" .
 
Uncaught TypeError: Cannot read property 'header' of undefined
    at i.getPageHeader (:82/0/conf/content/BasePageProcessTemplate.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:95)
    at initHeader (:82/0/conf/content/BasePageV2.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:2345)
    at i.onEntityInitialized (:82/0/conf/content/BasePageV2.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:1680)
    at i.callParent (all-combined.js:6)
    at i.onEntityInitialized (:82/0/conf/content/BasePageV2.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:3378)
    at i.callParent (all-combined.js:6)
    at i.onEntityInitialized (:82/0/conf/content/BasePageV2.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:3565)
    at Object.callback (all-combined.js:6)
    at i.<anonymous> (all-combined.js:7)
    at Object.Terrasoft.eachAsync (all-combined.js:7)
 
file: http://192.168.10.24:82/0/conf/content/BasePageProcessTemplate.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45
 line: 95
 column: 24
 message: Uncaught TypeError: Cannot read property 'header' of undefined 
 date: Fri Dec 07 2018 20:17:33 GMT+0300 (Москва, стандартное время)
 stack: TypeError: Cannot read property 'header' of undefined
    at i.getPageHeader (http://192.168.10.24:82/0/conf/content/BasePageProcessTemplate.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:95:24)
    at initHeader (http://192.168.10.24:82/0/conf/content/BasePageV2.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:2345:85)
    at i.onEntityInitialized (http://192.168.10.24:82/0/conf/content/BasePageV2.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:1680:10)
    at i.callParent (http://192.168.10.24:82/core/88fb020650912ad22d23339c297888ad/combined/all-combined.js:6:44657)
    at i.onEntityInitialized (http://192.168.10.24:82/0/conf/content/BasePageV2.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:3378:10)
    at i.callParent (http://192.168.10.24:82/core/88fb020650912ad22d23339c297888ad/combined/all-combined.js:6:44657)
    at i.onEntityInitialized (http://192.168.10.24:82/0/conf/content/BasePageV2.js?hash=9dd7bbf4b00441f59c94ee1b3eae3f45:3565:10)
    at Object.callback (http://192.168.10.24:82/core/88fb020650912ad22d23339c297888ad/combined/all-combined.js:6:73147)
    at i.<anonymous> (http://192.168.10.24:82/core/88fb020650912ad22d23339c297888ad/combined/all-combined.js:7:1024268)
    at Object.Terrasoft.eachAsync (http://192.168.10.24:82/core/88fb020650912ad22d23339c297888ad/combined/all-combined.js:7:156660)

 

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

Добрый день! 

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

Данную задачу я решил разбить на две, первая есть добавление самой детали(1), вторая уже реализация группирования(2).

1.

1.1 Для добавления детали я добавил "схема модели представления детали с реестром".

1.2 Унаследовал ее от "FileDetailV2 ( UIv2 )".

1.3 Добавил следующий код: 

define("UsrDocumentsFileDetail", [],
    function() {
		return {
			entitySchemaName: "UsrDocumentsListImage"
		};
	}
);

1.4 Затем я добавил объект "UsrDocumentsListImage" унаследовав его от "Файл ( Base )".

В объект добавил Lookup на форму, на которой будет отображаться создаваемая деталь. Подробная структура объекта:

[Id],
[CreatedOn],
[CreatedById],
[ModifiedOn],
[ModifiedById],
[Name],
[Notes],
[LockedById],
[LockedOn],
[Data],
[TypeId],
[Version],
[Size],
[ProcessListeners],
[UsrApplicationFormId] -- Lookup на форму для отображения детали

1.5 На модель страницы формы я добавил следующий код: 

details: {
    // Настройка детали [(Просмотр изображений)Документы]
    "UsrDocumenctImageViewDetailElement": {
	    "schemaName": "UsrDocumentsFileDetail",
	    "filter": {
		    "detailColumn": "UsrApplicationForm",
		    "masterColumn": "Id"
    	}
    }
},
diff: [
    {
        {
			"operation": "insert",
			// Название детали.
			"name": "UsrDocumenctImageViewDetailElement",
			"values": {
				"itemType": Terrasoft.core.enums.ViewItemType.DETAIL,
				"markerValue": "added-detail"
			},
			// Контейнеры, в котором размещена деталь.
			// Деталь размещена на вкладке [ДОКУМЕНТЫ И ФОТО].
			"parentName": "Tabd3595bedTabLabel",
			"propertyName": "items",
			// Индекс в списке добавляемых элементов.
			"index": 1
		}
    }
]

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

Лог консоли браузера: 

Error while sending request 
	response status: 500 (ItemNotFoundException)
	request url: ../DataService/json/SyncReply/SelectQuery
	method: POST
	request data: {"rootSchemaName":"UsrDocumentsListImage","operationType":0,"filters":{"items":{"211c1207-255e-48c2-8eb6-e011b92fdfc6":{"filterType":1,"comparisonType"...
 
Uncaught{message: "Элемент коллекции с именем UsrDocumentsListImage не найден"}
 
user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
 file: http://localhost:83/0/configuration/d79cf7d52ccb236d2d57879ca34250e6ru-RU/FileDetailV2.js
 line: 183
 column: 7
 message: Uncaught Terrasoft.UnknownException: Элемент коллекции с именем UsrDocumentsListImage не найден 
 date: Mon Nov 12 2018 17:05:55 GMT+0300 (Москва, стандартное время)
 stack: undefined

Вопрос: 

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

Нравится

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

Добрый день, а в таблице все поля корректно заполняются?

Попробуйте в объекте UsrDocumentsListImage переименовать поле UsrApplicationForm на UsrDocumentsListImage, возможно дело кроется в методе initParentEntity 

Колодяжный Владислав Эдуардович,

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

Заполняется все кроме  lockedById([uniqueidentifier] NULL) и lockedOn([datetime2](7) NULL). 

В случае переименования в объекте UsrDocumentsListImage поля UsrApplicationForm на UsrDocumentsListImage компилятор ругается:

Элемент c идентификатором "UsrDocumentsListImage" уже существует

Может, набор и имена полей в объекте и в select-запросе отличаются. Посмотрите в Fiddler-е наполнение request data полностью.

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

Коллеги, добрый день.

Пытаюсь настроить Visual Studio для разработки отдельных модулей исходного кода без перекомпиляции всей структуры как описано в статье https://academy.terrasoft.ru/documents/technic-sdk/7-13/razrabotka-konf…

Настроил всё по инструкции, Debug успешно запускается, но при обращении к свойствам EntitySchemaManager, например, прямо на первой строке примера из статьи:

 var schema = userConnection.EntitySchemaManager.GetInstanceByName("Contact");

получаю ошибку 

Exception: Exception thrown: 
'Terrasoft.Common.ArgumentNullOrEmptyException' in Terrasoft.Common.dll 
("Value for argument "outputDirectory" must be specified."). 

Может кто-то уже сталкивался с подобным? Подскажите что за outputDirectory и где его нужно его указать?

 

Нравится

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

Было похожее,  в ходе тестирования было выявлено, что проблемы возникали из-за параметра:

<add key="Feature-UseRuntimeEntitySchemaMetadata" value="true" /> 

в  Terrasoft.Tools.WorkspaceConsole.exe.config.

При значении false отладка работает.

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

Спасибо большое! Да, это действительно решает проблему, не знаю сколько времени ушло бы чтобы самому это найти.

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

Добрый день!



Хочется узнать идеологическое обоснование того, что сейчас к лиду привязана только одна продажа.

Как лучше управлять ситуацией, когда первая продажа закончилась неуспешно, а лид вернули на взращивание. И через некоторое время лид отправляется снова на продажу.



В итоге привязка первой продажи к лиду пропадает.

Ваше мнение, как корректнее было бы управлять такими ситуациями?

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

Нравится

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

Я бы предложила при возврате лида - оставить его для истории. А для работы создать новый лид . Ведь если лид не закончился продажей - значит необходимо поменять условия и тактику. Это уже можно назвать новым лидом. Возможно создать "Родительский лид" и связать его со всеми дочерними.

Так можно решить проблему и цитата: "...И в рамках одной потребности можем получать лиды на 10 вебинаров, 5 white page и по другим каналам  Причём, от разных контактов..." Привяжите их к "родителю". для "родительского лида" создайте отчетные поля.

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

О лидах и продажах описано тут.

Слишком много логики их связывает, все квалификации-дисквалификации, чтобы переделывать на деталь.

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

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

Можно настроить в разделе фильтрацию, чтобы не видеть не интересующие лиды.

У меня больше идеологические расхождения. 

Что мы взращиваем - потребность (может быть много разных лидов) или конкретную заявку (лид в системе) 

И в рамках одной потребности можем получать лиды на 10 вебинаров, 5 white page и по другим каналам  Причём, от разных контактов.

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

Лидов может быть ещё больше. Если подключена веб-форма регистрации лидов, один и тот же человек может их завести сколько угодно. Но в результате продадут только по одному.

Я бы предложила при возврате лида - оставить его для истории. А для работы создать новый лид . Ведь если лид не закончился продажей - значит необходимо поменять условия и тактику. Это уже можно назвать новым лидом. Возможно создать "Родительский лид" и связать его со всеми дочерними.

Так можно решить проблему и цитата: "...И в рамках одной потребности можем получать лиды на 10 вебинаров, 5 white page и по другим каналам  Причём, от разных контактов..." Привяжите их к "родителю". для "родительского лида" создайте отчетные поля.

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

Есть проблема: При удалении записи(допустим контакта) нужно сделать обработку контрагента этого контакта. Можно ли в БП как то узнать контрагента этого контакта? И если нет, то как вообще это сделать? Только на стороне клиента?

Нравится

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

В объекте можно отловить событие Deleted (После удаления записи). В БД записи уже не будет, но из текущей Entity вы еще сможете получить контрагента.

Entity.GetTypedColumnValue<Guid>("AccountId");

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



Либо в БП просто началом процесса назначить сигнал "Удаление записи" 

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

Колодяжный Владислав Эдуардович,

перед удалением - это 100% удаление потом будет?

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

В БП после события удаления я могу влепить элемент чтения(прочитать поле контрагент) потом посчитать к примеру кол-во контактов в контрагенте - посчитает с удаленным или без?

В объекте можно отловить событие Deleted (После удаления записи). В БД записи уже не будет, но из текущей Entity вы еще сможете получить контрагента.

Entity.GetTypedColumnValue<Guid>("AccountId");

Радчук Виталий Владимирович,

В БП посчитает с "удаленным". Как раз недавно столкнулся. (Физически запись еще не удалена). Оптимальным решением будет написание логики в объекте на событии "После удаления записи".

Добавить комментарий

Пащенко Александр Сергеевич пишет:

то что нужно! 

Радчук Виталий Владимирович пишет:

В БП после события удаления я могу влепить элемент чтения(прочитать поле контрагент) потом посчитать к примеру кол-во контактов в контрагенте - посчитает с удаленным или без?

Считайте количество контактов, без учёта (AND Id <>...) Id удаляемой записи , получаемого в сигнале

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

Добрый день! 

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

Вопрос:

Как этого можно достичь? Возможно как то переопределить базовую деталь с полями? Или возможно вместо "списка с иконками отображений" (в случае не возможности или трудоемкости достижения поставленной задачи) добавить поле с ссылкой на "хранилище"(вкладку) с изображениями(возможностью редактирования, т.е. добавления/удаления)?

  

Нравится

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

Решил подключить Visual Studio,  для более удобной разработки.

После измены параметров:

fileDesignMode enabled="true" />
...
<add key="UseStaticFileContent" value="false" />

зашел компилировать - пишет что не найдено родителя у (Внимание!) схемы - это исходный код!

В системе уже есть несколько пакетов с доработками, все делал по https://academy.terrasoft.ru/documents/technic-sdk/7-12/nastroyka-visual-studio-dlya-razrabotki-v-faylovoy-sisteme

Как скомпилировать и продолжить настройку?

Нравится

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

 

Вот текст ошибки:

Зависимость 'UsrSyncInvoicesService' пакета 'Sync1C' не найдена. Путь поиска: C:\inetpub\wwwroot\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\Sync1C\Schemas\UsrSyncInvoicesService\UsrSyncInvoicesService.cs

Добрый день. Скомпилируйте через конфигурацию, потом обновите проект и продолжайте работать из студии.

Ефанов Иван Александрович,

так не дает скомпилировать! я же писал об этом

Судя по тексту сообщения, что-то неправильно сделано с самодельной схемой UsrSyncInvoicesService. Возможно, на неё есть ссылка из другой схемы, а сама UsrSyncInvoicesService была удалена, переименована или не перенесена с другой базы.

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

Она на месте, с ней все в порядке, используется в БП, компиляция без настроек проходит успешно

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

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

Добрый день, формирую процесс, который бы изменял права доступа на запись раздела Контакт или Контрагент при изменении ответственного. Вопрос - как получить id пользователя, группу орг. структуры, группу руководителя и группу руководителя выше стоящего эл-та орг. структуры для контакта, который указан в Ответственном?

Нравится

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

Можно получить выполнив весьма громоздкий запрос к таблицам SysAdminUnit и SysUserInRole. Иначе никак.

Похожий вопрос обсуждали в теме: https://community.terrasoft.ua/questions/proverit-nalicie-prav-u-polzov…



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

Можно получить выполнив весьма громоздкий запрос к таблицам SysAdminUnit и SysUserInRole. Иначе никак.

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

Есть раздел, в который необходимо добавить деталь средств связи с полями (мобильный телефон, email, дополнительный телефон). 

Попытался повторить ответ на вопрос https://community.terrasoft.ru/questions/sredstva-svazi-lida, так как в моем случае, средства связи будут привязываться(указывать) к конкретному лиду.

Но реализовать выше приведенную пример, мне не удалось, деталь не отображается. 

Таблица детали: 

UsrLeadCommunication, унаследована от Базовое средство связи ( Base ).

Добавил два Lookup'а на таблицу Lead, и на таблицу раздела, где должна отображаться данная деталь. 

Модель детали: 

define("UsrLeadCommunicationDetail", ["UsrLeadCommunicationDetailResources", "terrasoft", "Lead",
    "ConfigurationEnums", "ConfigurationConstants"], function(resources, Terrasoft, Lead, ConfigurationEnums,
    ConfigurationConstants) {
        return {
            entitySchemaName: "UsrLeadCommunication",
            methods: {}
        };
    });

В dependencies добавил все зависимости. 

В page раздела добавил: 

в details: 

  

{
   // Настройка детали [Способы связи]
   "UsrLeadCommunicationDetailElement": {
      "schemaName": "UsrLeadCommunicationDetail",
      "entitySchemaName": "UsrLeadCommunication"
      "filter": {
         "detailColumn": "UsrApplicationForm", // Lookup на раздел с формой
         "Id"
      }
   }
}



            

в diff:

{
   "operation": "insert",
   // Название детали.
   "name": "UsrLeadCommunicationDetailElement",
   "values": {
      "itemType": Terrasoft.core.enums.ViewItemType.DETAIL,
      "markerValue": "added-detail"
   },
   "parentName": "Tabf9415591TabLabel",
   "propertyName": "items",
   // Индекс в списке добавляемых элементов.
   "index": 3
}

 

В логи браузера сыпется ошибка: 

SchemaBuilderV2.js:282 Uncaught TypeError: Cannot read property 'entitySchemaName' of undefined
    at i.<anonymous> (SchemaBuilderV2.js:282)
    at all-combined.js:503
    at Object.execCb (require.js:1693)
    at Module.check (require.js:881)
    at Module.enable (require.js:1173)
    at Module.init (require.js:786)
    at require.js:1457

 

Вопрос: как правильно реализовать деталь средств связи для формы раздела? 

Нравится

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

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

Если не получится найти ошибку самостоятельно приведите полный исходный код модуля (текст)

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

Если не получится найти ошибку самостоятельно приведите полный исходный код модуля (текст)

Григорий Чех, 

Спасибо за Ваш ответ! Ошибки действительно присутствовали(не хватало запятой), все исправил(так же проверил остальные модули). Теперь форма раздела открывается, отображаются другие детали, но данная деталь "Средства связи" не отображается.

В консоль браузера сыпятся ошибки:

Uncaught TypeError: Cannot set property 'entitySchemaName' of undefined
    at initSchemaCustomAttributes (SchemaBuilderV2.js:132)
    at f (all-combined.js:495)
    at i.&lt;anonymous&gt; (SchemaBuilderV2.js:111)
    at all-combined.js:503
    at Object.execCb (require.js:1693)
    at Module.check (require.js:881)
    at Module.&lt;anonymous&gt; (require.js:1136)
    at require.js:134
    at require.js:1186
    at each (require.js:59)
core.js:633 
--------------------------------------------------
user: Supervisor/7f553b869f-34f3-4f20-ab4d-7480a5fdf647
 file: http://localhost:83/0/Nui/ViewModule.aspx
 line: 3
 column: 1
 message: Uncaught SyntaxError: Unexpected token &lt; 
 date: Wed Oct 31 2018 20:12:20 GMT+0300 (Москва, стандартное время)
 stack: SyntaxError: Unexpected token &lt;
writeErrorMessage @ core.js:633
core.js:633 
--------------------------------------------------
user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
 file: http://localhost:83/0/configuration/257f6624f537935d17c182584045709dru-RU/SchemaBuilderV2.js
 line: 132
 column: 38
 message: Uncaught TypeError: Cannot set property 'entitySchemaName' of undefined 
 date: Wed Oct 31 2018 20:12:20 GMT+0300 (Москва, стандартное время)
 stack: TypeError: Cannot set property 'entitySchemaName' of undefined
    at initSchemaCustomAttributes 

По первой ошибке открыл код(привожу строки, где эта ошибка содержится): 

// файл SchemaBuilderV2.js
if (entitySchemaName) {
	schemaResponse.entitySchemaName = entitySchemaName; // ошибка тут
}
callback(config);

 

Вы деталь зарегестрировали, те выполнили sql запросы? Очистили кєш браузера, кєш рєдиса? Если это дела или не помогло выкладывайте код вашейдетали и код старницы куда ее подключили

Григорий Чех,

Добрый день! Некоторыми способами удалось достичь желаемое, необходимо было в странице формы при объявлении детали, заменить колонку детали в фильтре: 

{
   // Настройка детали [Способы связи]
   "UsrLeadCommunicationDetailElement": {
      "schemaName": "UsrLeadCommunicationDetail",
      "entitySchemaName": "UsrLeadCommunication"
      "filter": {
         "detailColumn": "UsrLead", // &lt;&lt; Здесь нужна была замена
         "Id"
      }
   }
}

Так же добавил все зависимости, какие находятся у базовой  детали средств связи с полями

В справочнике UsrApplicationForm изменил свойство "Обязательно для заполнения" на "Уровне приложения". 

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

Но, присутствует проблема сохранения. 

При сохранении записи кнопкой Save, расположенной в левой верхней части формы, в лог браузера появляется ошибка: 

user: Supervisor/7541b869f-34f3-4f20-ab4d-7480a5fdf647
 file: undefined
 line: undefined
 column: undefined
 message: Cannot read property 'replace' of undefined 
 date: Thu Nov 08 2018 15:40:33 GMT+0300 (Москва, стандартное время)
 moduleId: ext-window
 moduleName: undefined

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

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