Вопрос

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

 Terrasoft.Core.Configuration.SysSettings.SetDefValue(_userConnection, "CRMTMessagesOffset", _messageOffset);
_userConnection.ResetSettingsCache("CRMTMessagesOffset");

 

У меня такой же вопрос

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день.

Посчитали "совмещенный" режим не самым полезным для пользователя. Да и повторять логику отображения и доступности кнопок из Page в Section с помощью месседжей - не самый удобный вариант. В связи с этим решили открывать карточку объекта только в Page режиме, минуя совмещенный с реестром. Т.е. чтобы при нажатии на кнопку открыть в реестре, объект открывался только в режиме редактирования. Каким образом это реализовать? Может кто-то уже сталкивался с подобным кейсом?

У меня такой же вопрос

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

самый простой вариант (как мне кажется) переопределить метод

editRecord: function(primaryColumnValue) {
	var activeRow = this.getActiveRow();
	var typeColumnValue = this.getTypeColumnValue(activeRow);
	var schemaName = this.getEditPageSchemaName(typeColumnValue);
	this.set("ShowCloseButton", true);
	this.openCard(schemaName, ConfigurationEnums.CardStateV2.EDIT, primaryColumnValue);
},

в BaseSectionV2 и открывать карточку через window.open()

А можете привести пример синтаксиса использования windows.open()?

editRecord: function(primaryColumnValue) {
	var activeRow = this.getActiveRow();
	var typeColumnValue = this.getTypeColumnValue(activeRow);
	var schemaName = this.getEditPageSchemaName(typeColumnValue);
	this.set("ShowCloseButton", true);
	window.open(Terrasoft.combinePath(Terrasoft.workspaceBaseUrl,"Nui/ViewModule.aspx#CardModuleV2",schemaName, ConfigurationEnums.CardStateV2.EDIT, primaryColumnValue));
	//this.openCard(schemaName, ConfigurationEnums.CardStateV2.EDIT, primaryColumnValue);
}

 

вот еще пример метода как Из карточки детали выполняется открытие счета сразу на редактирование:
 

openInvoicePage: function(invoiceId) {
   var config = {
         schemaName: "InvoicePageV2",
         operation: enums.CardStateV2.EDIT,
         id: invoiceId,
         moduleId: this.getInviocePageSandboxId()
   };
   this.sandbox.publish("OpenCard", config, [this.sandbox.id]);
},

 

Это же можно повторить и для Схем Реестров, Вызов Метода осуществляете предварительно получив Id сущности, что хотите открыть на редактирование из реестра.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день!

Можно ли сделать автоматические создание скриншота дашборда раздела Итоги в конце рабочего дня?

У меня такой же вопрос

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

Здравствуйте, Александр!

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

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

Приветствую Александр.

у меня данная задача уже решалась в рамках одного из проектов. Постучитесь ко мне с напоминанием после 01 февраля я с вами поделюсь примером реализации. Только реализовывалось у меня в рамках конфигурации BPMOnline Sales Enterprise. Но поидее функционал Дашбоардов стандартный, должно заработать и на других конфигурациях.

Власов Михаил Викторович, добрый день!

Спасибо за предложение! Обязательно напишем. 

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день!

Возник вопрос в организации работы менеджера - можно ли сделать отображение дашборда в определенное время (например один дашборд доступен с 8 до 13, а второй дашборд с 14 до 17) и если можно, то как реализовать (быть может через процесс ограничения прав доступа)?

У меня такой же вопрос

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

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

Я бы решил данную задачу создав Константные временные рамки. Привязал бы данный справочник к Сущности Дашбоард и далее При отображении Дашбоардов фильтровал какие показывать какие нет. Создание 1 нового Справочника, Создание ссылки. Доработка страниц по отрисовки и отображению Дашбоардов. Все. Более я не вижу других идей как быстрее сделать. Так как идти в сторону Прав это интересно. Но это больше времени по доработкам.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день!

На маркетплэйсе в данный момент существует только одно решение по интеграции скриптов телефонных продаж в CRM (коннектор скриптдизайнер).

Скажите пожалуйста, быть может кто-то пробовал реализовывать скрипты продаж своими способами (может даже внутренними средствами bpm: через бизнес-процессы)?

Может есть другие интеграции скриптов, помимо решения , представленного на маркетплэйс?

У меня такой же вопрос

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

Здравствуйте, Александр!

Для решения вашей бизнес цели Вы можете использовать базовый функционал bpm'online, например, создать бизнес процесс, который будет запускаться по сигналу Звонок. После чего будет выполнять переход по созданным страницам (элемент "Автогенерируемая страница"). 

Альтернативный вариант, чтобы не нагружать систему по "сигналу Звонок" Вы можете назначить операторам организационную роль "Оператор КЦ", тогда на CTI - панели будут отображаться бизнес процессы которые можно запускать во время звонка. Указываются в справочнике "Действия cti панели".

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Каким образом изменить исполнителя проекта? В проекте изменить невозможно.

