|  16.04.2012, 17:34 | #1 | 
| Участник | Доступность полей на форме 
			
			Добрый день! Подскажите, пожалуйста, как программно сделать поле формы недоступным для изменения? Версия CRM 4.0 Последний раз редактировалось probka; 16.04.2012 в 18:32. | 
|  | 
|  16.04.2012, 18:00 | #2 | 
| Консультант-джедай | 
			
			Xrm.Page.ui.controls.get(fieldName).setDisabled(true);
		 
				__________________ Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать!  Блога | 
|  | |
| За это сообщение автора поблагодарили: probka (1). | |
|  17.04.2012, 01:06 | #3 | 
| Участник | 
			
			crmForm.all.имя_поля.Disabled = true;
		 | 
|  | |
| За это сообщение автора поблагодарили: probka (1). | |
|  17.04.2012, 10:46 | #4 | 
| Участник | 
			
			Это будет работать в CRM2011. В CRM04 crmForm.all.[fieldname].Disabled = true; Обратите внимание, что если Вы программно измените значение поля, которое установлено как Disabled его изменения не попадут в CRM. Для єтого нужно принудительно отослать поле на изменение. Делается это след. строкой crmForm.all.[fieldname].ForceSubmit = true; | 
|  | 
|  17.04.2012, 12:52 | #5 | 
| Участник | |
|  | 
|  17.04.2012, 14:04 | #6 | 
| Участник | 
			
			Проверьте доходит ли Ваш программа до этой строки. Если поставить перед этой строкой alert('1'); сообщение появится? | 
|  | |
| За это сообщение автора поблагодарили: probka (1). | |
|  17.04.2012, 14:17 | #7 | 
| Участник | 
			
			Вы правы, сообщение не появилось. Значит, программа просто не доходит до этой строки. Но строка стоит в событии OnLoad в самом начале, и событие сделано активным. Почему не срабатывает код - ума не приложу.
		 | 
|  | 
|  17.04.2012, 14:24 | #8 | 
| Участник | 
			
			Ошибки на форме не возникает? Вы не забыли опубликовать форму?
		 | 
|  | 
|  17.04.2012, 14:25 | #9 | 
| Участник | 
			
			Publish сделали? возможно у вас там синтаксическая ошибка? код тогда бежать не будет 
				__________________ Читайте SDK!!! | 
|  | 
|  18.04.2012, 09:03 | #10 | 
| Участник | 
			
			Да, действительно была ошибка в процедуре. Спасибо. Но теперь другая проблема. Это поле имеет тип дата, само оно скрывается, а кнопка выбора даты все равно остается активной. Подскажите, пожалуйста, как сделать эту кнопку неактивной?
		 | 
|  | 
|  18.04.2012, 09:24 | #11 | 
| Участник | Цитата: Выставите код. 
				__________________ Читайте SDK!!! | 
|  | |
| За это сообщение автора поблагодарили: probka (1). | |
|  18.04.2012, 09:29 | #12 | 
| Участник | 
			
			Спасибо, получилось.
		 | 
|  | 
|  18.04.2012, 09:44 | #13 | 
| Участник | 
			
			А как сделать на форме недоступными все поля, кроме нескольких?
		 | 
|  | 
|  18.04.2012, 09:53 | #14 | 
| Участник | 
			
			Например: Кастомизацией.
		 
				__________________ Читайте SDK!!! | 
|  | 
|  18.04.2012, 10:05 | #15 | 
| Участник | 
			
			Общей функции вообще нет, но можно программно пробежаться по всем полям и установить у них Disable в значение true X++: DisableFormFields = function(onOff)
{   
	var iLen = crmForm.all.length;
    for (i = 0; i < iLen; i++)
	{   
		o = crmForm.all[i];  
		switch (o.tagName)  
		{  
			case "INPUT": 
			case "SELECT": 
			case "TEXTAREA":
			case "IMG":
			case "IFRAME":
			if (o.id != "leadqualitycode") 
			{  
				o.disabled = onOff; 
			} 
			break; 
			default: 
				break; 
		} 
	}  
}Здесь необходимо через или перечислить поля, для которых это срабатывать не будет. if (o.id != "leadqualitycode" || o.id !="myfieldid2" ) Источник http://blogs.infinite-x.net/2007/11/...on-a-crm-form/ Вот здесь представлен пример для запрета редактирования полей во вкладке. http://danielcai.blogspot.com/2010/0...-form-tab.html Последний раз редактировалось g.Naukovych; 18.04.2012 в 10:09. | 
|  | |
| За это сообщение автора поблагодарили: probka (1). | |
|  18.04.2012, 10:16 | #16 | 
| Участник | 
			
			Спасибо! Все получилось.
		 | 
|  |