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

Нравится

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

Добрый день, Дмитрий!

Вариант 1:
Для тех пользователей, которым нужно запретить наполнять раздел [Продукты] из лукапного поля в карточке "Продукт в продаже" или др. можно убрать право на системную операцию с кодом "CanManageLookups". Для этого нужно на детали "Доступ к операции" удалить нужного пользователя или роль, в которую он входит. Ниже прикреплен скриншот 1. Недостатком такого решения является тот факт, что данный пользователь не сможет наполнять никакие справочники (но в этом есть логика, так как наполнение справочных значений рекомендовано все же выполнять администратору системы).

Вариант 2.
Установить запрещающие права на добавление записей в разделе [Продукты] для нужного пользователя или роли. Данное решение позволит пользователю наполнять другие объекты системы через справочное поле, но не даст права на добавление в продукты. Ниже прикреплен скриншот 2.

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

Всем добрый день!
Необходимо реализовать кастомном разделе автоматическую отправку Email письма, в определённую, конкретную дату и время, указанную в соответствующей созданной колонке типа дата/время.
Дата и время отправки указываются пользователем при создании записи в разделе.
Как можно реализовать данный кейс с помощью бизнес-процесса используя стандартный функционал bpm'online sales enterprise 7.8?

Нравится

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

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

Используйте бизнес процесс. Общая структура бизнес процесса:
1) Стартовый сигнал по событию добавления записи в созданный вами раздел
2) Используйте элемент "Чтение данных" для получения значений добавленной записи
3) Используйте элемент "Формула" для подстановки в параметр элемента "Таймер" разницы между текущем временем (System.DateTime.Now) и значением в поле с типом "Дата время", сконвертированных к секундам.
Общая структура будет выглядеть где-то так:
((System.DateTime.Now).Subtract([#Параметр даты#])).TotalSeconds()
4) Используйте "Таймер"
5) Используйте "Отправить email" для отправки
6) Конец процесса

Это общая структура. Где-то еще должно быть получение email адреса получателя, и как вариант, формирование тела и темы письма.

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

Подскажите пожалуйста как мне поставить свойство Enabled для полей на детали с редактируемым реестром.

Нравится

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

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

В схеме детали такой возможности нет. Однако Вы можете поставить этот признак на странице редактирования детали и тогда поле будет недоступно/доступно.

"Демьяник Алексей" написал:

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

В схеме детали такой возможности нет. Однако Вы можете поставить этот признак на странице редактирования детали и тогда поле будет недоступно/доступно.


Есть деталь продуктов в карточке «Продажы» рис.1.(в документе)
Сделал деталь редактируемым реестром.
На странице поля заблокированы рис. 2.(в документе)
Но все равно на детали поля разблокированы рис.3.

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

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

Доброго времени суток.

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

При этом желательно, чтобы при переходе по кнопке уже был выбран вариант, куда загружать данные (см. скриншоты).

Возможно ли это сделать?

Нравится

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

Информация о том, как добавлять кнопки есть на академии:
https://academy.terrasoft.ru/documents/technic-sdk/7-8/kak-dobavit-knop…
Посмотреть как по нажатию кнопки переходить в импорт можете в схеме SystemDesigner
Там для этого есть метод:
navigateToImportFromExcel: function() {
var url = this.Terrasoft.workspaceBaseUrl + ConfigurationConstants.ApplicationPage.ExcelImport;
window.open(url, "_blank", "height=" + this.get("WindowHeight") + ",width=" + this.get("WindowWidth"));
},
Что касается предзаполения объекта, необходимо изучить как данный механизм работает в самой странице импорта: схема FileImportStartPage
В замещающей схеме FileImportStartPage реализовать метод который будет заполнять объект импорта на нужным вам. И средствами песочницы sandbox, узнавать что вы перешли в импорт из нужной вам страницы нужной вам кнопкой, выполнять его. Подробнее про песочницу: http://www.community.terrasoft.ru/forum/topic/15210

Илья, большое спасибо!

Не находил, что есть ещё такой вариант страницы импорта.

"Мотков Илья" написал:Что касается предзаполения объекта, необходимо изучить как данный механизм работает в самой странице импорта: схема FileImportStartPage

Это метод setImportObject, как я понимаю? Только запускать при открытии окна.

Разобрался с основным, кроме одного момента:

"Мотков Илья" написал:И средствами песочницы sandbox, узнавать что вы перешли в импорт из нужной вам страницы нужной вам кнопкой, выполнять его.

Сообщения использовал неоднократно, но ведь тут страница открывается на соседней вкладке (окне), будет ли там работать сандбокс?

Например, я передаю сообщение по клику на кнопку:

this.sandbox.publish("StartImportFlag", { date: "test" }, ['FileImportModule_FileImportStartPage']);

В замещающей схеме FileImportStartPage есть соответственно:

this.sandbox.subscribe("StartImportFlag", function(arg) {
	console.log(arg); //Это пока просто для примера - должно вывести test
}, this, [this.sandbox.id]); //Тут this.sandbox.id равен FileImportModule_FileImportStartPage, у этих страниц они слишком различаются между собой.

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

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

Добрый день.

