Вопрос

Коллеги, очень прошу помочь. 

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

Прочитала очень много материала на сайте академии. Прошу не рекомендовать ссылки, так как ссылок у меня много :). Все аккуратно прочитаны и проработаны. Что получается.

1. В управлении конфигурацией выбираем область "Пакеты" и создаем новый пакет.

затем в карточке пакета прописываем зависимости(зависимые пакеты), не забывая пакету Custom прописать "зависит от пакета" наш новый пакет.

 

Затем нам необходимо изменить значения в системных настройках

1) Настройка  "Префикс названия объекта" - пишем новые три латинские буквы. 

2) Настройка "Идентификатор пользовательского пакета". Тут я не уверена, надо ли прописывать наш новый пакет

3) и, наконец, "Текущий пакет" - вписываем название нашего нового пакета.

Спасибо всем тем, кто ответит.

Версионность не отслеживаем. SVN не используем. Изменения вносит один Пользователь, чтобы создать gz-архив.

У меня такой же вопрос

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

Добрый день!

Идентификатор пользовательского пакета для этого и предназначен!

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

Добрый день.

Хотел задать вопрос по поводу создания нового рабочего пространства. В документации написано, что для создания нового рабочего пространства необходимо в настройках IIS добавить в веб-сайт новое приложение WebApp указав в качестве псевдонима следующий порядковый номер, оставив при этом все остальные настройки такими же как и для рабочего пространства 0. Правильно ли я понимаю, что физически на диске будет одна папка Terrasoft.WebApp, и с этой одной папкой, в случае нескольких рабочих пространств, будет работать несколько приложений IIS? Или же надо делать на диске копии папки Terrasoft.WebApp и создавать в IIS приложения, каждое из которых работает со своей папкой?

Заранее спасибо за ответ.  

У меня такой же вопрос

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

Здравствуйте, Игорь!

Использовать рабочие пространства (кроме рабочего пространства по умолчанию Default) не рекомендуется. В промышленной среде использовать рабочие пространства (кроме Default) запрещено.

Это функционал является устаревшим и постепенно выводится из приложения.

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

Всем привет, буду признателен за помощь

Имеем :AccountSection, задача модифицировать записи и обновить их отображение на странице

Вопрос:

1)Как получить доступ к результатирующей коллекции, которая формирует записи в реестре? (синтаксис)

2) Как удалить(коллекция.clear?)

3) Как обновить реестр?

У меня такой же вопрос

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

1) перехватывать на этапе загрузки можно в методе updateLoadedGridData. this.getGridData() вернёт коллекцию, если всё уже загружено
2) this.getGridData().clear()

3) this.reloadGridData()

Если прям совсем интересно, загляните в GridUtilitiesV2, там куча других полезных(и не очень) методов

Варфоломеев Данила,

Спасибо огромное!!!

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

Как в карточку контакта добавить Продукт. Цель - при открытии Истории контакта, чтобы было видно, какие продукты им покупались. (при добавлении детали - в итоге она не отображается.... возможно, неверные привязки "Колонка детали" и "Колонка объекта"?...

У меня такой же вопрос

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

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

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

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

Шаги воспроизведения:
Сайт клиента:
Версия:7.11(onsite)

Здравствуйте подскажите, как решить кейс:
Проблема в том, что расширенный фильтр перебивает,  фильтр определенный  в initQueryFilters.

   //Системный метод в котором задаются условия фильтрации реестра
           initQueryFilters: function(esq) {
                     this.callParent(arguments);
                 
                    //Задаем тип фильтрации
                    esq.filters.logicalOperation = Terrasoft.LogicalOperatorType.OR;

                   //Фильтр по владельцу
                    var filter = Terrasoft.createColumnFilterWithParameter( Terrasoft.ComparisonType.EQUAL,"Owner", userId);
                    esq.filters.addItem(filter);

                    //Фильтр по типу
                      filter = Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,"Type", tDebt);
                      esq.filters.addItem(filter);
                   }
              
                                      
            },

У меня такой же вопрос

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

Здравствуйте! При написании кода в "сценарии" бизнес-процесса, и попытке его отладить, увидел следующую "особенность". Вот код запроса данных:
 

var esqResult = new EntitySchemaQuery(userConnection.EntitySchemaManager, "City");
            esqResult.AddColumn("Name");
            esqResult.AddColumn("CreatedOn");
            esqResult.AddColumn("ModifiedOn"); 
            esqResult.AddColumn("Country");
            esqResult.AddColumn("Country.Code");
            esqResult.AddColumn("TimeZone");
            esqResult.AddColumn("TimeZone.Code");
            var entities = esqResult.GetEntityCollection(userConnection);

Но вот запрос, категорически не хочет видеть мое поле "Code" поля "Country", вот типа того.

У меня такой же вопрос

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

Есть sql-запрос вида:
select *
from Table T
where T.ProjectId = @ProjectId
    and not exists (select * from Table T1
                    where T1.ContactId = @ContactId
                        and T1.ParameterId = T.ParameterId)

Использование метода CreateFilterWithParameters() позволяет построить параметризированный запрос, но только exists:

