Добрый день! 

 

Пытаюсь установить Excel reports builder for Creatio, но установщик выдает ошибку. 

 

На пустую тестовую среду дополнение стало без проблем, а на мою систему не становится. 

 

Помогите, пожалуйста, разобраться в проблеме. Лог прилагаю

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

Нравится

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

Добрый день!

 

Первая ошибка связана с тем, что у вас на продуктивной среде уже установлен другой пакет с библиотекой EPPlus. Creatio не позволяет устанавливать одну и ту же библиотеку дважды. К сожалению из пакета Excel reports builder не можем удалить эту библиотеку. Уточните у другого разработчика, есть ли возможность предоставить пакет без библиотеки.

Вторая ошибка возникла при компиляции и связана со схемой UsrProductInStockLOTSchema. Ниже детальное описание ошибки:

Autogenerated\Src\UsrProductInStockLOTSchema.Custom.cs(270,15) warning CS0108: 'UsrProductInStockLOT.RecordInactive' hides inherited member 'Entity.RecordInactive'. Use the new keyword if hiding was intended.

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

 

Мануал для юзеров, которые не разбираются в коде, библиотеках и т.д.:

 

1. Когда во время установки пакета появляется ошибка, просто закрываем окно, без восстановления из бэкапа,

2. Удаляем приложение через Installed applications

3. Устанавливаем нужное приложение еще раз

 

Не знаю нужно или нет, но между всеми этими действиями я каждый раз компилировал систему.

Добрый день!

 

скорее всего помогла компиляция приложения.

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

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

Подскажите, пожалуйста, можно ли как-то обойти MS Exchange Listener для настройки почты?

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

Стенд открыт для интернета, но почта нужна будет только в локальной сети. Используем outlook.office.com.

Нравится

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

Коллеги, здравствуйте!

Начиная с версии 7.16.0 для корректной работы почтовых сервисов IMAP/SMTP и Exchange необходимо развернуть сервис синхронизации. Логика синхронизации писем была полностью вынесена на микросервис.



Соответственно, для работы почты в приложении необходимо проводить настройку микросервиса Exchange Listener, альтернативных вариантов нет.

 

Установить пакет OldEmailIntegration.

Андрей Есаулов,

Простите, это какое то приложение из Маркета? Или что это?

Виноват. Нашёл в конфигураторе у себя такой пакет. Версия 7.8.0.

Мне нужно новую версию запросить у поддержки? И как этот пакет использовать при интеграции с почтой? На академии, к сожалению, не нашёл способа без Exchange Listener

Коллеги, здравствуйте!

Начиная с версии 7.16.0 для корректной работы почтовых сервисов IMAP/SMTP и Exchange необходимо развернуть сервис синхронизации. Логика синхронизации писем была полностью вынесена на микросервис.



Соответственно, для работы почты в приложении необходимо проводить настройку микросервиса Exchange Listener, альтернативных вариантов нет.

 

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

Добрый день!

 

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

Условно таблица TempTable

Имеет два поля

Id и ParentId

Необходимо, что Id был PK, а ParentId таблицы TempTable являлся FK на поле Id таблицы TempTable

Возможно ли такое организовать в рамках системы Creatio?

Нравится

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

Ирина Кузина пишет:

Мне необходимо создать объект в Creatio - адресообразующую таблицу ФИАС, которая не имеет нормализованной структуры. В данной таблице хранятся регионы/районы/города/населённые пункты/улицы - очевидно, что данная таблица должна ссылаться на саму себя.

Можно создать дополнительную таблицу развязки, в которой одно поле будет ссылаться на дочернюю запись, а другое - на родительскую. Такое решение позволит хранить в одной таблице повторяющиеся Id.

 

Ирина Кузина пишет:

При создании объекта в Creatio 7.18 на уровне БД в таблице все поля имеют constraint NOT NULL - как создавать поля, которые могут быть NULL? Поскольку при создании объекта в Creatio на поле есть Основной параметр - Обязательное (Нет или На уровне приложения). При выборе обязательности на уровне приложения - внутри самой платформы производится валидация поля, но если указать обязательность Нет, то всё равно на уровне БД NOT NULL. Зависит ли это как-то от типов полей, которые выбираются?

