Вопрос

Добрый день.

Через бизнес-процесс настраивается Email. При вызове бизнес-процесса передаются параметры для подстановки в Email.

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

Также, возможно ли подстановка картинки из передаваемого URL в шаблон письма?
К примеру, штрих-код.

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

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

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

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

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

Как можно на детали с реестром добавить кликабельную картинку, которая подгружается по внешнему URL(хранящемся в поле объекта детали), при клике на которую, она бы загружается в полном размере?

Версия sales enterprise 7.9.1.3284

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

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

Здравствуйте, таких базовых средств в bpm'online нет, но, обладая навыками разработчика вы можете попробовать сделать это самостоятельно.
Вот это может вам пригодится как пример:
https://www.w3schools.com/howto/howto_css_modal_images.asp
И если вы захотите сделать это как собственный контрол, то, вот эта инструкция так же будет полезной: svoy_kontrol__generator__diff.doc

Спасибо.

Крапивницкий Николай,

Добрый день! Получилось реализовать задачу? 

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

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

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

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

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

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

Как вариант вы можете загружать картинку в деталь "Файлы и ссылки" На закладке "Файлы и примечания" продукта. В таком случае картинка будет сохранена в базе в полном размере, и по клику на ее имя будет происходить ее загрузка или открытие (в зависимости от вашего браузера).

Добрый день!

Максим, идея с файлами и примечаниями интересная, возьму на заметку.

Алексей, дело в том, что в базе (в таблице SysImage) картинки хранятся в несжатом виде, т.к. попадают туда при интеграции из другой системы средствами sql через OPENROWSET. Возможно ли это как-то использовать?

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

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

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

Добрый день!
Александр, есть еще 2 варианта:
1. Реализовать свою логику при клике на изображение открывать его в модальном окне. В конфигурации есть примері использования. Метод ModalBox.show() вернет контейнер, в который вы сможете отрендерить нужный вам контент.
2. Взять готовые плагины, например у jQuery, и реализовать его использование.

Добрый день, возобновлю тему. Можно ли сразу в ModalBox отрендерить картинку, без написания собственного модуля?

Добрый день!
Да, возможно. Метод show() вернет вам контейнер, а дальше можете делать с ним что угодно. Пример:

var container = ModalBox.show({
	width: "200px",
	height: "100px"
});
var imageHtml = '<image src="http://localhost/bpmonlineSales770/0/img/entity/hash/SysImage/Data/dc0d78a5-18ce-4cbb-9afa-2d7d0143f4a6"/>';
Ext.DomHelper.insertHtml("afterBegin", container.dom, imageHtml);

Здесь выводится фото какого-то контакта

Спасибо, то, что нужно!

Спасибо, то, что нужно!

А как его можно корректно отмасштабировать, вне зависимости от исходных размеров?

style="max-height:100%;max-width: 100%"

Явное указание стилей проблему не решило. По ширине фото вписывается, а по высоте обрезается. Также не удалось отцентровать фото при масштабировании по ширине.

Здравствуйте, Александр!

Пример реализации Вы можете найти в продукте Real Estate на детали "Галерея" раздела "Объекты".

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

Ну ведь на самом деле неудобно добавлять изображение в текст сообщения на community.
Тэги [img] проставить несложно и привычно, вопрос в том, что файл надо загружать на сторонний ресурс для ускорения процесса.
Кнопка загрузки изображения или на данный момент убрана, или я ее не сумел быстро найти - хотя пользователь не начинающий:smile:
У меня платный аккаунт на Flickr, позволяющий хранить любые изображения без ограничения размеров и их количества, но размещать там скриншоты нелогично - хотя бы по причине того, что корпоративными политиками где-либо может быть запрещена загрузка изображений с данного ресурса и картинки в тексте увидят не все...

Поделиться

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

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

Ждем, ждем:smile:

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

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

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

как запиcать(сохранить) картинку из интернета по имеющемуся URL?

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

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

Александр, некоторые примеры по добавлению фото (картинки) в карточку и на деталь описаны здесь (архив), что касается сохранения файла из базы, то можете посмотреть, как это реализовано в системе - деталь "Файлы".

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

А как загрузить файл(изображение) из интернета?

Может есть какая-то функция LoadFromURL, аналогично

