Если вы помните, когда создавались движения документа ОказаниеУслуги по регистру накопления ОстаткиМатериалов, мы сказали, что они не совсем правильные, поскольку в регистр будут попадать не только записи об израсходованных материалах, но и записи об оказанных услугах.
Теперь мы займемся тем, что доработаем документ таким образом, чтобы в регистре появлялись только записи, относящиеся к расходу материалов. Эта доработка будет не совсем эффективна с точки зрения производительности, зато позволит нам получить нужные данные в регистре ОстаткиМатериалов.
Более эффективный вариант обработки проведения этого документа мы рассмотрим позже.
Скорректируем движения документа, исключив из обработки те строки табличной части, в которых находятся услуги. Для этого в обработчик события ОбработкаПроведения, расположенный в модуле документа ОказаниеУслуги, добавим следующий текст (текст следует добавить в начало цикла обхода табличной части документа после строки Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл (листинг 2.1)):
Листинг 2.1. Движения документа «ОказаниеУслуги»
Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Материал Тогда
Продолжить;
КонецЕсли;
Добавленный текст исключает из выполнения операторов цикла те строки документа, в которых номенклатура не является материалом. К значению перечисления Материал мы обращаемся, используя менеджер перечисления ВидыНоменклатуры (Перечисления.ВидыНоменклатуры)и указывая в качестве его свойства имя нужного нам значения перечисления.
Запустим 1С:Предприятие в режиме отладки и проверим работу процедуры проведения документа ОказаниеУслуги.
|
Откроем документ ОказаниеУслуги №1 и внесем в него следующие изменения (обратите внимание, что изменен не только состав номенклатуры в табличной части, но и время документа) – рис. 2.4.
Рис. 2.4. Измененный документ «ОказаниеУслуги №1»
Перед тем как провести документ, откроем список регистра Остатки материалов, содержащий движения этого документа. Для этого выполним команду Перейти → Остатки материалов из командной панели списка документа.
Проведем документ и убедимся, что в движения по регистру ОстаткиМатериалов включаются только строки, содержащие материалы (рис. 2.5).
Рис. 2.5. Записи регистра «ОстаткиМатериалов»
Зачем нужно проведение документа по нескольким регистрам?
До сих пор мы с вами учитывали только количественное движение материалов в ООО «На все руки мастер». Для этих целей мы создали регистр накопления ОстаткиМатериалов. Однако, как вы, наверное, догадываетесь, одного только количественного учета совершенно недостаточно для нужд нашего ООО.
Очевидно, что необходимо также знать, какие денежные средства были затрачены на приобретение тех или иных материалов, и каковы материальные запасы ООО «На все руки мастер» в денежном выражении.
После того, как мы начали автоматизировать наше предприятие, руководство ООО «На все руки мастер» высказало пожелание, чтобы весь суммовой учет материалов велся бы теперь по средней стоимости. То есть при закупке материалов они должны учитываться в ценах приобретения, а при расходе – по средней стоимости, которая рассчитывается исходя из общей суммы закупок данного материала и общего количества этого материала, находящегося в ООО.
|
Поскольку подобная информация имеет совершенно другую структуру, нежели количественный учет, для хранения данных об общей стоимости тех или иных материалов мы будем использовать еще один регистр накопления СтоимостьМатериалов.
Таким образом, документы ПриходнаяНакладная и ОказаниеУслуги должны будут создавать движения не только в регистре ОстаткиМатериалов, но одновременно и в регистре СтоимостьМатериалов, отражая изменения суммового учета.