Да, зависит от типа данных. Например, для поля справочного типа (с типом уникальный идентификатор), возможно хранение значения NULL. Для строковых будет пустая строка (даже пустых), для целочисленных и дробных 0. А обязательность для строковых и цифровых значений означает, что пользователь должен ввести значение отличное от пустой строки или 0.

 

Ирина Кузина пишет:

тут подскажите, пожалуйста, стоит ли новый пост завести (или может багу/доработку) или в рамках данного вопроса сойдёт?

Это скорее особенность этой срм, а не ошибка. Вы можете написать в службу поддержки (support@terrasoft.ru), они зафиксируют Ваше пожелание. 

Добрый день.

 

Да, такое можно реализовать в Creatio.

Сначала создаете саму таблицу сохраняете её и публикуете, а потом уже добавляете в неё справочное поле ParentId, для которого в качестве справочника указываете созданную Вами таблицу.

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

Алла, огромное спасибо за ответ!

Но возник новый вопрос, при создании такой связи поле по дефолту ссылается на PK таблицы, но если нужное родительское поле НЕ является PK, то как можно организовать такую связь?

Ирина Кузина пишет:

Но возник новый вопрос, при создании такой связи поле по дефолту ссылается на PK таблицы, но если нужное родительское поле НЕ является PK, то как можно организовать такую связь?

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

Мне необходимо создать объект в Creatio - адресообразующую таблицу ФИАС, которая не имеет нормализованной структуры. В данной таблице хранятся регионы/районы/города/населённые пункты/улицы - очевидно, что данная таблица должна ссылаться на саму себя.



В данной таблице есть поле AOID - является первичным ключом и содержит всегда уникальное значение. Также есть поля AOGUID и ParentGUID

AOGUID - может иметь повторяющиеся значения. ParentGUID на записи должен ссылаться именно на AOGUID, поскольку AOID является идентификатор именно записи в таблице, а AOGUID - глобальный уникальный идентификатор адресного объекта (хоть здесь и указано, что уникальный, но в ФИАС есть повторяющиеся записи адресного объекта, но с разным статусом актуальности). 



И доп. вопрос - тут подскажите, пожалуйста, стоит ли новый пост завести (или может багу/доработку) или в рамках данного вопроса сойдёт?

При создании объекта в Creatio 7.18 на уровне БД в таблице все поля имеют constraint NOT NULL - как создавать поля, которые могут быть NULL? Поскольку при создании объекта в Creatio на поле есть Основной параметр - Обязательное (Нет или На уровне приложения). При выборе обязательности на уровне приложения - внутри самой платформы производится валидация поля, но если указать обязательность Нет, то всё равно на уровне БД NOT NULL.

Зависит ли это как-то от типов полей, которые выбираются?

 

Ирина Кузина пишет:

Мне необходимо создать объект в Creatio - адресообразующую таблицу ФИАС, которая не имеет нормализованной структуры. В данной таблице хранятся регионы/районы/города/населённые пункты/улицы - очевидно, что данная таблица должна ссылаться на саму себя.

Можно создать дополнительную таблицу развязки, в которой одно поле будет ссылаться на дочернюю запись, а другое - на родительскую. Такое решение позволит хранить в одной таблице повторяющиеся Id.

 

Ирина Кузина пишет:

При создании объекта в Creatio 7.18 на уровне БД в таблице все поля имеют constraint NOT NULL - как создавать поля, которые могут быть NULL? Поскольку при создании объекта в Creatio на поле есть Основной параметр - Обязательное (Нет или На уровне приложения). При выборе обязательности на уровне приложения - внутри самой платформы производится валидация поля, но если указать обязательность Нет, то всё равно на уровне БД NOT NULL. Зависит ли это как-то от типов полей, которые выбираются?

