Не работает Terrasoft.CheckBoxEdit.

В BPMonline 7.6, в каждой записи детали, замещающей BaseCommunicationDetail, справа от поля ввода средства связи (например поля ввода телефонного номера или адреса e-mail) нужно выводить галочку (checkbox) с подписью "Основной". Не получается. При попытке добавить запись в деталь "Средства связи" на странице "Юр. лицо", в консоли отладчика браузера выводится сообщение об ошибке; "Uncaught TypeError: Cannot read property 'changeMethod' of undefined" в модуле all-combined.js в строке 291. Я посмотрел по этому исходнику, там внутри функции setControlPropertyValue проверяется if(a.config.changeMethod) и на этом месте ошибка. Ниже привожу код, который я добавил в функцию getItemViewConfig() для вывода checkbox'а в модуле, замещающем BaseCommunicationDetail из пакета NUI. Замещающий модуль имеет то же имя - BaseCommunicationDetail и находится в пакете Custom.

var checkboxConfig = {
        className: "Terrasoft.CheckBoxEdit",
        classes: {wrapClass: ["communication-lookup-img-user-class", "detail-edit-user-class"]},
        value: {
                        bindTo: "RIBIsBase",
                        bindConfig: {converter: "updateLinkUrl"}
        },
        href: {
                        bindTo: "Link"
        },
        linkclick: {bindTo: "onLinkClick"}
};

Этот код я ввёл сразу после кода для отображения элемента TextEdit, который представляет поле для ввода средства связи. Ниже привожу строки кода, включающего эти элементы в конфигурацию, Эти строки завершают тело функции getItemViewConfig().
config.items.push(typeButtonConfig, editConfig, checkboxConfig, iconTypeButtonConfig);
itemConfig.config = config;
this.set("itemViewConfig", config);
На заметку: Когда я переносил зависимости замещаемого модуля в замещающий, то зависимость "Средства связи контакта" в замещаемом модуле была из пакета Base, а в замещающем - из пакета Base эта зависимость не подцепилась и пришлось взять её из пакета NUI. Других отличий нет.
Что нужно сделать, для того, чтобы checkbox выводился как описано выше ?

С уважением.

Нравится

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

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

я еще вчера хотел вам отписать в вашем предыдущем посте. Но раз вы уже создали новый, пишу здесь. Ранее вы говорили что поле CheckBox вы желаете использовать для понимания какой телефон основной а какой нет, какой емайл основной а какой нет. Я так и не начал воплощать в жизнь вашу идею, так как при разработки и использовании системы в первую очередь нужно по максимому использовать стандартный функционал системы, а вот если уже невозможно обойтись стандартными средствами, вести разработку. Вашу идею на детали "Средства связи контрагента или контакта" можно воплотить расширив список типов "Тип средства связи", схема таблицы "CommunicationType", по умолчанию уже есть тип "Основной телефон" предлагаю вам добавить к примеру тип "Основной e-mail" и уже если вам нужно через Запрос получить основной телефон контрагента то вы с легкостью это сделаете. Так как "Тип средства связи" пользователь редактировать не может и следовательно это константные величины.

не придумывайте сейчас сложных путей, идите по легкому пути.

Здравствуйте, Михаил.
Спасибо за ценный комментарий.

Нет, Михаил, извините, но мне нужно чтобы был именно checkbox. Пока можно даже отложить в сторону код, реализующий его функционал. Мне очень важен код, реализующий его вывод на экран в том виде, который я описал вам вчера. Для меня это, можно сказать, вопрос жизни и смерти. Если можете, то помогите, пожалуйста.

P.S. И я делаю его на замещённой детали "Базовая схема детали средств связи", а не на детали "Средства связи контрагента и контакта". И, кстати, где можно посмотреть определение класса CheckBoxEdit?

Форумчане, помогите, пожалуйста!

"Бузин Евгений" написал:И, кстати, где можно посмотреть определение класса CheckBoxEdit?

Путь для конфигурации BPMOnline - OnSite (мой пример)
C:\BPMOnlineOmniChannel7_6_0.Site\Terrasoft.WebApp\Resources\ui\Terrasoft\controls\checkboxedit

По вашей просьбе. Хорошо Евгений раз обещал помогу вам. создам для вас Замещенную деталь. Как сделаю выложу в тему.

Благодарю, Михаил. Буду ждать.

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