dlData.Dataset.DataFields('Photo').LoadFromFile(FileName.Value); // Загрузка изображения из файла в поле данных
?

Насколько я знаю такой функции нет. Тут делать надо в 2 этапа. По URL сохранить в файл, а тогда уже из файла в базу. Нужно поискать методы IE, которыми это можно реализовать.

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

Доброго дня! Підскажіть хто знає де розміщуються зображення завантажені в шаблон звіту через дизайнер звітів. І як отримати посилання, щоби дане зображення вставити наприклад в звіт побудованний в Word?

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

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

Добрый день, Юрий! Изображения хранятся в самом сервисе Fast Report. Для выгрузки изображения Вам необходимо в Террасофт Администраторе найти необходимый сервис, открыть его, найти необходимое изображение и выгрузить его в файл.

Алексей, а з об'єкта Services.GetNewItemByUSI('fr_DataGrid') можу я витягти даний файл?

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

Мабуть так. Потрібно логотип нашої компанії, який я вставив в шаблон звіту Fast Report, щоб вставлявся в звіт Word. Звіт Word створюється скриптом Террасофт. Я так зрозумів, що прийдеться створювати окремий сервіс il_ для зберігання логотипу?

Если документ Word создается из шаблона, то можно вставить изображение сразу в шаблон. Если документ полностью создается из скрипта тогда действительно надо создать сервис il_ и из него выбирать необходимое изображение.

Спасибо, Алексей

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

Если при создании отчета Word перед Вами стоит задача вставить в этот отчет картинку (изображение), хранящееся на закладке "Файлы" менеджера деталей записи, могу Вам предложить один из вариантов решения.

1. Прежде всего хочу обратить Ваше внимание на то, что рисунок из закладки "Файлы" менеджера деталей не получится поместить куда-либо без предварительной выгрузки его на диск. Поэтому для этого сперва необходимо использовать стандартную функцию LoadFileFromDatabase (ID, FileName, IsTemporary, WithNativeFileName),которая описана в скрипте scr_FileUtils.
2. Далее в момент создания отчета необходимо вызывать объект Word.
В свою очередь объект Word содержит Selection, который позволяет выполнять многие операции в том числе вставку картинки. Пример его использования для вставки картинки следующий:

Selection.InlineShapes.AddPicture ('имя файла картинки с указанием пути', false, true).

'Имя файла картинки с указанием пути' Вы получите в результате отработки LoadFileFromDatabase.
В результате изображение поместится в начало отчета Word.

Для того, чтобы изображение помещалось не в начало документа Word, а в любое другое место, можем посоветовать следующее:
1. Вставить с текст шаблона MS Word метку, например .
2. Затем в скрипте реализовать примерно следующее:

if (Selection.Find('>')){
//вставка в то самое место, где найдена метка
}

Желаю удачи!

С уважением,
Мельникова Екатерина

Поделиться

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

Большое спасибо!

Тот же механизм надо использовать, если надо вставить в отчет Word поле "Описание" (которое Blob)?

В случае, если надо вставить в отчет Word поле "Описание", тогда можно для выгрузки воспользоваться функцией:

function LoadFileFromDataset(FileName, Dataset, DataFieldName) {                 
            var BlobField = Dataset.DataFields.ItemsByName(DataFieldName);
            BlobField.SaveToFile(FileName);
            return FileName;
}

А

Selection.InlineShapes.AddPicture ('имя файла картинки с указанием пути', false, true)

должно работать в принципе без изменений.

Желаю удачи!

Добавление в код строки с Selection.Find('<>') вызывает ошибку выполнения Microsoft JScript: "Объект не поддерживает это свойство или метод". В чем может быть дело?

"Еременко Надежда Валерьевна" написал:

Добавление в код строки с Selection.Find('<>') вызывает ошибку выполнения Microsoft JScript: "Объект не поддерживает это свойство или метод". В чем может быть дело?


Добрый день!
Надежда, какую версию Terrasoft Вы используете?

версия XRM 3.3.
Решить проблему удалось с помощью следующего кода:

Selection.Find.Text = "<>";
 
if (Selection.Find.Execute())
{
       //вставка в то самое место, где найдена метка
}
Войдите или зарегистрируйтесь, чтобы комментировать