Добрый день, коллеги! Хотел узнать есть ли возможность переопределить командную строку, чтобы отображать реестр КОНТАКТ не по отображаемому полю ФИО, а по полю МОБИЛЬНЫЙ ТЕЛЕФОН.

 

Попытался переопределить метод getFilters в ContactSectionV2, но при открытие переходит раздела КОНТАКТЫ он вновь сбивает и делает по ФИО. Добавил в раздел КОНТАКТЫ колонку (секцию) МОБИЛЬНЫЙ ТЕЛЕФОН, но все равно переходит на ФИО.

Пример взял отсюда:

https://community.terrasoft.ru/questions/kastomizaciya-stroki-poiska-co…

 

После попробовал переопределить первичную колонку по этому примеру, но при открытие и фильтр отрабатывает корректно, но при открытие любой карточки требует обязательного заполнения МОБИЛЬНЫЙ ТЕЛЕФОН:

https://community.terrasoft.ru/questions/komandnaya-stroka

 

Может кто-то решил подобную проблему?

 

 

 

Нравится

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

Добрый день, Алексей!

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

if (emailFilter && emailFilter.includes("@")). Скорее всего следует копать именно в этом месте, поскольку вместо вашего фильтра используется базовый.  Рекомендую сделать что-то наподоби регулярного выражения на номер телефона, вместо наведённого в примере символа "@".

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

Всем привет!

Есть потребность расширить функциональность строки поиска (там где написано Что я могу для вас сделать) для поиска информации по другим сущностям (почта, адреса и т.п.). Кто-нибудь сталкивался с похожей задачей или может быть есть какие-то стандартные инструменты расширения функциональности?

Заранее спасибо за ответы.

Нравится

2 комментария
Лучший ответ

Поставьте точку останова в методе getFilters в схеме BaseDataView, увидите колстек выполнения, как идет фильтрация.

Лучше будет наверное, для частых поисков например по Email, добавить новое поле в секцию раздела. Затем вы можете получить значение этого поля и в переопределенном методе getFilters нужного вам раздела, дополнять фильтры как вам нужно. При наличии например "@" в введенном значении делаете например такой фильтр:

 

 getFilters: function() {
	var filterGroup = this.callParent(arguments);
	filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.OR;
	var emailFilter = //получаем введенное значение в новое поле;
	if (emailFilter && emailFilter.includes("@")) {//либо сразу делать маску почты и проверку по маске
		filterGroup.add("EmailFilter", this.Terrasoft.createColumnFilterWithParameter(
			this.Terrasoft.ComparisonType.CONTAIN, "[ContactCommunication:Contact].Number".substring(), emailFilter));
	}
	return filterGroup;
},

 

Поставьте точку останова в методе getFilters в схеме BaseDataView, увидите колстек выполнения, как идет фильтрация.

Лучше будет наверное, для частых поисков например по Email, добавить новое поле в секцию раздела. Затем вы можете получить значение этого поля и в переопределенном методе getFilters нужного вам раздела, дополнять фильтры как вам нужно. При наличии например "@" в введенном значении делаете например такой фильтр:

 

 getFilters: function() {
	var filterGroup = this.callParent(arguments);
	filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.OR;
	var emailFilter = //получаем введенное значение в новое поле;
	if (emailFilter && emailFilter.includes("@")) {//либо сразу делать маску почты и проверку по маске
		filterGroup.add("EmailFilter", this.Terrasoft.createColumnFilterWithParameter(
			this.Terrasoft.ComparisonType.CONTAIN, "[ContactCommunication:Contact].Number".substring(), emailFilter));
	}
	return filterGroup;
},

 

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

Владимир, добрый день!

Правильно ли понимаем, что Вы хотите с помощью командой строки искать по всем разделам, а не по разделу «Контакты»/«Контрагенты»?
Можете более подробно описать идею.

"Вильшанский Дмитрий" написал:Правильно ли понимаем, что Вы хотите с помощью командой строки искать по всем разделам, а не по разделу «Контакты»/«Контрагенты»?

Нет, я хочу искать по текущему разделу. Как это было бы, если бы я карточку закрыл

"Владимир Соколов" написал:
Вильшанский Дмитрий пишет:

Правильно ли понимаем, что Вы хотите с помощью командой строки искать по всем разделам, а не по разделу «Контакты»/«Контрагенты»?

