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

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

BPMOnline 7.x

Нравится

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

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

А почему не подходит использование детали "Файлы и ссылки" (FileDetailV2)?

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

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

А почему не подходит использование детали "Файлы и ссылки" (FileDetailV2)?


Спасибо. Разбираюсь. А как можно потом использовать загруженный файл для наполнения таблицы в бд ? (например .txt)

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

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

"Зверев Александр" написал:

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

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


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

"dogfox.tc" написал:как взять файл с детали и распарсить.

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

Файлы деталей лежат в таблицах с названием раздела+file, например, ContactFile, AccoutFile. Сам файл находится в колонке Data в бинарном виде.

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

Вот статья по составлению ESQ запросов: https://academy.terrasoft.ua/documents/technic-sdk/7-6-0/ispolzovanie-r…

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

Объясняю суть проблемы:
Если пройдем по пути Раздел Счета -> Деталь Задачи (создадим новую, или изменим) -> в карточке задачи щелкаем чтобы выбрать контрагента (контакта и т.д.), появляется список (в нем кнопки Добавить, Изменить, Удалить активны)

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

Может кто сталкивался с такой проблемой, как активировать?

Нравится

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

Все разобрался, решение тут

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

Здравствуйте, коллеги! Вопрос такой. Как добавить колонку "Должность" в окне выбора контакта в Задаче? Какой порядок действий?

Нравится

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

Надо открыть в TSAdmin сервис ds_Contact, полю JobID поставить галку "Поле для отображения" и сохранить.

Спасибо, Александр! Получилось!:smile:

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

Здравствуйте Террасофт!

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

Нравится

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

Нужно на событие OnPrepareSelectWindow лукапа выбора поставщика повесить обработчик вроде:

function edtSupplierOnPrepareSelectWindow(LookupDataControl) {
	var LookupDataset = LookupDataControl.DataField.LookupDataset;	
	var TypeID = atOur;//константа с GUID, описать в scr_Consts
	ApplyDatasetFilter(LookupDataset, 'TypeID', TypeID, true);
}

Содержание константы - ID записи в tbl_AccountType с текстом "Наша компания".

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

"Березин Игорь Викторович" написал:"не нравится atOur". Прошу рабочее решение?

Нужно посмотреть значение поля ID в записи в таблице tbl_AccountType с текстом "Наша компания". Это можно сделать в СУБД или нажатием кнопки "предпросмотр" и затем "выполнить SQL" на sq_AccountType.

Потом в скрипт scr_Consts внести строку вроде:

//Наша компания
var atOur= '{12B90989-C863-42D4-A90B-DDD6024A7FED}';

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

А ещё такая константа может быть изначально, попробуйте вместо atOur написать так:

 var TypeID = OurCompanyAccountType;

И ничего смотреть в БД не понадобится.

"Березин Игорь Викторович" написал:мне требуется сделать так, что бы по умолчанию было пусто

См. аналогичное решение здесь.

Не работает!
Версия Террасофта 3.3.2.107 - ни какой реакции.
Версия Террасофта 3.3.2.262 - ошибка, появляется дебагер.
В итоге такой скрипт получился:

function edtSupplierOnPrepareSelectWindow(LookupDataControl) {
	//TODO
	var LookupDataset = LookupDataControl.DataField.LookupDataset;  
    var TypeID = '{12B90989-C863-42D4-A90B-DDD6024A7FED}';//константа с GUID, описать в scr_Consts
    ApplyDatasetFilter(LookupDataset, 'TypeID', TypeID, true);
}

Александр вы случаем не представитель компании Террасофт?
Когда вы отвечаете, мне почему то 7 сообщений подряд на почту приходит.
Не знаю куда сообщить о данном баге?

А так:

function edtSupplierOnPrepareSelectWindow(LookupDataControl) {
         var LookupDataset = LookupDataControl.DataField.LookupDataset;  
         var TypeID = OurCompanyAccountType;
         ApplyDatasetFilter(LookupDataset, 'AccountTypeID', TypeID, true);
}

Сообщения приходят при каждой правке комментария.

Ситуация со скриптом не изменилась.
OurCompanyAccountType - присутствует в scr_Consts.

По сообщениям понятно, спасибо.

"Березин Игорь Викторович" написал:Ситуация со скриптом не изменилась.

А какое сообщение об ошибке возникает?

Здравствуйте, Игорь!

Откройте MS SQL Management Studio и выполните следующий запрос:

select * from tbl_AccountType where Name = 'Наша компания'

1

После этого измените функцию следующим образом:

function edtSupplierOnPrepareSelectWindow(LookupDataControl) {
         var LookupDataset = LookupDataControl.DataField.LookupDataset;  
         var TypeID = '{12B90989-C863-42D4-A90B-DDD6024A7FED}';
         ApplyDatasetFilter(LookupDataset, 'AccountTypeID', TypeID, true);
}

В случае возникновения ошибки, пожалуйста, укажите здесь её текст.

"Березин Игорь Викторович" написал:По сообщениям понятно, спасибо.

Как я вас понимаю...:smile:

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

