Добрый день

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

Нравится

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

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

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

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

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

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

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

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

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

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

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

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

Нравится

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

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

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

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

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

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

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

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

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

Да я в курсе

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

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

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

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

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

Маю задачу розробити інструмент для надання полям форми статусу "обов'язковий" для учасників певних ролей. Іншими словами, треба створити інструмент, який на формі присвоював би атрибуту обов'язковості для визначених полів значення true.
Сам по собі інструмент передбачає певний ступінь універсальності, тому я спробував продумати можливість керування не тільки атрибутом обов'язковості.

Приблизно склав собі архітектуру даних:
[RulesSchema] - правила для схем, фіксують схеми (на основі BaseEditPage), для яких встановлюються правила
[RulesRoleInSchema] - ролі, долучені до правила схеми
[RulesOperatedFields] - керовані поля схеми
[RulesAttribute] - атрибути, для яких мають виконуватись дії правил (присвоєння значень)

І спостеріг наявність у списку таблиць наступні:
[Attribute] - Признак
[AttributeValue] - Значение признака
[AttributeReferenceSchema] - Схема для признака

Структура таблиць дає можливість зберігати значення різних типів атрибутів по схемах.
Я якраз збирався сам щось подібне створювати для своєї задачі.

Отже, зараз потрібно визначитися, що це за таблиці і чи можна ними скористатися для своїх цілей.

Нравится

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

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

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

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

Здравствуйте.
Задаю здесь вопрос, т.к. в не нашёл описания таких вещей в SDK. Проблема заключается в следующем. Мне нужно (в BPMonline 7.6) разместить на странице две детали - одну справа от другой на одном уровне по горизонтали. Я пробовал определить на странице два группы следующим образом:

diff: [{
        "operation": "insert",
        "parentName": "Leftcontainer",
        "name": "MonthlyIncomesGroup",
        "propertyName": "items",
        "values": {
                itemType: Terrasoft.ViewItemType.CONTROL_GROUP,
                items: [],
                caption: {
                        "bindTo": "Resources.Strings.MonthlyIncomesGroupCaption"
                },
                controlConfig: {
                        collapsed: false
                }
        }
},
{
        "operation": "insert",
        "parentName": "RightContainer",
        "name": "MonthlyExpensesGroup",
        "propertyName": "items",
        "values": {
                itemType: Terrasoft.ViewItemType.CONTROL_GROUP,
                items: [],
                caption: {
                        "bindTo": "Resources.Strings.MonthlyExpensesGroupCaption"
                },
                controlConfig: {
                        collapsed: false
                }
        }
}
]

чтобы потом разместить в каждой из этих групп по одной детали. После запуска страницы, группа (с заголовком "ЕЖЕМЕСЯЧНЫЕ ДОХОДЫ") , размещённая в Leftcontainer позиционируется ниже, чем группа (с заголовком "ЕЖЕМЕСЯЧНЫЕ РАСХОДЫ") , размещённая в RightContainer, а мне нужно, чтобы они были на одном уровне по горизонтали. Кроме того, группа, размещённая в RightContainer слишком сильно смещена вправо, а мне нужно, чтобы она находилась ближе к левой группе. В вложенном файле прилагаю экранный снимок того, как эти группы сейчас размещены на экране. Как мне разместить две детали рядом на странице, чтобы одна была справа от другой и чтобы они были на одном уровне по горизонтали ?

Нравится

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

Евгений добрый день!!!

как я вам и писал ранее, для реализации вашей задачи требуется поподробнее познакомиться с разметкой Bootstrap, так же требуется поподробнее познакомиться с CSS 3.0, Для реализации вашей задачи действительно требуется создать в разметке 2 Контейнера, назвать их "Левый" и "Правый", а остальное, поведение и размещение контейнеров на странице вы делаете с помощью CSS стилей. Так же советую разобраться для начала со стандартными страницами "BasePageV2", "BaseSectionV2", какие уже стандартные контейнеры размещаются на странице, какие уже стандартные стили применены к данным контейнерам. И когда вы уже будите создавать свои 2 контейнера, вы будите понимать внутрь каких существующих контейнеров разместить свои, какие стандартные стили можно использовать, и какие свои требуется дописать.

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