Нет, я хочу искать по текущему разделу. Как это было бы, если бы я карточку закрыл

А как Вы тогда представляете поиск по всем разделам? Если Вы в одной карточке хотите найти что-то другое (например, работали над заявкой и решили быстренько открыть другой счет или продажу) не по текущему объекту? Вы тогда будете переходить в другой раздел и там осуществлять поиск? Это же лишние шаги.
Какая у Вас бизнес-задача?

"Вильшанский Дмитрий" написал:А как Вы тогда представляете поиск по всем разделам?

А есть поиск по всем разделам?

"Вильшанский Дмитрий" написал:кая у Вас бизнес-задача?

Например, оплата счетов. Есть список оплат, пользователь находит первый счет, заносит оплату. Затем он видит вверху поле для поиска, совершенно логично вбивает туда номер второго счета, но ничего не происходит - надо нажимать Close, затем открывать счет.
Не критично, конечно, выполнить два лишних клика на каждый документ, но всё же выглядит логично

"Владимир Соколов" написал:

А есть поиск по всем разделам?


Есть в планах (ориентировочно в версии 7.10)

"Владимир Соколов" написал:
Вильшанский Дмитрий пишет:

кая у Вас бизнес-задача?

Например, оплата счетов. Есть список оплат, пользователь находит первый счет, заносит оплату. Затем он видит вверху поле для поиска, совершенно логично вбивает туда номер второго счета, но ничего не происходит - надо нажимать Close, затем открывать счет.

Не критично, конечно, выполнить два лишних клика на каждый документ, но всё же выглядит логично

А как же вертикальный реестр? Если этого мало, то тогда есть и фильтр в вертикальной реестре.

"Вильшанский Дмитрий" написал:А как же вертикальный реестр? Если этого мало, то тогда есть и фильтр в вертикальной реестре.

Можно и так. Просто, гораздо больше действий

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

Добрый день!

В жизни компаний иногда случается смена имени, в жизни людей случается смена фамилии. С помощью БП можно организовать хранение истории изменений.

Но как можно организовать поиск по старым названиям/фамилиям из командной строки?
Или можете предложить другое решение? (Фильтр с поиском по детали истории пользователям каждый раз будет долго настраивать)

Нравится

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

Владимир, здравствуйте!

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

Как вариант Вы можете хранить не актуальную информацию в пользовательской колонке и по ней фильтровать.

Спасибо за вариант!

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

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

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

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

"Власов Михаил Викторович" написал:А лучше сделать, чтобы вся верхняя панель автоматически сворачивалась, и открывалась только когда на нее наведешь курсор, т.е. фокус.

на планшетах нет курсора :)

Но за место надо бороться, согласен. Хотя, заголовок нельзя скрывать - он информативный

"Владимир Соколов" написал:на планшетах нет курсора :)

Значит кнопочку круглую зеленую с надписью "Go" вместо панели - нажал и выехала

"Александр Кудряшов" написал:
Владимир Соколов пишет:

на планшетах нет курсора :)

Значит кнопочку круглую зеленую с надписью "Go" вместо панели - нажал и выехала

так данный вопрос можно и сейчас реализовать легко. если кто мне нарисует красивую кнопочку (у меня со способностями рисовать плохо :smile: ) я напишу и поделюсь кодом. и будет уже сейчас в 7.6. красивая кнопочка нажав на которую будет появляться или пропадать строка поиска.

"Александр Кудряшов" написал:Значит кнопочку круглую зеленую с надписью "Go" вместо панели - нажал и выехала

Да, а там контекстный help, глобальный поиск по системе, сконфигурированные макросы, связь с сисадмином компании или специалистом поддержки Terrasoft... :)

Эх, мечты :)

"Власов Михаил Викторович" написал:если кто мне нарисует красивую кнопочку

Я тоже рисую плохо, зато копирую хорошо :)
green button

Ок, за завтра сделаю вам волшебную кнопку :) Делать буду для конфигурации Sales 7.6. думаю на остальных тоже должно работать.

Коллеги, добрый день!

Данная идея была передана аналитикам продукта и будет рассмотрена возможность ее реализации в одной из последующих версий программного продукта.
Как вариант можете заместить модуль «MainHeaderModule» и уменьшить размер командой строки («commandLineContainer»).

