Доброго времени суток, подскажите пожалуйста:
Есть поле "Ответственный" - ссылается на Контакты, в Контактах есть поле подразделение.

Как сделать так, чтобы при изменении "Ответственного" на карточке нового раздела, менялось и подразделение.

Реализовал этот функционал через бизнес-процесс, но данные отображаются только после сохранения и обновления страницы.

Нравится

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

Вариант 1:  с помощью бизнес-правил
Вариант 2: по окончании процесса сделать обновление страницы 
Вариант 3: небольшим кодом на странице

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

 

Сергей, добрый день.

 

Обновляйтесь до последней версии - в ней есть возможность настройки такой логики пользовательскими средствами через мастер карточки редактирования!

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

Cпасибо, а можете подсказать с примером кода, или сказать где это посмотреть?

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

Спасибо! Знаю что в новых версиях есть возможность реализовать такой функционал бизнес-правилом, но увы, обновить систему возможности нету.

Сергей Рогов пишет:

 Посмотрите в BaseAddressPageV2 заполнение страны по городу.
Свойства             autocomplete и  autoClean
Кажется, так уже со старых версий
 

rules: {
	"City": {
		"FiltrationCityByCountry": {
			ruleType: BusinessRuleModule.enums.RuleType.FILTRATION,
			autocomplete: true,
			autoClean: true,
			baseAttributePatch: "Country",
			comparisonType: Terrasoft.ComparisonType.EQUAL,
			type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
			attribute: "Country"
		}
}

 

Добрый день.

 

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

https://community.terrasoft.ru/questions/zhestkaya-privyazka-spravochni…

https://community.terrasoft.ru/questions/vychislyaemoe-tekstovoe-pole

https://community.terrasoft.ua/questions/avtozapolnenie-tekstovogo-polya

https://community.terrasoft.ru/questions/realizovat-avtozapolnenie-pole…

https://community.terrasoft.ru/questions/dinamichnoe-izmenenie-spravoch…

https://community.terrasoft.ru/questions/podstavit-v-detal-znachenie-sp…

Ivan Kuchma пишет:

Пора FAQ заводить :) 

Ivan Kuchma,

Спасибо за столько вариантов!

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

Доброго дня!

У нас есть рабочая Creatio Sales Enterprise на базе MS SQL Server. Сейчас мы переезжаем на другой сервер с PostgreSQL. Не получается выполнить восстановление бэкапа БД (создан в MS SQL Server, восстанавливаем в PostgreSQL). Пробовали и напрямую через интерфейс pgAdmin, и через командную строку, и конвертировали БД через программу-конвертер - результата нет. В какую сторону ещё смотреть, что поискать, у кого заказать?

Нравится

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

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

Возможно, ещё придётся переписывать хранимые процедуры и VIEW, так как местами есть существенные отличия

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

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

Релиз в проработке, к сожалению, по срокам не можем сориентировать.

Утилиту и рекомендации предоставит техническая поддержка по запросу.

С уважением, Елена.

Elena Sidko,

Елена, а Вы не могли бы ещё уточнить версии/билды/релизы MS SQL Server и PostgreSQL Server, на которых точно работает эта утилита? Мы хотим поставить точно такие же

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

Всем привет, подскажите как правильно добавить деталь Активности для нового раздела?

Нравится

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

в активности создать справочное поле нового раздела. и по стандартному добавить активность указав связь id нового раздела - справочное поле нового раздела из активности

Dima Avdoshin,

Дмитрий спасибо!
Можно редактировать имеющуюся активность или нужно замещающий объект создавать?

Ещё один легкий способ. Если в новом разделе нужна ActionsDashboard и кейсы, то добавляя кейс, сразу же добавляются нужные поля в активности

Сергей Рогов,

замещающий, потому что вам же нужно как то связь указать с активностью

Dima Avdoshin,

Спасибо!

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

Спасибо за такой вариант, на нём и остановился

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

Доброго времени суток.
Подскажите, такая ситуация, создаю новый раздел, создал новый пакет, в настройке "Текущий пакет" указан нужный пакет и все изменения попадают туда. Кроме кейсов, кейсы сохраняются в пакет Custom. На странице создания кейса указан так же нужный пакет, но при сохранении кейс находится в пакете Custom.
Как это исправить или так и должно работать?
Спасибо.

Нравится

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

Здравствуйте, Сергей!

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

Пожалуйста, ожидайте, обратной связи.

Станислав Чернышев,

 

Как раз я работаю на версии 7.15.3.

С нетерпением жду решения данной проблемы.

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

Добрый день!

Подскажите, пожалуйста, использовал ли кто-то коннектор к СПАРК из маркетплейса?
https://marketplace.terrasoft.ru/app/spark-connector-creatio
Впервые устанавливаем приложение из МП.
Хочется понять потребуется ли какая-то доработка кода для получения информации или достаточно будет заполнить системные настройки или информация из методов, которые доступны логину, будет автоматом добавлена в карточку контрагента.

Нравится

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

Юрий, добрый день!

 

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

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

Добрый день!
Вопросов по установке нет. Меня интересует пользовательский опыт данного приложения.
Нужны ли будут еще какие-нибудь доработки.

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

Добрый день!

Мне необходимо вызвать веб-сервис и прочитать .csv файл. Версия on-site.

В Исходном коде пишу такой код (код рабочий):

namespace Terrasoft.Configuration
{
	using System.ServiceModel;
	using System.ServiceModel.Web;
	using System.ServiceModel.Activation;
	using Terrasoft.Web.Common;
	using System.Collections.Generic;
 
