19.05.2010, 12:33 | #41 |
Участник
|
ой,я не обратила внимания что Вы ту строку процитировали, сравнила со своей и... сорри))спаибо, попробую))
|
|
19.05.2010, 14:10 | #42 |
Участник
|
И у первого способа есть такой минус, что все происходит на онанлоад, поэтому там WF может и не сработать. Можно сделать на само назначение, тагда WF должен быть настроен на изменение поля, которое содержит наименование очереди, а скрипт должен быть примерно таким :
flagSave= false; window.MyRouteTo = function() { flagSave= false;//поскольку в назначении тоже идет сохранение, но при этом сохраняются старые данные assignObject(112); foronunload();//тут у нас уже корректно заполняется поле... crmForm._bSaving = false; crmForm.detachCloseAlert(); flagSave= true;//...поэтому можно сохранить crmForm.Save();//.. поле не должно поменяться, т.к. в функции есть проверка (должна быть) } var changeAction = document.getElementById('_MIassignObject112'); if(changeAction != null){ changeAction.action = 'MyRouteTo();'; } /*==============================================================*/ и на OnSave() добавить: if(flagSave) { foronunload(); } /*==============================================================*/ кроме того, если поставлен Audit (у нас второй вариант с mmcrm.ru), там корректно история изменений отображается P.S. проверьте саму функцию foronunload();!!!!!!!!!!!!!!!! а то там после чистки немного больше проверок осталось, чем надо, а может и меньше, но там уже просто P.S.S. у нас с OnSave() свои заморочки были, поскольку менялось не одно поле и у нас foronunload много проверок, вполне возможно, что при более простой функции, так дублировать не надо. Последний раз редактировалось NatK; 19.05.2010 в 14:37. |
|
19.05.2010, 14:27 | #43 |
Участник
|
Опять-таки, будет работать, если назначать из карточки, а если из грида (см. скриншот), то не будет работать. А запрещать пользователю назначать обращения пачками как-то нехорошо.
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
19.05.2010, 14:48 | #44 |
Участник
|
Народ, а подскажите, пожалуйста, как убрать кнопки "назначить" с общих панелей???
Чтобы только из самого обращения назначать. Не могу найти их в Isv.config и SiteMap, чтобы изменить само представление, да и в файле для обращений тоже нет ничего подобного. Где искать? |
|
19.05.2010, 14:51 | #45 |
Участник
|
Цитата:
А в общем можно и это событие отлавливать, где-то было оно... |
|
19.05.2010, 15:09 | #46 |
Участник
|
NatK, на mmcrm был пример как скрыть кнопки меню и кнопки на панели..
|
|
19.05.2010, 18:00 | #47 |
Участник
|
Был но вот чтобы скрыть, надо их найти в файлах ... а нету их там, во всяком случае в тех, которые экспортируются из CRM ... хардкодить не очень хотелось
|
|
19.05.2010, 22:29 | #48 |
Чайный пьяница
|
Их там быть и не может, потому что это - системные кнопки. Скрыть их можно только неподдерживаемыми способами. Универсальное решение - плагин.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
20.05.2010, 04:16 | #49 |
Участник
|
Плагином пыталась, но вот при каких событиях его запускать? В Plugin registration Tool невозможно поставить условие запуска Create QueueItem. Assign Incident не отрабатывает, если назначать Обращение не пользователю, а Списку ожидания. Пробовала там разные комбинации, но так и не получилось поймать момент назначения Списку ожидания. Буду очень рада, если подскажете, как настроить условия запуска плагина С самим плагином, надеюсь, проблем не будет, да и заготовка уже давно есть... только вот в нужный момент запустить не получается
|
|
20.05.2010, 08:32 | #50 |
Консультант-джедай
|
Если Вы о кнопке Назначить на панели инструментов представления объекта Обращение (та что на скриншоте), то добавьте в функцию window.onload() файла <сайт CRM>\CS\home_cases.aspx такой код:
X++: // Проверяем, что представление сформировано для объкта Обращение if (document.all.divGridParams.children["otc"].value == 112) { document.getElementById('_MBiftypeofValidateAssignfunctionValidateAssigndoActioncrmGrid112assign').style.display = "none"; }
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
|
За это сообщение автора поблагодарили: NatK (1). |
20.05.2010, 08:49 | #51 |
Участник
|
Спасибо огромное!
А как быть с этой же кнопкой в списках ожидания? У нее имя другое и само представление там другое. В этом же файле менять? |
|
20.05.2010, 09:08 | #52 |
Консультант-джедай
|
Нет, Добавьте такой код на функцию онлоад файла <сайт CRM>\Workplace\home_workplace.aspx
X++: // Проверяем, что представление сформировано для объкта Обращение if (document.all.divGridParams.children["otc"].value == 2029) { document.getElementById('mnuAssign').style.display = "none"; }
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
20.05.2010, 09:23 | #53 |
Чайный пьяница
|
Цитата:
Сообщение от NatK
Плагином пыталась, но вот при каких событиях его запускать? В Plugin registration Tool невозможно поставить условие запуска Create QueueItem. Assign Incident не отрабатывает, если назначать Обращение не пользователю, а Списку ожидания. Пробовала там разные комбинации, но так и не получилось поймать момент назначения Списку ожидания. Буду очень рада, если подскажете, как настроить условия запуска плагина С самим плагином, надеюсь, проблем не будет, да и заготовка уже давно есть... только вот в нужный момент запустить не получается
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: NatK (1). |
20.05.2010, 09:23 | #54 |
Участник
|
Не получается - кнопка на месте.
А где можно найти список этих кодов? они соответствуют кодам объектов? Как найти название кнопки знаю, а вот в каком файле потом писать, что она невидима и какое поставить value откуда брать? можно где-то про это почитать? а то ведь не последний же раз кнопки приходится скрывать, не спрашивать же Вас каждый раз |
|
20.05.2010, 09:31 | #55 |
Консультант-джедай
|
Цитата:
Сообщение от NatK
Не получается - кнопка на месте.
А где можно найти список этих кодов? они соответствуют кодам объектов? Как найти название кнопки знаю, а вот в каком файле потом писать, что она невидима и какое поставить value откуда брать? можно где-то про это почитать? а то ведь не последний же раз кнопки приходится скрывать, не спрашивать же Вас каждый раз Коды можете найти в http://crmserver/sdk/list.aspx Да, они соответствуют кодам объектов Почитать негде и строгой закономерности к сожелению я не заметил (наверно это наследственное) нада лазить по html-структурей сайта CRM и исследовать
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
20.05.2010, 09:39 | #56 |
Участник
|
Спасибо Все заработало
Самое интересное, что для первого варианта я поместила код в начало функции и все работает. В случае со списком ожидания код был помещен в конец функции, но перед комментариями и пока не поставила код после них, ничего не работало. Тут, видимо, только методом проб и ошибок нужный вариант находится |
|
20.05.2010, 09:41 | #57 |
Участник
|
Цитата:
Сообщение от a33ik
Потому что необходимо вешать на Route сообщение этот плагин.
|
|
20.05.2010, 10:14 | #58 |
Участник
|
Денис,прописала абсолютный путь, не помогло...
Причем в функции getQueue guid очереди получается, ошибку не выдает никакую, а вот в GetAttributeValueFromID выдает что 1 ошибка var errorCount = resultXml.selectNodes('//error').length; alert("errorCount : "+errorCount); Последний раз редактировалось Hjvfirf; 20.05.2010 в 10:29. |
|
20.05.2010, 13:58 | #59 |
Участник
|
всем спасибо за помощь! обошла по-другому: заказчик захотел отдельную кнопку "отправить на рассмотрение", а я на нее уже повесил БП который и в очередь ставит и письмо отправляет и т.д. жду рецензии заказчика))
|
|
|
|