Есть деталь с 3мя словариками: Контакт(с полем лояльность), Лояльнсть(имя, описание), Параметры лояльности(Имя, Лояльность.Имя, описание)

Добавил деталь к контакту, она автоматически заполняет поле Контакт, а мне ещё нужно подтянуть поле Лояльность(из контакта), а по нему отфильтровать Параметры лояльности.

Знаю, что могу оформить запрос при помощи "EntityQueryColumn", не знаю только куда он собственно прописывается, и туда ли копаю

Нравится

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

Если нужен фильтр полей в карточке детали, то вам сюда:

https://academy.terrasoft.ru/documents/technic-sdk/7-15/primenenie-filtracii-k-spravochnym-polyam

Если нужно автозаполнение поля "в фоне" при сохранении объекта:

https://academy.terrasoft.ru/documents/technic-bpms/7-15/kak-ispolzovat-sobytiynyy-podprocess

Если нужен фильтр полей в карточке детали, то вам сюда:

https://academy.terrasoft.ru/documents/technic-sdk/7-15/primenenie-filtracii-k-spravochnym-polyam

Если нужно автозаполнение поля "в фоне" при сохранении объекта:

https://academy.terrasoft.ru/documents/technic-bpms/7-15/kak-ispolzovat-sobytiynyy-podprocess

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

Я хочу отредактировать выпадающий список пользовательского фильтра. Хочу совет как это сделать.

Выпадающий список для очистки  :

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

 

В 7.13 запрещено переопределять поведение такого фильтра, использовав наследование от ядра. То есть, возможности управлять столбцами entitySchema, которую использует фильтр при генерации, нет. Данные для элемента html приходят асинхронно, заполняя список. Это значит во время рендера схемы их пока нет. Я могу сделать свой компонент extjs , скрыв существующий, внести в пустой список нужные значения гуид столбцов и назначить для него признаки от оригинального то есть fake выпадающий список, выбранное пользователем значение из него будет задействовано в настоящем фильтре. Или использовать в схеме javascript таймер и вносить мои данные через пять секунд после наполнения страницы, тем самым перезаписав список, генерируемый схемой модели фильтра.

Разве нет простого решения отредактировать коллекцию элементов из списка ?

Это же типовая задача по оптимизации, она часто должна встречаться.  Были ли у вас какие-то наработки ? Я не нашел здесь

Нравится

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

Этот список наполняется не в ядре, а в функции getSimpleFilterColumnList в схеме CustomFilterViewModelV2:

  function getSimpleFilterColumnList(filters, list) {
   list.clear();
   var columnList = {};
   var columnNames = [];
   var columns = this.entitySchema.columns;
   Terrasoft.each(columns, function(column) {
    if (column.dataValueType !== Terrasoft.DataValueType.GUID &&
     column.dataValueType !== Terrasoft.DataValueType.TIME &&
     column.dataValueType !== Terrasoft.DataValueType.BLOB &&
     column.dataValueType !== Terrasoft.DataValueType.IMAGELOOKUP &&
     column.usageType !== ConfigurationEnums.EntitySchemaColumnUsageType.None) {
     if (this.isColumnDeprecated(column)) {
      return;
     }
     columnNames.push({
      name: column.name,
      caption: column.caption
     });
    }
   }, this);
   var sortedColumnNames = columnNames.sort(function(a, b) {
    if (a.caption === b.caption) {
     return 0;
    } else {
     return a.caption > b.caption ? 1 : -1;
    }
   });
   Terrasoft.each(sortedColumnNames, function(item) {
    var column = columns[item.name];
    columnList[column.name] = {
     value: column.name,
     displayValue: column.caption,
     dataValueType: column.dataValueType,
     referenceSchemaName: column.referenceSchemaName
    };
   });
   list.loadAll(columnList);
  }

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

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

Добрый день!

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

В связи с этим вопрос: как настроить типы дробных полей, а именно, указать тип данных 0,0001 и 0,1. 

Буду благодарна за совет.

Нравится

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

Попробуйте открыть эту страницу в конфигураторе (action -> source code), затем найти требуемый параметр и поставить ему нужный тип данных.

Попробуйте открыть эту страницу в конфигураторе (action -> source code), затем найти требуемый параметр и поставить ему нужный тип данных.

Трефилов Павел Сергеевич,

Павел, спасибо, я эти действия сделала в самом начале и никаких изменений не произошло. Ранее данные действия выполнялись без проблем. Видимо, в последних версиях такая функциональность исчезла или это баг. Закрыла вопрос применением кода в Diff. Помогли коллеги :-)

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

Добрый день!

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

И ещё вопрос: Можно ли так же в модели машинного обучения задать настройку по автоматическом заполнению и сохранению полей в случае высокого процента совпадения?

