Вопрос

Создана преднастроенная страница.

При открытии два обязательных поля

Проблема. Обязательность первого поля не работает. Система позволяет сохранить данные с незаполненным полемИзображение удалено.

В конфигурации страницы добавлен признак обязательности

Так же на атрибут повешен признак isRequired: true

Однако это не дает ровным счетом ничего

Так же, ни последующая валидация при сохранении, ни правила не помогли

Если кто сталкивался с подобным, подскажите как выходили из ситуации

Спасибо

 

У меня такой же вопрос

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

Попробуйте для установки обязательности поля использовать бизнес-правила. 

Подробнее почитайте о пользовательской функциональности настройки бизнес-правил и настройке бизнес-правил в схемах в конфигурации.

Алла Савельева, Пробовал бизнес-правила. Не помогло.
Спасибо

Дубов Андрей Владимирович,

Приведите пример Вашего кода

Без изучения кода карточки сложно сказать.

Как обходной вариант, на уровне БП проверять значение, если пусто, показывать сообщение и карточку повторно, пока не заполнит правильно.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

А подскажите кто-нибудь сведущий по ситуации.

У меня есть такая структура

Имею проблему. Руководители групп Москва-1 и др. могут закрывать задачи на которых права розданы только руководителям Отдела продаж.

Мне кажется так не должно быть. Или я что-то неправильно понимаю?

У меня такой же вопрос

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

Руководитель отдела продаж (или какой-то Supervisor) случайно не входит в группу Москва 2?

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

Попробуйте определить что это за пользователь.

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

И ещё даже, если у пользователя нет прав, то кнопки доступны, но при нажатии на них должно выдаваться сообщение о недостаточности прав.

Проверьте, действительно, ли пользователи могут вносить изменения или это только визуально кнопка доступна.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Коллеги, всем привет! Подскажите, пожалуйста, может кто сталкивался с такой задачей/проблемой.

Нужно изменить OpportunityConfigurationConstants, точнее дополнить. Но данный модуль находится не в пользовательском пакете. Нужно сделать замещающий, а заменить не получается, потому что  в новых версиях данное действие запретили. Ошибка выскакивает "Замещение модулей запрещено". Что делать? Создавать новый модуль и копировать всё-всё из родительского, но при этом не замещать родительский. Или добавлять туда только то, что я хочу дописать. Или вообще что-то другое?

У меня такой же вопрос

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

Можно создать свой модуль и  внести нужные правки (новые константы) и использовать там где вам нужно.

Григорий Чех,

Добрый день! Большое спасибо за ответ!

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

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

спасибо всем! всё получилось

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

При добавлении зависимости следующим образом:

"RoundPropertyPriceWithDiscount": {
    dependencies: [
        {
             columns: ["PropertyPriceWithDiscount"],
             methodName: "roundPropertyPriceWithDiscount"
        }
    ]
}

и обработки методом:

roundPropertyPriceWithDiscount: function() {
	this.roundDoubleValue("PropertyPriceWithDiscount");
},
roundDoubleValue: function(propertyName) {
	var value = this.get(propertyName);
	var rounded = Math.round(value);
 
	if (rounded != value) {
		this.set(propertyName, rounded);
	}
},

происходит зацикливание. Кейс:

вводим в поле 5,56 - запускается метод, записывающий в поле 6,00, далее запускается еще раз (очевидно), проверяет что значение в поле равно его округленному значению (6,00 == 6,00) и значение в поле НЕ ПЕРЕЗАПИСЫВАЕТ. И вот далее идет ТРЕТИЙ запуск, в котором this.get() возвращает старое значение поля - 5,56. Ну и, естественно, это бесконечный цикл. Каким образом работает сей механизм? Если мне не изменяет память - в прошлых версиях такого не было.

7.13.1.769_SalesEnterprise_Softkey_MSSQL_ENU

 

UPD: Подписка на изменение поля вручную решает вопрос

this.on("change:PropertyPriceWithDiscount", this.roundPropertyPriceWithDiscount, this);

 

У меня такой же вопрос

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

Добрый день!

Если я правильно понял Ваш бизнес-кейс, то вы его неправильно реализовали. Если при изменении одного поля нужно взять значение этого поля, округлить его и записать в другое поле, то вам нужно делать this.set("RoundPropertyPriceWithDiscount", value);

Тёскин Дмитрий Валерьевич,

Нет, я все правильно написал. Округление значения в том же самом поле. 

RoundPropertyPriceWithDiscount это просто название атрибута

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день.

При создании массового обращения. Пользователю в процессе предлагается сделать выбор.  Он может закрыть вкладку.

И новом процессе начать создание массового инцидента.

Вопрос можно ли из процесса закрыть процесс запущенный ранее.

Как это реализовать?

У меня такой же вопрос

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

Можно в скриптаске

Тема неоднократно обсуждалось, посмотрите например этот пост

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Как убрать поиск у справочного поля в лукапе. Поле на странице раздела.

 

У меня такой же вопрос

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

По аналогии с LookupPageViewGenerator реализуйте свое кастомное окно и вызывайте его в методе openLookup там, где Вам нужно.

