Про поле Атрибуты окна в настройках справочника

А вот подскажите мне, уважаемые коллеги, как в коробочной версии задумано вот это поле использовать?


Это окно изменения реквизитов зарегистрированного справочника - стандартный интерфейс, меню- файл- справочники- настройка справочников- [выбираем любой]- изменить.
Интересно стало, если туда 'IsReadOnly', true добавить, по идее в вызываемом окне будет запрет редактирования и так далее? Дебаггером покопаться и отследить могу но это ж время, может известно уже все давно?
И безмерно благодарен буду за пример того, что можно туда вписать и в каком формате:smile:

Нравится

9 комментариев

Формат добавления атрибутов в этом поле следующий:

<Название атрибута1>=<Значение атрибута1>;<Название атрибута2>=<Значение атрибута2>;...

Например:

DatasetUSI=ds_Account;EditWindowUSI=wnd_AccountEdit;RecordID={251FB9AC-C17E-4DF7-A0CB-D591FDB97462}

Необходимо обратить внимание, что в результате значения атрибутов будут строковыми. Поэтому в случае булевых атрибутов (Upd: если им необходимо установить значение false) значение вообще не нужно указывать:

HideButtonsFrame=;...

Также необходимо учитывать, что атрибуты устанавливаются для окна реестра.

Спасибо за подробное объяснение!
В принципе суть вопроса понял, попробовал добавить пару атрибутов - но не преуспел (пример первый - для окна реестра "Должности" справочника должностей назначаем атрибут HideButtonsFrame=; но при показе окна справочника по-прежнему все кнопки на месте; пример второй - пробовал передать произвольный атрибут test=test тому же окну - не сумел получить в окне опять же)
видимо передаются они в окно реестра только в определенной ситуации, а не всегда при показе окна

На какой версии Вы пробовали добавлять атрибуты?

Посмотрите в Вашей версии код открытия окна справочника. В версии 3.3.2 определение атрибутов происходит в функции ShowDictionaryWindow скрипта scr_WindowUtils:

	if (Attributes != null) {
		var AttrAr = Attributes.split(';');
		for (var i = 0; i < AttrAr.length; i++) {
			var NameValueAr = AttrAr[i].split('=');
			SetAttribute(GridAreaWindow, NameValueAr[0], NameValueAr[1]);
		}
	}

Проверьте также код действия DictionaryMenuItemOnExecute в скрипте scr_Main. В конце функции должны быть строки:

var Attributes = Dataset.ValAsStr('Attributes');
ShowDictionaryWindow(DatasetCode, GridAreaWindowCode, EditWindowCode,
Caption, Attributes);

"Александр Кудряшов" написал:для окна реестра "Должности" справочника должностей назначаем атрибут HideButtonsFrame=;

Что-то невнимательный я с утра... Кнопки и будут на месте, поскольку Вы фактически присваиваете этому атрибуту значение false. Для того, чтобы они спрятались, нужно его установить в true, то есть присвоить любое значение кроме пустой строки:

HideButtonsFrame=true;

Такая функция есть. Попробовал еще раз - получилось. Раньше пытался поймать атрибуты в окне выбора значения "Должности" из карточки Контакта, там просто оно другое:smile:
попробовал именно реестр самого справочника, вызванного через меню справочники - передается!

Немного подправил первоначальное объяснение.

"Лабьяк Олег Игоревич" написал:Что-то невнимательный я с утра... Кнопки и будут на месте, поскольку Вы фактически присваиваете этому атрибуту значение false. Для того, чтобы они спрятались, нужно его установить в true, то есть присвоить любое значение кроме пустой строки:

Упс:redface: 8 утра однако было... вот и false присвоил...

Да я тоже не совсем однозначно объяснил... Прошу прощения.

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