Добрый день!

Подскажите, каким образом можно добавить пункты в меню, которые выпадает по кнопке "Три точки" в детали? В частности, "участники активности"?
Надо оперативно менять поле, отображаемое на детали.

Нравится

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

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

Сделайте деталь редактируемой.
Пример реализации доступен по ссылке:
https://academy.terrasoft.ru/documents/technic-sdk/7-8/sozdanie-detali-…

Это будет более оперативно, чем менять через выпадающее меню из кнопки.

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

Здравствуйте.
Подскажите пожалуйста, как увеличить количество записей выводимых в списке справочного поля?
Имеется ввиду "быстрый" список, например поле Отрасль контрагента, выводиться 15 штук, а их много больше. Если начать вводить данные отфильтрованные отрасли отображаються, но нужно что бы по нажатию выводились все.

Нравится

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

"Дашкевич К." написал:но нужно что бы по нажатию выводились все

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

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

Из конфигурации изменить количество записей в выпадающем списке нет возможности. Ограничение задано в файлах ядра (конкретно в схеме listview.js).

Алексей, если изменить в этом файле, что нужно сделать что бы сайт подхватил изменения?

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

А как заместить listview.js его нету в конфигурации, он лежит в папке с сайтом?

"Дашкевич К." написал:

А как заместить listview.js его нету в конфигурации, он лежит в папке с сайтом?

Я же написал, что это файл ядра. Все файлы ядра лежат в папке с сайтом.

"Дашкевич К." написал:

Алексей, если изменить в этом файле, что нужно сделать что бы сайт подхватил изменения?

Внести исправления в файл, перезапустить сайт/пул. Если исправления не подтянулись, тогда переименовать файл listview.js на listview_.js (например), перезапустить сайт/пул, переименовать в назад на listview.js перезапустить сайт/пул.

Исправления подтянутся.

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

А какой параметр влияет на количество записей выводимых  в списке простой фильтрации раздела по справочному полю?

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

В sys-settings.js есть константа lookupRowCount. Именно она влияет на количество записей. Это js ядра, но сама константа записывается в глобальный объект Terrasoft.SysSettings.

Единственный, менее "кривой" вариант - это изменить значение в глобавльном объекте:

      Terrasoft.SysSettings..lookupRowCount = 20

Учитывайте то, что изменения применятся ко всем lookup полям в системе

 

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

Всем добрый день!

В OrderSectionV2 создал кнопку в контейнере CombinedModeActionButtonsCardLeftContainer.
У нас есть заказы и предзаказы. Эту кнопку мне надо видеть только в заказх.
Visible у кнопки формируется при переходе в раздел.
И когда я в этом разделе перехожу в заказы или предзаказы то кнопка видна и там и там.

Как переопределить свойство visible у кнопки?

Нравится

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

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

Посмотрите пример реализации кнопки QualificationProcessButton на странице редактирования раздела "Лиды". Кнопка отображается по условию нахождения лида в стадии "Квалификация". Если стадия другая - кнопка не отображается.

"Демьяник Алексей" написал:

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

Посмотрите пример реализации кнопки QualificationProcessButton на странице редактирования раздела "Лиды". Кнопка отображается по условию нахождения лида в стадии "Квалификация". Если стадия другая - кнопка не отображается.

Пробовал : ReferenceError: visible is not defined

this.get("имя_функции");//undefinded

Функцию не видит

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

Необходимо провести отладку.

"Демьяник Алексей" написал:

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

Необходимо провести отладку.

Разобрался:
1. В атрибуты нужно добавить логическое свойство, например IsCustomButtonVisible: { dataValueType: Terrasoft.DataValueType.BOOLEAN,
value: true,
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
}
2. в конфигурации diff привязать видимость кнопки к атрибуту IsCustomButtonVisible
3. добавить метод, который будет изменять значение этого атрибута

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

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

Задача состоит в следующем: есть страница Объекта недвижимости, на которой есть деталь "Строения" (со страницей добавления).

Есть ещё одна страница - Предложения, которая создаётся на основе страницы Объекта недвижимости, при создании копируется часть полей со страницы соответствующего Объекта. На той странице есть деталь строения (та же самая).

Необходимо скопировать туда и данные детали, отобразить колонки.

Как это возможно сделать? Я могу вытащить данные строений Объекта при помощи EntitySchemaQuery, но как правильно их подставить? InsrertQuery, насколько я понимаю, здесь не подходит - он сразу создаёт запись в базе, а существует вероятность, что пользователь не сохранит страницу Предложения после копирования.

Версия 7.8 sales.

Спасибо.

Нравится

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

На странице Предложения , после инициализации this.set ("Имя_поля_страницы")= значение;

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

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

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

В продукте sales enterprice версии 7.8 нужно удалить действие "Подписаться на обновления ленты" из списка действий из стандартного меню [Действия] на странице редактирования кастомного раздела. Как это сделать?
Видимо, нужно перегрузить базовый виртуальный метод getActions, но как именно, еще не понимаю.
Есть ли примеры реализации данного кейса?

