гиперссылка
гиперссылки
Технические вопросы
7.x

Здравствуйте,
Подскажите, пожалуйста, как на странице редактирования Контакта сделать ссылочными поля

Телефон - что бы начинался звонок?
WEB типа - типа строка сделать ссылочным, бы при клике был переход по адресу ?
поле e-mail - что бы при клике, открывался почтовик?

Все это уже реализовано в детали "Средства связи"

Нравится

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

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

Обработчики нажатия на "иконки" на детали "Средство связи" реализована в схеме BaseCommunicationViewModel. Вам необходимо добавить "иконки" на страницу редактирования раздела "Контакты" (ContactPageV2) и реализовать обработчики нажатия на иконки по аналогии с BaseCommunicationViewModel.

Показать все комментарии
действие
фильтрация
Технические вопросы
7.x

Добрый день!
Задача такая - в разделе Заказы есть деталь Площадка - объект, куда необходимо доставить продукт. Площадок в заказе может быть несколько. Необходимо отобразить на карте объекты в выбранных заказах.

На странице OrderSectionV2 добавила кнопку "Показать площадку на карте", при этом в В define и function прописала "MapsUtilities", "MapsHelper".
Добавила функцию:

openShowOnMap: function() {
                                var items = this.getSelectedItems();//отмеченные галкой заказы - массив
                                var Farm = [];//массив площадок
                                var select = Ext.create("Terrasoft.EntitySchemaQuery", {
                                        rootSchemaName: "UsrPlatform1C"
                                });
                                select.addColumn("UsrPlatform");
                                select.addColumn("UsrOrder");
                                select.filters.add("UsrPlatformId", this.Terrasoft.createColumnInFilterWithParameters("UsrOrder", items));
                                select.getEntityCollection(function(result) {
                                        if (result.success) {
                                                Terrasoft.each(result.collection.getItems(), function(item) {
                                                        Farm.push(item.set("UsrPlatform").value);
                                                });
                                        }
                                });
                                var selectS = Ext.create("Terrasoft.EntitySchemaQuery", {
                                        rootSchemaName: "UsrFarm"
                                });
                                selectS.addColumn("Id");
                                selectS.addColumn("UsrName");
                                selectS.addColumn("UsrAdress");
                                selectS.addColumn("UsrCity");
                                selectS.addColumn("UsrRegion");
                                selectS.addColumn("UsrCountry");
                                selectS.addColumn("UsrGPSN");
                                selectS.addColumn("UsrGPSE");
                                selectS.filters.add("FarmId", this.Terrasoft.createColumnInFilterWithParameters("Id", Farm));
                                selectS.getEntityCollection(function(result) {
                                        if (result.success) {
                                                var mapsConfig = {
                                                        mapsData: []
                                                };
                                                result.collection.each(function(item) {
                                                                var address = [];
                                                        if (item.get("UsrCountry") && item.get("UsrCountry").displayValue) {
                                                                address.push(item.get("UsrCountry").displayValue);
                                                        }
                                                        if (item.get("UsrRegion") && item.get("UsrRegion").displayValue) {
                                                                address.push(item.get("UsrRegion").displayValue);
                                                        }
                                                        if (item.get("UsrCity") && item.get("UsrCity").displayValue) {
                                                                address.push(item.get("UsrCity").displayValue);
                                                        }
                                                        address.push(item.get("UsrAdress"));
                                                        var dataItem = {
                                                                caption: item.get("UsrName"),
                                                                content: "

"

+ item.get("UsrName") + "
"
+ address.join(", ") + "
",
                                                                address: item.get("UsrAdress") ? address.join(", ") : null,
                                                                //конвертирование полей долготы и широты
                                                                gpsN: parseFloat(item.get("UsrGPSN")),
                                                                gpsE:  parseFloat(item.get("UsrGPSE")),
                                                                updateCoordinatesConfig: {
                                                                        schemaName: "UsrFarm",
                                                                        id: item.get("Id")
                                                                }
                                                        };
                                                        mapsConfig.mapsData.push(dataItem);
                                                });
                                                MapsUtilities.open({
                                                        scope: this,
                                                        mapsConfig: mapsConfig
                                                });
                                        }
                                }, this);
                        }

