Вопрос

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

Пожалуйста, расскажите, как можно реализовать работу следующего механизма:
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 или напишите мне (можно в личку) старый с которым проблемы я проверю, и устраню причину.

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