Нравится

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

Вы совершенно правы
Необходимо перегрузить схему страницы редактирования раздела
В ней перегрузить базовый метод getActions
в нев вызвать родительскую реализацию и получить ссылку на коллекцию действий
из коллекции удалить необходимый элемент при помощи метода removeItem
Подробнее https://academy.terrasoft.ru/jscoresdk/#!/api/Terrasoft.controls.Menu-m…

ПРимер как добавить действие есть в руководстве разработчика
https://academy.terrasoft.ru/documents/technic-sdk/7-8/dobavlenie-deyst…
делайте по аналогии
Примерно реализуется так:

methods: {
			// Перегрузка базового виртуального метода, возвращающего коллекцию действий страницы редактирования.
			getActions: function() {
				// Вызывается родительская реализация метода для получения
				// коллекции проинициализированных действий базовой страницы.
				var actionMenuItems = this.callParent(arguments);
				//Посмотреть на коллекцию в консоли
				window.console.log(actionMenuItems);
				// Для удаления элемента коллекции можно использовать removeItem
				return actionMenuItems;
			}...

Роман, спасибо, уже стало понятнее, но после реализации данного способа страница раздела перестала открываться. Что может быть не так в коде, возможно, поможете:

methods: {
getActions: function() {
var actionMenuItems = this.callParent(arguments);
window.console.log(actionMenuItems);
actionMenuItems.removeItem(this.getButtonMenuItem({
"Visible": {
"bindTo": "IsSubscribed",
"bindConfig": {"converter": "getSubscribeButtonVisible"}
},
"Caption": {"bindTo": "Resources.Strings.SubscribeCaption"},
"Enabled": {"bindTo": "canEntityBeOperated"},
"Tag": "subscribeUser"
}));
actionMenuItems.removeItem(this.getButtonMenuItem({
"Visible": {"bindTo": "IsSubscribed"},
"Caption": {"bindTo": "Resources.Strings.UnsubscribeCaption"},
"Enabled": {"bindTo": "canEntityBeOperated"},
"Tag": "unsubscribeUser"
}));
return actionMenuItems;
}
},

"Симута Роман Русланович" написал:ПРимер как добавить действие есть в руководстве разработчика
https://academy.terrasoft.ru/documents/technic-sdk/7-8/dobavlenie-deystv...
делайте по аналогии
Примерно реализуется так:

Роман, спасибо, уже стало понятнее, но после реализации данного способа страница раздела перестала открываться. Что может быть не так в коде, возможно, поможете:

methods: {
getActions: function() {
var actionMenuItems = this.callParent(arguments);
window.console.log(actionMenuItems);
actionMenuItems.removeItem(this.getButtonMenuItem({
"Visible": {
"bindTo": "IsSubscribed",
"bindConfig": {"converter": "getSubscribeButtonVisible"}
},
"Caption": {"bindTo": "Resources.Strings.SubscribeCaption"},
"Enabled": {"bindTo": "canEntityBeOperated"},
"Tag": "subscribeUser"
}));
actionMenuItems.removeItem(this.getButtonMenuItem({
"Visible": {"bindTo": "IsSubscribed"},
"Caption": {"bindTo": "Resources.Strings.UnsubscribeCaption"},
"Enabled": {"bindTo": "canEntityBeOperated"},
"Tag": "unsubscribeUser"
}));
return actionMenuItems;
}
}

removeItem - undefined
this.getButtonMenuItem возвращает новый объект "Terrasoft.BaseViewModel", так что сравнивать его с
существующим некорректно

Ваш кейс реализуется так:

			getActions: function() {
				var actionMenuItems = this.callParent(arguments);
				var delIndex = -1;
				actionMenuItems.each(function(item, index) {
					if (item.values.Caption.bindTo === "Resources.Strings.SubscribeCaption") {
						delIndex = index;
					}
				}, this);
				if (delIndex > -1) {
					actionMenuItems.removeByIndex(delIndex);
				}
				return actionMenuItems;
			}

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

Хотя, возможно нужно не удалять из коллекции, а использовать setVisible( visible ) https://academy.terrasoft.ru/jscoresdk/#!/api/Terrasoft.controls.BaseMe…

Спасибо. Вариант с removeByIndex помог.

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

Подскажите, как получить значение к примеру AccountId при открытии карточки Счета.

Просто Id Счета получаю так:

var ID = this.get("Id");

Значение AccountId пытаюсь получить так:

var AccountId = this.get("AccountId");

Но, значение AccountId пустое. (В карточке Контрагент присутствует).
Как правильно получить значение AccountId?

Нравится

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

Добрый день!

var Account = this.get("Account");//Получаем значение из справочника
var AccountId = Account.value;  //Получаем Id
var AccountDisplayValue =Account.displayValue;  //Получаем отображаемое значение 
Показать все комментарии

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

При создании печатной формы помещаю данные из раздела и табличные данные (т.е. данные деталей) в одну таблицу.
При наличии нескольких деталей в таблицу документf word автоматом добавляются новые строки, а при отсутствии деталей в разделе в таблице остается пустая строка.

Как сделать, чтобы при отсутствии деталей пустая строка в таблице удалялась?

Нравится

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

Добрый день!
О создании шаблонов печатных форм подробно рассказано в Академии, а также есть обучающее видео.

Добрый день!

Ни в видео, ни в статье на Академии нет ответа на вопрос как убрать пустую строку при выводе табличных данных.

Прошу помочь с решением вопроса, так как он всё еще актуален.

Здравствуйте, Александр!

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

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

Добрый день, Не могу скрыть для просмотра записи: Задержка... (выделенно красным на рисунке).
Вход из-под портального Пользователя. Версия Сервис деск, 7.7
Кто нибудь решал такую задачу?
Спасибо.

Нравится

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

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

Вам необходимо сделать операцию remove для элементов SolutionCaptionContainer и ResponseCaptionContainer в схеме PortalCasePage.

Это можно сделать только кодом.

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

Здравствуйте!
Работаю в версии 7.7. Столкнулся со следующей проблемой:
мастером на странице редактирования Лида в истории добавил свою деталь. Она располагается в самом низу. Мне нужно её вверх поднять, расположить её между первой и второй базовыми деталями. Мастером не получается это сделать. Как сделать вручную. Где настройки расположения изменить?

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

Нравится

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

Здравствуйте, Кирилл.

Как изменить порядок деталей используя Мастер разделов, Вы можете увидеть на прикрепленном скриншоте. Для изменения порядка напрямую в схеме, необходимо использовать операцию "move" и менять значение свойства "index".

Пример перемещения детали вниз:

define('ContactPageV2', ['ContactPageV2Resources', 'GeneralDetails'],
function(resources, GeneralDetails) {
	return {
		entitySchemaName: 'Contact',
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
	{
		"operation": "move",
		"name": "ContactCommunication",
		"parentName": "GeneralInfoTab",
		"propertyName": "items",
 
		"index": 4
	}
]/**SCHEMA_DIFF*/,
		attributes: {},
		methods: {},
		rules: {},
		userCode: {}
	};
});

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

