Доброго времени суток!
Допустим, у меня есть раздел "Автомобили" с возможностью добавления новых автомобилей. В клиентской части мне необходимо отловить событие после добавления новой записи в этот раздел и добавить дополнительную логику на фронте. Думаю, должно быть что-то вроде "onItemInserted". Подскажите, пожалуйста,  как это лучше реализовать или какое название метода, который отрабатывает после вставки. Заранее благодарен.

Нравится

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

Добрый день!

 

На клиентской части в карточке редактирования Вы можете переопределить метод BasePageV2#onSaved

onSaved: function() {
	this.callParent(arguments);
},

Обратите внимание, если Вам нужно производить какие-то манипуляции с данными (пересчеты/обновления в других объектах и т.д.), то лучше использовать подход сигналов/событий объекта, тк при обработке на клиенте обрабатываться будет только "ручной" ввод, а во время импортов/интеграций/БП это логика останется "за бортом"

Добрый день!

 

На клиентской части в карточке редактирования Вы можете переопределить метод BasePageV2#onSaved

onSaved: function() {
	this.callParent(arguments);
},

Обратите внимание, если Вам нужно производить какие-то манипуляции с данными (пересчеты/обновления в других объектах и т.д.), то лучше использовать подход сигналов/событий объекта, тк при обработке на клиенте обрабатываться будет только "ручной" ввод, а во время импортов/интеграций/БП это логика останется "за бортом"

Если учитывать изменения на объекте процессами, интеграциями (или одновременно разными пользователями), лучше реализовать логику на событии вставки на уровне БП, а затем на сторону браузера передавать по ClientMessageBridge.

Лопатин Константин, Благодарю за совет! 

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

Если при создании отчета 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())
{
       //вставка в то самое место, где найдена метка
}
Показать все комментарии