Добрый день!

 

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

 

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

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

 

Заранее спасибо!

Нравится

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

Добрый день.

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

Как альтернативный вариант, можно выделить записи по типам объектов разным цветом.

Добрый день.

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

Как альтернативный вариант, можно выделить записи по типам объектов разным цветом.

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

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

Нравится

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

1. Если нужно вписать кнопки в маленький контейнер, то внутрь контейнера можно поместить грид и садить кнопки на него (но тогда можете попрощаться со стилями, которые управляют расстояниями между кнопками).

2. Если нужно, чтобы при изменении размера окна контейнер не сжимался ниже определенной ширины - вы наверное сами сейчас назовете ответ :D задать ширину контейнера через LESS - заместить его, дать ему новый набор стилей и в них зафиксировать ширину.

1. Если нужно вписать кнопки в маленький контейнер, то внутрь контейнера можно поместить грид и садить кнопки на него (но тогда можете попрощаться со стилями, которые управляют расстояниями между кнопками).

2. Если нужно, чтобы при изменении размера окна контейнер не сжимался ниже определенной ширины - вы наверное сами сейчас назовете ответ :D задать ширину контейнера через LESS - заместить его, дать ему новый набор стилей и в них зафиксировать ширину.

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

Коллеги, привет!

Подскажите, пожалуйста, как правильно прописать формулу в элементе формула бизнес-процесса?

Необходимо из строки "+38 (099) 999-99-99" вычитать числа и записать их обратно в строку. На выходе должно быть "380999999999".

Заранее благодарю.

Нравится

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

Виктория, мне кажется вот здесь https://community.terrasoft.ru/questions/ubrat-simvoly-v-tekste-s-pomosu-bp описан один в один ваш кейс)

Виктория, мне кажется вот здесь https://community.terrasoft.ru/questions/ubrat-simvoly-v-tekste-s-pomosu-bp описан один в один ваш кейс)

Ну и с Днем Рождения, кстати;) 

Сидоров Александр Валерьевич, спасибо))) 

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

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

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

Может есть другой способ, так как

onDetailChanged: function() {
	this.callParent(arguments);
	this.sameFun();
},

не работает в разделе продажи

Нравится

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

Коновалов Игорь,

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

В кл. схеме OpportunityPage

в блоке details переопределите деталь:

"Название детали":{

               schemaName: "<Название схемы детали>",

               entitySchemaName: "<Название объекта детали>",

               subscriber: {

                      methodName: "<Название метода, отрабатывающего при                        изменении детали>"},

}

Очистите кэш.

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

После этого проверьте не затрётся ли subscriber

Коновалов Игорь,

 пробовал, subscriber не срабатывает на детали визирования так как наследуеться от модуля где нет реализации это поля в

onDetailChanged. А так как onDetailChanged не срабатывает то и если добавить при замещении функции с добавлением этого поля все равно работать отказываеться

 

Коновалов Игорь,

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

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

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

 

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

Покопался в доке на сайте не нашел.

 

Заранее спасибо.

Нравится

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

Добрый день, Владимир.

 

Опишите, подробнее, свою задачу - откуда нужно создать заявку на поддержку?

Вероятно, Владимир хочет при помощи OData добавить запись в таблицу Case.

 

Как это делать, описано в статьях: можно напрямую POST-запросом, а можно в своём софте использовать автоматически сгенерированные классы для доступа к сайту системы.

 

Id можно не получать, а сгенерировать заранее и передать при создании.

 

 

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

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

Задача:

Необходимо создать User Task, в которой создать объект ICompositeObjectList и для последующей передачи значения в другую User Task.

 

Данный пример не работает:

1 SoureCode:

namespace JustTestCompositeObject
{
    using System;
    using System.Collections.Generic;
    using Terrasoft.Common;
    public class A : ICompositeObject
    {
        internal string test;
        public bool TryGetValue(string key, Type valuetype, out object value) { value = default; return true; }
        public bool TryGetValue<TValueType>(string key, out TValueType value) { value = default; return true; }
    }
    public class TestCompositeObjectList : List<A>, ICompositeObjectList<A>
    {
        void ISerializableObject.Serialize(DataWriter dataWriter) { }
        void ISerializableObject.Deserialize(DataReader dataReader) { }
    }
    public class test
    {
        public static ICompositeObjectList<ICompositeObject> GnerateTestList()
        {
            TestCompositeObjectList list = new TestCompositeObjectList();
            list.Add(new A { test = "test1" });
            list.Add(new A { test = "test2" });
            return list;
        }
 
        public static string PrintTest(ICompositeObjectList<ICompositeObject> list)
        {
            string output = "";
            if (list == null)
            {
                output = "this collection is null";
            }
 
            foreach (A v in list)
            {
                output += v.test + " ";
            }
            return output;
        }
    }
}

UserTask1:

list = test.GnerateTestList();
return true;

, где list задан как тип: Serializable list of composite values

 

UserTask2:

output=test.PrintTest(list);
return true;

, где list имеет тип: Serializable list of composite values; output имеет тип: string

 

Процесс выглядит вот так:

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

На Auto-generated page выводится output из UserTask2 

Конфигурация успешно компилируется.

 

Пробовал прописывать Usings на необходимый namespace в свойствах процесса, не работает...

 

Вещи типа: 

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

не работают и не возвращаются значение

 

В Visual Studio все ок работает в конфигурации при передачи значений через процесс - нет.

 

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

 

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

Нравится

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

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

А сейчас скрипты работают автономно и обмениваются значениями с параметрами через Get и Set.