При отладке кода выяснила, что фильтрация по выбранным заказам выполняется, получаем выбранные заказы и площадки в этих заказах.
А в запросе при выборе Адреса, Региона, Страны получаем данные ВСЕХ площадок, которые есть в базе данных, а не только полученных из предыдущего запроса. (скриншот во вложении). Помогите, пожалуйста, разобраться в чем ошибка в фильтрации в запросе!!!

Нравится

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

Здравствуйте, Юлия.

Причиной данного поведения является то, что функция, передаваемая аргументом в метод getEntityCollection, вызывается ассинхронно (то есть после выполнения sql запроса в базу данных).

И на момент добавления фильтра в строке:

selectS.filters.add("FarmId", this.Terrasoft.createColumnInFilterWithParameters("Id", Farm));

массив Farm пустой. Следовательно, фильтрация не отрабатывает. Рекомендую Вам смотреть в сторону использования метода Terrasoft.chain или же формировать второй запрос к базе данных в callback функции первого запроса, а если точнее то сразу после кода:

Terrasoft.each(result.collection.getItems(), function(item) {
            Farm.push(item.set("UsrPlatform").value);
        });

Илья, спасибо большое за Ваш ответ.

Показать все комментарии
стадии лида
Технические вопросы
7.x

Добрый день!

Требуется убрать стадию "Распределение" из индикатора стадий в реестре лидов.
В справочнике "Стадия лида" стадию "Распределение" мы удалили, но на индикаторе стадий в реестре лидов лишний пункт остался.

Нравится

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

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

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

Показать все комментарии
дубли
дубль
пакетная обработка
Технические вопросы
7.x

Приветствую!
Мосле миграции из другой системы, где не следили за уникальностю записей, теперь много дубликатов контрагентов и контактов.
Есть ли возможность пакетно обрабатывать дубли или как-то автоматизировать этот процесс?

Дублей контрагентов - 390.
Дублей контактов - около 1500.

Нравится

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

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

Ксения, все верно.
После глобального поиска таких дублей обнаруживается столько, сколько я написал.
Меня интересует, есть ли способ обработки уже найденных дублей, чтобы не совершать 390 кликов "Select All" и 390 кликов "Merge". Так как не все дубли схлопнутся автоматически, возможны еще вариации из различных сотен кликов.
Потом настанет черед контактов, а их уже 1500.

Здравствуйте! Можно поинтересоваться как решили данную задачу?

Добрый день, Светлана!

В новой версии системы появилась кнопка "Выбрать все", что позволяет выбрать и обработать сразу все записи реестра сразу. Что касается именно объединения дублей, то этот процесс требует просмотра каждого индивидуального найденного дубля, для определения, является ли он действительно дублем (или просто однофамильцем и т.д.).

Спасибо!

Показать все комментарии
Технические вопросы
5.x

Guid contactId = UserConnection.CurrentUser.ContactId; //id контакта текущего пользователя
string contactName = UserConnection.CurrentUser.ContactName; //имя контакта текущего пользователя
string contactmail = Terrasoft.Configuration.CommonUtilities.GetEntityTypedColumnValue(UserConnection, "Contact", "Email", contactId);
string contactdol = Terrasoft.Configuration.CommonUtilities.GetEntityTypedColumnValue(UserConnection, "Contact", "JobTitle", contactId);

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

Нравится

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

Опубликовала без ошибок:
Guid contactId = UserConnection.CurrentUser.ContactId; //id контакта текущего пользователя
string contactName = UserConnection.CurrentUser.ContactName; //имя контакта текущего пользователя
string contactmail = Terrasoft.Configuration.CommonUtilities.GetEntityTypedColumnValue(UserConnection, "Contact", "Email", contactId);
string contactdol = Terrasoft.Configuration.CommonUtilities.GetEntityTypedColumnValue(UserConnection, "Contact", "JobTitle", contactId);

Все получилось!

