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

Нравится

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

 

Марат Тазюков, добрый день!

В целом, настройка РФС на .Net Core выполняется так же, как и для .Net Framework, но изменения ключей fileDesignMode и UseStaticFileContent выполняются в файле Terrasoft.WebHost.dll.config:

Собственно вопрос как подключить хранилище SVN? Версия service ent 7.17.1.1364 (.NET Core 3.1.11)

Тут непонятно это проблема net core или вы что-то забыли сделать, пишите хотя бы порядок действий перед вопросом.

Стандартные действия: добавить хранилище в список хранилищ, sql запросом поставить у пакета installtype = 0 и sysrepositoryid = select top 1 [id] from [sysrepository].

Это чистая установка, дополнительно ничего не настраивал просто развернул по инструкции.

Я не могу добавить хранилище в список тк пункт меню не активный и внешний вид отличается не как описано в документации. Куда в этом интерфейсе зайти чтоб прописать хранилище SVN? Судя но названиям мне надо было попасть в список хранилищ но этот пункт меню не активный. 

Бабков Алексей Валерьевич,

Добавте запись напрямую в бд в sysrepository.

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

А данная проблема может быть связанна с тем что система установлена на centoc?

 

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

К сожалению, для .NET Core сборки нет возможности работать с SVN и не планируется дорабатывать данный функционал в последующих версиях приложения.

В качестве обходного решения можно использовать РФС + к примеру Git.

Sorotiuk Anna, подскажите, пожалуйста как перейти в режим разработки в файловой системе? Вот web.config и в нем нет ключей описанных в академии.

.<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <location path="." inheritInChildApplications="false">

    <system.webServer>

      <handlers>

        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

      </handlers>

      <aspNetCore processPath="dotnet" arguments=".\Terrasoft.WebHost.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />

    </system.webServer>

  </location>

</configuration>

 

Марат Тазюков, добрый день!

В целом, настройка РФС на .Net Core выполняется так же, как и для .Net Framework, но изменения ключей fileDesignMode и UseStaticFileContent выполняются в файле Terrasoft.WebHost.dll.config:

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

Развернул стенд на сервере, настроил https, редирект на https, локально работает все идеально, но при попытке зайти через https://.... локально иди  удаленно перенаправляет на страницу https://www.terrasoft.ru/Login/NuiLogin.aspx?ReturnUrl=%2f, с ошибкой, страница не найдена

Нравится

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

Стенд случайно не из бекапа базы с облачной среды взят?  На облачных стендах заполнена системная настройка "DomainToRedirect". Если заходить на такой стенд с локалки, то все ок. Но если зайдете с внешнего адреса, например mytestsite.ru - вас автоматически перекинет на terrasoft.ru.

Чтобы такого не было, нужно очистить указанную системную настройку зайдя через localhost или скриптом:

 

delete SysSettingsValue where SysSettingsId = (select id from SysSettings where code = 'DomainToRedirect')

Не думаю что terrasoft.ru это ваш сайт. 

При перенастройке на https я проблем не встречал, это простое действие. Верните на http и проверьте нормально ли вы развернул систему. Потом заново сделайте по этой статье https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/ra…

Стенд случайно не из бекапа базы с облачной среды взят?  На облачных стендах заполнена системная настройка "DomainToRedirect". Если заходить на такой стенд с локалки, то все ок. Но если зайдете с внешнего адреса, например mytestsite.ru - вас автоматически перекинет на terrasoft.ru.

Чтобы такого не было, нужно очистить указанную системную настройку зайдя через localhost или скриптом:

 

delete SysSettingsValue where SysSettingsId = (select id from SysSettings where code = 'DomainToRedirect')

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

Добрый день!

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

Нравится

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

Разделительную вертикальную черту можно подцепить мышкой и сдвинуть влево до минимально размера. Меньше ее сделать можно только закрыв отображение групп. Либо вмешиваться в верстку через css.

Левон, по последнему подходу со сменой CSS, уже был похожий вопрос. Обратите внимание на эту тему. Только там двигали не группы, а вертикальный реестр, который левее их.

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

ок спасибо

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