Дмитрий выполнил запрос к бзае, код у меня такой же как и у вас с Александром. Сделал вставку вашего кода, проверил и ни каких изменений не произошло.
Версия Террасофта 3.3.2.107 - ни какой реакции.
Версия Террасофта 3.3.2.262 - ошибка, появляется дебагер.

Здравствуйте, Игорь!

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

1) Запустить Terrasoft Administrator;
2) Открыть сервис sq_Account и добавить входящий параметр AccountTypeID типа уникальный идентификатор:
1
3) В этом же сервисе в блоке "Where" добавить фильтр сравнения AccountTypeID:
2
4) На событие OnPrepareSelectWindow лукапа выбора поставщика повесить обработчик:

function edtSupplierOnPrepareSelectWindow(LookupDataControl) {
         var LookupDataset = LookupDataControl.DataField.LookupDataset;  
         var AccountTypeID = '{12B90989-C863-42D4-A90B-DDD6024A7FED}';
         ApplyDatasetFilter(LookupDataset, 'AccountTypeID', AccountTypeID, true);
}

5) Сохранить изменения и перезапустить клиентское приложение Terrasoft .

"Олейник Дмитрий" написал:Открыть сервис sq_Account и добавить входящий параметр AccountTypeID типа уникальный идентификатор:

Неужели этот фильтр не существует "в коробке" изначально? Удивительно.

Ура заработало!

Всем спасибо за помощь.

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

Видимо, новосозданный фильтр AccountTypeID стал включенным. Надо снять галку у него.

Открыл ds_Account нашел "Поле фильтрации" и убрал галку. Ни каких изменений не произошло.
Александр возможно вы имели ввиду другую галку, в другом месте?

В sq_Account фильтр сравнения AccountTypeID должен быть отключён по умолчанию и включаться только когда надо.

Заработало!
Спасибо Александр.

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

Здравствуйте!
Мне нужно создать БП, в котором будет присутствовать условие выбора. Для этого сделала следующее:
1. Определила параметр ProjectManagerID
2. Создала в свойствах следующий код:
function wa_IsProjectManagerIDOnDecision(DecisionItem, IsComplete, ResultLinkCodes) {
var Diagram = GetDiagramByItem(DecisionItem);
var ProjectManagerID = WFGetParamValue(Diagram, 'ProjectManagerID');
IsComplete.Value = true;
ResultLinkCodes.Value = ProjectManagerID ? 'Yes' : 'No';
}

При запуске БП, переход не осуществляется и БП прерывается. И я немного не могу понять, как осуществляется переход на ту или иную ветку.

Спасибо заранее за помощь.
Валентина.

Нравится

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

Вам нужно в самом элементе "Выбор" прописать условие, используя параметры диаграммы и константные значения. Например,
ProjectManagerID == 'XXXX'
При этом обработчик нет потребности определять. Процесс пойдет по ветке "Да" при выполнении условия и по "Нет" в другом случае.

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

Добрый день!

Помогите, пожалуйста, решить следующую задачу:
1) В карточку редактирования записи необходимо добавить грид
2) При нажатии кнопки Добавить в этом гриде выводить окно выбора нескольких записей справочника (такое же как при выборе записей справочника в фильтрах разделов)
3) При нажатии на кнопку ОК в этом окошке из п.2 записи добавлять в грид из п.1

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

Нравится

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

Для реализации пункта 2 в обработчике кнопки "Добавить" можно вызывать функцию ShowMultiSelectDataWindow(Dataset, SearchFieldNames, SearchFieldName,
DisplayFieldName, DisplayFieldValues, KeyFieldName, KeyValues, IsReadOnly) из scr_WindowUtils, указав необходимые параметры: источник данных, поля для поиска, для отображения и т.д.

Пункт 3 будет реализован, если создать обработчик события OnNotify для окна реестра в Вашем окне редактирования (если нет отдельного окна реестра - для окна редактирования), а в нём проверять выполнение условия:

	if ((Sender.Name == 'wnd_MultiSelectData') && (Message == MSG_OK)) {
		var ResultIDs = 
			Sender.Attributes('KeyValues').CommaText.split(',');
		........	
	}

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

Спасибо, Олег! Я отпишусь, когда попробую реализовать.

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

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

Профиль пользователя

После сохранения профиля уже приевшийся аватар будет заменен на новый по Вашему выбору!

Хочу обратить внимание, что если Вы загрузили свой аватар, а после решили сменить на предложенный Terrasoft Community, то при сохранении профиля свой личный для восстановления придётся загружать вновь.

Заходите на фабрику аватарок!

Нравится

Поделиться

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

я за реальные фотографии.

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

Только глюк в профиле, при сохранении вылазит такой емайл есть в базе? Пока не вобьёш другой нефига не сработает.

Александр Ярмоленко Лайнсервис 7 495 797 6880

"alexsandr yarmolenko" написал:Только глюк в профиле, при сохранении вылазит такой емайл есть в базе? Пока не вобьёш другой нефига не сработает.

Это скорей всего потому что на ваш e-mail зарегистрировано два пользователя.
Например: Иванов Петрович и Петрович Иванов.
Поменяйте e-mail или напишите мне (можно в личку) старый с которым проблемы я проверю, и устраню причину.

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