Прошу помощи, т.к. сама не сильно разбираюсь в данном вопросе. Если код корявый, подскажите как поправить, я новичок в этом.
Задача была поставлена следующая, в разделе "Обращения" выделить записи просроченные по реакции или по разрешению. Я добавила в методы схемы Section page schema - Cases, код:

                prepareResponseCollectionItem: function(item) {
                        this.callParent(arguments);
                        item.customStyle = null;
                        //var running = item.get("ResponseOverdue");
                        if (item.values.ResponseOverdue) {
                                item.customStyle = {"background": "#EB3D51"};
                        }
                        //var running = item.get("SolutionOverdue");
                        if (item.values.SolutionOverdue) {
                                item.customStyle = {"background": "#EB3D51"};
                        }
                }

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

У нас стоит service enterprise версии 7.8.1

Нравится

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

Пускай другие пользователи почистят кеш браузера и перезайдут на сайт ;)

Максим, спасибо, Вы навели меня на мысль, что записи подсветятся только если эти колонки выведены в реестр. Это подтвердилось.
У пользователей, колонки Просрочен по реакции и по разрешению не выведены в реестр, можно сделать выделение, не зависящем от отображения этих колонок в реестре?

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

Добрый день.
У меня колонки выведены, далее не делала.

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

1) Заместить схему секции.
2) Переопределить метод initQueryColumns.
3) В замещающем методе в параметр esq добавлять нужную колонкую

Пример:

initQueryColumns: function(esq) {
	this.callParent(arguments);
        // проверка на присутствие необходимой колонки в esq
	entitySchemaQuery.addColumn("имя колонки");
},
Показать все комментарии

Доброго дня!
Хочу делегировать право поиска и слияния дублей нескольким пользователям, т.к. сейчас это доступно только администратору.
Подскажите, как правильно это сделать?
Какие объекты выбрать и какое включить администрирование для них?

Нравится

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

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

Права на поиск и объединение дублей ограничены системной операцией "Поиск дублей"
Для решения:
1) Перейдите в "Дизайнер системы"
2) Перейдите в "Права доступа на операции"
3) Найдите операцию "Поиск дублей"
4) Выдайте права нужным пользователям.

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

Добрый день! В разделе «Продажи» есть деталь продуктов рис.1

Сейчас она работает следующим образом. Мы кликаем на «+» открывается карточка где можно указать продукт, стоимость и т.д. рис. 2

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

Нужно сделать так, чтобы данная деталь была еще и с редактируемым реестром. То на подобии, как на карточке из раздела «Заказы».

То есть при нажиме на «+» сохранилась базовая логика открытия карточки и еще плюс деталь сделать из редактируемым реестром.

Прикрепляю документ с скриншотами.

Нравится

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

Здравствуйте!
В sales enterprice 7.8 необходимо в разделе Лиды при нажатии на кнопку "Квалифицировать" запускать свой бизнес-процесс? Как это реализовать?

Нравится

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

Добрый день.

Использую VisualSVN.
1) SVN хранилище было удаленно (предположим оно называлось test)
2) Создали новое хранилище с названием test1
3) Зарегистрировали его в конфигурации
4) В таблице SysPackage изменили RepositoryId

При попытке "Зафиксировать пакет в хранилище" возникает ошибка "Хранилище для пути "https:/[...]/test/[Имя_пакета]/branches/1/" не зарегистрировано" (test - удаленно, в пути должно быть хранилище test1, но почему то осталось test).

Подскажите пожалуйста, может быть информация хранится где то еще в базе, кроме таблицы SysPackage? Или можно это починить еще каким то способом?

Нравится

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

Здравствуйте.
Такое впечатление, что информация закешировалась на уровне сервера сессий (Redis). Очистите его кэш и перезапустите Application Pool сайта. Для очистки кэша Redis-сервера выполните в его клиенте команды flushall.

Здравствуйте, Александр.
Спасибо за ответ. Ваш вариант пробовали, но это не помогло. Оказалось, нужно было почистить папку Temp.

Добрый день!

Столкнулись с такой же проблемой. Подскажите, о какой именно папки Temp идет речь?

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

версия 7,2
в карточке счета хочу прописать вызов процесса из "Действия"
добавляю:

var myActions = [];//this.actions ? this.actions : [];
myActions.push(
        {
                caption: 'CreateEmailByInvoice',//resources.localizableStrings.SetLeadNewBack,
                methodName: 'createEmailByInvoice'
        }
);
this.actions = myActions;

но в действиях нового пункта не появляется

Нравится

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

del

Для добавления меню действий в 7.2 достаточно в userCode добавить примерно следующий код:

this.actions.push({
	caption: "Test",
	methodName: 'test'
});
 
this.methods.test = function() {
	alert("Test");
};

Затем выполнить публикацию схемы и очистку кэша браузера.

"Мотков Илья" написал:

Для добавления меню действий в 7.2 достаточно в userCode добавить примерно следующий код:

this.actions.push({

        caption: "Test",

        methodName: 'test'

});

                       

this.methods.test = function() {

        alert("Test");

};

Затем выполнить публикацию схемы и очистку кэша браузера.


если сделать так то будет ошибка: this.actions is undefined

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