Произвольное представление номенклатуры



Nbsp;

Лабораторная работа №10

Перечисления

До сих пор мы с вами не обращали внимания на то, что у нас нет никакого признака, по которому мы могли бы сказать, чем является конкретный элемент справочника Номенклатура: материалом или услугой. То, что все элементы справочника разложены у нас по некоторым группам, не может являться надежным критерием: группы можно удалить, переименовать, сгруппировать элементы по другим принципам…

 

Поэтому нам требуется некоторый признак, позволяющий однозначно определять принадлежность элемента справочника к материалам или услугам, независимо от изменения иерархической структуры справочника.

 

На этом занятии мы создадим у справочника Номенклатура специальный реквизит, тип значения которого образуется новым пока еще для нас объектом конфигурации Перечисление. Это поможет нам в дальнейшем легко определять, чем является элемент справочника Номенклатура: услугой или материалом.

 

Кроме этого, мы скорректируем процедуру проведения документа Оказание услуги и покажем, как работать с перечислением средствами встроенного языка.

 

Что такое перечисление

 

Объект конфигурации Перечисление предназначен для описания структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации. На основе объекта конфигурации Перечисление платформа создает в базе данных таблицу, в которой может храниться набор некоторых постоянных значений.

 

В реальной жизни этому объекту может соответствовать, например, перечисление вариантов указания цены («включая НДС», «без НДС»). Набор всех возможных значений, которые содержит перечисление, задается при конфигурировании системы, и пользователь не может изменять их, удалять или добавлять новые.

 

Из этого следует важная особенность перечисления: значения перечисления не «обезличены» для конфигурации, на них могут опираться алгоритмы работы программы.

 

Добавление перечисления в режиме «Конфигуратор»

 

Откроем конфигуратор и создадим сначала новый объект конфигурации Перечисление с именем ВидыНоменклатуры.

 

На закладке Данные добавим два значения перечисления: Материал и Услуга.

 

Для этого нажмем кнопку Добавить над списком значений перечисления (рис. 10.1).

 

Рис. 10.1.Данные перечисления«ВидыНоменклатуры»

 

Привязка номенклатуры к значениям перечисления «ВидНоменклатуры»

 

Чтобы привязать номенклатуру к значениям перечисления, мы сделаем следующее:  в режиме Конфигуратор создадим у справочника Номенклатура реквизит, который будет хранить значение перечисления;„ в режиме 1С:Предприятие проставим нужные значения этого реквизита для всех элементов справочника Номенклатура.

 

В режиме «Конфигуратор»

 

Добавим в справочник Номенклатура новый реквизит ВидНоменклатуры с типом ПеречислениеСсылка. ВидыНоменклатуры.

Для этого откроем окно редактирования объекта конфигурации Справочник Номенклатура и на закладке Данные нажмем кнопку Добавить над списком реквизитов справочника (рис. 10.2).

 

Рис. 10.2.Данные справочника«Номенклатура»

 

В режиме «1С:Предприятие»

 

После этого запустим «1С:Предприятие» в режиме отладки. В режиме 1С:Предприятие зададим для каждого элемента справочника Номенклатура соответствующее значение реквизита Вид номенклатуры (рис. 10.3). Теперь посмотрим, как можно применить новые данные, полученные благодаря использованию перечисления ВидыНоменклатуры.

 

Рис. 10.3.Данные справочника«Номенклатура»

 

Произвольное представление номенклатуры

 

Теперь, используя реквизит Вид номенклатуры, зададим произвольное представление номенклатуры в интерфейсе «1С:Предприятия».

 

Представление номенклатуры используется везде, где отображаются поля, ссылающиеся на элементы справочника Номенклатура. Такие поля мы видим в табличной части наших документов, в регистре сведений, регистре накопления и т. д.

 

Стандартное представление номенклатуры (как и любого другого элемента справочника) определяется свойством справочника Основное представление. По умолчанию это свойство установлено в значение В виде наименования (рис. 10.4).

 

Поэтому, например, в табличной части документов в колонке Номенклатура мы видим не ссылку на номенклатуру, а ее наименование (рис. 10.5).

 

 

 

Рис. 10.4.Свойство справочника«Основное представление»

 

 

 

Рис. 10.5.Документ«Оказание услуги»

 

Было бы удобно, чтобы при отображении ссылок на номенклатуру в интерфейсе «1С:Предприятия» рядом с наименованием номенклатуры показывался бы и ее вид (материал или услуга). Выполним это изменение.

 

В режиме «Конфигуратор»

Механизм формирования представления объекта конфигурации состоит из двух этапов: определение реквизитов, участвующих в формировании представления, и собственно формирование представления. Для этого используются обработчики событий ОбработкаПолученияПолейПредставленияи Обработка ПолученияПредставления менеджера соответствующего объекта.

Вернемся в конфигуратор, выделим в дереве объектов конфигурации справочник Номенклатура, вызовем контекстное меню и выберем пункт Открыть модуль менеджера

Открывшийся модуль менеджера справочника заполним следующим образом (листинги 10.1, 10.2).

 

Листинг 10.1.Модуль менеджера справочника«Номенклатура»

 

Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь; Поля.Добавить("Наименование"); Поля.Добавить("ВидНоменклатуры");

КонецПроцедуры

 

Листинг 10.2.Модуль менеджера справочника«Номенклатура»

 

Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь; Если ЗначениеЗаполнено(Данные.ВидНоменклатуры) Тогда

Представление = Данные.Наименование + " (" +НРег(Строка(Данные.ВидНоменклатуры)) + ")";

 

Иначе Представление = Данные.Наименование;

 

КонецЕсли;

КонецПроцедуры

 

Прокомментируем этот код.

 

В обработчике события ОбработкаПолучения Полей Представления мы описываем, какие реквизиты будут участвовать в формировании представления документа. Для этого сначала мы устанавливаем параметр СтандартнаяОбработка в значение Ложь, а затем добавляем в массив Поля нужные реквизиты справочника. Если параметр СтандартнаяОбработка в обработчике не установлен в значение Ложь, то массив Поля будет заполнен реквизитами, используемыми для формирования стандартного представления данного объекта (в нашем случае – это Наименование).

 

 В обработчике события ОбработкаПолученияПредставления мы описываем алгоритм получения параметра Представление из массива полей, заданных нами в предыдущем обработчике. Данные, необходимые для формирования представления, передаются с помощью параметра Данные типа Структура. Для этого сначала мы устанавливаем параметр СтандартнаяОбработка в значение Ложь, а затем получаем представление номенклатуры путем добавления к ее наименованию вида номенклатуры, заключенного в скобки. Если параметр СтандартнаяОбработка в обработчике не установлен в значение Ложь, то система попытается сформировать стандартное представление объекта, исходя из переданных данных

В режиме «1С:Предприятие»

Запустим «1С:Предприятие» в режиме отладки.

 

В результате при открытии документа Оказание услуги в табличной части мы видим заданное нами представление номенклатуры (рис. 10.6).


 

Рис. 10.6.Документ«Оказание услуги»

 

По аналогии с рассмотренным примером произвольные представ-ления объектов конфигурации можно задавать не только для спра-вочников, но и для документов, планов видов характеристик, планов счетов и т. п.

 


Дата добавления: 2018-06-01; просмотров: 3358; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!