Как создать у детали с редактируемым реестром страницу с обычным механизмом изменения записей ?

Нравится

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

Если речь идет о странице редактирования, то точно так же, как и для детали с обычным реестром. Подробнее об этом смотрите на Академии.

Если речь идет о странице редактирования, то точно так же, как и для детали с обычным реестром. Подробнее об этом смотрите на Академии.

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

Добрый день!

Для русской версии есть [#NumberRU#], а как для укр?

Хочу в печатную форму добавить цифру прописью, не деньги (просто цифра)

Нравится

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

Добрый день.

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

В интернете масса примеров, в которых описывается данный алгоритм.

Интерфейс этого макроса реализован в схеме NumberRUExpressionConverter, который, в свою очередь, вызывает схему NumberInWords, где и реализовано само превращение в текст. Можно попробовать сделать аналогичный NumberUKExpressionConverter и к нему переведенную копию NumberInWords.

Первая из схем совсем короткая:

namespace Terrasoft.Configuration
{
	using System;
	using System.Text;
 
	#region Class: NumberRUExpressionConverter
 
	/// <summary>
	/// Number to string (russian) expression converter class.
	/// </summary>
	[ExpressionConverterAttribute("NumberRU")]
	public class NumberRUExpressionConverter : IExpressionConverter 
	{
 
		#region Methods: Public
 
		/// <summary>
		/// Converts number value.
		/// </summary>
		/// <param name="value">Number value.</param>
		/// <param name="arguments"> Additional arguments.</param>
		/// <returns>Converted number to string value.</returns>
		public string Evaluate(object value, string arguments = "") {
			decimal dec;
			if (!decimal.TryParse((string)value, out dec)) {
				return string.Empty;
			}
			switch (arguments) {
				case "Cent": 
					decimal cent = decimal.Floor(dec * 100) % 100;
					return cent.ToString("00");
				case "Decimal": 
					StringBuilder sb = new StringBuilder();
					NumberInWords.ConstractDblValueString((double)dec, ref sb);
					return sb.ToString();
				default: 
					return NumberInWords.ConvertAmountToMaleStr(Math.Truncate(dec));
				break;
			}
			return string.Empty;
		}
 
		#endregion
 
	}
 
	#endregion
 
}

Вторая намного больше и понравится любителям 1С.wink

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

Добрый день!

подскажите, пожалуйста, возможно ли скрыть раздел не через ролевую модель, а как-либо ещё?

 

Нравится

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

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

 

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

 

Григорий, спасибо за ответ!

Настройка внешнего вида --> Настройка рабочих мест?

Если не затруднит, Вы не могли бы чуть подробнее рассказать, как скрыть выделенный на скрине раздел?

 

Нажмите на точки:

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

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

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

Нет, вообще раздел не удалится. Только что проверил: добавил и сразу удалил, в другом рабочем месте раздел остался.

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

Ошибка при сохранении клиентской схемы: Ошибка сохранения: Элемент <Название модуля> не найден.

Данное поведение встречается на версии 7.14.3

1.При создании нового модуля/миксина

2. При переименовании клиентской схемы (детали) после создания мастером деталей

 

Нравится

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

Здравствуйте! Попробуйте сгенерировать коды для данного модуля и скомпилировать сборку затем перелогинится в системе с очисткой кэша в браузера. Мне такие действия помогали. Если локально система развернута, помогало еще перезапуск пула в IIS.

Помогла фиксация в SVN с последующим восстановлением из хранилища.

Но что-то мне подсказывает, что это не совсем корректное поведение. И появилось оно на версии 7.14.3

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

Для временного устранения надо в Web.config загрузчика, выключить фичу Feature-OptimizeManagersSynchronization = false и после переименования сохранять два раза.

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

В новых версиях будет предоставлено решение такого поведения системы.

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

Коновалов Игорь,

Коновалов Игорь пишет:

И появилось оно на версии 7.14.3

Замечала и на версии 7.14.2, а вот раньше такого не помню. 

Мотков Илья,

Повторилось на  версии  7.14.0, 7.14.2 и 7.13.3 при этом ключа Feature-OptimizeManagersSynchronization ни в одной из перечисленных версий нет.

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

Добрый день. Использую приложение https://marketplace.terrasoft.ua/app/reports-generator-bpmonline для формирования Excel отчетов.

После создания отчета и нажатия кнопки "сформировать" - появляется уведомление с сообщением "отчет %имя% сформирован%. Если нажать на него - файл будет скачан.

А вот и сам вопрос: как вместо скачивания файла, к примеру, прикрепить его к какой нибудь активности во вкладку "вложение"?

Ну или сохранить файл в базу, вместо скачивания.

Нравится

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

Для добавления файла используйте

entity.SetStreamValue("Data", fileStream);

где fileStream поток который содержит ваш отчет а entity экземпляр entity (например ActivityFile)

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

Привет.

Есть кастомный раздел со своими карточками, по значению поля Категория.

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

В БД скорей всего всё нормально, потому что при создании/открытии записей из данного раздела всё ок.

Идеи?

7.14.0.597

Нравится

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

Андреев Андрей Сергеевич,

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

Также рекомендую задуматься об обновлении, сейчас уже актуальной является версия 7.14.3.

Добрый день.

Что значит открывается неверная карточка редактирования?

Уточните, для данного раздела несколько карточек редактирования?

Алла Савельева, Есть "Карточка 1" которая открывается если поле "Категория 1" и аналогично есть "Карточка 2" для "Категории 2" .

При открытии/добавлении из раздела открывается правильная карточка(для Категории 1 - Карточка 1, для Категории 2 - Карточка 2). При открытии записи через лукапное поле из раздела/карточки открывается всегда "Карточка 1" независимо от категории. 

Андреев Андрей Сергеевич,

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

Также рекомендую задуматься об обновлении, сейчас уже актуальной является версия 7.14.3.

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

Добрый день

Есть у меня проект что я дорабатываю, на сегодня он работает на конфигурации 7.14.2. Препрод, 7.13.4 - Девелоп стенд, 7.14.2 - Продакшен. И только сегодня заметил что в консоли показывается что Инициализация WebSocket-ов произошла а подаешь команду для проверки Terrasoft.ServerChannel.ping() , вылетает на версии платформы 7.14.2 ошибка 

 

Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Terrasoft.Messaging.Common.SimpleMessage' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.

To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.

Path '', line 1, position 1.

   at Terrasoft.Common.Json.Json.Deserialize[T](String value, Func`2 func)

   at Terrasoft.Messaging.MicrosoftWSService.WebSocketHandlerExt.OnMessage(String message)

 

Хотя на 7.13.4 - Девелоперском стенде ВебСокеты работают. Настройки сокетов везде одинаковые. Везде настройки следующие 

- коммент убран

 

- коммент убран

Еще раз повторюсь на 7.13.4 все работает. 

Прошу помощи и подсказки что может быть не так и почему на 7.14.2 не работает. Или нужно до 7.14.3 обновится так как это был баг 7.14.2. Я как только не дебажил я понять не могу почему Пинг, Понг не проходит. А раз это не проходит ВебСокеты так же не работают корректно.

Нравится

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

Добрый вечер! Так же столкнулся с данной проблемой, в ТП ответили, что на конфигурации 7.14.2 не работает именно данная функция Terrasoft.ServerChannel.ping(), веб-сокеты работают, что бы проверить работоспособность веб-сокетов, создайте БП со стартовым таймером, если отработает, значит все ок. В ТП сказали, что в следующих версиях поправят функцию "Terrasoft.ServerChannel.ping()". 

Добрый вечер! Так же столкнулся с данной проблемой, в ТП ответили, что на конфигурации 7.14.2 не работает именно данная функция Terrasoft.ServerChannel.ping(), веб-сокеты работают, что бы проверить работоспособность веб-сокетов, создайте БП со стартовым таймером, если отработает, значит все ок. В ТП сказали, что в следующих версиях поправят функцию "Terrasoft.ServerChannel.ping()". 

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

Добрый день всем. Возможно ли удалить выполненные кампании и email? Если да, то как?

Нравится

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

Как и любые другие записи в разделах, они хранятся в соответствующей таблице базы. Для упомянутых разделов это BulkEmail и Campaign.

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

Если сайт развёрнут на Ваших серверах, проще всего будет осуществлять вышеперечисленные действия в SQL Server Management Studio, запуская SQL-запросы.

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

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

Добрый день,



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



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



Исчезает после перезагрузки странице.

Нравится

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

Литвинко Павел,

Судя по всему у товарища редактируемый реестр (грид) и нужно вызывать чтото типа 

this.reloadGridData();

после возвращения в реестр

Вам нужно, например через реализацию сообщений вызывать перезагрузку содержимого страницы в нужный момент времени, например через this.reloadEntity();

Литвинко Павел,

Судя по всему у товарища редактируемый реестр (грид) и нужно вызывать чтото типа 

this.reloadGridData();

после возвращения в реестр

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

Спасибо всем.



Дело в том что я не мог понят в каком методе добавить этот this.reloadGridData();

разобрался, надо добавить в Метод onRender.

onRender: function() {

        this.reloadGridData();

},

в замещающею странице редактирование. 

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

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

Задание:  Создать модуль и на нем отобразить деталь

При попытке добавления детали - возникает ошибка "Cannot read property 'changeEvent' of undefined". Не подскажете как это можно решить ?

Код создания модуля:

define("BtcJawModule", ["ext-base", "terrasoft", "BaseSchemaModuleV2"], function(Ext, Terrasoft) {
	return Ext.define("Terrasoft.configuration.BtcJawModule", {
 
		extend: "Terrasoft.BaseSchemaModule",
		Ext: null,
		sandbox: null,
		Terrasoft: null,
 
		init: function() {
			this.useHistoryState = false;
			this.callParent(arguments);
		},
 
		schemaName: "BtcJawSchema",
 
		isSchemaConfigInitialized: true,
 
		render: function() {
			this.callParent(arguments);
		}
 
	});
});

Код создания карточки представления :

define("BtcJawSchema", ["css!BtcJawModule"], function() {
	return {
		messages: {},
		mixins: {},
		details: /**SCHEMA_DETAILS*/{
			"ActivityDetail1ab22d6f": {
				"schemaName": "ActivityDetailV2",
				"entitySchemaName": "Activity",
				"filter": {
					"detailColumn": "Id",
					"masterColumn": "Id"
				},
			},
		},
		attributes: {},
		methods: {},
		diff: [
			{
				"operation": "insert",
				"name": "DetailContainer",
				"values": {
					"wrapClass": [
						"detail-container"
					],
					"itemType": 7,
					"items": []
				},
				"index": 0
			},
 
			{
				"operation": "insert",
				"name": "ActivityDetail1ab22d6f",
				"values": {
					"itemType": 2,
					"markerValue": "added-detail"
				},
				"parentName": "DetailContainer",
				"propertyName": "items",
				"index": 1
			},
		]
	};
});

 

Нравится

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

А для карточки вы не указали entitySchemaName

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

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

entitySchemaName может как-то повлиять ? 

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

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