Вопрос

Создать деталь средств связи

Есть раздел, в который необходимо добавить деталь средств связи с полями (мобильный телефон, 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

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

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