Ок, нашел элемент в CSS, а как в версии 7.17 открыть этот модуль, в конфигурациях нет такого модуля "

folders-container-wrap

"

Если включить в системе системную настройку IsDebug, то все файлы станут отдельно и в «инструментах разработчика» в браузере будет видно, из какого файла берётся какой стиль. Это может быть не только схема в конфигурации, но и файл JS-ядра.

А если поискать по всем JS-схемам (поиском по SysSchemaContent), то строка «folders-container-wrap» упоминается в SectionModuleV2, BasePageV2CSS, BaseDataView, SectionWizardCasesSettingsStyles. Попробуйте сначала посмотреть в них.

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

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

Подскажите как реализовать стандартном БП отправку утвержденной визы в другой отдел.

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

Спасибо!

Нравится

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

Если виза создаётся в процессе, то после её завершения можно поставить следующий элемент - отправку письма. 

 

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

Добрый день!

мы хотим проверить на вашу тестовом ПО веб приложения проверить как работать по транспортном услуги Карго работы для грузоперевозки!

Используйте low code средства платформы.

Если виза создаётся в процессе, то после её завершения можно поставить следующий элемент - отправку письма. 

 

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

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

Не могу найти в системных настройках параметр

ExchangeListenerServiceUrl

 

в версии 7.16 он был на него ссылается докeментация

https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/ra…

Нравится

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

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

Вы неправильно написали название системной настройки, поэтому и не можете её найти.

Правильно вот так 'ExchangeListenerServiceUri' - в конце 'i', а у Вас 'l'.

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

Вы неправильно написали название системной настройки, поэтому и не можете её найти.

Правильно вот так 'ExchangeListenerServiceUri' - в конце 'i', а у Вас 'l'.

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

Изображение удалено.Не хватает настройки формата: минута и час

Нравится

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

И "Год и неделя"

Дамиан, Владимир, спасибо за информацию, завели такую идею.

Логика наполнения этого выпадающего списка реализована в схеме ChartDesigner:

/**
 * Returns the object of types of date.
 * @private
 * @return {Object} Returns the object of types of date.
 */
getDateTimeFormatDefaultConfig: function() {
	const dateTimeFormatDefaultConfig = {
		"Year": {
			value: "Year",
			displayValue: this.get("Resources.Strings.DateTimeFormatYear")
		},
		"Month;Year": {
			value: "Month;Year",
			displayValue: this.get("Resources.Strings.DateTimeFormatMonthYear")
		},
		"Month": {
			value: "Month",
			displayValue: this.get("Resources.Strings.DateTimeFormatMonth")
		},
		"Week": {
			value: "Week",
			displayValue: this.get("Resources.Strings.DateTimeFormatWeek")
		},
		"Day;Month;Year": {
			value: "Day;Month;Year",
			displayValue: this.get("Resources.Strings.DateTimeFormatDayMonthYear")
		},
		"Day;Month": {
			value: "Day;Month",
			displayValue: this.get("Resources.Strings.DateTimeFormatDayMonth")
		},
		"Day": {
			value: "Day",
			displayValue: this.get("Resources.Strings.DateTimeFormatDay")
		},
		"Hour": {
			value: "Hour",
			displayValue: this.get("Resources.Strings.DateTimeFormatHour")
		}
	};
	return dateTimeFormatDefaultConfig;
},

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

У меня так получилось, когда подменил одно из значений на:

{value:"Week;Year", displayValue: "Неделя и год"}

После сохранения с такой настройкой диаграмма выглядит нужным образом:

Формат для часов и минут, увы, не подобрал. Вероятно, такой фильтрации в ESQ и нет.

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

Создал веб-сервис опроса погоды. В выходных данных есть поля дат. Эти даты надо сконвертировать из int в DateTime.Изображение удалено.

Не могу понять, как обратиться к параметрам веб-сервиса из задания-сценария?

Set("dt", GetDt(Get<int>("WebService1.dt")));
Set("sys_sunrise", GetDt(Get<int>("WebService1.sys_sunrise")));
Set("sys_sunset", GetDt(Get<int>("WebService1.sys_sunset")));
return true;

 

Нравится

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

Можно точнее? Что значит из int в DateTime?

