Вопрос

Добрый день!

Возможно ли реализовать добавление файлов (или хотя бы одного файла) на мини-карточке при создании записи?
Учитывая, что файлы хранятся в детали, а деталь требует уже сохраненной записи, это как-то решаемо по-другому?

Спасибо!

У меня такой же вопрос

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

НУ как то выкрутится конечно можно создать какойто объект к которому прикреплять файлы (сохранять их Id)  и после создания основной записи переприкрпеплять файы к ней.

Есть пример противоположного, мини-карточка со скачиванием из неё файлов.

В Вашем случае, с учётом отсутствия основной записи для привязки к ней записи детали файлов, может, лучше посмотреть в сторону БП с преднастроенной страницей?

 

НУ как то выкрутится конечно можно создать какойто объект к которому прикреплять файлы (сохранять их Id)  и после создания основной записи переприкрпеплять файы к ней.

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

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

В академии есть инструкция для настройки embeded детали. Но мне бы хотелось сделать обычную деталь.

Спасибо

У меня такой же вопрос

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

Здравствуйте.
Что в Вашем понимании "обычная" деталь?
В мобильном приложении есть два типа деталей: встроенные (например, адреса, средства связи и т.д.) и стандартные (Активность в контакте и прочие, сюда же входят детали с редактируемым реестром).
В инструкции на данный момент представлена наиболее удобная для разработчика и пользователя реализация встроенной детали "Файлы и ссылки" из возможных. Пользователь нажимает "Добавить" и может сделать фото с камеры, прикрепить картинку с галереи или добавить файл.
Помимо инструкции можете также посмотреть реализацию данной детали в пакете Mobile.

Добрый день!

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

Хочу отметить, что загруженные записи отображаются на страницы записи, а не на отдельной странице - http://prntscr.com/hpzz3r.

Вопрос: чем Вам не подходит встроенная деталь?

В версии bpm'online 7.11.3 добавлена возможность добавить деталь "Файлы и ссылки" в любой раздел мобильного приложения (если для аналогичного раздела деталь существует в основном интерфейсе) через мастер мобильного приложения.

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

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

Добрый день!

есть ли возможность создать поле типа файл, чтобы загрузка файла имела аналогичный интерфейс, как с деталью Файлы.
Если такой возможности нет, планируется ли ее реализовать?

У меня такой же вопрос

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

Добрый день!

 

Добавить поле с типом “Двоичные данные” пока не представляется возможным.

Можно создать свою деталь “Файлы и ссылки” и прикрепить ее к нужному объекту:

1. Создать объект. Наследоваться от базового объекта “Файл”. Добавить колонку, которая будет ссылаться на родительскую запись.

2. Зарегистрировать новую деталь.

3. Добавить деталь на странице редактирования.

Зарицкий Олег,

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

Здравствуйте, Любовь!

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

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

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

Как реализовать бизнес-процесс, при запуске которого будет открываться страница с проводником. В проводнике на ПК выбирается файл (txt , xls, xml). В результате появляется на странице содержимое файла.

Интересует программная реализация

BPMOnline 7.7

У меня такой же вопрос

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

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

Использование бизнес-процесса для решения данной задачи будет не самым оптимальным варинантом. Рекомендую Вам смотреть в сторону использования JavaScript кода для вызова "окна выбора" файла, саму же обработку файла реализовать в вэб сервисе.

Пример реализации Вы можете посмотреть в коде детали "Файлы и ссылки" (FileDetailV2). Так же обратите внимание на сервис FileApiService и схему FileUploader.

Если же данный функционал необходимо встроить в бизнес-процесс/, рекомендую Вам воспользоваться элементом бп "Преднастроенная страница".

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

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

Использование бизнес-процесса для решения данной задачи будет не самым оптимальным варинантом. Рекомендую Вам смотреть в сторону использования JavaScript кода для вызова "окна выбора" файла, саму же обработку файла реализовать в вэб сервисе.

Пример реализации Вы можете посмотреть в коде детали "Файлы и ссылки" (FileDetailV2). Так же обратите внимание на сервис FileApiService и схему FileUploader.

Если же данный функционал необходимо встроить в бизнес-процесс/, рекомендую Вам воспользоваться элементом бп "Преднастроенная страница".


Здравствуйте.
Спасибо большое.

Подскажите, в коде детали "Файлы и ссылки" (FileDetailV2) есть строки :
/**
* Обработчик события нажатия кнопки "Добавить файл".
* @private
*/
onAddFileClick: Terrasoft.emptyFn,

Не совсем понятно что здесь происходит. А где конкретно описывается обработчик кнопки "Добавить файл" ? Чтобы я мог использовать листинг обработчика для своей кнопки.

Код onAddFileClick: Terrasoft.emptyFn добавляет заглушку (пустую функцию). Это нужно для того, что бы событие onClick кнопки не отрабатывало.

Обратите внимание на строки

"fileUpload": true,
"filesSelected": {"bindTo": "onFileSelect"},

в описании элемента AddRecordButton.

Первая добавляет окно вызова файла при клике, filesSelected - отрабатывает после выбора файла.

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

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

Пожалуйста, расскажите, как можно реализовать работу следующего механизма:
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…

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

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

У меня такой же вопрос

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

Каким образом можно на карточке Контрагента отобразить все файлы из связанных с ним Активностей, Продаж и некоторых других объектов?

Есть где-то пример подобной реализации?

У меня такой же вопрос

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

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

