Добрый день

Есть колонка в активности, имеющая тип целое число.
При занесении числа в это поле мне нужно поставить ограничение: чтобы занесенное в это поле число было не больше 59. Подскажите, каким образом это можно реализовать на С#? Заранее спасибо.

Нравится

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

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

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

В случае, если Вы хотите это делать на стороне сервера, Вам необходимо добавить в объект "Активность" обработчик события "Перед сохранением".

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

Можете при изменении поля или при нажатии ОК считать текущее значение, и если оно больше 59, то:

Page.DataSource.ActiveRow.SetColumnValue("MyField", 59);

Есть в объекте две колонки с типом целое число. Подскажите, пожалуйста, как на С# написать условие:
если значения обоих колонок =0, то выводить сообщение об ошибке и карточку не закрывать. Заранее спасибо

Пример такого поведения приведен тут.

Подскажите, пожалуйста, как на C# считать текущее значение поля, к-ое имеет тип целое число?

Page.DataSource.ActiveRow.GetTypedColumnValue<int>("MyField")
Показать все комментарии

Возник такой вопрос. Как в 7.2 прописать для атрибут смены фокуса для поля:

bankModuleUtils.getTextEdit("DocumentSeries", {
value: {
bindTo: "DocumentSeries"
},
enabled: {
bindTo: "IsEnabled"
}
})

И вообще как можно увидеть весь список доступных атрибутов для этих контролов?

Нравится

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

Добрый день!

Есть булевый атрибут focused - признак получения элементом фокуса. Вы его имеете в виду? Необходимо просто добавить его в конфигурацию создаваемого контрола и указать ему значение или привязку к атрибуту модели (который предварительно добавить в модель):

bankModuleUtils.getTextEdit("DocumentSeries", {
	value: {bindTo: "DocumentSeries"},
	enabled: {bindTo: "IsEnabled"},
	focused: true
})

или

bankModuleUtils.getTextEdit("DocumentSeries", {
	value: {bindTo: "DocumentSeries"},
	enabled: {bindTo: "IsEnabled"},
	focused: {bindTo: "IsFocused"}
})

Увидеть все доступные свойства и методы проще всего в отладчике. К примеру, установите точку останова на инициализации какой-либо страницы и выполните в консоли код:

var newTextEdit = Ext.create("Terrasoft.TextEdit");

После этого в переменной newTextEdit можно будет увидеть все свойства и методы контрола TextEdit.

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

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

Для воспроизведения данной проблемы необходимо:
1. Открыть карточку редактирования нового счета в разделе «Счета»
2. Нажать на кнопку редактирования поля «Сумма» мультивалютного поля для отображения дополнительного окна
3. Закрыть окно, вызванное в п.2 щелкнув в любом месте окна
4. Нажать на кнопку редактирования поля «Сумма оплаты» мультивалютного поля для отображения дополнительного окна
5. Перейти в другой раздел.
6. После этого появляется дополнительные нескрытые поля сверху страницы.
Данный кейс актуален для страниц, где больше одного мультивалютного поля.

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

Нравится

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

Добрый день, Илья!

Проверил описанный Вами кейс на релизной сборке 7.6.0.1114 Sales_omnichannel и никаких сбоев или ошибок в отображении структуры не обнаружено на страницах с несколькими мультивалютными полями. В связи с чем просьба учтонить о какой версии и продукте идет речь, а также выполнялись ли какие-либо доработки в объекте Invoice?

Валерий, для Вас подготовил gif-файл. Попробуйте также.

Данная проблема встретилась в пакетах без доработок Invoice в SalesEnterprise 7.6.0.1126 и SalesOmnichannel 7.6.0.1028.

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

Предлагаю Вам написать на почтовый ящик support@terrasoft.ru - в таком случае служба поддержки сможет оказать более квалифицированную помощь.

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

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

Подскажите как правильно расширить функционал всплывающего окна в расписании активностей. Нашел модуль SimpleTaskAddModule, создание замещающего клиентского модуля и копирование в него кода из исходного ничего не дало, окно перестало появляться.
Что нужно сделать что бы добавить в всплывающее окно дополнительное поле "Результат активности"?

Нравится

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

Подскажите какое всплывающее окно вы имеете в виду, по какому действию оно появляется? Желательно со скриншотом.