Более подробно посмотрите обсуждение в этой теме.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день. Подскажите, может у кого есть идеи как скрыть контакты сотрудников из раздела "Контакты" не используя группы?

У меня такой же вопрос

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

Доброе утро.

По классике это можно сделать разделением прав доступа.

Алла Савельева,

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

Александр Тыра,

Для схемы таблицы 'Средство связи контакта' включаете администрирование по записям.

Если есть потребность корректируете права доступа на записи с помощью настройки специального бизнес-процесса. Например, если Вам нужно скрывать только телефоны сотрудников, а e-mail показывать.

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

Алла Савельева,

мне нужно скрыть не поля в контактах а сами контакты типа "сотрудник" из списка контактов для сотрудников

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

В раздела Контакты можно отфильтровать все записи по нужному вам типу сотрудников или убрать доступ у пользователей к Контактам в зависимости от того что вам нужно

Григорий Чех, 

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

Александр, почитайте в академии о правах доступа на записи. Если прав на чтение нет, то запись не будет видна ни в разделе, ни в окне выбора из списка.

Зверев Александр,

в этом и вопрос, как можно сделать что бы не было видно именно в списке раздела контакты

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

Александр Тыра,

Пример фильтрации в разделе

getFilters: function () {
    var sectionFilters = this.callParent(arguments);
    this.setCommunicationFilter(sectionFilters);
    return sectionFilters;
},
setCommunicationFilter: function (filterCollection) {
    var testAttr = this.get("TestAttr");
    var isActive = this.get("IsActiveTestAttr");
    if (!isActive) {
         filterCollection.removeByKey("FilterContactCommunication");
    } else {
    filterCollection.add("FilterContactCommunication", 
         this.Terrasoft.createColumnFilterWithParameter(
                this.Terrasoft.ComparisonType.CONTAIN, "[ContactCommunication:Contact:Id].Number", testAttr));
         }
},

 

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Есть два справочника: "Запрос" и "Расчет к запросам".
В "Запрос" крепится деталь, где указывается поле из второго справочника (см.Рис 1.2.).
 

Как можно через кнопку(JS на клиенте/сама кнопка уже есть) в справочнике "Запрос" узнать Id прикрепленной детали?

 

 

 

 

 

 

 

 

 

У меня такой же вопрос

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

Вам нужно получить ID детали или Id определённой записи из детали?

Получить Id прикрепленной детали, у неё найти поле "Статус(usrStatus)" и сверить что поле = "Согласован"

Это первый опыт работы с деталями

Т.е. всё же Id записи  "Расчет к запросам" связанный с текущим Запросом?
А кнопка у вас где располагается?
 

Коновалов Игорь,
В справочнике "Запрос"

Дело в том, что деталь может содержать несколько записей. И вам необходимо понимать Id какой именно запись вы хотите получить.
 

Коновалов Игорь,

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

Так в том и дело, что нет разницы сколько на данный момент записей в детали одна или несколько. Все они хранятся в коллекции GridData детали.
Вы уверенны, что эта логика должна отрабатывать на клиентской части?
Т.к. в итоге вам нужно будет делать esq-запрос к всё той же детали  для получения значения поля "Статус(usrStatus)" (т.к. не факт, что в реестре детали выведено поле "Статус(usrStatus)" )
Если всё же на клиентской части, то 
в BasePageV2 есть коллекция this.entitySchemaInfo.details,
И есть метод var detailId = this.getDetailId(detailName);
Вы можете на странице Запроса (где кнопка) создать адресное сообщение (publish)
И при клике на кнопку его отправлять. Адресатом будет detailId.
А в схеме детали с реестом (Расчет) добавить это же сообщение, но уже как подписчика (subscribe).И при получении этого сообщения возвращать this.get("GridData")
 

Как вариант можно использовать сообщения например такой сценарий

1)по нажатии вашей кнопки на карточке публикуется сообщение

2) в дели по подписке на сообщение перебираются все строки данных и формируется в массив список id записей у которых статус = согласован. Сформированый массив передается в карточку.

 

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день, интересует вопрос: как отобразить в разделе активности мобильного приложения по нажатию на "+" (расположен внизу страницы) новых категорий визитов (правила полевых продаж для него созданы).

У меня такой же вопрос

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

В карточке активности обычная фильтрация категорий по типу «Визит». У новых категорий, созданных Вами, нужно просто заполнить поле «Тип».

Зверев Александр, поле Тип заполнено

Значит, не тот тип, к которому относится карточка.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

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

Всё сделал, в профилях прописали, авторизация проходит, даже тестовое сообщение создалось. В настройках папки показывает.

Но синхронизация не идёт!

В чём может быть причина?

У меня такой же вопрос

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

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

К сожалению, по Вашему описанию проблемы, сложно сказать что-то конкретное. Какие настройки были выполнены? Какой почтовый сервер используется?

Рекомендую ознакомиться со статьей по вопросам, возникающим при работе с почтой и статьей по настройке учетной записи почты.

Если данная статья не поможет решить описанную проблему, обратитесь в службу поддержки Террасофт для консультации по этому вопросу.

Войдите или зарегистрируйтесь, чтобы комментировать