584 документа
← К списку

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

страница

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

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

Дело в том, что после принятия решения об учете услуг на предприятии оказалось, что существующая программа не совсем подходит, поскольку в регистр будут попадать не только записи об израсходованных материалах, но и записи об оказанных услугах (листинг 12.3).

Листинг 1****2.3. Процедура «ОбработкаПроведения()» документа «ОказаниеУслуги»

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

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

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

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

 

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

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

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

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

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

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

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

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

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

КонецЦикла;

 

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

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

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

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

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

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

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