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

В БП созданы 2 параметра AccountType(справочник) и AccountId(уникальный идентификатор). Создал задание-сценарий с текстом 

AccountType = Guid.Parse(TypeString);

AccountId = Guid.Parse(IdString);

Компиляция проходит без ошибок, но при запуске получаю ошибку "The name 'AccountId' does not exist in the current context", при этом с AccountType все в порядке.

В случае интерпретируемого процесса ошибка аналогичная.

Предполагаю, что это особенность типа, но как исправить?

Нравится

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

Проверьте в параметрах что AccountId это именно не название а код параметра и для интерпритируемых используйте

var accountId = Get<Guid>("AccountId");

Проверьте в параметрах что AccountId это именно не название а код параметра и для интерпритируемых используйте

var accountId = Get<Guid>("AccountId");

Григорий Чех,

Спасибо.

Имена копировал, ошибка оставалась, пока не переименовал параметр.

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

Сейчас все работает.

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

Добрый день!

Подскажите, где (в каком месте) заполняется параметр БП [#Id созданного счета#] в БП CreateInvoice?

В этот параметр попадает Id вновь созданного счета, на каком этапе, не могу понять, помогите разобраться

Нравится

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

Заполняется в методе CreateInvoice БП CreateInvoiceFromOrder

public virtual void CreateInvoice() {
	OrderInvoiceHelper helper = Factories.ClassFactory.Get&lt;OrderInvoiceHelper&gt;(new Factories.ConstructorArgument("userConnection", UserConnection));
CreatedInvoiceId = helper.CreateEntity("Order", "Invoice", CurrentOrder, new Dictionary&lt;string, string&gt; {
	{"Currency", "Currency"},
	{"CurrencyRate", "CurrencyRate"},
	{"Contact", "Contact"},
	{"Account", "Account"},
	{"Owner", "Owner"},
	{"Amount", "Amount"},
	{"Opportunity", "Opportunity"}
}, new Dictionary&lt;string, object&gt; { { "Order", CurrentOrder } });
}

 

Заполняется в методе CreateInvoice БП CreateInvoiceFromOrder

public virtual void CreateInvoice() {
	OrderInvoiceHelper helper = Factories.ClassFactory.Get&lt;OrderInvoiceHelper&gt;(new Factories.ConstructorArgument("userConnection", UserConnection));
CreatedInvoiceId = helper.CreateEntity("Order", "Invoice", CurrentOrder, new Dictionary&lt;string, string&gt; {
	{"Currency", "Currency"},
	{"CurrencyRate", "CurrencyRate"},
	{"Contact", "Contact"},
	{"Account", "Account"},
	{"Owner", "Owner"},
	{"Amount", "Amount"},
	{"Opportunity", "Opportunity"}
}, new Dictionary&lt;string, object&gt; { { "Order", CurrentOrder } });
}

 

Вот я слепошарый! Спасибо!

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

Добрый день!

Подскажите, есть ли возможность отобразить идентификатор контрагента (dbo.Account.Id) например на странице контрагента? Почему-то колонка Id в мастере раздела не отображается и в БП в справочнике контрагента её использовать не получается.

Нравится

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

Добрый день!

Только кодом. Пример замещенной схемы контрагента:

define("AccountPageV2", [], function() {
	return {
		entitySchemaName: "Account",
		attributes: {
			"AccountId": {
				dataValueType: this.Terrasoft.DataValueType.TEXT,
				value: "",
				caption: "Id"
			},
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			onEntityInitialized: function() {
				this.callParent(arguments);
				this.set("AccountId", this.get("Id"));
			},
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "AccountId",
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"values": {
					"bindTo": "AccountId",
					"layout": {
						"column": 0,
						"row": 1,
						"colSpan": 24
					},
					"enabled": false
				}
			},
		]/**SCHEMA_DIFF*/
	};
});

Результат:

Добрый день!

Только кодом. Пример замещенной схемы контрагента:

define("AccountPageV2", [], function() {
	return {
		entitySchemaName: "Account",
		attributes: {
			"AccountId": {
				dataValueType: this.Terrasoft.DataValueType.TEXT,
				value: "",
				caption: "Id"
			},
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			onEntityInitialized: function() {
				this.callParent(arguments);
				this.set("AccountId", this.get("Id"));
			},
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "AccountId",
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"values": {
					"bindTo": "AccountId",
					"layout": {
						"column": 0,
						"row": 1,
						"colSpan": 24
					},
					"enabled": false
				}
			},
		]/**SCHEMA_DIFF*/
	};
});

Результат:

Спасибо, Александр!

Значение отображается.

А что нужно сделать, чтобы оно отображалось в списке значений справочника Контрагент?

Виталий Егоров пишет:

А что нужно сделать, чтобы оно отображалось в списке значений справочника Контрагент?

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

Да, неясно выразился. Если точнее - нужно создать переменную в БП (как я понимаю типа справочник), чтобы прочитать значение Id и сравнить с полученным извне.

Виталий Егоров,

Если нужно сравнивать только значения Id, тогда Вам достаточно создать параметр БП с типом уникальный идентификатор.

Элемент БП 'Чтение данных' позволяет выбрать значение поля Id того объекта, из которого Вы вычитываете данные. Точно также значение Id записи можно получить и из сигнала.

А потом в элементе формула Вы можете Вашему параметру БП присвоить это значение.

Если эти элементы БП Вам не подходят для решения Вашей задачи, то вычитать нужное значение Id можно в скрипт-таске и тут же его записать в нужный параметр БП.

Алла Савельева пишет:

Спасибо, Алла! А есть ли возможность задать Id при создании нового контрагента процессом? 

Все, разобрался.

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

