Произвольное представление номенклатуры
Теперь, используя реквизит Вид номенклатуры, зададим произвольное представление номенклатуры в интерфейсе «1С:Предприятия».
Представление номенклатуры используется везде, где отображаются поля, ссылающиеся на элементы справочника Номенклатура. Такие поля мы видим в табличной части наших документов, в регистре сведений, регистре накопления и т. д.
Стандартное представление номенклатуры (как и любого другого элемента справочника) определяется свойством справочника Основное представление. По умолчанию это свойство установлено в значение В виде наименования (рис. 10.4).
Поэтому, например, в табличной части документов в колонке Номенклатура мы видим не ссылку на номенклатуру, а ее наименование (рис. 10.5).
Было бы удобно, чтобы при отображении ссылок на номенклатуру в интерфейсе «1С:Предприятия» рядом с наименованием номенклатуры показывался бы и ее вид (материал или услуга).
Выполним это изменение.
В режиме «Конфигуратор»
Механизм формирования представления объекта конфигурации состоит из двух этапов: определение реквизитов, участвующих в формировании представления, и собственно формирование представления. Для этого используются обработчики событий ОбработкаПолученияПолейПредставления и ОбработкаПолуче- нияПредставления менеджера соответствующего объекта.
Вернемся в конфигуратор, выделим в дереве объектов конфигурации справочник Номенклатура, вызовем контекстное меню и выберем пункт Открыть модуль менеджера
Открывшийся модуль менеджера справочника заполним следующим образом (листинги 10.1, 10.2).
листинг 10.1. Модуль менеджера справочника «Номенклатура»
|
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; Поля.Добавить("Наименование"); Поля.Добавить("ВидыНоменклатуры");
КонецПроцедуры
листинг 10.2. Модуль менеджера справочника «Номенклатура»
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ЗначениеЗаполнено(Данные.ВидыНоменклатуры) Тогда
Представление = Данные.Наименование + " (" +
НРег(Строка(Данные.ВидыНоменклатуры)) + ")";
Иначе
Представление = Данные.Наименование;
КонецЕсли;
КонецПроцедуры
Прокомментируем этот код.
В обработчике события ОбработкаПолученияПолейПредставления мы описываем, какие реквизиты будут участвовать в формировании представления документа. Для этого сначала мы устанавливаем параметр СтандартнаяОбработка в значение Ложь, а затем добавляем в массив Поля нужные реквизиты справочника. Если параметр нужные реквизиты справочника. Если параметр СтандартнаяОбработка в обработчике не установлен в значение Ложь, то массив Поля будет заполнен реквизитами, используемыми для формирования стандартного представления данного объекта (в нашем случае – это Наименование).
В обработчике события ОбработкаПолученияПредставления мы описываем алгоритм получения параметра Представление из массива полей, заданных нами в предыдущем обработчике. Данные, необ- ходимые для формирования представления, передаются с помощью параметра Данные типа Структура. Для этого сначала мы устанав- ливаем параметр СтандартнаяОбработка в значение Ложь, а затем получаем представление номенклатуры путем добавления к ее наименованию вида номенклатуры, заключенного в скобки. Если параметр СтандартнаяОбработка в обработчике не установлен в значение Ложь, то система попытается сформировать стандартное представление объекта, исходя из переданных данных.
|
В режиме «1С:Предприятие»
Запустим «1С:Предприятие» в режиме отладки.
В результате при открытии документа Оказание услуги в табличной части мы видим заданное нами представление номенклатуры (рис. 10.6).
Рис.