Тренинговый центр Terrasoft

Новые тесты по Terrasoft Service Desk. Проверь свои знания на новом интернет-портале.

Тренинговый центр Terrasoft

Community Market

Community Market – это уникальная программа, позволяющая обменивать Ваши знания на продукты и услуги группы компаний Terrasoft. Собирайте на личном счете баллы за публикацию материалов на Terrasoft Community и обменивайте на подарки и услуги ассортимента Community Market.

Двери Community Market открыты для участников Сообщества Terrasoft всегда!

Community Market

Копилка идей

Раздел «Копилка идей» позволяет публиковать свои идеи относительно продуктов и услуг Terrasoft; голосовать за идеи, которые наиболее важны для Вас; обсуждать идеи с другими пользователями. Добавь свою идею в Копилку!

Часто задаваемые вопросы по разработке

Как добавить поле типа Справочник

Как добавить поле типа Справочник

Инструкция добавления поля типа Справочник в карточку записи через Terrasoft Administrator в прикреплённом файле . Сам справочник предварительно создан пользоватлем или же уже существует.

Прикрепленный файлРазмер
Supplementary_field.doc370.5 кб

Как изменить значения поля "Ответственный" в карточках разделов?

Как изменить значения поля "Ответственный" в карточках разделов?

Изменить значения поля "Ответственный" в карточках разделов, можно в реестрах. Пример реализации в при креплёном файле.

Прикрепленный файлРазмер
instruction_change.doc697 кб

Как удалить записи в связанных таблицах?

Как удалить записи в связанных таблицах?

Универсальный скрипт для удаления определенной записи из таблицы (запись присутствует в связанных таблицах), тестировался для разделов [Контакты], [Продукты] версий 3.1.0 и 3.1.1 MS SQL.

Данный скрипт удаляет определенный контакт из раздела [Контакты] и со всех связанных таблиц. При необходимости удаления записи из другого раздела, необходимо изменить значение [Contact] на необходимое (скрипт тестировался для удаления записи из раздела [Продукты], значение [Contact] изменялось на [Offering]).

Перед выполнением

Для начала запустите скрипт в отладочном режиме.
Затем Вам необходимо раскомментировать строки удалив перед ними [--].

--exec sp_executesql @TempSQL
--delete from tbl_Contact where [ID] = @ContactID
Скрипт
declare @ColumnName nvarchar(250)
declare @TableName nvarchar(250)
declare @TempSQL nvarchar(4000)
declare @ContactID nvarchar(250)
declare @ContactName nvarchar(4000)
declare @ParentTableName nvarchar(4000)
SET @ContactName = 'Анна' --здесь вводится имя контакта
SET @ParentTableName = 'tbl_Contact'
declare test cursor FOR
SELECT DISTINCT
CONSTRAINT_COLUMN_USAGE.COLUMN_NAME AS COLUMN_NAME,
CONSTRAINT_COLUMN_USAGE.TABLE_NAME AS TABLE_NAME
FROM
((INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS CONSTRAINT_COLUMN_USAGE
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TABLE_CONSTRAINTS
ON CONSTRAINT_COLUMN_USAGE.CONSTRAINT_NAME = TABLE_CONSTRAINTS.CONSTRAINT_NAME)
INNER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS REFERENTIAL_CONSTRAINTS
ON CONSTRAINT_COLUMN_USAGE.CONSTRAINT_NAME = REFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME)
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS PARENT_TABLES
ON REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME = PARENT_TABLES.CONSTRAINT_NAME
WHERE TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND
PARENT_TABLES.TABLE_NAME = @ParentTableName
SET @ContactID = (SELECT ID FROM tbl_Contact WHERE [Name] = @ContactName)
open test
fetch next FROM test INTO @ColumnName, @TableName
while @@fetch_Status = 0
begin
SET @TempSQL = 'UPDATE ' + @TableName + ' SET ' + @ColumnName + ' = null' + ' WHERE '+ @ColumnName + ' = ''{' + @ContactID + '}'''
--для отладки (без удаления) - строка ниже:
print @TempSQL
--для удаления раскомментировать эту строку:
--exec sp_executesql @TempSQL
fetch next FROM test INTO @ColumnName, @TableName
end
close test
deallocate test
-- удаление самого контакта
--для отладки:
SELECT * FROM tbl_Contact WHERE [ID] = @ContactID
--для удаления
--delete from tbl_Contact where [ID] = @ContactID

 

Как добавить 5 средство связи в карточку контакта?

Как добавить 5 средство связи в карточку контакта?