public DateTime GetDt(int unixDate)
{
    var dt = new DateTime(1970,1,1,0,0,0,0, DateTimeKind.Utc);
    dt = dt.AddSeconds(unixDate).ToLocalTime();
    return dt;
}

Стандартный метод преобразования unix long в DateTime.

Дамиан, Вы можете создать в БП параметры нужного типа и связать их со входящими параметрами веб-сервиса. Затем из скрипта работать уже с ними, используя Get.

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

Можете привести код или ссылки?

Дамиан, как работать с параметрами при помощи Get, есть тут.

Я имею в виду, что в дизайнере БП привязать параметр процесса к исходящему параметру веб-сервиса, а затем работать уже с ним.

 

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

Здравствуйте, подскажите как можно заблокировать от изменений деталь "Средства связи" у контакта и контрагента. Добавоение "+" убирается без проблем, про вот изменение типа (выпадающий список) и значения как можно заблокировать?

Нравится

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

Александр, тут возможны два подхода: либо модифицировать схему детали ContactCommunicationDetailV2, добавив элементам свойство только для чтения, или AccountCommunicationDetailV2, либо настроить нужным пользователям права доступа только для чтения на объект этой детали. Но в случае последнего подхода нужно помнить, что в объекты разделов Contact и Account во встроенные БП добавлена логика синхронизации с деталью средств связи. Чтобы отсутствие прав не приводило к ошибкам, нужно в своём пакете переопределить функцию SynchronizeCommunication в процессах этих объектов.

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

первый вариант только на чтение - не выходит заблокировать выпадающий список

Александр, сложно сказать, не зная, что Вы меняли.

Это поле и выпадающий список формируются в ContactCommunicationDetailV2 здесь:

var typeMenuItems = [];
var communicationTypes = this.get("CommunicationTypes");
communicationTypes.each(function(item) {
	var name = item.get("Name");
	var value = item.get("Id");
	typeMenuItems.push({
		id: value,
		caption: name,
		tag: value,
		click: { bindTo: "typeChanged" }
	});
}, this);
var typeButtonConfig = {
	id: "type",
	className: "Terrasoft.Button",
	classes: {
		wrapperClass: ["label-wrap", "detail-type-btn-user-class"],
		textClass: ["detail-type-btn-inner-user-class"]
	},
	style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
	selectors: {wrapEl: "#type"},
	caption: {
		bindTo: "CommunicationType",
		bindConfig: { converter: "typedStringValueConverter" }
	},
	menu: { items: typeMenuItems }
};

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

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

Имеете ввиду сделать override модуля, и в функции удалить 

var communicationTypes = this.get("CommunicationTypes");
communicationTypes.each(function(item) {
	var name = item.get("Name");
	var value = item.get("Id");
	typeMenuItems.push({
		id: value,
		caption: name,
		tag: value,
		click: { bindTo: "typeChanged" }
	});
}, this);

 

 

?

Прежде, чем менять, надо сначала ещё проверить в отладке, используется ли в этой версии логика из ContactCommunicationDetailV2 или из ContactCommunicationDetail и BaseCommunicationDetail, созданная для более старого интерфейса.

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

Как сделать отмену сохранения entity?

Реализую пример из руководства Бизнес-логика объектов.

namespace Terrasoft.Configuration.VSSales
{
    using System.Threading;
    using Terrasoft.Core;
    using Terrasoft.Core.Entities;
    using Terrasoft.Core.Entities.AsyncOperations;
    using Terrasoft.Core.Entities.AsyncOperations.Interfaces;
    using Terrasoft.Core.Entities.Events;
    using Terrasoft.Core.Factories;
 
    /// <summary>
    /// Слушатель событий сущности "Коммерческие условия".
    /// </summary>
    [EntityEventListener(SchemaName = "ScPriceType")]
    public class ScPriceTypeEventListener : BaseEntityEventListener
    {
        /// <summary>
        /// Обработчик события перед сохранением записи.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void OnSaving(object sender, EntityBeforeEventArgs e) {
            var entity = (Entity)sender;
            var userConnection = entity?.UserConnection;
            var foo = false;  // Здесь будет проверка на условие.
            if (foo) {
                // Всё нормально, сохраняем.
                base.OnSaving(sender, e);
            } else {
                // Условие не выполнено, отмена.
                // Что здесь надо написать?
                sender = null; // Не сработало.
            }
        }
    }
}

 