Имеются две среды, две базы на двух разных машинах. Базы отличаются друг от друга. На одной машине у меня есть пакеты разработки, которые я могу менять. Как мне их правильно перенести на другую базу на другую машину, чтобы они там остались доступны мне для изменения? SVN Server есть

Нравится

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

Попробуйте настроить работу с SVN для обоих сред. Подробнее смотрите здесь.

Попробуйте настроить работу с SVN для обоих сред. Подробнее смотрите здесь.

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

то есть разработка далее будет идти только в файловой системе?

Линар Аминев,

А что Вас смущает в разработке в файловой системе?

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

да в целом ничего. будем значит в файловой системе. спасибо за ответ)

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

Добрый день!

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

 

Нравится

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

Используйте не браузер смартфона, а мобильное приложение. Там упоминания в ленте работают.

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

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

Вероятно, это зависит от самого браузера, поддерживаемые ОС и браузеры перечислены в системных требованиях.

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

Пробовали через различные браузеры, не помогает(

Значит, все они или ОС устройства не из списка поддерживаемых:

 

Операционная система Microsoft Windows (Windows 7; Windows 8; Windows 10):

  • Google Chrome последней официальной версии на дату релиза bpm’online
  • Mozilla Firefox последней официальной версии на дату релиза bpm’online
  • Microsoft Internet Explorer версии 11 и выше;
  • Microsoft Edge

Операционная система OS Х последней официальной версии

  • Apple Safari последней официальной версии на дату релиза bpm’online

В принципе, это логично, у смартфонов другие ОС и браузеры.

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

Коллеги, доброго дня! Возникла потребность выдать права на чтение всех разделов системы. Логично подумала, что выдав права к системной операции [Просмотр любых данных] я полностью ее покрою, но нет. Раздел [Журнал процессов] оказался недоступен.

Это нормальное поведение системы? И если да, то что порекомендуете?

Нравится

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

Здравствуйте! Что касается журнала процессов попробуйте данную настройку - http://prntscr.com/nafckz&nbsp;

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

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

Здравствуйте! Что касается журнала процессов попробуйте данную настройку - http://prntscr.com/nafckz&nbsp;

Алексей, спасибо! Это то, что нужно

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

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

На новые обращения работает, но на эти 30 обращений не отбираются права. (Вижу обращения с контрагентом "Контрагент №2" через портал под пользователем с контрагентом "Контрагент №1" ) 

Вопрос, что может устанавливать права, кроме этого бизнес процесса? Техподдержка не помогла.

Нравится

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

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



Так мы исключим вариант, что процесс некорректный.



У наших клиентов тоже перераспределяются права на обращения после изменения SLA или Контакта, и всё срабатывает. Правда, там в условии я по старой привычке пишу, что Id должно быть заполнено, но возможно, сейчас такое и не требуется

Если процесс даже не запускается на редактирование полей, то покажите стартовые сигналы

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

 

Rinat,

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

Этот бизнес-процесс нужно запустить одноразово вручную либо из дизайнера, либо из пункта меню запуска бизнес-процессов.

Также, возможно, отрабатывает еще какая-то дополнительная логика. Чтобы понять, что это может быть, посмотрите SQL Profiler, какие запросы идут в этот момент в базу данных.

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



Так мы исключим вариант, что процесс некорректный.



У наших клиентов тоже перераспределяются права на обращения после изменения SLA или Контакта, и всё срабатывает. Правда, там в условии я по старой привычке пишу, что Id должно быть заполнено, но возможно, сейчас такое и не требуется

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

При установке пакета через интерфейс системы установка приложений возникла ошибка (из-за вручную внесённых изменений в таблицы в БД - хулигану уже настучали по рукам) и система предложила откатиться до состояния пакетов из бэкапа.

При откатывании тоже возникла ошибка и система сообщила, что восстановление из бэкапа невозможно.

При этом в интерфейсе системы и в БД пропали некоторые поля и такое ощущение, что система откатилась примерно на месяц назад.

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

Нравится

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

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

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

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

На кастомной странице существует быстрый фильтр по дате создания. 

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

 

 

Задача состоит в том чтобы добавить еще быстрый фильтр по дате загрузки товара (поле существует в объекте)

При добавлении быстрого фильтра по статьи в академии выскакивает ошибка 

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

также добавляю скрин исходного кодаИзображение удалено.

 

Нравится

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

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

А именно, на уровне модуля BaseDataView прописана реализация, согласно которой только один элемент с названием PeriodFilter будет выполнять ожидаемые действия.

Если Вам необходимо реализовать несколько быстрых фильтров по дате, следует заместить логику BaseDataView (пакет NUI), предусмотреть возможность работы еще с одним фильтром - добавить строки, аналогичные всем тем, где упоминается PeriodFilter.  

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

См. в коде BaseDataView, QuickFilterModule,  ReportFilterModule и других схем, где упоминается PeriodFilter, как там работают с этим фильтром.

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

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

Кто нибудь сталкивался с такой проблемой:

Сайт развернут локально. Создаем деталь мобильного приложения через мастер, схемы создались - https://prnt.sc/n6surw

Фиксирую в СВН  - http://prntscr.com/n6svs3

Фиксация проходит успешно - http://prntscr.com/n6svyk

Результат в Svn зафиксировались только метаданные - http://prntscr.com/n6swjg 

http://prntscr.com/n6sx1x 

http://prntscr.com/n6sx6r

 

Нравится

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

Попробуйте так. Фиксируйте в свн 2 раза подряд. Перый раз уедут метаданные, второй раз - все остальное. Мы с этим сталкиваемся регулярно, но решения пока нет...

Попробуйте так. Фиксируйте в свн 2 раза подряд. Перый раз уедут метаданные, второй раз - все остальное. Мы с этим сталкиваемся регулярно, но решения пока нет...

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