var esqCardBlock = new EntitySchemaQuery(userConnection.EntitySchemaManager, "Table");
esqCardBlock.AddAllSchemaColumns();
var CardBlockFilters = esqCardBlock.Filters;                  CardBlockFilters.Add(esqCardBlock.CreateFilterWithParameters(FilterComparisonType.Equal,
                        "Project", projectId));                CardBlockFilters.Add(esqCardBlock.CreateFilterWithParameters(FilterComparisonType.Equal,
                        "[Table:Parameter:Parameter].Contact", contact));

Если же использовать CreateNotExistsFilter(), то не понятно, куда добавлять значение параметра @ContactId.

Какой всё-таки метод использовать для построения параметризированного запроса Not Exists?

У меня такой же вопрос

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

Алла, возможно, такое получится при помощи выставления группе фильтров свойства .IsNot = true;

Как тут:

			var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Activity");
			esq.AddAllSchemaColumns();
			esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Owner", currentUserId));
			esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Greater, "ModifiedOn", LastSyncDate));
			if (IsFirstSync) {
				esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Greater, "DueDate", Today));
			}
			esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "ShowInScheduler", true));
			var filtersByExisting = new EntitySchemaQueryFilterCollection(esq);
			filtersByExisting.IsNot = true;
			var notExFilter = esq.CreateFilterWithParameters(
				FilterComparisonType.IsNotNull,
				"[ActivityCorrespondence:Activity].SourceActivityId");
			filtersByExisting.Add(notExFilter);
			filtersByExisting.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal,
				"[ActivityCorrespondence:Activity].SourceAccount.Id", SourceAccountId));
			esq.Filters.Add(filtersByExisting);
			esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.LessOrEqual, "CreatedOn", CurrentSyncDateTime));
			var entityCollection = esq.GetEntityCollection(UserConnection);

 

Саша,

спасибо за ответ. Я тоже уже думала так сделать, попробую и напишу о результате smiley

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

Как увеличить значение на 1 в огромной таблице, такое не работает, кто может подсказать решение?

var userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
var update = new Update(userConnection, "Contact")
    .Set("UsrtLastCallCountDay", new Select(userConnection).Top(1)
        .Column("CurrentContact", "UsrtLastCallCountDay")
        .From("Contact").As("CurrentContact")
        .Where("CurrentContact", "Id").IsEqual("Contact", "Id") + 1)
   .Set("UsrtLastWinCallCountDay", new Select(userConnection).Top(1)
        .Column("CurrentContact", "UsrtLastWinCallCountDay")
        .From("Contact").As("CurrentContact")
        .Where("CurrentContact", "Id").IsEqual("Contact", "Id") + 1);
update.Execute();
return true;

У меня такой же вопрос

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

Обычно увеличение или уменьшение значения колонки на число в update делают наподобие такого:

var purchaseId = Entity.GetTypedColumnValue<Guid>(purchaseColumnValueName);
Update productInPurchaseUpdate = new Update(UserConnection, "ProductInPurchase")
	.Set("Position", Column.SourceColumn("Position") - Column.Const(1))
		.Where("Position")
			.IsGreater(Column.Parameter(Entity.GetColumnValue("Position")))
		.And("PurchaseId")
			.IsEqual(Column.Parameter(purchaseId)) as Update;
productInPurchaseUpdate.Execute();

 

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

благодарю, не знал о подобном

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

Добрый день.

Есть задача. Нужно связать 2 справочника - значение в одном должно точно соотноситься со значением во втором. Вопрос не в фильтре, а в том, как сделать автоматическое заполнение второго справочника при выборе значения в первом. Можете подсказать как это реализовать (желательно бизнес процессом, т.к. в программировании не силен)?

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

У меня такой же вопрос

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

Добрый день, Станислав!

Опишите на примере ваш кейс. Насколько я понимаю это будет 2 разных справочника с разными значениями, так ? 

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

Станислав, первое что приходит на ум это при создании справочника добавить поле, которое будет связующим. Например
1) Слово, код слова
Во втором справочнике так же
2) Слово, код слова

Где "код слова" буде одинаковым в обоих справочниках.

 

Далее с помощью бизнес процесса выполнить заполнение поля.

БП будет состоять примерно из следующих элементов: 

1) Сигнал на изменение объекта/колонки объекта

2) Чтение данных

3) Изменение данных

4) Завершение БП

Либо выполнить необходимое заполнение с помощью фильтрации

https://academy.terrasoft.ru/documents/technic-sdk/7-11/primenenie-filt…

https://academy.terrasoft.ru/documents/technic-sdk/7-11/primer-primenen…

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

Добрый день, друзья. Создал раздел "Счета" и добавил деталь "Активности Email". Теперь пытаюсь отфильтровать ее, чтобы пропускала только активности с этим типом. Но, когда я добавил фильтр метод, то деталь исчезла вообще из страницы. Прикрепил скрины. Подскажите юному падавану что он делает не так.

У меня такой же вопрос

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

Добрый день

Вы выводите все E-mail? Консоль содержит какие-либо ошибки?

 

Артем Гура,

Извините за беспокойство, забыл добавить 

BusinessRuleModule. Теперь все работает, вопрос закрыт.

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