Get&lt;T&gt;(string path)
Set(string path, T value)

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

 

Больше об этом можно почитать тут и тут, а также тут и тут.

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

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

Есть необходимость создать новый раздел на основании объекта активности.

Проведённые работы:

1. Создана схема Раздела и Страницы редактирования

2. Создана запись в SysModuleEntity с указанием UId объекта Активности

3. Создана запись в SysModule с указанием SysModuleEntityId из п.2 и UId схем из п.1.

4. Создана запись в SysModuleEdit с указанием SysModuleEntityId из п.2

В итоге раздел зарегистрирован и  работает корректно.

Но теперь при открытии мастера раздела в р. Активности открывается конфигурация  нового раздела (хотя в адресной строке указан SysModuleId раздела активности)

Есть подозрение, что Мастер раздела берёт последнюю запись (по дате создания) из таблицы SysModuleEntity.

Подскажите как решить эту проблему.

И правильно ли это поведение системы?

Нравится

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

Добрый день.

 

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

 

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

Спасибо, Алла. Этот вариант тоже рассматривал.

Но хотелось бы получить комментарий от Тех.поддержки.

Т.к. лично мне не понятно, почему для формирования наполнения мастера раздела не используются данные из SysModuleEntity?  

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

Игорь, здравствуйте!



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



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

Для этого Вы можете использовать базовое поле "Тип" в карточке контрагента. Добавить собственный тип Вы можете в справочнике "Типы контрагента".

С помощью мастера раздела можно добавить необходимо количество страниц редактирования, каждая из которых будет соответствовать нужному типу. Страницы могут иметь разный набор полей/деталей в зависимости от Ваших потребностей. Более детально о создании нескольких страниц можно почитать на Академии Terrasoft.

 

Для интересующего Вас раздела активностей это уже сделано, для задачи и звонка используется одна карточка, а для email настроена другая.



Разделять записи в реестре раздела можно с помощью динамических групп настроив фильтр по полю "Тип".  

 

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

Мотков Илья,

Илья меня интересует именно отдельный раздел и с полностью рабочей функциональностью.

И мне интересно почему мастер раздела не основывается при  построении на данные из SysModuleEntity?

Т.к. именно эта таблица связывает зарегистрированный раздел (SysModule) с объектом(SysSchema).

Так почему при загрузке мастер основывается на объект и на последний  зарегистрированный по этому объекту раздел?

 

Игорь, здравствуйте, Вам удалось решить проблему? Если да, не подскажите каким образом?

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

Всем привет!

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

Подскажите, как решить данный кейс? 

Нравится

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

Добрый вечер.

 

Вы можете попробовать создать представление, которое будет содержать нужные данные, а потом использовать его для построения графика. Здесь на community есть много постов, каким образом это можно настроить.

 

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

Добрый вечер.

 

Вы можете попробовать создать представление, которое будет содержать нужные данные, а потом использовать его для построения графика. Здесь на community есть много постов, каким образом это можно настроить.

 

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

С View есть одно ограничение - сложно использовать фильтры с ним

В 7.16 обещают гистограмму с накоплением.

Зверев Александр пишет:

В 7.16 обещают гистограмму с накоплением.

эт они только обещали :) понимание график с нарастающим итогом интерпретирован в креатио неверно. 

Olga Pogorilo,

Добрый день! Возможно, для реализации данного кейса, Вам поможет Дополнение "Calculated charts for Creatio"

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

Как сделать ?

ССЫЛКУ НА ЗАПРОС В ШАБЛОНЕ ПОЧТОВОГО СООБЩЕНИЯ

Нравится

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

можете конкретнее расписать задачу?

если речь идет о ссылке на определенную запись, то это можно сделать с помощью макросов

Ксензов Егор,

Добрый день!

Нужна сделать ссылку на обращение.

Которая будет приходит в письме о регистрации обращения

По которой можно будет перейти и попасть сразу на обращение.

Александр, посмотрите примеры БП из маркета, вроде этого, этого и этого, там создаются письма со ссылками.

 

Либо вручную доработать шаблон примерно таким HTML-кодом:

&lt;div&gt;
&lt;span style="font-size:12px;"&gt;&lt;span style="font-family:arial,helvetica,sans-serif;"&gt;Вы назначены ответственным по обращению &lt;strong&gt;&lt;a href="https://[адрес вашего сайта]/0/Nui/ViewModule.aspx#CardModuleV2/CasePage/edit/[#Id#]"&gt;#[#Number#] &lt;/strong&gt;&lt;/a&gt;&amp;nbsp;&amp;quot;[#Subject#]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
 &lt;div&gt;
 &amp;nbsp;&lt;/div&gt;

 

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

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

Помогите, пожалуйста, реализовать блокировку (сделать недоступным для редактирования, disable=false) поля мобильного приложения. Как альтернативу скрывать поле программно при загрузке.

Нравится

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

Блокировать и разблокировать поле в мобильном приложении можно при помощи бизнес-правил. См. статью.

Там приводится следующий  пример:

Доступность поля, связанного с колонкой Stock, зависит от значения в колонке IsPresence.

Terrasoft.sdk.Model.addBusinessRule("ActivitySKU", {
    ruleType: Terrasoft.RuleTypes.Activation,
    events: [Terrasoft.BusinessRuleEvents.Load, Terrasoft.BusinessRuleEvents.ValueChanged],
    triggeredByColumns: ["IsPresence"],
    conditionalColumns: [
        {name: "IsPresence", value: true}
    ],
    dependentColumnNames: ["Stock"]
});

Для более сложных случаев есть ещё пользовательские.

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

 

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