Это старая версия документа!
Содержание
Коротко об дополнительных реквизитах/сведениях
Задача: оснастить документ/справочник дополнительными реквизитами или сведениями.
Настройка объектов с дополнительными реквизитами
Нужно у объекта создать табличную часть ДополнительныеРеквизиты с реквизитами:
| Имя | Тип | Подсказка |
|---|---|---|
Свойство | ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения | Дополнительный реквизит |
Значение | Характеристика.ДополнительныеРеквизитыИСведения | Значение дополнительного реквизита |
ТекстоваяСтрока | Строка неограниченной длины | Полный текст строкового дополнительного реквизита |
Реквизиту Значение в свойстве Связи параметров выбора установить связь: Отбор.Владелец (ДополнительныеРеквизиты.Свойство).
1. В форме объекта рекомендуется создать специальную группу полей или страницу с наименованием ГруппаДополнительныеРеквизиты для размещения элементов управления, редактирующих свойства объекта.
2. В обработчике события ПриСозданииНаСервере формы объекта необходимо выполнить вызов:
- ПриСозданииНаСервере
// СтандартныеПодсистемы.Свойства ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты"); УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры); // Конец СтандартныеПодсистемы.Свойства
где ГруппаДополнительныеРеквизиты – имя группы формы, созданной на шаге 2, в которой будут располагаться поля формы, предназначенные для редактирования дополнительных реквизитов. Если этот параметр не указывать, то элементы управления для редактирования свойств будут размещаться в нижней части формы.
3. этот пункт из ИТС пропускаем
4. В модуле формы каждого объекта со свойствами необходимо добавить процедуру
- ФормаОбъекта
#Область ОбработчикиКомандФормы // СтандартныеПодсистемы.Свойства &НаКлиенте Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено) УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка); КонецПроцедуры // Конец СтандартныеПодсистемы.Свойства #КонецОбласти
5. В обработчике события ПриОткрытии добавить код:
- ПриОткрытии
// СтандартныеПодсистемы.Свойства УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); // Конец СтандартныеПодсистемы.Свойства
6. В обработчике события ОбработкаОповещения добавить код:
- ОбработкаОповещения
// СтандартныеПодсистемы.Свойства Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда ОбновитьЭлементыДополнительныхРеквизитов(); УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); КонецЕсли; // Конец СтандартныеПодсистемы.Свойства
7. Добавить вспомогательные процедуры:
- ФормаОбъекта
#Область СлужебныеПроцедурыИФункции // СтандартныеПодсистемы.Свойства &НаСервере Процедура ОбновитьЭлементыДополнительныхРеквизитов() УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект); КонецПроцедуры &НаКлиенте Процедура ОбновитьЗависимостиДополнительныхРеквизитов() УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); КонецПроцедуры &НаКлиенте Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент) УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); КонецПроцедуры // Конец СтандартныеПодсистемы.Свойства #КонецОбласти
8. В обработчике события ПриЧтенииНаСервере добавить код:
- ПриЧтенииНаСервере
// СтандартныеПодсистемы.Свойства УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); // Конец СтандартныеПодсистемы.Свойства
9. В обработчике события ОбработкаПроверкиЗаполненияНаСервере добавить код:
- ОбработкаПроверкиЗаполненияНаСервере
// СтандартныеПодсистемы.Свойства УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты); // Конец СтандартныеПодсистемы.Свойства
10. В обработчике события ПередЗаписьюНаСервере добавить код:
- ПередЗаписьюНаСервере
// СтандартныеПодсистемы.Свойства УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект); // Конец СтандартныеПодсистемы.Свойства
Настройка объектов с дополнительными сведениями
Перечислить типы объектов с дополнительными сведениями в составе определяемого типа ВладелецДополнительныхСведений. Поддерживаемые типы объектов: документы, справочники, планы видов характеристик, планы счетов, планы видов расчета, бизнес-процессы и задачи.
Настройка динамических списков
Для возможности отображения дополнительных реквизитов и сведений в формах списков объектов со свойствами необходимо добавить поле Ссылка из запроса динамического списка в таблицу формы, связанную с этим динамическим списком. При этом добавленное поле Ссылка следует по умолчанию скрыть от пользователей, сняв флажок Видимость в свойстве Пользовательская видимость.
Настройка наборов свойств объектов
Тут описан простой случай: у всех элементов/документов единый набор доп реквизитов/сведений, не зависящий от самих элементов/документов.
В процедуре ПриПолученииПредопределенныхНаборовСвойств общего модуля УправлениеСвойствамиПереопределяемый описать предопределенный набор свойств с именем по шаблону Справочник_<ИмяОбъекта> (если объект – справочник; Документ_<ИмяОбъекта>, если объект – документ, и т.д., например, Справочник_Сотрудники, Документ_АвансовыйОтчет, БизнесПроцесс_Продажа), а также указать уникальный идентификатор.
- Пример
&После("ПриПолученииПредопределенныхНаборовСвойств") Процедура ФЕС_ПриПолученииПредопределенныхНаборовСвойств(Наборы) // Вставить содержимое метода. Набор = Наборы.Строки.Добавить(); Набор.Имя = "Документ_ФЕС_КартаДвиженияУпаковки"; Набор.Идентификатор = Новый УникальныйИдентификатор("e1331e45-669c-45c0-b7bf-36a70cb61e31"); Набор = Наборы.Строки.Добавить(); Набор.Имя = "Документ_ФЕС_Рейс"; Набор.Идентификатор = Новый УникальныйИдентификатор("e1331e45-669c-45c0-b7bf-36a70cb61e32"); КонецПроцедуры
Идентификатор этот должен указывать на элемент справочника НаборыДополнительныхРеквизитовИСведений
- Пример
ид = Новый УникальныйИдентификатор("e1331e45-669c-45c0-b7bf-36a70cb61e32"); спр = справочники.НаборыДополнительныхРеквизитовИСведений.ПолучитьСсылку(ид);
Если такого элемента нет, то его нужно создать. Возможно, есть способ при помощи инструментов БСП, но я его не нашел. сделал через СоздатьЭлемент. Важно: у созданного элемента должно быть установлено свойство Используется.
Настройка дополнительных характеристик объектов метаданных
Для каждого объекта конфигурации со свойствами необходимо открыть и заполнить диалог редактирования дополнительных характеристик. На скрине пример. Если у объекта есть доп. реквизиты, то используете первую строку, если есть доп. сведения, то вторую.
И теперь можно сохраняться и пользоваться доп реквизитами и свойствами у нового справочника/документа. Обновление вспомогательных данных вроде не требуется.