Здравствуйте!
Интересует вопрос как добавить строку быстрого фильтра в контакты. Такого же типа как и в счкетах или в активностях.

Нужно чтобы фильтр был по полю "Дата обновления для новых заявок" (UsrUpdatedAtForNew) контакта. Как это можна реализовать?

Я добавил в раздел секции контакты следующий код

define("ContactSectionV2", [], function() {
        return {
                entitySchemaName: "Contact",
                details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
                diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
                methods: {
                                initFixedFiltersConfig: function() {
                                        var fixedFilterConfig = {
                                                entitySchema: this.entitySchema,
                                                filters: [
                                                        {
                                                                name: "PeriodFilter",
                                                                caption: this.get("Resources.Strings.PeriodFilterCaption"),
                                                                dataValueType: Terrasoft.DataValueType.DATE,
                                                                columnName: "UsrUpdatedAtForNew",
                                                                startDate: {},
                                                                dueDate: {}
                                                        },
                                                        {
                                                                name: "Owner",
                                                                caption: this.get("Resources.Strings.OwnerFilterCaption"),
                                                                dataValueType: Terrasoft.DataValueType.LOOKUP,
                                                                filter: BaseFiltersGenerateModule.OwnerFilter,
                                                                columnName: "Owner"
                                                        }
                                                ]
                                        };
                                        this.set("FixedFilterConfig", fixedFilterConfig);
                                }
                        }
        };
});

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

user: Admin/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
file: undefined
line: undefined
column: undefined
message: BaseFiltersGenerateModule is not defined
date: Fri Aug 26 2016 16:40:39 GMT+0300 (Финляндия (лето))
moduleId: SectionModuleV2_ContactSectionV2
moduleName: SectionModuleV2

Скажите, в правильном ли я направлении двигаюсь и что мне нужно еще сделать?

Нравится

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

Разобрался. Нужно было добавить BaseFiltersGenerateModule в define("InvoiceSectionV2", ["BaseFiltersGenerateModule"], function(BaseFiltersGenerateModule).

А теперь следующий вопрос. Как сделать такой фильтр в разделе итоги, где нет контактов, но чтобы поле фильтра было именно UsrUpdatedAtForNew из раздела контакты?

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

Постройте "Итоги" в представлении раздела "Контакты". Установив в настройках итогов поле для связи с разделом, фильтр, установленный в разделе, будет распространятся на итоги.

Да, это я понял. Спасибо. Но меня все же интересует вопрос можно ли в Разделе Итоги, или каком-то другом новом разделе сделать такой фильтр, чтобы он делал фильтрацию по полю, которого нет в записях такого раздела. Для примера поле "Дата обновления для новых заявок" (UsrUpdatedAtForNew) раздела контакт но фильтр в Итогах?

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

Такой возможности нет.

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