Нравится

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

Добрый день.

 

Для отмены сохранения попробуйте написать такую строчку:

e.IsCanceled = false;

 

Добрый день.

 

Для отмены сохранения попробуйте написать такую строчку:

e.IsCanceled = false;

 

Спасибо, работает.

public override void OnSaving(object sender, EntityBeforeEventArgs e) {
  var entity = (Entity)sender;
  var userConnection = entity?.UserConnection;
 
  if (CheckRules(userConnection, entity)) {
      // Всё нормально, сохраняем.
      base.OnSaving(sender, e);
  } else {
      // Условие не выполнено, отмена.
      if (!(entity is null)) {
          // Вот так работает отмена сохранения записи.
          e.IsCanceled = true;
      }
  }
}

 

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

После обновления на 7,16 не можем изменить шаблон в отчетах Excel reports builder for Creatio. Всегда выгружает со старым шаблоном. 

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

Нравится

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

Вероника, добрый день.

 

Попробуйте обновить и дополнение также (на маркетплейсе дата последнего обновления 27.10.2020). Возможно, это поможет решить проблему.

Алла Савельева,Алла, добрый день!

Это первое, что попробовали. к сожалению не помогло

Вероника Каминская,

1. С какой версией 7.16 Вы сейчас работаете (после 7.16 есть другие цифры - что указано у Вас)?

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

3. Работало ли обновление шаблонов на предыдущей версии, которую Вы использовали до обновления?

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

1.  7.16.4.1731

2. Не выдает ошибок пользователю. 

В консоле выдало ошибку:

performanceLogger.js:346 POST https://culinaryon.terrasoft.ru/0/DataService/json/SyncReply/UploadFile… 400

 

3. Последний раз обновляли шаблон около месяца назад, да все работало

Вероника Каминская,

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

Как обходное решение исключите расширения jar,apk из системной настройки FileExtensionsDenyList и добавьте их в системную настройку FileExtensionsAllowList. Перезайдите в приложение и проверьте загрузку шаблона.

В версии 7.17.2.1728 снова шаблон не обновляется. Совет из последнего поста не помог.

Да, снова та же проблема на версии 7.17.3.1377

Ошибка с загрузкой шаблонов на версии 7.17.2 и выше сейчас в работе у ответственной команды. Предварительно 12-13 апреля обновленный пакет будет опубликован на Creatio Marketplace. Отдельно уведомлю о публикации.

Ответственная команда исправила ошибку с загрузкой шаблона. Установите обновленный пакет решения из Creatio Marketplace.

Лазоренко Ирина,

Ирина, Добрый день. На Marketplace указано, что последнее обновление вышло 27.10.2020. Подскажите пожалуйста, почему так и точно ли на Marketplace обновленная версия? 

 

Спасибо!

Здравствуйте! Тоже жду обновленной версии, сейчас не могу загрузить шаблон. Падает с ошибкой.

responseStatus: {ErrorCode: "ArgumentNullException",…}
ErrorCode: "ArgumentNullException"
Errors: []
Message: "Value cannot be null.
↵Parameter name: Изменение данных запрещено при пустом фильтре."
rowsAffected: -1
success: false

 

Елизавета, Павел, Наталья, добрый день!

 

дата обновления пакета указывается в интерфейсе установки приложения. Обновленный пакет с исправлением загрузки шаблона уже доступен на Creatio Marketplace. Установите приложение повторно и проверьте обновления.

А в 7.16.4 оно тоже будет работать?

Владимир, добрый день! скорее всего нет, поскольку изменения вносились в связи с изменениями базовой функциональности. Если необходима предыдущая версия дополнения, напишите на marketplace@terrasoft.ru.

Лазоренко Ирина,

Ещё дополнительный вопрос - что будет с настроенными на 7.16 отчётами при переходе на 7.18? 

Они будут работать, как и прежде? Или их надо будет настраивать заново?



Спасибо!

Владимир Соколов,

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

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