Я уже данную идею исполнил, все руки не доходят ее опубликовать на community. Постараюсь до конца недели это сделать.

"Власов Михаил Викторович" написал:Я уже данную идею исполнил, все руки не доходят ее опубликовать на community. Постараюсь до конца недели это сделать.

А получилось?

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

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

Нравится

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

Такой же функционал вы можете существует в комуникационной панели.

Владимир, а что вы имели в виду под "Такой же функционал вы можете существует в комуникационной панели"?

Владимир, может вы подскажите где возможно это сделать, в каком модуле или бизнес-процессе это можно посмотреть? Мне необходимо сделать это через скрипт, т.к. средствами bpm настройки профиля командной строки, такое не реализовать.

http://academy.terrasoft.ua/documents/docs/product/bpm'online%20ITIL%20…

Нашел вам стать, в которой описан функционал CTI панели

Хотел ещё у вас уточнить какой Вы используете продукт?

Владимир, bpmonline 7.5 commerce. А каким образом связана коммуникационная панель и командная строка, ведь в коммуникационной панели есть только: лента, уведомления ленты и виза?

Уточните, пожалуйста, для какого продукта и версии вы хотите сделать данный функционал?

Владимир, BPMOnlineCommerce Версия 7.5.0.627.

Из коммандной строчки есть возможность запускать процессы (Run Process)

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

Иван, возможно вы меня немного не так поняли, или я плохо объяснил. Мне необходимо, просто поменять фильтр поиска, по умолчанию если ввести любое значение на главной странице, то будет поиск по ФИО контакта, а необходимо сделать по телефону контакта.

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

Иван, есть возможность поменять на другую колонку. Необходимо поменять primaryDisplayColumn у объекта Contact, это либо можно сделать в настройках объекта в расширенных свойствах, поменяв колонку "отображаемое значение" во вкладке "системные колонки". Либо как сделал я, заменил значение в модуле ContactSectionV2.js, в функции init()

                        this.entitySchema.primaryDisplayColumn.name="Имя колонки(как в базе данных)";
                        this.primaryDisplayColumnName="Имя колонки(как в базе данных)";
                        this.entitySchema.primaryDisplayColumn.caption="Просто имя колонки, это будет отображаться на странице";
                        this.entitySchema.primaryColumn.uId="Уникальный id колонки, можно посмотреть в метаданных объекта";
                        this.entitySchema.primaryDisplayColumn.uId="Уникальный id колонки, можно посмотреть в метаданных объекта";

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

"Киричатый Иван Владимирович" написал:

Из коммандной строчки есть возможность запускать процессы (Run Process)

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


а можно подробней, как это реализовать? или пример?

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

Предварительно, Вам необходимо настроить бизнес процесс.
Бизнес процесс приблизительно следующий:
Автогенерируемая страница с полем с типом строка. Назовем это поле "Номер".
Чтение данных (считаем количество записей) по объекту "Средства связи контакта" с фильтром Номер = Автогенерируемая страница.Номер
Условные потоки:
если количество == 0, тогда конец процесса или вывести автогенерируемую страничку с предупреждением, что информации о таком номере нет.
если количество != 0, тогда идем дальше:
Чтение данных (читаем первую запись) по объекту "Средства связи контакта" с фильтром Номер = Автогенерируемая страница.Номер
Чтение данных по объекту "Контакты" с фильтром Id = Средства связи контакта.Id
Открыть страницу редактирования Контакта, режим редактирования существующей записи, где id = Чтение данных контакта.Первый элемент результирующей коллекции.Id

Процесс с командной строки будет вызываться командой "Запустить процесс + [Название Вашего процесса]".

спасибо, все получилось

а есть ли возможность выводить список контактов/контрагентов которые содержат этот номер?

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

Без использования программирования такой возможности нет.
Для того, чтобы вывести всех контактов и контрагентов:
1) создайте новую преднастроенную страницу с фильтрацией из объектов "Средства связи контакта" и "Средства связи контрагента"
2) используйте элемент "Преднастроенная страница" в бизнес процессе.
Укажите страницей созданную Вами. В параметр фильтрации Вам нужно передавать средство связи.

В результате, Вам отобразятся все записи контактов и контрагентов.