У меня такой же вопрос

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

Добрый день, Павел!

 

Здесь на данный вопрос Вам не смогут ответить в силу того, что Вы спрашиваете об логике изменения кастомного поля в кастомном разделе, с которой никто из пользователей сообщества не знаком в принципе. Ответ по данному вопросу описал Вам в письме в рамках обращения SR-0627290.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

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

 

 

define("InvoiceProductPageV2", [], function() {
    return {
        entitySchemaName: "InvoiceProduct",
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        attributes: {
                "Usrcenabez": {
                    dataValueType: Terrasoft.DataValueType.FLOAT,
                    dependencies: [
                        {
Amount].
                            columns: ["TotalAmount", "Usrfff", "Quantity", "Price", "DiscountPercent"],
                            methodName: "calculatecenabezNDS"
                        }
                    ]
                },
                "UsrNDS": {.
                    dataValueType: Terrasoft.DataValueType.FLOAT,
                    dependencies: [
                        {
                            columns: ["TotalAmount", "Usrfff", "Quantity", "Price", "DiscountPercent"],
                            methodName: "calculatebezNDS"
                        }
                    ]
                },
                "UsrbezNDS": {
                    dataValueType: Terrasoft.DataValueType.FLOAT,
                    dependencies: [
                        {
                            columns: ["TotalAmount", "Usrfff", "Quantity", "Price", "DiscountPercent"],
                            methodName: "calculateNDS"
                        }
                    ]
                },
                "UsrStoimsdos": {
                    dataValueType: Terrasoft.DataValueType.FLOAT,
                    dependencies: [
                        {
                            columns: ["TotalAmount", "Usrfff", "Quantity", "Price", "DiscountPercent"],
                            methodName: "calculateStoim"
                        }
                    ]
                },
                "Usrcenasdost": {
                    dataValueType: Terrasoft.DataValueType.FLOAT,
                    dependencies: [
                        {
                            columns: ["UsrStoimsdos", "Quantity"],
                            methodName: "calculateCena"
                        }
                    ]
                }
            },

            methods: {
                onEntityInitialized: function() {
                                        this.callParent(arguments);
                                        this.calculateCena();
                                    },
                calculateCena: function() {
                                        var ct = this.get("UsrStoimsdos");
                                        var kol = this.get("Quantity");
                                            //}
                                        var res = ct / kol;
                                        this.set("Usrcenasdost", res);
                                    },
                onEntityInitialized: function() {
                                        this.callParent(arguments);
                                        this.calculatecenabezNDS();
                                    },
                calculatecenabezNDS: function() {
                                        var q = this.get("UsrbezNDS");
                                        var g = this.get("Quantity");
                                        var rez = q / g;
                                        this.set("Usrcenabez", rez);
                                    },.
                onEntityInitialized: function() {
                                        this.callParent(arguments);
                                        this.calculatebezNDS();
                                    },
                calculatebezNDS: function() {
                                        var ob = this.get("UsrStoimsdos");
                                        var dt = this.get("UsrbezNDS");
                                        var rez = ob - dt;
                                        this.set("UsrNDS", rez);
                                    },
                onEntityInitialized: function() {
                                        this.callParent(arguments);
                                        this.calculateNDS();
                                    },
                calculateNDS: function() {
                                        var st = this.get("UsrStoimsdos");
                                        var rez = st / 1.18;].
                                        this.set("UsrbezNDS", rez);
                                    },
                onEntityInitialized: function() {
                                        this.callParent(arguments);
                                        this.calculateStoim();
                                    },
                calculateStoim: function() {
                                        var amount = this.get("TotalAmount");
                                        var dost = this.get("Usrfff");
                                        var result = amount + dost;\
                                        this.set("UsrStoimsdos", result);
                                    }
            },
            rules: {},
            businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/
        };
});
 

У меня такой же вопрос

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

Алена, добрый день. Если под "добавление записи" вы подразумеваете сохранение, вам необходимо переопределить метод save или onSaved и вызвать в нем ваши методы. Если речь об открытии карточки новой записи - аналогичные действия для методы onEntityInitialized.

Кот Владимир Владимирович,

Можете подробно рассказать как мне это сделать?

Алена, да, конечно. Повторно посмотрев ваш код стало ясно что вы были на правильном пути. Ваши methods должны выглядеть так: 