Да, зависит от типа данных. Например, для поля справочного типа (с типом уникальный идентификатор), возможно хранение значения NULL. Для строковых будет пустая строка (даже пустых), для целочисленных и дробных 0. А обязательность для строковых и цифровых значений означает, что пользователь должен ввести значение отличное от пустой строки или 0.

 

Ирина Кузина пишет:

тут подскажите, пожалуйста, стоит ли новый пост завести (или может багу/доработку) или в рамках данного вопроса сойдёт?

Это скорее особенность этой срм, а не ошибка. Вы можете написать в службу поддержки (support@terrasoft.ru), они зафиксируют Ваше пожелание. 

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

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

Нравится

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

UC пишет:

Созданные под Supervisor группы не видят простые пользователи. А как это сделать, - настроить доступ на группу фильтров?

Да, это можно сделать через настройки группы в меню 'Настройка прав':

Добрый день.

Не совсем понятно, о чём Вы спрашиваете.

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

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

Алла Савельева, Структура быстрого доступа к документам на группах фильтров. Созданные под Supervisor группы не видят простые пользователи. А как это сделать, - настроить доступ на группу фильтров?

UC пишет:

Созданные под Supervisor группы не видят простые пользователи. А как это сделать, - настроить доступ на группу фильтров?

Да, это можно сделать через настройки группы в меню 'Настройка прав':

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



Здравствуйте, собираю по инструкции с академии, единственное имя поменял

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

 

Система чистая, это была первая сборка. Содержимое Dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS base

EXPOSE 5000 5002

