Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания 1С8.0_Продолжение.doc
Скачиваний:
20
Добавлен:
01.03.2016
Размер:
1.87 Mб
Скачать

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

Объект конфигурации Перечисление

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

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

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

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

Реорганизация справочника Номенклатура

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

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

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

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

Теперь посмотрим, как можно использовать новые данные, полученные благодаря использованию перечисления «ВидыНоменклатуры».

Изменение процедуры проведения документа ОказаниеУслуги

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

Теперь мы займемся тем, что доработаем документ таким образом, чтобы в регистре появлялись только записи, относящиеся к расходу материалов. Эта доработка будет не совсем эффективна с точки зрения производительности, зато позволит нам получить нужные данные в регистре «ОстаткиМатериалов».

Более эффективный вариант обработки проведения этого документа мы рассмотрим после изучения главы, рассказывающей о механизме запросов 1С:Предприятия 8.0.

Скорректируем движения документа, исключив из обработки те строки табличной части, в которых находятся услуги. Для этого в обработчик события «ОбработкаПроведения», расположенный в модуле документа «ОказаниеУслуги», добавим следующий текст (добавленный текст выделен жирным шрифтом):

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

//{{_КОНСТРУКТОРЛВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, // внесенные вручную изменения будут утеряны!!!

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

Если ТекСтрокаПереченьНоменклатуры.Номеиклатура.ВидНоменклатуры<>

Перечисления.ВидыНоменклатуры.Материал тогда Продолжить; КонецЕсли;

// регистр ОстаткиМатериалов Расход

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

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

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

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

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

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

КонецЦикла;

// записываем движения регистров Движения.ОстаткиМатериалов.Записать()-

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

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

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

Запустим 1С:Предприятие в режиме отладки и проверим работу процедуры проведения документа «ОказаниеУслуги».

Откроем документ Оказание услуги №1 и внесем в него следующие изменения (обратите внимание, что изменен не только состав номенклатуры в табличной части, но и время документа):

Перед тем, как провести документ, откроем список регистра «ОстаткиМатериалов», содержащий движения этого документа. Для этого выполним команду Перейти | Остатки материалов из командной панели документа.

Проведем документ и убедимся, что в движения по регистру «ОстаткиМатериалов» включаются только строки, содержащие материалы: