Добрый день! Не могу разобраться почему не работает созданный мною отчет через FastReport. Отчет создавал по примеру из академии, создал схему типа "исходный код" с именем "CHShipmentDataSourceCode". После сохранения указал источник данных, и после смог скачать файл типа *.frx, где в настройках были доступны все созданные ранее поля. Но после того как я выбираю любую погрузку, и нажимаю кнопку "Печать", выбивает ошибка типа "Ошибка:Неполадка сервера". При этом в системе есть ещё 2 отчета, они загружаются без ошибки сервера

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

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

Нравится

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

Илья, а что пишется в самом pdf-файле, который сгенерировался?

Также, если есть доступ к серверу, посмотрите в журнале ошибок, что пишет в момент формирования отчёта.

 

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

файл открыть нельзя, он не выгружается вообще, в консоли выбивает ошибку поля "ReportTitle", скрин прикрепляю

Судя по сообщению, что-то не то с локализируемыми строками. Вы их указали в настройках источника данных отчёта? Они реально добавлены в схеме с кодом?

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

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

А в источнике данных?

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

тоже там указано поле

Возможно, Вы используете значение параметра ReportTitle в логике внутри отчёта, а там нельзя передавать параметр типа «локализируемая строка» таим образом? Сравните, как с ним работают в стандартном отчёте, могут быть отличия.

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

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

Если ReportTitle убрали отовсюду, то падать должно на чём-то другом.

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

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

 

День добрый!

Возникла идея нескольких проектов для маркетплейса общая суть которых сводится к получению из вне get\post запроса на опубликованный веб сервис и реакцию в виде запуска процессов и\или изменения данных. Детально рассказывать не буду, но думаю суть понятна.

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

 

Собственно, вопросы следующие:

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

2) если подобное приложение можно разместить на маркетплейсе, то сможет ли пользователь облака попросить саппорт зарегистрировать сторонний анонимный веб сервис или это возможно только при развертывании на мощностях клиента?

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

 

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

 

Версия 7.16.0.4461 (в списке версий не нашел)

Нравится

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

1) Да, мы выкладываем. Например, https://marketplace.terrasoft.ru/app/konnektor-k-onlayn-chatu-jivosite

2) Да, сможет. Вы в личном кабинете маркетплейса положите файлик с веб сервисом и инструкцией для саппорта.

3) Нет, вариантов других нет из-за авторизации

1) Да, мы выкладываем. Например, https://marketplace.terrasoft.ru/app/konnektor-k-onlayn-chatu-jivosite

2) Да, сможет. Вы в личном кабинете маркетплейса положите файлик с веб сервисом и инструкцией для саппорта.

3) Нет, вариантов других нет из-за авторизации

Спасибо за оперативный ответ!

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

Был создан БП с блоком отправки почты. В тело письма передается HTML-текст через параметр процесса. Всё работает корректно.

Но при повторном открытии и сохранении БП, параметр в графе "Тело Письма" сбрасывается, даже если не щелкать на блок отправки почты. Приходится при каждом изменении БП заново указывать параметр в тело письма. Иначе в письме содержится именно текст [#IsOwner....

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

 

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

 

Нравится

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

Обратитесь в тех поддрежку Terrasoft (Creatio) не забыв указать номер версии используемой  у вас BpmOnline.

Обратитесь в тех поддрежку Terrasoft (Creatio) не забыв указать номер версии используемой  у вас BpmOnline.

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

Добрый день!

Необходимо реализовать в разделе Лиды в карточке Лида разделение поля "ФИО контакта" на 3 отдельных поля "Фамилия", "Имя" и "Отчество".

В мастере разделов я добавил 3 новых поля и хочу сделать стандартное поле "ФИО контакта" скрытым, но чтоб не переделывать логику работы карточек, думаю при сохранении Лида записывать значения полей фамиля+имя+отчество в поле "ФИО контакта"

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

Я пока только разбираюсь в системе и её документации, нужной информации пока не нашел.

Нравится

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

Сделать поле ФИО контакта вычисляемым полем. статья https://academy.terrasoft.ru/documents/technic-sdk/7-15/dobavlenie-vychislyaemyh-poley

по аналогии делал для поля Название в разделе конфигурации:

attributes: {
"Name": {
	dataValueType: Terrasoft.DataValueType.STRING,
	dependencies: [
		{
			columns: ["Type", "Model", "EPMManufacturer"],
			methodName: "generateNewName"
		}
	]
}
},
methods: {
onEntityInitialized: function() {
	this.callParent(arguments);
	this.generateNewName();
},
generateNewName: function() {
	var sType = Ext.isEmpty(this.get("Type")) 
				? ""
				: this.get("Type").displayValue ;
	var sModel = Ext.isEmpty(this.get("Model")) 
				? "" 
				: " " + this.get("Model").displayValue;
	var sEPMManufacturer = Ext.isEmpty(this.get("EPMManufacturer")) 
							? "" 
							: " " + this.get("EPMManufacturer").displayValue;
	var result = sType + sEPMManufacturer + sModel;
	this.set("Name", result);
}
}

 

Сделать поле ФИО контакта вычисляемым полем. статья https://academy.terrasoft.ru/documents/technic-sdk/7-15/dobavlenie-vychislyaemyh-poley

по аналогии делал для поля Название в разделе конфигурации:

attributes: {
"Name": {
	dataValueType: Terrasoft.DataValueType.STRING,
	dependencies: [
		{
			columns: ["Type", "Model", "EPMManufacturer"],
			methodName: "generateNewName"
		}
	]
}
},
methods: {
onEntityInitialized: function() {
	this.callParent(arguments);
	this.generateNewName();
},
generateNewName: function() {
	var sType = Ext.isEmpty(this.get("Type")) 
				? ""
				: this.get("Type").displayValue ;
	var sModel = Ext.isEmpty(this.get("Model")) 
				? "" 
				: " " + this.get("Model").displayValue;
	var sEPMManufacturer = Ext.isEmpty(this.get("EPMManufacturer")) 
							? "" 
							: " " + this.get("EPMManufacturer").displayValue;
	var result = sType + sEPMManufacturer + sModel;
	this.set("Name", result);
}
}

 

Алексей Следь,

 Спасибо большое!

В итоге получился вот такой код:

		attributes: {
            "Contact": {
                dataValueType: Terrasoft.DataValueType.TEXT,
                dependencies: [
                    {
                        columns: ["UsrLastName", "UsrFirstName", "UsrMiddleName"],
                        methodName: "calculateContact"
                    }
                ]
            }
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
            onEntityInitialized: function() {
                this.callParent(arguments);
                this.calculateContact();
            },
            calculateContact: function() {
                var sLastname = Ext.isEmpty(this.get("UsrLastName")) 
				? ""
				: this.get("UsrLastName");
 
                var sFirstname = Ext.isEmpty(this.get("UsrFirstName")) 
				? ""
				: this.get("UsrFirstName");
 
				var sMiddlename = Ext.isEmpty(this.get("UsrMiddleName")) 
				? ""
				: this.get("UsrMiddleName");
 
                var result = sLastname + " " + sFirstname + " " + sMiddlename;
                this.set("Contact", result);
			}
		},

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

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

Сергей Бер пишет:

Может через БП или напрямую через SQL?

Без разницы - оба варианта подойдут. Реализуйте тот способ, что для Вас проще.

Если на объекте лида есть какая-то логика во встроенном или отдельном БП, уже завязанная на изменение названия, то при изменении поля при помощи SQL-запроса привязанное событие не запустится, это на всякий случай нужно учитывать. 

Сергей Бер пишет:

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

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

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

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

Столкнулся со следующей проблемой, у нас в системе были кастомные Excel отчеты, выгружались посредствам библиотеки ClosedXml, и все работало, но с версии 7.14 перестало работать. Высыпаются ошибки в зависимостях:

Terrasoft.Web.Common.ServiceModel.ErrorHandler ProvideFault - Метод не найден: "System.IO.Packaging.PackageProperties DocumentFormat.OpenXml.Packaging.OpenXmlPackage.get_PackageProperties()".

System.MissingMethodException: Метод не найден: "System.IO.Packaging.PackageProperties DocumentFormat.OpenXml.Packaging.OpenXmlPackage.get_PackageProperties()

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

Кто работал с библиотекой ClosedXml в bpm'online, может знает какую версию использовать?

Текущая версия crm 7.14.4 

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

Нравится

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

Столкнулся, к сожалению. пришлось все переписывать... В ClosedXML используются библиотеки DocumentFormat.OpenXml, в версии 7.14 видимо обновили версию библиотеки/зависимых библиотек и все. Мучался часа 3 с зависимостями, потом плюнул и переписал на OpenXml генерацию xls

Столкнулся, к сожалению. пришлось все переписывать... В ClosedXML используются библиотеки DocumentFormat.OpenXml, в версии 7.14 видимо обновили версию библиотеки/зависимых библиотек и все. Мучался часа 3 с зависимостями, потом плюнул и переписал на OpenXml генерацию xls

А что говорит по этому вопросу служба поддержки? Что они рекомендуют?

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

Здравствуйте! Пока ничего. Анализирует предоставленный мною лог.

Нигрескул Алексей,

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

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

Всем доброго времени суток! Столкнулся со следующей проблемой. Есть БП который запускается после изменения записи, в нем есть скрипт-таск в котором определяется заголовок Origin - System.Web.HttpContext.Current.Request.Headers["Origin"], если изменение производились через карточку записи то заголовок присутствовал и процесс шел по одной ветке, если же изменение произошло кодом через интеграцию, то заголовок был пустой. Это работало до недавнего времени, сейчас же System.Web.HttpContext.Current == null.

Кто нибудь с таким сталкивался?

Нравится

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

Разобрался, в настройке начального сигнала стояло выполнять след. эл-ты в фоне. Из-за этого не читалось.

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

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

Всем доброго времени суток. Подскажите есть ли возможность у bpm'online интегрироваться с RabbitMQ, а именно подписываться на сообщения?

Благодарю.

Нравится

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

Как минимум, в механизме глобального поиска он используется. Нужно смотреть документацию по этому ПО, как устроены стандартные библиотеки для взаимодействия с ним, есть ли они под JS и C# и можно ли ими воспользоваться в конфигурации bpm'online.

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

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

Столкнулся со следующей проблемой, развернул систему локально, при входе в систему выдает ошибки - http://prntscr.com/ohdrrs

Ранее такого не наблюдал.

Версия: 7.14.2.881 

Нравится

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

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

Подскажите пожалуйста как так получается, что фильтры которые я применяю к реестру Контакта накладываются на поле Ответственный в Заказе - http://prntscr.com/of9vys?

А то что мне необходимо фильтровать в данном поле не отображает - http://prntscr.com/of9wvo

 

 

 

Нравится

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

И почему то вообще не срабатывает бизнес правило фильтрации:

http://prntscr.com/ofa2wb - правило добавилось

http://prntscr.com/ofa4mc - в списке пусто

http://prntscr.com/ofa5ds - контакты есть удовлетворяющие условиям фильтрации

фильтры которые я применяю к реестру Контакта накладываются на поле Ответственный в Заказе

Скорее всего, Вы их применяете к полю Owner в  Order, а Contact — название объекта справочника. Более подробно о наложении фильтров можно почитать в статье о бизнес-правилах мобильного приложения.

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

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

Коллеги, всем доброго времени суток!

Подскажите, есть ли возможность проставить признак обязательности заполнения(*), при этом не устанавливая параметр на уровне БД?

http://prntscr.com/ocz7r9

Есть ли какие то методы при помощи которых можно выполнить такую настройку?

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

Нравится

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

В 7.Х вообще не стоит устанавливать обязательность поля на уровне базы, достаточно на уровне объекта.

Если же нужно кодом на мобильной странице, см. эту и эту темы.

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