Добрый день! Подскажите пожалуйста, как добавить progressBar на страничку, при нажатии кнопки. В документации нашел ProgressSpinner, но не знаю как все это реализовать.
Если же Вас интересует прогресс бар на странице списка, по примеру раздела лид, то пример данной реализации описан ниже (пример для раздела Account):
Для реализации функционала progress bar на странице списка необходимо:
Что бы поле справочного типа, которое Вы ходите выводить как progress bar, обладало доп. колонкой UsrStageNumber, которая собственно и будет определять стадию прогресса.
Реализовать необходимые методы и зависимости по аналогу «LeadSectionV2» для «AccountSectionV2».
Если стадий у вас не 5, то написать свой контрол, с другим количеством стадий по аналогии с «BaseProgressBarModule» и использовать его в «AccountSectionV2».
Все вышесказанное было протестировано, далее прилагаю информацию о выполненном тесте:
1) Создан справочник UsrAccStage с колонкой UsrStageNumber, и выведен в одноименную колонку в Account (Скрин1 и Скрин2).
2) Код замещающей схемы страницы секции контрагента был написан так (файл AccountPageV2).
3) Как результат для записей, где стадия заполнена, в соответствующей колонке отображается progress bar(Скрин3)
"Михайленко Михаил" написал:
Здравствуйте Михаил! К сожалению вы меня не правильно поняли.
У меня при нажатии на кнопку выполняется запрос к сервису, и мне необходимо пока не придет ответ отображать :
Здравствуйте, необходимо, чтобы сума по умолчанию автозаполнялась по формуле, но только при определенном статусе, автозаполнение сумы получилось реализовать.
Подскажите пожалуйста, как правильно сравнивать статус из справочника, пробовали по названию :
if (this.get("Status") == 'Завершено с успехом') {
var result = this.get("Amount") - this.get("UsrPrePaid");
this.set("PaymentAmount", result);
}
и по Id :
if (this.get("StatusId") == '8ab0f830-908b-40d7-80a3-7f49ef70ce70') {
var result = this.get("Amount") - this.get("UsrPrePaid");
this.set("PaymentAmount", result);
}
В карточках секции событие "init" происходит при открытии секции, еще до того к в ней в Combined режиме будет открыта какая либо карточка. А существует ли какое-то системное событие для мекции которое срабатывает как раз при открытии карточки в Combined режиме, т.е. такое состояние в котором уже будет объявлен ActiveRow ?
Ну юзкейс у такого положения вещей есть:
Уже "притчей во-языцах" становится извечная проблема открытия карточек в Combined и Separated режимах, и добавлением какого либо функционала в верхнее горизонтальное меню.
Приходится описывать свою бизнес-логику как для секции так и для карточки, причем логика в сути идентичная, кроме способа получения данных самой карточки (для секции это отдельные трудности, так как прямого доступа к модели карточки не имеется, разве что через "GridData"), так же секцию выделяет то что там необходимо реагировать на отдельные события инициализации карточки.
Вообщем все это порождает офигенный оверхед по коду.
Решение было найдено через Миксин-модуль и события.
Таким образом специально сконфигурированный миксин можно подключать и к карточке и к схеме - логика описана в едином месте, в едином виде, в сути все происходит в карточке, а секция просто соответствующим образом реагирует и подписывается на ряд событий.
Так вот сейчас приходится разделять Миксин-модуль | Модуль экспортирующий публикации | Модуль экспортирующий подписки.
Ну и проскочила мысль, что сами messages можно в рамках одной схемы объявить (одного миксина) а уже подписываться/публиковать по ситуации в схемах куда миксин подключен.
"Севостьянов Илья Сергеевич" написал:Вообщем все это порождает офигенный оверхед по коду.
Именно поэтому мы используем прямой переход из секции в карточку (банально window.open) по клику на запись в реестре. Ибо дублировать логику/пилить кучу сообщений из секции в карточку тупо не хватает терпения. Ууууух. Руку бы пожал тому человеку, который додумался до combined-режима))
Combined режим сам по себе не вызывает каких либо нареканий, даже наоборот это весьма интересное решение, и проблемы возникают только с функциональностью верхнего горизонтального меню, а так как оно все равно в самой секции не демонстрируется, а появляется только вместе с карточкой, то вполне логично было бы обогащать его логикой из соответствующего меню карточки каррируя ее.
Проблему понял, но все же в одной схеме нельзя и подписыватся и публиковать, так что либо как сделали вы, либо миксин один на всех, а вот объявлять сообщение непосредственно в карточке\секции.
1) Осуществлять запросы в БД (ESQ запрос), например если Вам необходимо получить какое либо значение из текущей карточки (в которой деталь находиться), то в коде выполняемом в окружении детали всегда доступно значение
this.get("MasterRecordId")
Которое возвращает Вам то поле по которому деталь связана с карточкой (как правило это ее Id).
По нему - ESQ запросом можно получить уже любые данные из карточки (сохраненные на данный момент в БД)
2) Публикация события-запроса, подписка на событие-ответ, публикация события-ответа происходит в подписке на событие-запрос в необходимых вам схемах других объектов (н/п карточки, других деталях)
в событие-ответ передаются необходимые данные. (в виде JS-объекта вторым аргументом в вызове метода this.sundbox.publish)
В системе есть группы контактов, как я понимаю, они хранятся в объекте ContactFolder.
Можно ли запросом получить список всех групп?
Можно ли каким-то образом по id группы получить список всех относящихся к ней контактов?
Если что, нужно для организации рассылки. Что-то вроде детали с выбором из справочника, после чего нужно получить список всех контактов, относящихся к выбранным группам.
Для того, чтобы получить список контактов из группы нужно выполнить esq с фильтром в таблицу ContactInFolder, выбрать ContactId, предварительно отфильтровав по FolderId.
Спасибо, уже нашёл :) Проглядел вчера вечером эту таблицу.
Можно здесь же задать ещё один вопрос, просто он связан с основной задачей. Какой метод вызывается при удалении записи на детали с реестром (см. скриншот)?
Интересует, как оследить id удаляемой записи перед её удалением? OnDeleted в данном случае не подходит - он вызывается уже когда всё удалено.
Добрый день! Версия 7.9
Коллеги, подскажите пжлст как решаете вопрос ведения курсов именно по датам... насколько трудоемка разработка и подводные камни.
Применение - Счет может быть выставлен вчерашним днем.. и с текущим функционалом "сразу приезхали" что называется).
Спасибо!
Здравствуйте, Елена!
А почему бы просто не загружать каждый день курсы с актуальных ресурсов через интеграцию себе на сайт? Подобные вопросы уже неоднократно поднимались здесь на форуме и есть примеры. Таким образом ведения счета "за вчера" и потянет вчерашний курс. Если пройтись по ключевым словам то можно найти несколько нужных Вам примеров, например http://www.community.terrasoft.ru/forum/topic/13012 и др.
Мария, спасибо!
Да, например , и эту тему вижу http://www.community.terrasoft.ru/blogs/7673.
Но здесь мы получаем курс на текущую дату. А если менеджер забыл выставить счет за вчера, а мы уже загрузили сегодняшний курс, то все получается...сумма будет некорректной...
Ну в таком случае просто в счете установить вчерашнюю дату. В таком случае система вам автоматически и пересчитает по "вчерашнему" курсу, а не по новому загруженному.
Мария,вот в этом и вопрос. Вы говорите о создании своей таблицы, где курс будет к дате привязан и тогда будет пересчет выполняться? В стандарте же мы затираем вчерашний курс новым...
Имеется две среды. На одной среде подотовили пакет (не Custom), который содержит раздел и событийный подпроцесс, который срабатывает перед добавлением записи. Этот процесс добавлен через дизайнер объекта как Event.
Данный пакет зафиксировали в хранилище. На другой среде зафиксировали этот пакет из хранилища. Выполнили 5 шагов после установки(компиляция, генерация, обновления и пр).
После всего этого раздел стал доступен для добавления в рабочие места. то есть перенос прошел корректно. Но не перенесся связанный процесс. В событиях пусто, хотя на исходной среде этот процесс был.
В чем может быть проблема?
"Zaitova Liubov" написал:о не перенесся связанный процесс
В составе пакета схема этого процесса присутствует (на среде куда осуществляли установку) ?
Возможно БП создан мастером и сохранен в "текущий пакет" (Custom как правило) а не в тот который вы переносите, в таком случае в редакторе БП - существует возможность сменить пакет.
В составе пакета схема этого процесса присутствует (на среде куда осуществляли установку) ?
Возможно БП создан мастером и сохранен в "текущий пакет" (Custom как правило) а не в тот который вы переносите, в таком случае в редакторе БП - существует возможность сменить пакет.
бизнес - процесс не был создан отдельно мастером. Он был создан в рамках сущности дизайнером объекта(процесс отрабатывает на событие). Как этот процесс добавлялся я показала на скрине