Благодарю за ответ!

Нравится

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

Добрый день, izerl.

 

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

 

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

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

Пытаюсь читать данные, как писали опытные люди

var entities1 = Get<ICompositeObjectList<ICompositeObject>>("ReadDataUserTask1.ResultCompositeObjectList");
var	entityLocation	= entities1.FirstOrDefault();
if (entityLocation == null)
	throw(new Exception("NULL!!!"));

ReadDataUserTask1 - чтение 1 записи.

entityLocation получается null, хотя я читаю элемент, по заранее заданному Id.

Если сделать просто entities1.First(), то ошибка System.InvalidOperationException: Последовательность не содержит элементов в System.Linq.Enumerable.First

Что я делаю не так?

Нравится

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

Попробуйте обращаться не к ResultCompositeObjectList, а к ResultEntity. И тип данных Entity

 

Попробуйте обращаться не к ResultCompositeObjectList, а к ResultEntity. И тип данных Entity

 

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

Добрый день.

Вопрос следующий:

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

Прикрепленные файлы

Нравится

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

Сакен, это документация по 7.15, а у Вас на скриншоте — 7.10. В версии 7.15 заголовков у этих полей вообще нет и панель со ссылками появляется слева, а не справа. Посмотрите в тексте файла NuiLogin.aspx в папке с сайтом, возможно, эти заголовки прописаны там. Если нет, то страница логина генерируется на уровне ядра. Нужно смотреть документацию по версии 7.10, возможно, там есть о персонализации конкретно в ней.

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

Вопрос - почему нет возможности использовать внешние ресурсы в продажах, если я их привлекаю на фиксированную или почасовую ставку для выполнения тех или иных работ?

 

Нравится

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

В чём именно Ваш вопрос?

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

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

Я нашел здесь обсуждение

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

Прошу прощения за глупый вопрос, но без этого не пройти вперед.

Я понимаю логику работы так. 

С разделом связан некоторый объект который обращается к таблице БД.

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

Теперь возвращаемся к обсуждению. Редко используемым полям советуют убрать свойство "Filtering Field" в DataGrid, но такого свойства в классе столбца EntitySchemaColumn нету. В дизайнере объекта через функцию "Исходный код" примера вызова свойства нет. 

  1. Есть ли моя ошибка в рассуждении?
  2. Как посоветуете сделать данную задачу?
  3. Есть ли актуальное обсуждение на данный момент?

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

Нравится

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

То обсуждение относиться к версии 3.Х, которая с нынешней 7.Х не связана практически никак. Более актуальное обсуждение похожих вопросов было тут или тут. Скорее всего, нужно будет найти в коде место формирования списка колонок и для конкретного раздела внести туда дополнительную логику. См. в CustomFilterViewModelV2, похоже, это оно:

  function getSimpleFilterColumnList(filters, list) {
   list.clear();
   var columnList = {};
   var columnNames = [];
   var columns = this.entitySchema.columns;
   Terrasoft.each(columns, function(column) {
    if (column.dataValueType !== Terrasoft.DataValueType.GUID &amp;&amp;
     column.dataValueType !== Terrasoft.DataValueType.TIME &amp;&amp;
     column.dataValueType !== Terrasoft.DataValueType.BLOB &amp;&amp;
     column.dataValueType !== Terrasoft.DataValueType.IMAGELOOKUP &amp;&amp;
     column.usageType !== ConfigurationEnums.EntitySchemaColumnUsageType.None) {
     if (this.isColumnDeprecated(column)) {
      return;
     }
     columnNames.push({
      name: column.name,
      caption: column.caption
     });
    }
   }, this);
   var sortedColumnNames = columnNames.sort(function(a, b) {
    if (a.caption === b.caption) {
     return 0;
    } else {
     return a.caption &gt; b.caption ? 1 : -1;
    }
   });
   Terrasoft.each(sortedColumnNames, function(item) {
    var column = columns[item.name];
    columnList[column.name] = {
     value: column.name,
     displayValue: column.caption,
     dataValueType: column.dataValueType,
     referenceSchemaName: column.referenceSchemaName
    };
   });
   list.loadAll(columnList);
  }

 

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

Всем добрый вечер.

Может кто сможет помочь или подсказать.

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

Заранее благодарен за помощь. 

Нравится

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

Это решается правами доступа на записи. Стандартно автор и ответственный видят свои записи. Если недостаточно возможностей механизма прав по умолчанию, которые настраиваются для создаваемых записей в зависимости от их автора, то можно разработать бизнес-процесс на событиях добавления и изменения контрагента, где использовать следующие блоки: «Читать данные» для считывания ответственного и затем «Изменить права доступа».

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