RUN apt-get update && \

    apt-get -y --no-install-recommends install \

    libgdiplus \

    libc6-dev && \

    apt-get clean all && \

    rm -rf /var/lib/apt/lists/* /var/cache/apt/*

WORKDIR /app

COPY . ./

FROM base AS final

WORKDIR /app

ENV ASPNETCORE_ENVIRONMENT Development

ENV TZ US/Eastern

ENTRYPOINT [ "dotnet", "Terrasoft.WebHost.dll" ]

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS base

EXPOSE 5000 5002

RUN apt-get update && \

apt-get -y --no-install-recommends install \

libgdiplus \

libc6-dev && \

apt-get clean all && \

   rm -rf /var/lib/apt/lists/* /var/cache/apt/*

WORKDIR /app

COPY . ./

FROM base AS final

WORKDIR /app

ENV ASPNETCORE_ENVIRONMENT Development

ENV TZ US/Eastern

ENTRYPOINT [ "dotnet", "Terrasoft.WebHost.dll" ]

 

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

Нравится

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

Евгений, здравствуйте! 

 

Ошибка "base stage name already used" говорит, что у вас компонент уже используется.

Дело в том, что у вас код продублирован:

 

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS base

EXPOSE 5000 5002

RUN apt-get update && \

    apt-get -y --no-install-recommends install \

    libgdiplus \

    libc6-dev && \

    apt-get clean all && \

    rm -rf /var/lib/apt/lists/* /var/cache/apt/*

WORKDIR /app

COPY . ./

FROM base AS final

WORKDIR /app

ENV ASPNETCORE_ENVIRONMENT Development

ENV TZ US/Eastern

ENTRYPOINT [ "dotnet", "Terrasoft.WebHost.dll" ]

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS base

EXPOSE 5000 5002

RUN apt-get update && \

apt-get -y --no-install-recommends install \

libgdiplus \

libc6-dev && \

apt-get clean all && \

   rm -rf /var/lib/apt/lists/* /var/cache/apt/*

WORKDIR /app

COPY . ./

FROM base AS final

WORKDIR /app

ENV ASPNETCORE_ENVIRONMENT Development

ENV TZ US/Eastern

ENTRYPOINT [ "dotnet", "Terrasoft.WebHost.dll" ]

На Академии уже исправили этот момент:

 

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

 

Для продолжения работы нужно выполнить

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS base
EXPOSE 5000 5002
RUN apt-get update && \
apt-get -y --no-install-recommends install \
libgdiplus \
libc6-dev && \
apt-get clean all && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*
WORKDIR /app
COPY . ./
FROM base AS final
WORKDIR /app
ENV ASPNETCORE_ENVIRONMENT Development
ENV TZ US/Eastern
ENV COMPlus_ThreadPool_ForceMinWorkerThreads 100
ENTRYPOINT ["dotnet", "Terrasoft.WebHost.dll"]

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

Unhandled exception. System.Exception: Could not resolve a service of type 'Terrasoft.WebHost.IApplication' for the parameter 'application' of method 'Configure' on type 'Terrasoft.WebHost.Startup'.

 ---> Autofac.Core.DependencyResolutionException: An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = Application (ReflectionActivator), Services = [Terrasoft.WebHost.IApplication], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = RedisSessionSynchronizationService (ReflectionActivator), Services = [Terrasoft.WebHost.Session.ISessionSynchronizationService], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = RedisSessionSynchronizer (ReflectionActivator), Services = [Terrasoft.Redis.ISessionSynchronizer], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = IRedisClientsManager (DelegateActivator), Services = [Terrasoft.Redis.Abstractions.IRedisClientsManager], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> No connection is available to service this operation: INFO; UnableToConnect on localhost:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.0.601.3402; IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=0,Free=32767,Min=256,Max=32767), Local-CPU: n/a (See inner exception for details.) (See inner exception for details.) (See inner exception for details.) (See inner exception for details.)

 ---> Autofac.Core.DependencyResolutionException: An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = RedisSessionSynchronizationService (ReflectionActivator), Services = [Terrasoft.WebHost.Session.ISessionSynchronizationService], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = RedisSessionSynchronizer (ReflectionActivator), Services = [Terrasoft.Redis.ISessionSynchronizer], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = IRedisClientsManager (DelegateActivator), Services = [Terrasoft.Redis.Abstractions.IRedisClientsManager], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> No connection is available to service this operation: INFO; UnableToConnect on localhost:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.0.601.3402; IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=0,Free=32767,Min=256,Max=32767), Local-CPU: n/a (See inner exception for details.) (See inner exception for details.) (See inner exception for details.)

 ---> Autofac.Core.DependencyResolutionException: An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = RedisSessionSynchronizer (ReflectionActivator), Services = [Terrasoft.Redis.ISessionSynchronizer], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = IRedisClientsManager (DelegateActivator), Services = [Terrasoft.Redis.Abstractions.IRedisClientsManager], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> No connection is available to service this operation: INFO; UnableToConnect on localhost:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.0.601.3402; IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=0,Free=32767,Min=256,Max=32767), Local-CPU: n/a (See inner exception for details.) (See inner exception for details.)

 ---> Autofac.Core.DependencyResolutionException: An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = IRedisClientsManager (DelegateActivator), Services = [Terrasoft.Redis.Abstractions.IRedisClientsManager], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> No connection is available to service this operation: INFO; UnableToConnect on localhost:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.0.601.3402; IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=0,Free=32767,Min=256,Max=32767), Local-CPU: n/a (See inner exception for details.)

 ---> StackExchange.Redis.RedisConnectionException: No connection is available to service this operation: INFO; UnableToConnect on localhost:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.0.601.3402; IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=0,Free=32767,Min=256,Max=32767), Local-CPU: n/a

 ---> StackExchange.Redis.RedisConnectionException: UnableToConnect on localhost:6379/Interactive, Initializing/NotStarted, last: NONE, origin: BeginConnectAsync, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: Connecting, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.0.601.3402

   --- End of inner exception stack trace ---

   at StackExchange.Redis.RedisServer.ExecuteSync[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in C:\projects\stackexchange-redis\src\StackExchange.Redis\RedisServer.cs:line 589

   at StackExchange.Redis.RedisServer.Info(RedisValue section, CommandFlags flags) in C:\projects\stackexchange-redis\src\StackExchange.Redis\RedisServer.cs:line 258

   at Terrasoft.Redis.StackExchangeAdapters.RedisClientAdapter.get_Info() in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Redis.StackExchangeAdapters/RedisClientAdapter.cs:line 64

   at Terrasoft.Redis.RedisValidator.GetVersion(IRedisClientsManager redisClientsManager) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Redis/RedisValidator.cs:line 28

   at Terrasoft.Redis.RedisValidator.CheckVersion(IRedisClientsManager redisClientsManager) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Redis/RedisValidator.cs:line 42

   at Terrasoft.Redis.RedisClientsManager..ctor(String connectionStringName, IRedisValidator redisValidator) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Redis/RedisClientsManager.cs:line 57

   at Terrasoft.Redis.RedisClientsManager..ctor() in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Redis/RedisClientsManager.cs:line 39

   at Terrasoft.Redis.RedisClientsManager.<>c.<.cctor>b__21_1() in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Redis/RedisClientsManager.cs:line 75

   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)

   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)

   at System.Lazy`1.CreateValue()

   at System.Lazy`1.get_Value()

   at Terrasoft.Redis.RedisClientsManager.get_Instance() in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Redis/RedisClientsManager.cs:line 80

   at Terrasoft.Redis.RedisExtensions.<>c.<AddRedis>b__0_0(IServiceProvider container) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Redis/RedisExtensions.cs:line 15

   at Terrasoft.Core.DI.ServiceProvider.ServiceProviderAutofacModule.<>c__DisplayClass15_0.<ConfigureFactoryBinding>b__0(IComponentContext context, IEnumerable`1 parameters) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Core.DI/ServiceProvider/ServiceProviderAutofacModule.cs:line 216

   at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

   --- End of inner exception stack trace ---

   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

   at Autofac.Core.Resolving.InstanceLookup.<>c__DisplayClass5_0.<Execute>b__0()

   at Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func`1 creator)

   at Autofac.Core.Resolving.InstanceLookup.Execute()

   at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.InstanceLookup.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Activators.Reflection.AutowiringParameter.<>c__DisplayClass0_0.<CanSupplyValue>b__0()

   at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()

   at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

   --- End of inner exception stack trace ---

   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

   at Autofac.Core.Resolving.InstanceLookup.<>c__DisplayClass5_0.<Execute>b__0()

   at Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func`1 creator)

   at Autofac.Core.Resolving.InstanceLookup.Execute()

   at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.InstanceLookup.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Activators.Reflection.AutowiringParameter.<>c__DisplayClass0_0.<CanSupplyValue>b__0()

   at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()

   at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

   --- End of inner exception stack trace ---

   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

   at Autofac.Core.Resolving.InstanceLookup.<>c__DisplayClass5_0.<Execute>b__0()

   at Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func`1 creator)

   at Autofac.Core.Resolving.InstanceLookup.Execute()

   at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.InstanceLookup.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Activators.Reflection.AutowiringParameter.<>c__DisplayClass0_0.<CanSupplyValue>b__0()

   at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()

   at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

   --- End of inner exception stack trace ---

   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

   at Autofac.Core.Resolving.InstanceLookup.<>c__DisplayClass5_0.<Execute>b__0()

   at Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func`1 creator)

   at Autofac.Core.Resolving.InstanceLookup.Execute()

   at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.ResolveOperation.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters)

   at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)

   at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)

   at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)

   at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)

   at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)

   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)

   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)

   --- End of inner exception stack trace ---

   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)

   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)

   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app)

   at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)

   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)

   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)

   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)

   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)

   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)

   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)

   at Terrasoft.WebHost.Program.StartWebApplication(String[] args) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.WebHost/Program.cs:line 28

   at Terrasoft.WebHost.Program.<>c__DisplayClass2_0.<Main>b__0(StartOptions _) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.WebHost/Program.cs:line 61

   at CommandLine.ParserResultExtensions.MapResult[T1,T2,TResult](ParserResult`1 result, Func`2 parsedFunc1, Func`2 parsedFunc2, Func`2 notParsedFunc)

   at Terrasoft.WebHost.Program.Main(String[] args) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.WebHost/Program.cs:line 64

Евгений Шевченко,Это ошибка при сборке images*

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

Здравствуйте! Подскажите пожалуйста!

Мы мигрировали данные с другой СРМ системы. Сейчас мне нужно массово сменить ответственного менеджера, не у всех записей, а равномерно например по 100, на каждого менеджера распределить. Как нужно настроить фильтр чтобы выдавало ровно 100 значений?

Далее, я знаю что можно через кнопку [ Действие ] сменить значение поля.

Нравится

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

Юлия, добрый вечер.

 

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

Для решения этой задачи Вы можете настроить бизнес-процесс, который будет изменять ответственных именно для 100 записей в таблице. Подробнее о настройке бизнес-процессов можно почитать на Академии по этой ссылке.

Юлия, добрый вечер.

 

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

Для решения этой задачи Вы можете настроить бизнес-процесс, который будет изменять ответственных именно для 100 записей в таблице. Подробнее о настройке бизнес-процессов можно почитать на Академии по этой ссылке.

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

Подскажите, есть ли способ изменить прядок отображения элементов в

списке фильтрации ? 

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

Нравится

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

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

В каждом разделе системы отображение первого поля при быстром поиске заложено в параметре PRIMARY_DISPLAY_COLUMN (Отображаемое значение). Например, для раздела Контакты это поле [ФИО].

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

Однако данный вариант также предполагает использование средств разработки. Более детальнее описано в статье по ссылке: https://academy.terrasoft.ua/docs/developer/elements_and_components/basic_interface_elements/razdel#case-3240

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

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



Кто-нибудь сталкивался с необходимостью создания дополнительной колонки с типом "Справочник" в базовом объекте File?



Как вы справлялись со следующей ошибкой?



После создания колонки и публикации, и дальнейшем добавлении файла в любую из деталей "Файлы и ссылки" возникает ошибка "Недопустимое имя столбца "OPFileTypeId". Компиляция\генерация исходных кодов\обновление структуры БД не помогает решить данную проблему.



Подскажите, пожалуйста, каким образом можно исправить данную ошибку, чтобы данное поле (OPFileType) было на всех наследуемых объектах (ContactFile, AccountFile, etc)?

Нравится

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

Сергей Соколов,

В коробке еще не решено. В качестве алитернативного решение - это обновить структуру в БД для наследуемых объектов

Дополнительно обнаружил, что если обновить структуру БД для конкретного объекта, например, ContactFile (в базовом пакете Base), то физически колонка OPFileTypeId появляется в таблице и ошибка пропадает, однако, проходить по всем объектам и обновлять их структуру не является хорошим решением данной проблемы, так как при добавлении нового раздела данная ошибка может быть актуальна, также, если данный пакет с функционалом переносить на другую среду, то придется аналогичные действия производить со всеми объектами.

Решили как-то, прям с той же самой проблемой сегодня столкнулся? :)

Сергей Соколов,

В коробке еще не решено. В качестве алитернативного решение - это обновить структуру в БД для наследуемых объектов

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

Необходимо создать отдельный раздел по анолигии "Итогов", чтобы при переходе отображалась сразу и только аналитика. Как? Какой родительский объект в данном случае должен быть?

 

Нравится

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

Добрый день, 

 

Раздел по аналогии "Итогов" базовыми инструментами  создать не получится. DashboardsModule это отдельный клиентский модуль. Также он не использует родительский объект. 

 

С реализацией которого можно ознакомится в разделе конфигурация выбрав DashboardsModule.

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

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

Подскажите, пожалуйста, кто-то сталкивался с созданием воронки по статусу Контрагента, аналогичную воронки продаж? Можете подсказать примерное решение данного вопроса.

Нравится

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

Добрый день!

В текущей версии системы воронки можно строить только по  лидам и продажам. Выбрать другой объект невозможно.

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

Спасибо, что делаете наш продукт лучше!

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

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