Здравствуйте, Михаил. Я наследую свою страницу от "Базовая схема карточки (BasePageV2)" из пакета NUI. Я выбрал "Базовая схема карточки" в свойстве "Родительский объект" для моей страницы, когда её создавал. Если вы, как пишете, подготовите пример для моего случая, то буду вам очень благодарен.

Здравствуйте, Евгений!

Можно попробовать следующий вариант:
1) Сделать группу полей на нужной вкладке
2) Разместить на данной группе полей два Ваших контейнера, указав, их на одной строке и длиною строки [0;12] и [13;24] соответственно.

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

Не получается вывести checkbox на странице. Для его вывода написал следующий код.
В секции attributes:

"IsStreetInFIAS": {
        name: "IsStreetInFIAS",
        dataValueType: Terrasoft.DataValueType.BOOLEAN,
        type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
        value: false
}

В секции diff:

{
        "operation": "insert",
        "parentName": "Header",
        "propertyName": "items",
        "name": "IsStreetInFIAS",
        "values": {
                "bindTo": "IsStreetInFIAS",
                "caption": {
                        bindTo: "Resources.Strings.IsStreetInFIAS_checkbox_Caption"
                },
                "layout": {"column": 1, "row": 5, "colSpan": 1},
                "controlConfig": {
                        "className": "Terrasoft.CheckBoxEdit",
                        "checkedchanged": {
                                "bindTo": "OnIsStreetInFIASChanged"
                        }
                "checked": false
        }
}

При запуске процесса вывода страницы, содержащей CheckBoxEdit, в окне консоли отладчика браузера выводится следующее сообщение об ошибке: "Свойство checked Не было определено в классе Terrasoft.controls.Label". Как мне поправить исходник, чтобы чекбокс выводился?

Нравится

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

Евгений добрый день!!!

привожу пример как создать к примеру "Напоминания ответственному", как изображено на картинке ниже:

....
            attributes: {
                /**
                 * Напомнить ответственнному
                 */
                "UpoRemindToOwner": {
                    dataValueType: Terrasoft.DataValueType.BOOLEAN,
                    dependencies: [
                        {
                            columns: ["UpoRemindToOwner"],
                            methodName: "onRemindToOwnerChanged"
                        }
                    ]
                }
            },
....
            methods: {
                /**
                 * Обработчик события изменения поля Напомнить ответсвенному
                 * @protected
                 */
                onRemindToOwnerChanged: function() {
                    var remindToOwner = this.get("UpoRemindToOwner");
                    if (remindToOwner) {
                        var startDate = this.Terrasoft.deepClone(this.get("UpoStartDate"));
                        if (!Ext.isDate(startDate)) {
                            return;
                        }
                        startDate = this.Terrasoft.clearSeconds(startDate);
                        this.set("UpoRemindToOwnerDate", startDate);
                        this.set("UpoRemindToOwnerDateEnabled", true);
                    } else {
                        this.set("UpoRemindToOwnerDate", null);
                        this.set("UpoRemindToOwnerDateEnabled", false);
                    }
                }
            },
....
            diff: /**SCHEMA_DIFF*/[
                {
                    "operation": "insert",
                    "parentName": "GeneralInfoLeft_Remind",
                    "propertyName": "items",
                    "name": "UpoRemindToOwner",
                    "values": {
                        "bindTo": "UpoRemindToOwner",
                        "layout": { "column": 0, "row": 1, "colSpan": 12 },
                        "labelConfig": {
                            "caption": { "bindTo": "Resources.Strings.RemindToOwnerCaption" }
                        }
                    }
                },
                {
                    "operation": "insert",
                    "parentName": "GeneralInfoLeft_Remind",
                    "propertyName": "items",
                    "name": "UpoRemindToOwnerDate",
                    "values": {
                        "bindTo": "UpoRemindToOwnerDate",
                        "layout": { "column": 12, "row": 1, "colSpan": 12 },
                        "enabled": { "bindTo": "UpoRemindToOwnerDateEnabled" },
                        "labelConfig": {
                            "caption": { "bindTo": "Resources.Strings.RemindDateCaption" }
                        }
                    }
                },
            ]/**SCHEMA_DIFF*/,

если разделить на этапы:
1. В Аттрибутах создаем и описываем атрибут "UpoRemindToOwner" - это и есть CheckBox поле, система при генерации страницы и выводе на экран по типу поля сама определяет, что это CheckBox поле и выводит его на экран.
2. в Методах создаем метод "onRemindToOwnerChanged", который контролирует изменения реквизита на экране
3. Выводим на экран.

Выше привел пример кода.

Михаил, извините, а что это за контейнер GeneralInfoLeft_Remind? Какой-то контейнер, созданный самим разработчиком (в данном случае вами)?
У меня чекбокс так и не выводится ни с

"parentName": "GeneralInfoLeft_Remind"

ни с

"parentName": "Header"

Хотя ошибок ни при публикации модуля страницы, ни при запуске процесса, открывающего эту страницу, не выдаётся ни в первом, ни во втором случае.

Чекбокс появился. Я закомментировал

columns: ["UpoRemindToOwner"]

и он стал визуализироваться.

Большое спасибо за помощь, Михаил.

Евгений мой пример полностью копипастить не нужно, это пример.

"parentName": "GeneralInfoLeft_Remind"

да это мой GRID_LAYOUT. в вашем случае это может быть совсем иной GRID_LAYOUT, но не забываем следующее:
1. Прежде чем вывести информацию на экран требуется схематично, на листе пумаге, в графическом редакторе разрисовать схематично Контейнеры, Назначить им имя Классов (если потребуется верстка, то по имени класса контейнера, мы обращаемся к нему), и далее пишем код. Не забываем, что в BPMOnline используется технология Bootstrap для визуализации и отображении информации на экране.
2. Прошу отдельно изучить и ознакомиться как строятся и формируются страницы Bootstrap. Я это все вам Евгений рекомендую, чтобы вы в будущем, прежде чем писать код для начало рисовали схематично свою страницу. Понимали в каких контейнерах где что будет располагаться, понимали какие стили верстки требуется применить дополнительно, чтобы визуально было все эстетично и красиво.
3. На схематично созданной страницы, описали бы для начала какие поля будут изменяемыми, какие поля будут зависимыми. Какие события будут получены экранной формой, какие события будут переданы и какому адресату.
4. И только после этого приступать к программированию.

как я вам и говорил ранее Евгений. Чтобы мы с вами говорили на одном языке, прошу вас записаться на сайте Академия Террасофт на обучение по программированию на платформе.

По вашему сообщению. Для анализа и воспроизводства ошибки у себя на экране, прошу пожалуйста , во вложении, выслать следующим постом Листинг вашей схемы страницы редактирования. Спасибо!!!

Спасибо за помощь и поддержку, Михаил. Checkbox воспроизвёлся - отобразился на экране. Ошибок, при этом, не было. У меня сейчас такая ситуация, что приходится работать - рисовать страницы на Jscript и вместе с этим изучать этот язык, т.к. я с ним раньше никогда не сталкивался. Ещё раз благодарю за помощь.

Добрый день Евгений!!!

рекомендую в первую очередь прочесть информацию опубликованную на Академии террасофт. Вот ссылка на SDK по платформе SDK BPMOnline 7.6

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

BpmOnline 5.4
Подскажите, как работает это свойство.
Установил галочку в реестре, но никаких изменений в работе не обнаружил.
TreeGrid

Нравится

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

Иван, похоже в нынешних версиях платформы это свойство можно задать, но не используется.:confused:

Иван день добрый!!!

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

Добрый день.
Задача открывать карточку редактирования объекта типа справочник, из реестра.
В качестве примера - открывать карточку контрагента из реестра инцидентов одним нажатием.

Добрый день Иван!!!

задача полностью понятна. Сегодня вечером разверну платформу BPMOnline 5.4 Service Desk, вспомню и проанализирую код. И подскажу вам как реализовать ваши пожелания. Спасибо!!!

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

Скажите, пожалуйста, как добавить в деталь ContactCommunicationDetailV2 поле логического типа ? Что для этого нужно написать в этом её модуле ?

Нравится

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

Добрый день Евгений!!!

подскажите пожалуйста а какую цель вы преследуете добавляя на деталь "Средства связи контакта" логическое поле. На данной детали же хранятся телефоны, емайлы и не только. Зачем там Булевские поля? Или же задача немного некорректно поставлена. Если есть возможность схематически, хоть в "Паинте" нарисуйте, что в результате вы желаете достичь. Я вам посоветую как это сделать.

Михаил, я прошу прощения - надо добавить логическое поле не в ContactCommunicationDetailV2, а в BaseCommunicationDetail из пакета NUI, заместив его своим клиентским модулем. Я уже заместил объект AccountCommunication из пакета Base (и добавил в замещающий объект логическое поле) и теперь разбираю листинг детали BaseCommunicationDetail в часности функцию getItemViewConfig(), формирующую конфигурацию представления элемента средства связи. Мне нужно будет, как я понимаю, заместить BaseCommunicationDetail своим клиентским модулем детали и в замещающем - добавить это логическое поле. А где (в каком месте исходника) и как (с точки зрения мнемоники Javascript) ? Это логическое поле должно визуализироваться в записи детали (в UI) в виде галочки (чекбокса).

Евгений день добрый!!!

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

Так.... Михаил, разрешите некоторое время... Сейчас попробую уточнить.

Нужно в каждой записи детали: средство связи и справа от него рядом галочка. Т.е., например: поле ввода номера телефона и рядом справа - галочка. А подпись у галочки - "Основной". Помогите, пожалуйста.

Добрый день Евгений!!!

вот как вы желаете. Вопрос чтобы вам помочь, реализовать у себя, и поделиться куском кода. К примеру представим в каждом добавляемом поле Будь то "Телефон", "Email" и т.д. появилась данная галочка. Вопрос нажав на нее что должно происходить, какое поведение вы закладываете в данные галочки? Что должно происходить на экране, что должно происходить в Базе данных. Уточните пожалуйста, тогда еще раз повторюсь. Реализую у себя и поделюсь куском кода. Может и мне в моих проектах будет полезно :smile:

Минуту....

Она должна отмечать основное средство связи с контактным лицом. Ведь не зря её подпись - "Основной". Т.е., если выведено несколько средств связи, например, Телефон домашний и Телефон мобильный, то установить её можно только для одного из них. Т.е., она (в установленном состоянии) указывает основное средство связи из имеющихся у данного контактного лица. И галочка - не внутри поля номера телефона или e-mail, а рядом с ним справа от него. А в БД, по сути, соответствующее её логическое поле в записи при её установке изменяет значение с false на true, а при сбросе - обратно.

Михаил, помогите, пожалуйста.

Понятно Евгений. Сделаю завтра поделюсь подробным описанием и куском кода.

Хорошо, спасибо. Я пока создал модуль, замещающий BaseCommunicationDetail.

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

В модуле страницы на BPMonline 7.6, который унаследован от модуля Базовая схема карточки, переопределил функцию commandLineVisible из модуля MainHeaderModule следующим образом:

сommandLineVisible: function() {
        var isCommandLineVisible = false;
        this.set("IsCommandLineVisible", isCommandLineVisible);
        this.reloadCommandModule();
}
Но не работает. Окно командной строки с надписью "Что я могу для вас сделать GO" продолжает оставаться на экране. Что я делаю неправильно ?

Нравится

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

Добрый день Евгений!!!

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

Н-да. Что так, что так - канительно. А метку "Страница N из M" как можно перетащить на свою страницу? Или она тоже в MainHeaderModule ?

"Бузин Евгений" написал: А метку "Страница N из M" как можно перетащить на свою страницу?

Евгений поясните пожалуйста где вы видели данную метку. что-то у себя я такого не нахожу. В каком разделе, на какой странице редактирования или детали. Где данный функционал вами обнаружен? может мне уже пора обновляться :smile: Спасибо!!!

Случайно опубликовал 2 раза свое сообщение. Жду от вас Евгений пояснений. Спасибо!!!

Здравствуйте, Михаил. У меня в задании - сделать страничку. И в её правом верхнем углу должна быть метка "Страница N из M". Значение N должно соответственно изменяться от странице к странице. Подобная страница (с такой меткой) была создана у нас в BPMonline 7.2. Но поскольку правила написания кода страницы на Javascript в 7.2 и в 7.6 различаются, то просто скопировать - не получится.

Добрый день Евгений!!!

я конечно уже 7.2 подзабыл, но принцип программирования, он не сильно претерпел изменений. Если вам реально нужна помощь, сбросьте информацию какую конфигурацию 7.2 вы использовали, где в 7.2 была данная метка, и где в 7.6 вы желаете реализовать данный функционал. Я вам помогу или советом или кусок кода сброшу. Но если честно я немного плохо представляю, чем на практике полезна данная метка "Страница N из M".

Есть несколько контактных лиц и информация о каждом из них - на отдельной странице.

Добрый день Евгений!!!

немного конечно я так и не понял, что вы желаете. Я сегодня разверну 7.2 посмотрю о чем вы говорите. Но если вас не затруднит, не могли бы вы сбросить скриншот как бы вы желали в 7.6 это видеть. Пусть даже скриншот будет из 7.2. Спасибо!!!

Михаил, я прикрепил файл. В нём картинка.

Все теперь понял про, что идет речь. Это у вас были реализованы "мастер создания контактных лиц". Теперь чтобы мы могли далее говорить на одном языке. Уточните пожалуйста текущую версию 7.6, т.е название и билд. Я ознакомлюсь с данной конфигурацией. А после уже задам вопрос, где и что конкретно вы желаете реализовать. Я думаю по сравнению с 7.2 функционал в 7.6 сильно изменился.

Название: BPMonline Bank Sales, а какой билд - не знаю.

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

SysUserInRole - потрібно завести архів ролей користувача, щоб можна було визначити чи входив користувач до складу підрозділу в заданий період.

Створив супутній об'єкт [SysUserInRoleHistory] для того, щоб у нього писати вилучені ролі користувача.
Далі спробував створити обробник для SysUserInRoleDeleting, але при натисненні відповідної кнопки обробник не створився.

Перевірив для декількох таблиць типу [Sys*] - ситуація аналогічна.

В самому об'єкті присутні повідомлення
SysUserInRoleInserted
SysUserInRoleSaving
SysUserInRoleSaved
SysUserInRoleDeleting

Але, як вже написав, при натисненні кнопки переходу до відповідного обробника в дизайнері процесів нічого не створюється. Спробував створити обробники вручну - не спрацьовують.

Як вийти з положення?

Нравится

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

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

А почему не отслеживать изменения не через обработчик событий объекта, а через обычный бизнес процесс?

Начальный элемент - сигнал по событию добавления/изменения/удаления записи по объекту "Роль пользователя", а дальше уже стандартными элементами бизнес процесса организовать чтение записи, по которой запустился процесс, а также добавление записи о событии в созданный Вами объект.

Стереотип спрацював - тріггер на таблицю :)