Файлы хранятся в следующих таблицах:
Контрагенты - AccountFile
Активности - ActivityFile
Продажи - OpportunityFile
Другой объект:
Object - ObjectFile

Все объекты унаследованы от базового объекта File.
Если файлов в системе нет, то Вы можете сделать следующее:
1) Создать объект, унаследовавшись от File (UsrAllObjectsFile)
2) Добавить в него справочные поля интересующих объектов.
3) Удалить деталь "Файлы" во всех разделах.
4) Добавить свою деталь во все разделы (на примере Активностей):

UsrFiles: {
	schemaName: "FileDetailV2",
	entitySchemaName: "UsrAllObjectsFile",
	filter: {
	masterColumn: "Id",
	detailColumn: "UsrActivity"
}
}

(и разместить ее куда-то на страницу)

5) Добавить логику заполнения поля Контрагент при добавлении файла в деталь/изменении значения в поле "Контрагент" основной записи.

Недостатки:

  • Не тестировалось
  • Может замедлить быстродействие

Преимущества:

  • Записи будут отображаться на одной детальке

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

Третий вариант - заместить ObjectFile, добавив в него поле "Контрагент" и организовать логику его заполнения. А дальше сделать несколько деталей, скопировав FileDetailV2 (одну и ту же деталь нельзя использовать несколько раз на странице редактирования), и указать для разных деталей (разные объекты) полем для связи с разделом "Контрагенты".

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

"Андросов Дмитрий" написал:

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

Здравствуйте, Дмитрий!

Данная задача может быть решена разными способами - вариант с представлением еще один способ решения.

"Андросов Дмитрий" написал:Алексей, может лучше использовать представление?

Спасибо! Кажется, это самый простой вариант!

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

Здравствуйте.
Нужна помощь, в реализации следующего функционала:
В разделе Счета формируется отчет, и сохраняется в БД на деталь "Файлы в продажах", ID нового файла есть. Нужно открыть новый файл (и подписаться на его изменение) из детали "Файлы в продажах" находясь в разделе Счета, т.е. сразу после формирования и сохранения отчета не переходя в другой раздел.
С открытием проблем нет (wnd_FilesDetailGridArea.grdData.grdDataOnDblClick - тут все понятно), но подписаться не получается нужно "находиться" в scr_FilesGridArea (fnFiles.SubscribeFileEvents(FileName, RecordID);).
Получается нужно послать сообщение детали в другом разделе и обработать в нем код аналогичный grdDataOnDblClick, но как получить wnd_FilesDetailGridArea из другого раздела и в случае если его еще не разу не открывали проинициализировать раздел и деталь?

Возможно есть более простое решение, подскажите.
Спасибо.

Terrasoft CRM 3.4.0.130

У меня такой же вопрос

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

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

var Self = Services.GetNewItemByUSI('wnd_FilesDetailGridArea');
	var fnFiles = Self.ComponentsByName('fnFiles');
	fnFiles.UnsubscribeFileEvents(FileID);
	fnFiles.SubscribeFileEvents(FileName, FileID);	
Войдите или зарегистрируйтесь, чтобы комментировать
Идея
Реализовать в мастере создания и редактировании раздела возможность добавлять стандартные "Файлы и ссылки" и "Примечания"
Ревью
2 комментария

а также сделать так, чтобы базовая деталь примечания могла "есть" поля кастомных разделов (с пользовательским префиксом в названии) без дополнительных ухищрений

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

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

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

У меня такой же вопрос

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

"Олейник Дмитрий" написал:

Почитайте тут:

http://www.community.terrasoft.ru/blogs/7372

С уважением,
Олейник Дмитрий


Говорит "У Вас нет доступа к этой странице."

Откройте базовую страницу с файлами (там где кнопка "скачать") и посмотрите пример.
Главное здесь не забыть на Inite для события (к примеру клик кнопки) указать свойство isUpload = true;

http://www.community.terrasoft.ru/forum/topic/10213

"Олейник Дмитрий" написал:

Откройте базовую страницу с файлами (там где кнопка "скачать") и посмотрите пример.
Главное здесь не забыть на Inite для события (к примеру клик кнопки) указать свойство isUpload = true;

http://www.community.terrasoft.ru/forum/topic/10213

С уважением,
Олейник Дмитрий


Это пример для BPMOnline 5.4. Я же пытаюсь отдать на скачивание файл в BPM 7.4

В JS можно сделать так.

//var params = convertDate(startDate)  + "/" + convertDate(dueDate) + "/" + Ids;
var params = this.get("Id");
var virtualButton = document.createElement("a");
virtualButton.href = "../rest/MyService/MyMethod/" + params;
virtualButton.download = "MyFile.xlsx";
document.body.appendChild(virtualButton);
virtualButton.click();
document.body.removeChild(virtualButton);

MyService - сервис на С#
MyMethod - метод,возвращающий стрим.

"Пащенко Александр Сергеевич" написал:

В JS можно сделать так.

//var params = convertDate(startDate)  + "/" + convertDate(dueDate) + "/" + Ids;
var params = this.get("Id");
var virtualButton = document.createElement("a");
virtualButton.href = "../rest/MyService/MyMethod/" + params;
virtualButton.download = "MyFile.xlsx";
document.body.appendChild(virtualButton);
virtualButton.click();
document.body.removeChild(virtualButton);
MyService - сервис на С#
MyMethod - метод,возвращающий стрим.


Спасибо. Параллельно подсмотрел реализацию для скачивания файлов детали Файлы. Все работает)

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