Всем привет!
Данная доработка дает возможность использовать в шаблонах сообщений детали пользовательских запросов (аналогично отчету Word).
В архиве - сервисы, которые нужно залить. Поскольку дорабатывал для 3.4.0, потому настоятельно рекомендую перед заливкой сравнить их с исходными.
Или следуя инструкции вставить необходимый код в нужные места в тех же сервисах. (Инструкция в архиве)
Спасибо Дмитрий,
Проверил на конфигурации 3.3.2.244, если подменить сервисы, все отрабатывает корректно
Здравствуйте Марина,
В ходе удаленного подключения проведенного в рамках инцидента 0100907 было показано, что на коробочной версии 3.3.2 все работает корректно. Не корректная работа в Вашем случае, связана с доработками в базовых скриптах интеграции с Outlook. Ждем от вас бэкап базы данных для решения вопроса в Вашем случае
Проверили еще раз
В 3.3.2 (коробка)
function AddSection(UserReportData, ID, TablePath, ParentID, ParentFieldPath, PrimaryFieldUID, Caption, MainTable) { var Section = new Object(); Section[spnID] = ID; Section[spnTablePath] = TablePath; Section[spnParentID] = ParentID; Section[spnParentFieldPath] = ParentFieldPath; Section[spnPrimaryFieldUID] = PrimaryFieldUID; Section[spnCaption] = Caption; Section[spnMainTable] = MainTable; var Sections = GetSections(UserReportData); Sections(ID) = Section; return Section; }
Сервисы с вложения Дмитрия Павлова
function AddSection(UserReportData, ID, TablePath, ParentID, ParentFieldPath, PrimaryFieldUID, Caption, MainTable, Top) { var Section = new Object(); Section[spnID] = ID; Section[spnTablePath] = TablePath; Section[spnParentID] = ParentID; Section[spnParentFieldPath] = ParentFieldPath; Section[spnPrimaryFieldUID] = PrimaryFieldUID; Section[spnCaption] = Caption; Section[spnMainTable] = MainTable; Section[spnTop] = Top?((Top>0)?Top:-1):-1; var Sections = GetSections(UserReportData); Sections(ID) = Section; return Section; }
Необходимо все оставить как в 3.3.2
function AddSection(UserReportData, ID, TablePath, ParentID, ParentFieldPath, PrimaryFieldUID, Caption, MainTable) { var Section = new Object(); Section[spnID] = ID; Section[spnTablePath] = TablePath; Section[spnParentID] = ParentID; Section[spnParentFieldPath] = ParentFieldPath; Section[spnPrimaryFieldUID] = PrimaryFieldUID; Section[spnCaption] = Caption; Section[spnMainTable] = MainTable; var Sections = GetSections(UserReportData); Sections(ID) = Section; return Section; }
т.е убрать строчку Section[spnTop] = Top?((Top>0)?Top:-1):-1; и аргумент Top с функции AddSection в скрипте scr_UserReportCommon
Всем привет!
Доработан механизм вставки детали в сообщение при автоматическом его отравлении.
Для применения обновления необходимо обновить файл scr_MailUtils и scr_OutlookUtils.
Рекомендую перед обновлением сверить Ваши файлы с исходными.
Спасибо Дмитрий, очень пригодилась ваши доработки.
Для того что бы использовать функциональность в 3.3.2.157 XRM
необходимо:
1.
"Яворский Алексей" написал:убрать строчку Section[spnTop] = Top?((Top>0)?Top:-1):-1; и аргумент Top с функции AddSection в скрипте scr_UserReportCommon
2. Добавить системную переменную MSOutlookMaxFileSize
3. Удалить весь код между
/* MODULE INCIDENTS */ ... /* MODULE INCIDENTS */
если у Вас нет модуля инциденты
Отредактированные скрипты для XRM 3.3.2 (без модуля инциденты) во вложении
Дмитрий просьба исправить грамматическую ошибку в коде
var Message = 'Ошыбка при обработке деталей шаблона сообщения.';
функция ReplaceDetailTemplate скрипт scr_MailUtils.
Еще момент, при формировании письма с окна просмотра отчетов FastReport, при нажатии Send by E-mail -> PDF version у меня вылетает эта ошибка.
Ошибка происходит в функции ReplaceDetailTemplate на строчке
var Sections = Params.Template.Query.Sections;
а вызывается ф-ия тут
function InternalSendMessage(Message, Params) { ReplaceDetailTemplate(Message, Params); if (Params.Template) { ...
Как бы в обычном письме Params.Template не определен, т.е нужно вызывать ReplaceDetailTemplate так :
function InternalSendMessage(Message, Params) { if (Params.Template) { ReplaceDetailTemplate(Message, Params); var Prop = ''; try { Prop = toJSON(Params.MessageLinks); } catch (e) { Prop = ''; } ...