Скрин в приложении

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

Вам необходимо заместить SimpleTaskAddModule. Но копирование кода - это некорректное замещение.
В замещающем клиентском модуле Вам необходимо через разметку добавить одно поле. Для добавления поля используйте пример с Академии.

Не совсем так, схемы можно расширять или менять логику частично, при замещении же модуля вам необходимо воссоздать всю его логику.
1. Убедитесь чтобы ваш пакет куда вы добавляете замещающий модуль был выше по иерархии зависимости чем пакет UIv2.
2. В замещающем модуле после указания родительского, нужно воссоздать все "сообщения", а так же строки и картинки, строкам и картинкам дав новые названия, к примеру с приставкой "New", а так же поменять старые названия ресурсов на новые в коде модуля.
3. Так же необходимо скопировать стили с закладки LESS, они у этого модуля есть.

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

1

2

4. Дальше, генерируйте метаданные, компилируйте конфигурацию, фиксируйте модули в бд (если пишите код во внешнем редакторе), очистите кеш браузера, выйдите и зайдите в приложение.
5. Проверяйте.

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

Хочу для раздела Контрагентов создать новый тип. И хочу сделать копию исходной страницы. Как это сделать?

Нравится

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

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

Новый тип, добавляется в справочнике "Типы контрагентов".
Для добавления новой страницы нужно использовать «Мастер раздела». Про базовый функционал мастер раздела более подробно описано в обучающем ролике - https://www.youtube.com/watch?v=_ErQuZrpxIw

При добавлении новой страницы редактирования необходимо заново отображать все необходимые колонки.

"Мотков Илья" написал:При добавлении новой страницы редактирования необходимо заново отображать все необходимые колонки.

А склонировать как либо можно? Может в конфигурации?

"Сенько Виктор" написал:
Мотков Илья пишет:

При добавлении новой страницы редактирования необходимо заново отображать все необходимые колонки.

А склонировать как либо можно? Может в конфигурации?

Можно, но проще и правильней было бы делать все через мастер раздела.

Почему?
Если я использую 50 полей и 30 деталей, разве так не быстрей?
В ручную собирать займет довольно много времени, а время = деньги.

С помощью мастера зарегистрируйте новую страницу, а код с 50 полями и 30 деталями из исходной страницы скопируйте в новую, только название поправьте. И будет клон после сохранения.

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

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

Нравится

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

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

Уточните, пожалуйста, название и версию продукта.

BPMOnline 7.6

"Глобин Олег" написал:

BPMOnline 7.6

Олег, данная ошибка была зафиксирована в базовой версии приложения и исправлена в последних версиях 7.6

"Глобин Олег" написал:

BPMOnline 7.6

Олег, данная ошибка была зафиксирована в базовой версии приложения и исправлена в последних версиях 7.6

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

Добрый день.
BPMOnline Cargo 5.4.0.1555 не отрабатывает событийный подпроцесс при изменении значения элемента "поле Дата/время" на странице редактирования раздела при нажатии на кнопку "Сегодня" данного поля.
В иных случаях событие происходит.
Какое событи отвечает за нажатие указанной кнопки

Нравится

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

О каком разделе идёт речь?
Можете приложить скриншот?

Я смотрю раздел Перевозки. Но есть подозрение, что данная проблема не привязана к разделу

Пожалуйста, покажите скриншот, чтобы понять, о каком поле речь. О наличии глобальной проблемы со всеми полями типа «дата» информация не встречалась, но надо проверить.

Немного ошибся, раздел Заявки.
Поле стандартное.

На скриншоте ничего не видно.

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

Какая версия вашей тестовой платформы?
Для этого компонента использую тип Дата.

"Зверев Александр" написал:Событие происходит не прямо в момент изменения, а при переходе к другому полю или кнопке и это нормально.

Да я в курсе

У меня 5.4.0.2465 CRM+SD. Контрол типа «дата-время» и не привязан к датасорсу.

А на BPMOnline Cargo 5.4.0.1555 вы пробовали?
EditChange не отрабатывает при нажатии на "Вчера", "Сегодня", "Завтра"

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

Игорь, похоже, Вы правы. В новых версиях ядра вносилось именно исправление работы с этими кнопками.

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