onEntityInitialized: function() {
	this.callParent(arguments);
	this.calculateCena();
	this.calculateNDS();
	this.calculatebezNDS();
	this.calculatecenabezNDS();
	this.calculateStoim();
},
calculateCena: function() {
	var ct = this.get("UsrStoimsdos");
	var kol = this.get("Quantity");
		//}
	var res = ct / kol;
	this.set("Usrcenasdost", res);
},
calculatecenabezNDS: function() {
	var q = this.get("UsrbezNDS");
	var g = this.get("Quantity");
	var rez = q / g;
	this.set("Usrcenabez", rez);
},
calculatebezNDS: function() {
	var ob = this.get("UsrStoimsdos");
	var dt = this.get("UsrbezNDS");
	var rez = ob - dt;
	this.set("UsrNDS", rez);
},
calculateNDS: function() {
	var st = this.get("UsrStoimsdos");
	var rez = st / 1.18;].
	this.set("UsrbezNDS", rez);
},
calculateStoim: function() {
	var amount = this.get("TotalAmount");
	var dost = this.get("Usrfff");
	var result = amount + dost;\
	this.set("UsrStoimsdos", result);
}

 

Кот Владимир Владимирович,

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

Алена, та же  логика - вызвать все ваши методы чтобы установились необходимые аттрибуты, а потом сохранить:

save: function() {
	this.calculateCena();
	this.calculateNDS();
	this.calculatebezNDS();
	this.calculatecenabezNDS();
	this.calculateStoim();
	this.callParent(arguments);
}

 

Кот Владимир Владимирович,

Владимир.   

    "Usrcenabez": {
                // Тип данных колонки модели представления.
                    dataValueType: Terrasoft.DataValueType.FLOAT,
                // Массив конфигурационных объектов, определяющих зависимости колонки [UsrBalance].
                    dependencies: [
                        {
                        // Значение колонки [UsrBalance] зависит от значений колонок [Amount] 
                        // и [PaymentAmount].
                            columns: ["TotalAmount", "Usrfff", "Quantity", "Price", "DiscountPercent"],
                        // Метод-обработчик, который вызывается при изменении значения одной из колонок [Amount] 
                        // и [PaymentAmount].
                            methodName: "calculatecenabezNDS"
                        }
                    ]
                },

В этом месте метод вызывается при изменении одной из колонок. Скажите а что нужно сделать чтобы он вызывался при добавлении?

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

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

В таком случае рекомендуем посмотреть нет ли ошибок в консоли, скорее всего у вас значения согласно вашей бизнес-логики рассчитываются только если заполнены все необходимые поля. Если причину такого поведение обнаружить не удастся, напишите, пожалуйста, письмо на support@terrasoft.ru с описанием кейс воспроизведения и ссылкой на ваш сайт и этот пост.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Есть процесс, который при добавлении "Обращения" его изменяет и устанавливает "Группу ответственных".

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

У меня такой же вопрос

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

Добрый день, Евгений!
 

Речь о базовом процессе или о каком-то вашем кастомном? Если о кастомном, то нужно, как минимум, посмотреть на него. Можете выложить схему или скриншоты здесь, или обратится для анализа в техническую поддержку на адрес support@terrasoft.ru 

Адасюк Валерий Викторович,

Кастомный. Там все просто и тривиально, читаем обращение если оно соответсвует фильтру, то измени его.

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

Евгений.,

А процесс вообще запускается? Поля, на основании которых должна быть установлена группа ответственных Сервис и сервисный договор заполнены в обращении? С какой ошибкой падает процесс (в логе можно посмотреть)? На каком элементе останавливается?

Адасюк Валерий Викторович,

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

Евгений.,

В таком случае нужен доступ на среду с данным процессом для выявления причин. Напишите запрос на 

 support@terrasoft.ru с описанием проблемы и рамках технической поддержки проблема будет проанализирована и решена.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Доброго времени суток.

Есть проблема: не запускается сайт. Выдается следующая ошибка(на рисунке):

Ошибка сервера в приложении '/.

Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

-----------------------------------------------

Работаю на ОС Windows 10

Но сайт нормально функционирует на ОС Windows Server 2012.

Может кто-то сталкивался с подобным?

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

Прикрепленные файлы
error.PNG58.01 КБ

У меня такой же вопрос

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

Добрый день, Кирилл!
 

Можете посмотреть решения подобных проблем на соответствующих профильных ресурсах в темах:

1. https://forums.asp.net/t/2116695.aspx?Unable+to+load+one+or+more+of+the…+

2. https://connect.microsoft.com/VisualStudio/feedback/details/607280/syst…

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

 

Проблему решил установкой net framework 4.7. До этого была версия 4.6.2.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Есть отчет Devexpress.

есть шапка отчета.

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

У меня такой же вопрос

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

Виталий, можете поискать в их базе знаний - https://www.devexpress.com/Support/

Из того, что я нашел, то подобный вопрос уже звучал ранее

https://www.devexpress.com/Support/Center/Question/Details/Q345951/how-…

Я все искал в заголовке отчета эту опцию, а она оказалась в группе)

Войдите или зарегистрируйтесь, чтобы комментировать