Доброго дня!
Есть ли возможность перенести преднастроенные папки поиска с одной среды на другую?
Если да, то какие объекты затрагиваются и как их перенести?

Нравится

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

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

Группы хранятся в объекте [#Object#]Folder, где [#Object#] - объект раздела.

Вы можете, например, привязать данные объекта к пакету, в котором Вы переносите доработки между средами.

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

Доброго дня!
Есть ли возможность перенести преднастроенные папки поиска с одной среды на другую?
Если да, то какие объекты затрагиваются и как их перенести?

Нравится

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

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

В системе есть объект [#Object#]Folder, где [#Object#] - название объекта раздела. Необходимо привязать данных к пакету и выгрузить пакет. При накатке пакета на другой сайт данные будут установлены.

Второй вариант реализации - перенос данных между средами прямым SQL запросом.

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

Здравствуйте! Продукт sales enterprice 7.8

В справочнике "Типы средств связи" создала новый тип средств связи "Основной телефон (открытый)" с типом коммуникации "Телефон".

В карточке раздела новый тип появился, но при попытке обратиться к нему из бизнес-процесса (элементом добавление данных) этот тип в списке колонок не виден (хотя остальные средства связи, как Мобильный телефон, Рабочий телефон) из бизнес-процесса доступны https://yadi.sk/i/SfbDYp-awCuCa

Как решить этот вопрос?

Нравится

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

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

Вы добавили новое значение в справочнике "Типы средств связи", а ожидаете появления поля в объекте "Контакт"? Сильно!:twisted:

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

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

Вы добавили новое значение в справочнике "Типы средств связи", а ожидаете появления поля в объекте "Контакт"? Сильно!:twisted:


Ок, не ожидаю. В справочнике же есть галка "Показывать в контакте", и в бизнес-процессах другие типы номеров доступны из объекта Контакт. Вопрос, как сделать, чтобы новый тип телефона тоже был доступен из бизнес-процесса и бизнес-процессом его можно было заполнить значением

"Злыднева Анастасия Сергеевна" написал:

Ок, не ожидаю. В справочнике же есть галка "Показывать в контакте", и в бизнес-процессах другие типы номеров доступны из объекта Контакт. Вопрос, как сделать, чтобы новый тип телефона тоже был доступен из бизнес-процесса и бизнес-процессом его можно было заполнить значением

Признак "Показывать в контакте" распространяется на деталь "Средства связи". На детали страницы редактирования раздела "Контакты" отображаются только те средства связи, которые отмечены признаком "Показывать в контакте". В базовой версии, например, тип средства связи "Факс" не отображается на детали в записи контакта.

Вам необходимо создать новое поле на странице редактирования раздела "Контакты" и заполнять это поле. Также хочу обратить Ваше внимание, что в объектах "Контакт" и "Средство связи контакта" есть логика, которая переносит значение из детали на страницу и наоборот. Вы можете создать аналогичную логику, чтобы данные на детали соответствовали данным в созданном Вами поле.

Как вариант, Вы можете создавать запись в объекте "Средство связи контакта", заполнив поля "Контакт", "Тип", "Номер". Тогда создавать поле в объекте "Контакт" необходимости не будет.

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

Коллеги, день добрый!

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

Было бы замечательно, если бы подробно рассказали, как его можно реализовать

Нравится

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

Только с помощью проб и ошибок, а также конечно с помощью отладки кода.

Например, для начиная можно посмотреть здесь - http://www.community.terrasoft.ru/forum/topic/24613, а а также рекомендую ознакомиться с SDK - https://academy.terrasoft.ru/documents/technic-sdk/7-8/dokumentaciya-po…, чтобы понять как устроены схемы и модули, а также разобраться в механизме

Также поищите в похожих темах, возможно, что-то найдете.

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

Добрый день,

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

Было бы замечательно, если бы подробно рассказали, как данную возможность реализовать

Нравится

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

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

Календарь - это представление раздела "Активности". Функционал добавления нового представления (SchedulerDataView) реализован в схеме ActivitySectionV2 (пакет NUI).

За отображение данных отвечает элемент "Schedule".

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

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

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

Календарь - это представление раздела "Активности". Функционал добавления нового представления (SchedulerDataView) реализован в схеме ActivitySectionV2 (пакет NUI).

За отображение данных отвечает элемент "Schedule".

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

Добрый день, нельзя ли поподробнее, какие методы отвечают за "календарь"?

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

Добрый день,

У меня такой вопрос, как сделать элемент перетаскиваемым(по аналогии с таковым в разделе активностей). В разделе Активности есть возможность перетаскивать элемент на календарь в расписание, однако никак не могу понять, какие методы отвечают за "подключение" данной возможности.

Было бы замечательно, если бы подробно рассказали, как данную возможность реализовать

Нравится

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

Здравствуйте,
Для реализации данного действия в календаре используется механизм drag and drop фреймворка ExtJS используемого и подключенного в bpm’online, подробнее:
https://docs.sencha.com/extjs/6.0.2/guides/core_concepts/drag_drop.html
Так же оболочка над этим механизмом в bpm’online это миксин:
mixins: {
draggable: "Terrasoft.Draggable"
},
Используемый в контролах, к примеру в DraggableContainer

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

При добавлении любого поля через дизайнер появляется ошибка в консоли "Элемент со значением "Requests" параметра "name" уже существует " и изменения не сохраняются, в чем может быть причина?

Нравится

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

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

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

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

Имеется задача "Воссоздание представления раздела планирование" ( по аналогии с разделом Активности, вкладка планирование ) в другом разделе.

В этом представлении 3 контейнера: грид(список) слева, календарь (шедулер) и карты гугла. Элементы грида можно перетаскивать на календарь.
Все попытки воссоздать это представление для другого раздела (для Заказов) не увенчались успехом.
В связи с этим пытаюсь сначала реализовать хотя бы грид, потом, когда получится, буду дальше воссоздавать раздел по частям.
Не ясно как загружать данные в грид, можете подсказать как это реализовать?
Было бы замечательно если бы стало ясно как полностью решить поставленную бизнес задачу, воссоздав представление планирования для другого раздела.

P.S: раньше задавал этот вопрос, ответ был один: смотреть в сторону реализации этого представление из пакета FieldForce, но из-за того, что реализация данного представления очень жёстко завязана на объекте активности и модулях раздела активности, не удалось даже воссоздать грид.

Удалось только создать представление:

Был бы весьма признателен за информацию по данному вопросу.

Спасибо.

С уважением,
Евгений Колчин

Нравится

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

Уважаемый Евгений! Обратите Ваше внимание на реализацию Раздела "Активности" с Планированием из пакета FieldForce. Интересующая Вас функциональность реализуется за счет добавления в схему раздела соответствующих контейнеров, например для отображения грида Контрагентов слева используется контайнер PlanningCardContainer, в котором размещается деталь Реест Контрагентов (схема детали PlanningAccountDetailV2 в пакете FieldForce). Далее, для загрузки деталей используется метод loadDetail: function(config) {...} в схеме раздела "Активности" с Планированием ("ActivitySectionV2"). Обратите также внимание на метод getDefaultDataViews: function() {...}, который получает представление по умолчанию, метод loadPlanningDataView: function() {...}, загружающий представление планирования. За отображение карты отвечает PlanningMapContainer, содержащий в себе элемент MapsModule, реализующий привязку модуля FieldForceMapsModule (Модуль карты для "Планирование визита" в пакете FieldForce), загружающегося в методе loadMap: function() {...}. За планировщик визитов отвечает Модуль "Планирование визита" (PlanningModule в пакете FieldForce).

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

Добрый день! Помогите, пожалуйста, разобраться с такой проблемой. Необходимо сделать фильтрацию поля (UsrJob), чтобы в зависимости от введённых в него данных менялся список возможных данных для поля PEKAdressIspolnitel. Пользовался статьёй на сайте Академии Террасофта по созданию фильтрации, сделал по аналогии вот такой код:

rules: {
"UsrJob": {
FiltrationUsrJobByPekAdressIspolnitel: {
ryleType: resources.Enums.ryleType.Filtration,
autocomplete: true,
autoClean: true,
baseAttributePatch: "PEKAdressIspolnitel",
comparisonType: Terrasoft.ComparisonType.EQUAL,
Type: BusinessRuleModule.enums.RuleType.attribute,
attribute: "PEKAdressIspolnitel"
}
}
}

При этом мне не зайти в раздел с этими полями после сохранения этого кода. Как мне подсказали, ошибка заключается в следующем: “В переменной rules отсутствует свойство Enums”. Подскажите, пожалуйста, какие свойства и где нужно добавить?

Нравится

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

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

Из того, что явно бросается в глаза:

"Семёнов Дмитрий Александрович" написал:

Type: BusinessRuleModule.enums.RuleType.attribute

Там должно быть:

type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,

Также нужно смотреть на консольную ошибку. Возможно Вы не подключили BusinessRuleModule.

"Семёнов Дмитрий Александрович" написал:ryleType: resources.Enums.ryleType.Filtration,

Должно быть так

BusinessRuleModule.enums.RuleType.FILTRATION

и в функцию в самом начале модуля BusinessRuleModule не забудьте

Спасибо, код подправил немного.
define("SfRepairPage", ["BusinessRuleModule", "SfRepairPageResources", "GeneralDetails"],
function(BusinessRuleModule, resources, GeneralDetails) - добавил BusinessRuleModule.

Исправил rules:

rules: {
"UsrJob": {
FiltrationUsrJobByPekAdressIspolnitel: {
ryleType: BusinessRuleModule.enums.RuleType.FILTRATION,
autocomplete: true,
autoClean: true,
baseAttributePatch: "PEKAdressIspolnitel",
comparisonType: Terrasoft.ComparisonType.EQUAL,
type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
attribute: "PEKAdressIspolnitel"
}
}
}

Но всё равно раздел зависает при попытке его открыть.

"Семёнов Дмитрий Александрович" написал:Но всё равно раздел зависает при попытке его открыть

F12 и Консоль с ошибками поможет вам :) смотрите в чем проблема в ней

Пишет, что: Uncaught Terrasoft.InvalidFormatException: Неверный формат правила FiltrationUsrJobByPEKAdressIspolnitel

не вижу ничего ошибочного в коде...
разве что вот сюда добавить:

define("SfRepairPage", ["terrasoft", "BusinessRuleModule", "SfRepairPageResources", "GeneralDetails"],
function(Terrasoft, BusinessRuleModule, resources, GeneralDetails)

Добавил, но не помогло( Прикрепил ошибку в консоли.

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

Уважаемые форумчане.
Есть задача: по определенному условию сделать редактируемое поле нередактируемым и наоборот. Проще говоря, чтобы замок появился на нем. Знаю, что есть свойство "enabled", ему нужно присвоить false. Как это сделать программно?

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

Нравится

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

В самом простом случае, Вы скорее всего хотите бизнес правило блокировки:
https://academy.terrasoft.ru/documents/technic-sdk/7-8/pravilo-bindpara…
Если хочется именно по коду, в методах, то привяжите данное свойство контрола к атрибуту:
В секции атрибутов:

"SynchronizeWithLDAP": {
   dataValueType: this.Terrasoft.DataValueType.BOOLEAN,
   value: true
},

В дифе:

{
	"operation": "insert",
	"name": "foo",
	"values": {
		"layout": {
			"column": 0,
			"row": 1,
			"colSpan": 14
		},
		"bindTo": "foo",
		"enabled": {"bindTo": "SynchronizeWithLDAP"}
	},
	"parentName": "bar",
	"propertyName": "items",
	"index": 1
},

А потом по коду:
Доступно:

this.set("SynchronizeWithLDAP", true);

Недоступно:

this.set("SynchronizeWithLDAP", false);

Подобных примеров в базовой конфигурации очень много.

Спасибо, Илья! Очень выручили

Мотков Илья,

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

Артём, это довольно старая переписка. С тех пор уже можно пользовательскими средствами настроить видимость/доступность/обязательность поля при помощи бизнес-правил.

gif_chapter_business_rules_if_condition_setup.gif

gif_chapter_business_rules_then_condition_setup.gif

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