Инструкция по добавлению 5 средства связи в карточку контакта в прикреплённом файле. Можно также использовать как алгоритм действия для раздела [Контрагенты]. Тестировалась для версии 3.1.0 и выше.

Прикрепленный файлРазмер
instruction_example.doc725.5 кб

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

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

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

function CreateCustomDictionaryTable(Path, Code, FieldInfoMemoryDataset,
Caption) {
var Table = CreateTable(Path, Code);
if (!Table) {
var Message = FormatStr("Таблица '%1' уже существует", Code);
Log.Write(2, Message);
return false;
}
if (Assigned(Caption)) {
Table.Caption = Caption;
}
AddIDTableField(Table);
AddStdTableFields(Table, Code);
FieldInfoMemoryDataset.GotoFirst();
while (!FieldInfoMemoryDataset.IsEOF) {
var Name = FieldInfoMemoryDataset.Values('Name');
var TypeID = FieldInfoMemoryDataset.Values('TypeID');
switch (TypeID) {
case (ufitStringID) :
AddStringTableField(Table, Name);
break;
case (ufitIntegerID) :
AddIntegerTableField(Table, Name);
break;
case (ufitFloatID) :
AddFloatTableField(Table, Name);
break;
case (ufitBooleanID) :
AddBooleanTableField(Table, Name);
break;
case (ufitDateTimeID) :
AddDateTimeTableField(Table, Name);
break;
case (ufitBlobID) :
AddBlobTableField(Table, Name);
break;
case (ufitLookupID) :
AddGUIDTableField(Table, Name);
var RelationDatasetCode =
FieldInfoMemoryDataset.Values('DictionaryCode');
AddRelationToTable(Table, Name, RelationDatasetCode);
break;
case (ufitEnumID) :
AddGUIDTableField(Table, Name);
break;
}
FieldInfoMemoryDataset.GotoNext();
}
Table.ParentTableGroup = DictionaryTableGroup;
SaveTable(Table);
return Table;
}

Как настроить веб сервис под IIS?

Как настроить веб сервис под IIS?

Настройка веб-сервисов под IIS (начиная с версии Террасофт 3.1.0) собраны в прикреплённой инструкции все рекомендации по настройке IIS, в частности рекомендации, которые не включены в базовое Руководство Администратора.

Прикрепленный файлРазмер
instruction_iis.doc328 кб

Как программно осуществить показ окна редактирования некоторой сущности, например, контакта?

Как программно осуществить показ окна редактирования некоторой сущности, например, контакта?

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

 var RecordID = ...; // Присвоение идентификатора записи  var Attributes = new ActiveXObject('Scripting.Dictionary');  Attributes.Add('RecordID', RecordID);  ShowEditWindowEx('wnd_ContactEdit', Attributes); В случае, если окно редактирования нужно показать для создания новой записи, атрибут RecordID задавать не нужно:  var Attributes = new ActiveXObject('Scripting.Dictionary');  ShowEditWindowEx('wnd_ContactEdit', Attributes);

Как реализовать хранение в БД и показ некоторого изображения?

Как реализовать хранение в БД и показ некоторого изображения?

Подразумевается, что в БД картинка хранится в отдельном поле типа Большой бинарный объект (BLOB-поле). Загружать и выгружать картинку из BLOB-поля можно методами поля LoadFromFile() и SaveToFile(), набор данных (Dataset) при этом должен находиться в состоянии вставки или редактирования. При загрузке и сохранении нужно учесть, что задавать имя файла в скрипте необходимо с двойными символами ‘\’ (обратная косая черта). Пример загрузки изображения из файла с известным именем в поле набора данных:

 var DataField = Dataset.DataFields.ItemsByName('Photo'); var FileNameStr = 'c:\\MyFolder\\MyPhoto.jpg'; DataField.LoadFromFile(FileNameStr);

Этот код можно выполнить по нажатию кнопки в окне карточки редактирования, когда набор данных уже находится в состоянии вставки или редактирования. По нажатию на кнопку в окне редактирования можно организовать сохранение значения из поля в файл, и затем открытие этого файла (программа, в которой файл будет открыт, зависит от настроек в системе). Пример кода для открытия файла:

 var DataField = Dataset.DataFields.ItemsByName('Photo'); var FileNameStr = 'c:\\MyFolder\\NewMyPhoto.jpg'; DataField.SaveToFile(FileNameStr); System.OpenFile(FileNameStr, fatReadWrite);

Здесь FileNameStr - строка, полный путь к файлу. Константа fatReadWrite объявлена в скрипте scr_SysEnums.

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

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