А если действительно триггер, на уровне SQL?

Ну це, начебто не в стилі ?..

Зато гарантированно. Логика на объекте не сработает, если удалять при помощи класса Delete или вообще прямо из базы.

Привет всем!!!

а зачем удалять напрямую из базы. А как же проверка (перед удалением) имеет право пользователь выполнять удаление или нет. Если создавать триггеры, бизнес-процессы, то считаю, что будет полная каша. Лучше уже или C# или на худой конец, что-то небольшое выполнить на клиенте на JavaScript. Привыкать считаю нужно к хорошему, пока лучше чем C# в мире не придумали.

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

Добрый день
Помогите написать на С#:

Если такое-то поле заполнено, то...

Нравится

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

Получите значение поля и сравнивайте с 0, Guid.Empty и т.п. в зависимости от типа.

тип - целое число у этого поля.
Подскажите, пожалуйста, как условие (если значение не равно 0) написать на С# ?

if (Page.DataSource.ActiveRow.GetTypedColumnValue<int>("MyField") != 0) {
//do something
} 

Добрый день

В обработчике нажатия на ОК на странице карточки задачи написала:

if ((Page.DataSource.ActiveRow.GetTypedColumnValue("HTrudEdit") = 0)&&(Page.DataSource.ActiveRow.GetTypedColumnValue("MTrudEdit") = 0))
{
Page.BaseMessagePanel.AddMessage(Warning, "Заполните трудозатраты", MessageType.Warning);
return false;
}
else
{
return true;
}

В итоге при опубликовании система выдала ошибки:

В чем моя ошибка, подскажите, пожалуйста?

Вы используете =, а надо ==.

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