Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

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

 

 

 

 

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

 

 


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

 

 

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

 

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

 

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

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

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

 

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

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.