Необходимо использовать объект FileSystemObject. Пример удаления папки:

 function DeleteFile(filespec) { var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.DeleteFile(filespec); }

Подробно свойства и функции объекта FileSystemObject изложены в справке по JScript, а также в MSDN: http://msdn.microsoft.com/en-us/library/1ft05taf.aspx

Как из скрипта осуществить переход в указанный раздел с выделением указанной записи?

Как из скрипта осуществить переход в указанный раздел с выделением указанной записи?

Необходимо воспользоваться функцией GotoWorkspace(WorkspaceWindowUSI, IDDataFieldValue), которая реализована в скрипте scr_WindowUtils. Пример:   GotoWorkspace('wnd_ContactsWorkspace', SomeContactID);

Как из стороннего приложения создать объекты системы Terrasoft CRM?

Как из стороннего приложения создать объекты системы Terrasoft CRM?

Из любого приложения или среды, поддерживающей создание COM-объектов, можно создать объект Connector, с его помощью осуществить подключение к конфигурации, и затем создавать элементы системы и выполнять любые действия над объектами системы. Данный пример иллюстрирует подключение к конфигурации из процедуры на Visual Basic с показом окна для выбора конфигурации, ввода имени и пароля. В качестве примера работы с объектами системы реализован показ окна реестра контактов:

 Private Sub CommandStartCRM_Click()     Dim Connector     Dim Configuration     Set Connector = CreateObject("TSDskObjectLibrary.DskConnector")     If (Not Connector.Login("Введите имя пользователя и пароль")) Then        MsgBox "Не удалось подключиться к конфигурации Terrasoft CRM"        Exit Sub     End If     Dim ContactsWindow     Set ContactsWindow = Connector.Services.GetNewItemByUSI("wnd_ContactGridArea")     ContactsWindow.Prepare     ContactsWindow.ComponentsByName("dlData").Dataset.Open     ContactsWindow.Show End Sub

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

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

Использовать функцию Fixed(N). В следующем примере показано округление к 3 знакам после запятой:

 function Main() {     var R = 115.534567657;     var M = R.toFixed(3); // Получаем строковое представление числа    Log.Write(1, M); // Вывод строкового значения, получаем 115.535    var FL = parseFloat(M); // Преобразование в дробное число    FL = FL + 1; // Некоторые вычисления    Log.Write(1, FL); // Вывод полученного числового значения }  

Обратите внимание, что в случае, если полученную строку нужно снова привести в число для дальнейших расчетов, можно использовать функцию parseFloat(). В версиях продукта, начиная с 3.2.0, появилась функция System.Round(RoundingValue, Precision), которая предназначена для округления дробного числа до нужного количества знаков после запятой.

Как реализовать установку в поле значения по умолчанию при создании новой записи?

Как реализовать установку в поле значения по умолчанию при создании новой записи?

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

 function SelfOnDatasetAfterAppend(Dataset) {     var Today = GetLocalDate(); // Функция реализована в scr_Utils     Dataset.ValAsDateTime('InvoiceDate') = Today;     Dataset.Values('OwnerID') = Connector.CurrentUser.ContactID; }

Как реализовать собственное действие для раздела?

Как реализовать собственное действие для раздела?

В окно раздела на закладку "Невизуальные" в элементе amiActions добавить новый подчиненный элемент ActionMenuItem. Необходимо указать значения свойств Name (название) и Caption (заголовок) элемента. Для добавленного ActionMenuItem в обработчике события OnExecute создать программный код, в котором реализовать требуемое действие.

Почему не удается сохранить сервис таблицы после добавления нового поля при использовании СУБД MS SQL Server 2000?

Почему не удается сохранить сервис таблицы после добавления нового поля при использовании СУБД MS SQL Server 2000?

Для решения данной проблемы установите на используемый SQL Server 2000 последний пакет обновлений (Service Pack4).

Учебные курсы

Сентябрь (Москва)

Пн Вт Ср Чт Пт Сб Вс
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

Сентябрь (Киев)

Пн Вт Ср Чт Пт Сб Вс
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

    Установка и администрирование продуктов на платформе Terrasoft
    Функциональные возможности Terrasoft XRM
    Online курс по функциональности и внедрению Terrasoft XRM
    Практический мастер-класс по разработке и внедрению бизнес-процессов
    Корпоративный тренинг по функциональности и внедрению Terrasoft XRM
    Создание конфигураций на базе Terrasoft XRM

Сейчас на сайте

Сейчас на сайте 1 пользователь и 4 гостя.

Пользователи на сайте

  • vpetunin
2003-2010 © Terrasoft Обратная связь Компания