Если у Вас небольшая база, то можно обойтись без программирования.
Создайте автогенерируемую страницу из 4 полей:
1) 2 поля для контактов
2) 2 поля для контрагентов.

Заполнить эти поля Вы сможете из параметров элемента "Чтение данных" контактом или контрагентом.

Показать все комментарии
Идея
Реализована
Хотелось бы, чтобы появилась возможность настраивать командную строку так, чтобы можно было производить поиск по какому-нибудь полю. Таким образом можно было бы быстро найти, например, контрагента по ИНН или другому идентификатору. Бывают случаи, когда важно именно быстро осуществить подобный поиск, а использование фильтра не настолько удобно.
9 комментариев

И в итоге строка придёт к синтаксису SQL-запросов с SELECT, INSERT, UPDATE, DELETE и DROP...

а как вы себе запрос представляете? (просто любопытно)

"Контрагент:ИНН = 6546546465"
"Контрагент ИНН 6546546465"
"Контрагент поле ИНН значение 6546546465"
"Контрагент поле ИНН 6546546465"
??

я бы сделал что-то типа первого варианта с дальнейшим открытием страницы реестра с наложенным фильтром распарсенным из строки

Не думаю, что нужно устанавливать иерархию объект-поле-значение. Для многих клиентов обязателен поиск только по двум-трем полям. То есть просто в настройках добавить ИНН, а в строке уже писать просто ИНН значение

"Андросов Дмитрий" написал:а как вы себе запрос представляете? (просто любопытно)

1С-style же:

ВЫБРАТЬ *
ИЗ
Контрагент
ГДЕ
Контрагент.ИНН = 6546546465

"Салихов А" написал:То есть просто в настройках добавить ИНН

там же и так расширяемый функционал? я-то думал вы предлагали механизм считывания названий полей в датасетах и поиск по ним. А по преднастройке конкретных полей это не интересно)

Мы же про BPM7?:exclaim:

"Андросов Дмитрий" написал:Мы же про BPM7?

Да. Хотите сказать, что это уже реализовано? Техподдержка с Вами не согласится)

а насчет представлений: создаем свою команду задаём ключевое слово "ИИНН" - искать ИНН.

с 7.1 это уже раелизованно, радует!


ну почти реализованно

"Хотамов Шохрух" написал:

а насчет представлений: создаем свою команду задаём ключевое слово "ИИНН" - искать ИНН.

с 7.1 это уже раелизованно, радует!

Так понемногу и реализуют и полный поиск

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

Есть идея доработать командную строку в BPMonline 7. В коробочной версии Поиск из командной строки можно делать только по названию контрагента. Было бы неплохо реализовать поиск не только по названию но и по дополнительному полю, например по ИНН (Идентификационный номер налогоплательщика).

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

Нравится

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

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

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

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

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

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

Нравится

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

Да, такое возможно. Например, так:

1) Создать ярлык приложения «Террасофт»
2) Зайти в свойства ярлыка (hotkey Alt+Enter)

3) дописать в конец строки в поле «Объект» следующий текст:
- для импорта

/wnd=wnd_AutoRun1C /Dataflow1CID="{FB2992DE-4D14-49C2-B6FE-ADBCF91BA408}" /run1Cimport=1

- для экспорта

/wnd=wnd_AutoRun1C /Dataflow1CID="{FB2992DE-4D14-49C2-B6FE-ADBCF91BA408}" /run1Cexport=1

Запуск такого ярлыка будет равносилен запуску утилиты и нажатию кнопки «Полный импорт»/«Полный экспорт»
Для запуска конкретного объекта нужно дополнительно указать ID элемента «настройки синхронизации»

…….  /Dataflow1CObjectID="{FBB1CB7E-7311-4EFD-A872-E36C5E18E4B6}"

Не забываем также указывать настройки подключения к вашей базе
/cfg=******** /usr=Supervisor /pwd=1

В итоге получим вот такую строку:

…TSClient.exe /cfg=******** /usr=Supervisor /pwd=1 /wnd=wnd_AutoRun1C /Dataflow1CID="{FB2992DE-4D14-49C2-B6FE-ADBCF91BA408}" 
/run1Cexport=1 /Dataflow1CObjectID="{FBB1CB7E-7311-4EFD-A872-E36C5E18E4B6}"
Показать все комментарии