Добрый день.

Потребовалось увеличить длину поля Description, было ограничение в 250 символов.
Что в итоге сделали: объект переопределили, добавили нужные колонки, а у уже существующего поля Description (был в базовом объекте) изменили тип со Строки(250 символов) на Строку бесконечной длины. Причем, это было сделано в тестовой конфигурации, в Default осталось как было.
Но теперь возникает ошибка при сохранении замещаемого объекта:

То что предлагается выполнить - бессмысленно, так как поле и так было обнулено.

В связи с чем возникли вопросы:
1. А так можно было делать, изменить тип у поля в базовом классе? Если нет, то почему в интерфейсе это доступно? А если да, то как исправить ошибку?
2. Как теперь вернуть объект в исходное состояние? Импорт объекта из default не помогает.

Версия bpmonline 7.2

Нравится

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

Добрый день, покажите пожалуйста расширенные настройки замещающего объекта, вероятно вы поменяли не только длину строки, но и значения по умолчанию.
Так же посмотрите в какое положение были установлены поля: "Обязательная для заполнения" и "Значение по умолчанию" в базовом объекте. Если были установлены в "Нет". Попробуйте оставить значения в замещающем объекте как:
Обязательная для заполнения: Нет
Значение по умолчанию: (Нет) ...Не устанавливать значение по умолчанию.
Так же посмотрите в базе данных, в вашей таблице Reminding, какого типа сейчас колонка Description?

Так же:
1. Изменить тип базового поля можно, путем создания замещающего объекта и изменения типа поля. В вашем случае ошибка возникала по причине изменения других настроек поля, и программа вас просила выполнить обновление полей, которые после изменения таблицы, требуют наличия значения в изменяемой колонке.

2. Изменения типа колонок в таблицах распространяется на все рабочие пространства. Для того что бы тип колонки у объекта был таким же как был. Его нужно установить таким каким он был в вашем замещающем объекте и опубликовать.

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

Добрый день!
7.6
Сейчас, находясь, например, в разделе "Обращения", для того чтобы обновить реестр, нужно перейти с раздела на раздел в панели, или нажать на какой-то фильтр в разделе Обращения.
Это очень не удобно.
Можно ли сделать, так чтобы нажатие на раздел "Обращения" в панели разделов слева
вызывала его обновление ( даже если при этом находишься в разделе Обращения)
Вообще, в принципе, нажатие на любой раздел в этой панели вызывало бы обновление этого раздела

По принципу того, как это сделано, например, в почте mail:
Вы находитесь в папки "Входящие", для того, чтобы увидеть новые входящие письма, не нужно переключаться с папки на папки, достаточно еще раз нажать на папку "Входяшие", и реестр входящих обновится

Нравится

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

Для обновления Вы можете нажимать caption в реестре раздела.

"Мотков Илья" написал:Для обновления Вы можете нажимать caption в реестре раздела.

Попробовал, действительно обновляется. Вот только я не знал о такой возможности? :redface:

Да, работает) Спасибо!

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

Возник такой вопрос. Как в 7.2 прописать для атрибут смены фокуса для поля:

bankModuleUtils.getTextEdit("DocumentSeries", {
value: {
bindTo: "DocumentSeries"
},
enabled: {
bindTo: "IsEnabled"
}
})

И вообще как можно увидеть весь список доступных атрибутов для этих контролов?

Нравится

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

Все зависит от того как вы создаете элемент в своем хелпере.
Весь список полей и методов можете посмотреть в исходном коде интересующего вас контрола, по пути от корня приложения:
...\Terrasoft.WebApp\Resources\ui\Terrasoft\controls
Для TextEdit это:
...\Terrasoft.WebApp\Resources\ui\Terrasoft\controls\textedit\textedit.js
И его родитель:
...\Terrasoft.WebApp\Resources\ui\Terrasoft\controls\baseedit\baseedit.js
Если в созданном контроле поле enabled будет установлено в false, то к атрибутам input-a будет добавлен: disabled="disabled" что и переведет состояние элемента в недоступный.

В вашем случае можете попробовать добавить этот атрибут таким образом:

customConfig: {
    enabled: {
        bindTo: "IsEnabledMethod"
    }
}
Показать все комментарии