Добрый день
Мне нужно написать след.логику: Если значение такого-то поля в карточке Контакт содержит только цифры - то все ок, иначе - выводится ошибка и карточка не закрывается. Пожалуйста, подскажите, как на С# написать проверку поля.

// Само поле - строка с 50 символами.

Заранее спасибо

Нравится

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

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

EntitySchemaQuery entitySchemaQuery = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "BankingServiceType");
var primaryColumnName = entitySchemaQuery.AddColumn("Id").Name;
var displayColumnName = entitySchemaQuery.AddColumn("Name").OrderByAsc().Name;
var serviceTypes = entitySchemaQuery.GetEntityCollection(UserConnection);
foreach (var serviceType in serviceTypes )
{
Page.BankServicesTypeCombo.AddItem(serviceType.GetTypedColumnValueGuid>(primaryColumnName),
                serviceType.GetTypedColumnValuestring>(displayColumnName));
}
return true;

Что не так ? на событие PageLoadComplete прописываю... Please help me!

Нравится

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

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

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

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

Добрый день
Подскажите, как на С# написать следующее:
нужно найти ID карточки конфигурационной единицы.

Заранее спасибо

Нравится

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

При чём тут C#?

А как тогда можно найти ID открытой карточки конфигурационной единицы ?

Я не имею в виду, что можно посмотреть после record&.

Мне нужно именно его вычислить для дальнейшего использования в условиях if/else

var recordId = new Guid(Page.GetParameterValue("recordId").ToString());

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

Добрый день ! Никто не сталкивался с такой ошибкой ? Если да то как решить ее ?

Нравится

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

Помогло удаление лишних записей о ячейках из метаданных схемы отчёта. Там задублировались записи об одной ячейке по несколько раз.

"Зверев Александр" написал:

Помогло удаление лишних записей о ячейках из метаданных схемы отчёта. Там задублировались записи об одной ячейке по несколько раз.


Как это сделать ?

Из веб-интерфейса, в окне метаданных схемы.

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

Добрый день!
Подскажите пожалуйста, есть ли возможность реализовать для версии 5.4, ввод телефона по фиксированной маске, например: +7 (___) _______ ?

Нравится

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

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

Подскажите, существует ли способ повесить на обработчик нажатия кнопки код, который откроет нужную мне произвольную страницу (которую я создал без привязки в объекту)? Но при этом мне ещё нужно передавать ИД выбранной записи на гриде. Нужна реализация именно кодом: объекты БП не предлагать!

Находил только во это из подходящего: https://community.terrasoft.ru/forum/topic/9886

Но это всё равно не то...

Нравится

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

См. действие БП «Открыть страницу» (OpenPageUserTask), там передаётся PageUId и PageParameters. Если нужно именно кодом, то можно посмотреть исходники этого действия.

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

1

Это блок БП-са, который выполняется по нажатию на кнопку вызова нужного мне окна. В объекте "Подготовить параметры" находится след. код:

var PageSchemaId = (UserConnection.GetSchemaManager("PageSchemaManager").GetInstanceByName("MyPage111") as PageSchema).UId;
OpenPageUserTask111.PageUId = PageSchemaId;
 
var pageParameters = new Dictionary <string, string>();
pageParameters.Add("CampaignLookupEdit", SelectedNodePrimaryColumnValue.ToString());
 
OpenPageUserTask111.PageParameters = pageParameters;

В объекте "Действие процесса" выбрано действие "Открытие страницы".

Теперь мне надо как-то переданный параметр "CampaignLookupEdit" заполнить на открываемой форме значением этого параметра. Вопрос - как? В объекте "Заполнить поля на форме" попробовал в отладчике обратиться к "Page", но этой сущностью является не открываемая страница, а страница грида, откуда я вызываю открытие своей страницы, хотя "OpenPageUserTask111.PageParameters" у меня заполнено правильно. Подскажите, если не трудно...

"Виталий Марушко" написал:Исходниками этого кода является нечто, что не имеет буквенного кода - как обычно...

Всё там нормально с исходниками, само действие состоит из обычного C#-кода.
OpenPageUserTask

"Виталий Марушко" написал:Теперь мне надо как-то переданный параметр "CampaignLookupEdit" заполнить на открываемой форме значением этого параметра.

Вычитывать значение параметра нужно в самой открываемой карточке при её открытии (на PageLoadComplete).

var MyGuidParamId = new Guid(Page.GetParameterValue("MyGuidParamId").ToString());

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

Александр, разобрался - всё получилось! Спасибо за очередную порцию помощи! Хорошего Вам дня)

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

Добрый день
В карточке есть поле, к-ые заполняется произвольный значением (т.е. не берется из какого-либо справочника). Подскажите, как на С# написать условие если это поле не заполнено.

Правильно ли:
if (Page.PoleEdit.Value != null)

?

Нравится

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

Здравствуйте, Татьяна!

По вопросам, связанным с регулярными выражениями C#, рекомендую обратиться на форумы по данному языку программированию.

P.S. Для разных типов полей проверка пустое оно или нет будет производиться по-разному.

А тип данных какой в поле?

В терасофтовских модулях есть такие подходы к проверке:
String.IsNullOrEmpty или String.IsNotNullOrEmpty

"Александр Кудряшов" написал:Тип данных - строка

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

Добрый день.

Допустим, есть некоторое значение в поле карточке.
Подскажите, пожалуйста, на C# как можно "вытащить" значения только тех символов в этом значении, к-ые третий и четвертый по порядку (слева направо). Заранее спасибо

Нравится

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

Substring - не пойму, как использовать этот метод

Если считать значение поля в строку, то можно использовать метод

public string Substring( int startIndex, int length)

Подробности здесь:
https://msdn.microsoft.com/ru-ru/library/aka44szs(v=vs.110).aspx

Есл не ошибаюсь:

string s = "Terrasoft";
string ss = s.Substring (0,5);// ss содержит "Terra"
Показать все комментарии

Добрый день
С помощью чего можно проверить, что значение в таком-то текстовом поле содержит только цифры?
Заранее спасибо

Нравится

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

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

такую проверку можно реализовать, используя регулярные выражения С#.

Подскажите сайт, где их можно посмотреть

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

Ссылка на сайт где можете ознакомиться с регулярными выражениями.

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

Добрый день

При сохранении изменений в процессе «Страница редактирование Конфиг.единицы» система выдала ошибку:

// в других процессах, напр. «Страница карточки задачи» тоже такая же ошибка появилась.

Объект SysSchema у меня никак не администрируется:

Нравится

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

У меня роль - сист.администратор

Проблема может возникать из-за того, что у пользователя, под которым вы работаете, Read-Only лицензии. Установите нужному пользователю полноценную лицензию.

Речь идет о тестовой системе. Здесь тоже нужны какие-то лицензии?

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

это же бесплатно, так?

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

в смысле, лицензии на тестовую систему бесплатны?

Татьяна,

на базу разработки Вы также можете сформировать запрос лицензий на свой CustomerID, как и на рабочей.

Данная услуга бесплатна.

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