Кастомизация
18
Авг
0

Добавление кнопок Следующая/Предыдущая на форму объектов

После закрытия и открытия кучи окон из представления это занятие может надоесть даже стойкому юзверу. Поэтому Капитан Очевидность считает, что наличие кнопок Предыдущая/Следующая на форме какого-либо объекта довольно сильно облегчит ему жизнь! Щас их и добавим…

Стандартные объекты

Добавьте следующий XML-код в ISV.Config, чтобы добавить кнопки Следующая/Предыдущая для объекта Бизнес-партнер:

<Entity name="account">
<ToolBar ValidForCreate="0" ValidForUpdate="1">
<Button JavaScript="
	if (window.opener.document.all['crmGrid'] != null) {
		var _cwrRecordIndex;
		var _cwrGrid=window.opener.document.all['crmGrid'].InnerGrid;
		var _cwrRecords=_cwrGrid.AllRecords;
		for (var i=0; i&lt;_cwrRecords.length; i++) {
			if (_cwrRecords[i ][0] == crmForm.ObjectId) {
				if (i!=0) {
					window.location.href=window.location.href.split('?')[0]+'?id='+_cwrRecords[i-1][0];
					_cwrGrid.UnselectRecords();
					_cwrGrid.SelectRecords(i-1,i-1,false);
				}
			}
		}
	} else {
		alert('Эта кнопка работает только когда запись открыта из представления.');
	}"
	Client="Web" Icon="/_imgs/btn_on_up.gif">
	<Titles><Title LCID="1049" Text="Предыдущая"/></Titles><ToolTips><ToolTip LCID="1049" Text="Предыдущая"/></ToolTips>
</Button>
<Button JavaScript="
	if (window.opener.document.all['crmGrid'] != null) {
		var _cwrRecordIndex;
		var _cwrGrid=window.opener.document.all['crmGrid'].InnerGrid;
		var _cwrRecords=_cwrGrid.AllRecords;
		for(var i=0; i&lt;_cwrRecords.length; i++) {
			if (_cwrRecords[i ][0] == crmForm.ObjectId) {
				if (i!=_cwrRecords.length-1) {
					window.location.href=window.location.href.split('?')[0]+'?id='+_cwrRecords[i+1][0];
					_cwrGrid.UnselectRecords();
					_cwrGrid.SelectRecords(i+1,i+1,false);
				}
			}
		}
	} else {
		alert('Эта кнопка работает только когда запись открыта из представления.');
	}" 
	Client="Web" Icon="/_imgs/btn_on_down.gif">
	<Titles><Title LCID="1049" Text="Следующая"/></Titles><ToolTips><ToolTip LCID="1049" Text="Следующая"/></ToolTips>
</Button>
</ToolBar> 
</Entity>

Аналогичным образом можно добавить такие кнопки и для любого другого объекта просто поменяв имя объекта (например, <Entity name=»contact»>).

Экспортируйте ISV.Confog обратно. Если Вы этого еще не сделали, то включите отображение настраиваемых меню в CRM системе: Параметры — Администрирование — Системные параметры — вкладка Настройка — секция Настраиваемые меню и панели инструментов – добавьте те клиенты, в которых хотите показывать кастомные кнопки!

Откройте какую-либо запись из представления Бизнес-партнеров. Вы увидите две новые кнопочки, щелкая по которым, Вы будете перемещаться по записям представления без необходимости открывать и закрывать кучу форм!



Кастомные объекты

Чтобы заставить этот код работать с кастомными объектами, его нужно немного изменить. Причина в том, что URL кастомных объекта общий для всех кастомных объектов. URL не только содержит GUID, но также содержит параметр, который называется etn (аббревиатура от Entity Type Name). Таким образом ссылаясь на кастомный объект, Вы должны включать в URL помимо GUID’а и id кастомного объекта. Поэтому, все, что от Вас требуется, так это найти в выше приведенном коде две строчки:

window.location.href=window.location.href.split('?')[0]+'?id='+_cwrRecords[i-1][0];

и замените их на:

window.location.href=window.location.href.split('?')[0]+'?id='+_cwrRecords[i+1][0]+'&amp;etn=new_customentity';

в которых вместо new_customentity подставьте id Вашего кастомного объекта (id объекта можете достать из URL строки, которую можете увидеть, открыв какую-либо запись этого объекта и нажав Ctrl + N)! Например, так:

window.location.href=window.location.href.split('?')[0]+'?id='+_cwrRecords[i-1][0]+'&amp;etc=10001';
Комментарии (0)

*

code