Показать все комментарии
пропали операции
Технические вопросы
Разработка

Версия 3.3.2.120
Пропали "операции" на некоторых договорах. Те, что удалось обнаружить (не сходился баланс) - были одной датой, 18.01.2016. Обнаружили в сентябре.
Ежемесячно делается сверка, поэтому возможная проблема возникла недавно.

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

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

В резервной копии платежи видим. Поиск по номеру ничего не дает (была надежда, что кто-то перевесил его на другого абонента).

Есть ли способ определить причину возникновения проблемы?

Нравится

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

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

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

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

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

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

Алла, спасибо за ответ!

А не скажете, где почитать про "логгирование записей"?

См. тут на стр. 147.

Показать все комментарии
детали
Технические вопросы
7.x

В продукте sales enterprice 7.8 при добавлении записей на деталь Предложения нужно убрать возможность выбора типа Предложения. Сейчас эта возможность реализована в базовом функционале, так как в кастомном разделе Предложения есть несколько страниц редактирования.

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

Нравится

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

Вопрос в том, как внести в изменения в меню, которое генерируется методом getEditPages.
Метода getEditPages мы не нашли - хотя по сути понятно, что он делает, это просто получение списка типов.

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

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

Сопутствующий вопрос, который может помочь решить данную задачу - как вообще удалить из списка типов лишний пункт?

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

В продукте sales enterprice 7.8 нужно добавить на страницу раздела "Звонки" поле с типом "файл" для сохранения одной записи звонка.
В конфигурации , в объекте раздела "Звонки" я добавила поле с типом "файл". В мастере раздела это поле недоступно для добавления в схему.
Как добавить это поле на страницу редактирования раздела "Звонки"?

Нравится

0 комментариев
Показать все комментарии
Технические вопросы
5.x

Добрый день

Если мне нужно скопировать данные заголовка из одной е-мейл-активности в другую, то:
defValues.Add("Title",Page.TitleEdit.Value.ToString());
А как скопировать данные из html body ?

Нравится

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

Так же само. Если из контрола не берётся, то можно из поля в DataSource.

на странице карточки е-мейл есть BodyEdit, но нет HTMLBodyEdit. В DataSource колонки HTMLBody и Body имеются. Поэтому, не могу также скопировать данные , как в примере defValues.Add("Title",Page.TitleEdit.Value.ToString()); .

Значит, из DataSource.

написала так:

defValues.Add("HtmlBody", Page.DataSource.ActiveRow.GetTypedColumnValue("HtmlBody"));

получилось!

У меня вопрос: а каким образом можно добавить некоторый текст перед скопированным HtmlBody ? Ну хотя бы логику подскажите... заранее спасибо

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

спасибо, получилось склеить.

еще вопрос: между строками, к-ые склеила, нужно, чтобы был переход на другую строку (т.е. не все было на одной строке).

не работает:
string s = "From: /n Sent: ";

в итоге выводит на одной строке, без перехода на другую: From: /n Sent: .

/n - это надо объявить где-то?

Это же HTML. Тут переход тегами делается.

<br /> 

подскажите, а выделение жирным с помощью какого тега делается?

<b></b>

Смотрите учебник по HTML, там ещё много других интересных тегов.

А про копирование Файлов из одной е-мейл активности в другую где можно посмотреть?

Я Вам уже писал, поищите внимательно по этому же сайту и по исходникам конфигурации.

Показать все комментарии
Визирование
Технические вопросы
7.x

В продукте sales enterprice версии 7.8 пытаюсь по аналогии с бизнес-процессом визирования счета сделать бизнес-процесс визирования продажи, но при попытке сохранения схемы бизнес-процесса выдает ошибку (на скриншоте).

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

Где настраиваем визирование продажи неправильно?

Нравится

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

Анастасия,
По скриншотам трудно определить причину ошибки. Напишите в тех. поддержку письмо с подробным описанием.

"Зарицкий Олег" написал:

Анастасия,

По скриншотам трудно определить причину ошибки. Напишите в тех. поддержку письмо с подробным описанием.

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

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