	[ServiceContract]
	[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
	public class ClassService : BaseService
	{
		[OperationContract]
		[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped,
			RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
		public void MethodService()
		{
			ReadCSVFile();
		}
		static void ReadCSVFile()
		{
			var lines = System.IO.File.ReadAllLines(@"E:\new1.csv");
			var list = new List<MyContact>();
 
			foreach (var line in lines)
			{
				var values = line.Split(';');
				var myContact = new MyContact() { FirstName = values[0], LastName = values[1], Age = values[2] };
				list.Add(myContact);
			}
		}
	}
 
	public class MyContact
	{
		public string FirstName { get; set; }
		public string LastName { get; set; }
		public string Age { get; set; }
	}
 
}

Проверяю в Postman вызовом веб-сервиса.

Получаю ошибку:

The server encountered an error processing the request. The exception message is 'The device is not ready. '. See server logs for more details. The exception stack trace is:
 
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost) at System.IO.StreamReader..ctor(String path, Encoding encoding) at System.IO.File.InternalReadAllLines(String path, Encoding encoding) at Terrasoft.Configuration.QlikClassService.ReadCSVFile() at Terrasoft.Configuration.QlikClassService.QlikMethodService() at SyncInvokeQlikMethodService(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

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

Нравится

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

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

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

Добрый день!

Каким образом можно прочитать CSV файл, который находится в сетевой директории? Далее эти данные использовать для создания новых записей в разделе. Версия 7.15.3.1649.

Нравится

4 комментария
static int check(string uid, string type_need, string license_need, ref string[] dataByUid)
		{
 
			// 
			const string SERVER = "SERVER";
			const string USER = "USER";
			const string PASSWROD = "PASSWROD";
 
 
 
			string type = "image";
			string license = "";
 
			long needUidLong = long.Parse(uid);
			//переводим искомый идентификатор в число для применения половинного деления в отсортированной списке
 
			var client = new SftpClient(SERVER, USER, PASSWROD);
			client.Connect();
 
			var dateTime = DateTime.MinValue.ToUniversalTime();
			var needPath = "";
 
			//ищем необходимый файл с последней датой изменения
			foreach (var file in client.ListDirectory("/bridgeman/"))
			{
				if (file.IsDirectory)
				{
					continue;
				}
 
				long fileSizeMb = file.Length / 1024 / 1024;
 
				//проверяем файл на размер больше 1Мб, чтобы исключить ненужные
				if (fileSizeMb < 1)
				{
					continue;
				}
 
				//проверяем дату изменения 
				if (file.LastWriteTimeUtc > dateTime)
				{
					dateTime = file.LastWriteTimeUtc;
					needPath = file.FullName;
				}
			}
 
			//если файл с БД не найден завершаем неудачей
			if (needPath == "")
			{
				client.Disconnect();
				//return false;
				return -1;
			}
 
			//Инициализируем поток чтения файла при помощи StreamReader, чтобы считывать построчно
			StreamReader streamReader = new StreamReader(client.OpenRead(needPath), Encoding.UTF8);
 
			//ограничения промежутка
 
			//начало отрезка
			long startByte = 0;
			//конец отрезка
			long lastByte = streamReader.BaseStream.Length;
			//размер половины отрезка, для отслеживания точки останова цикла
			long halfSize = (lastByte - startByte) / 2;
 
			//текущая позиция проверки (середина отрезка)
			long curCenter = startByte + halfSize;
 
			//перехд на нужную позицию
			streamReader.BaseStream.Position = curCenter;
 
			while (halfSize > 2)
			{
				//очищаем буфер, очень важно, иначе происходит наложение данных
				//баг работы StreamReader по сетевому потоку
				streamReader.DiscardBufferedData();
 
				//считываем сначала битую строку, а потом уже цельную следующую
				streamReader.ReadLine();
				string line = streamReader.ReadLine();
				if (line == null)
				{
					break;
				}
 
				//формируем массив данных
				var tsv = line.Split('\t');
				if (tsv.Length < 1)
				{
					break;
				}
 
				//находим идентификатор
				string curUid = Regex.Replace(tsv[0], @"[^\d]", "");
				if (curUid == "")
				{
					break;
				}
 
				long curUidLong = long.Parse(curUid);	
			}
 
			streamReader.Close();
			client.Disconnect();
 
			return -1;
		}

это для чтения с ftp csv

Dima Avdoshin,

Спасибо за ответ! Подскажите, куда этот код вставить (создать новый Исходный код или в произвольном нужном месте, типа веб-сервис)?

Pavel Litvinovich, все от задачи зависит, лично у нас реализация через сервис была, и мы вызывали этот код на странице редактирования

Dima Avdoshin,

А какой Using надо подключить для SftpClient?

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

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

Нравится

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

Добрый день!
Как проявляет себя проблема?
Возможно Вы пытались получить значения, которых нет в самой таблице представления. Найти какие поля есть и доступны в таблице представления можно через СУБД.

Криволапова Александра,

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

 

Глеб Макаров,

Проверьте, пожалуйста, есть ли в БД в таблице представления те колонки, которые Вы с помощью макросов помещаете в шаблон.

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

Добрый день. У одного из пользователей CRM не загружаются активности. Просто бесконечная загрузка. 

Нравится

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

Добрый день, Сергей!

 

Для оперативного анализа и устранения данной ошибки обратитесь в техническую поддержку Terrasoft. Почта: support@terrasoft.ru

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

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

В продаже была такая же проблема, помог пост https://community.terrasoft.ru/questions/strannye-stadii-kotorykh-ne-do… , а точнее изменение настройки 

 if (UserConnection.GetIsFeatureEnabled("DisableOldOpportunityStageSynchronizers")).

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

Нравится

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

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

Причиной такого поведения может быть отключенная фича, которая отвечает за журналирование стадий. Фича называется EntityStageHistoryJournaling.
Необходимо ее включить для всех пользователей.
По ссылке https://academy.terrasoft.ru/docs/developer/elements_and_components/int… есть скрипты для включения фич через запрос в БД.

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

Причиной такого поведения может быть отключенная фича, которая отвечает за журналирование стадий. Фича называется EntityStageHistoryJournaling.
Необходимо ее включить для всех пользователей.
По ссылке https://academy.terrasoft.ru/docs/developer/elements_and_components/int… есть скрипты для включения фич через запрос в БД.

К сожалению, всё включено.

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