1С Программирование. Перечисления

Практическая работа

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

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

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

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

Откройте конфигуратор и создайте новый объект Перечисление с именем ВидыНоменклатуры. На закладке Данные добавьте два значения перечисления: Материал и Услуга.



















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

Для привязки номенклатуры к значениям перечисления, сделаем следующее:

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

В режиме 1С: Предприятие проставим нужные значения этого реквизита для всех элементов справочника Номенклатура.

Добавьте в справочник Номенклатура новый реквизит

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

Запустите 1С: Предприятие в режиме отладки. Зайдите в Учет материалов – Номенклатура. Задайте каждому элементу справочника соответствующее значение реквизита Вид номенклатуры.
















































Регистрация расхода только номенклатуры Материал

Вспомните, что в 5й работе, когда создавались движения документа ОказаниеУслуги по регистру накопления ОстаткиМатериалов, мы сказали, что

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

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

Откройте модуль документа ОказаниеУслуги (контекстное меню документа – Открыть модуль объекта) и добавьте в обработчик события ОбработкаПроведения это условие. Жирным выделены новые строки.

Процедура ОбработкаПроведения(Отказ, Режим)

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

Данный фрагмент построен конструктором.

При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Движения.ОстаткиМатериалов.Записывать = Истина;

Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл

Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда

// регистр ОстаткиМатериалов Расход Движение = Движения.ОстаткиМатериалов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;

Движение.Склад = Склад;

Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;

КонецЕсли;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

Добавленный текст исключает выполнение операторов цикла для тех строк табличной части документа, в которых номенклатура не является материалом.

Запустите 1С: Предприятие в режиме отладки. Откройте список документов Оказание услуг. Откройте документ Оказание услуги №1

внесите в него следующие изменения:

Удалите из табличной части строку, содержащую Транзистор philips

Добавьте услугу – Подключение воды

Добавьте материал – Шланг резиновый.


























Заметьте, что цены подставляются автоматически из регистра сведений Цены. Проведите документ кнопкой Провести. Перейдите в Остатки материалов через панель навигации.












Как видите, в движения по регистру Остатки материалов включаются только строки, содержащие материалы. Запись про услугу Подключение воды в движения не попала.

Контрольные вопросы


· Для чего предназначен объект Перечисление

Как создать новое перечисление

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



Приложенные файлы

  • doc Perechisl
    Размер файла: 342 kB Загрузок: 7