День добрый.

Есть нужда в одновременном запуске нескольких версий TS CRM. Например, внутренняя база компании (скажем XRM 3.3.2) и настраиваемая клиентская база (Sales 3.2.2)

Сейчас запуск второго приложения с другой версией вызывает перерегистрацию библиотек и крах первого приложения. Приходится выходить из одной, запускать другую. А если нужно посмотреть что-то в первой, то закрываем вторую и открываем первую.
Естественно установлены они в разные каталоги. Пробовал переименовывать dll и править настроечные файлы. Не помогло ((

Есть ли способы одновременной работы?

Нравится

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

Либо виртуализация, либо замечательный способ есть portable версия, но каковы условия ее предоставления знает правообладатель\разработчик продукта:smile:

А Вы попробуйте с одних и тех же бинарных файлов(XRM) зайти на базу Sales и XRM.

"Глова Сергей" написал:А Вы попробуйте с одних и тех же бинарных файлов(XRM) зайти на базу Sales и XRM.

бинарниками 3.3.2 залезть в 3.2.2 - не пройдет:cool:

"Александр Кудряшов" написал:бинарниками 3.3.2 залезть в 3.2.2 - не пройдет

Вот что означает невнимательное чтение :) я думал версии совпадают :redface:

"Глова Сергей" написал:Вот что означает невнимательное чтение :) я думал версии совпадают :redface:

оптический обман, циферки похожие, сам два раза перечитал:wink:

Если версия одинаковая, то, конечно, всё работает. Проблемы начинаются когда версии разные :sad:

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

Рассмотрим реализацию функционала на конкретном примере.Видоизменяем карточку контакта для собственных нужд: создаем отдельные поля "Фамилия", "Имя", "Отчество". Но также оставляем поле "ФИО", которое должно заполняться автоматически на основании суммы значений в вышеуказанных полях.

Для реализации подобного функционала во-первых, требуется создать функцию, которая будет заполнять поле ФИО. Эту функцию можно создать вначале скрипта, в котором будет обработчик события OnDatasetDataChange:

function CreateName(Dataset) {
var FirstName = Dataset.Values('FirstName');
FirstName = (IsEmptyValue(FirstName) ? '' : ' ' + FirstName);
var Surname = Dataset.Values('Surname');
Surname = (IsEmptyValue(Surname) ? '' : Surname);
var PatronymicName = Dataset.Values('PatronymicName');
PatronymicName = (IsEmptyValue(PatronymicName) ? '' : ' ' + PatronymicName);
Dataset.Values('Name') = Surname + FirstName + PatronymicName;
}

Затем на событии OnDatasetDataChange датасета необходимо для каждого из полей вызывать созданную предварительно функцию:

function SelfOnDatasetDataChange(DataField) {
var Dataset = DataField.ParentDataFields.ParentDataset;
if (DataField.Name == 'Surname') {
CreateName(Dataset);
return;
}
if (DataField.Name == 'FirstName') {
CreateName(Dataset);
return;
}
if (DataField.Name == 'PatronymicName') {
CreateName(Dataset);
return;
}
if ((Contact.IsUpdating || !Assigned(DataField) ||
(IsEmpty(DataField.Value)))) {
return;
};
}

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

Нравится

Поделиться

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