Студопедия

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

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

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






  • Изменение процедуры проведения документа ПриходнаяНакладная






    О

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

    Перед нами откроется окно конструктора движений, которое будет содержать созданные нами ранее движения документа по регистру «ОстаткиМатериалов». Добавим в список регистров, по которым формируются движения, еще один регистр - «СтоимостьМатериалов». Выберем для него ту же табличную часть «Материалы» и заполним выражения.

    Для ресурса «Стоимость» выберем значения реквизита табличной части «Сумма»:

    Добавим в список регистров новый регистр...

     

     

     

    Нажмем «ОК» и посмотрим на текст, который сформировал конструктор:

     

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

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

    Для Каждого ТекСтрокаМатериалы Из Материалы Цикл

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

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

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

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

    Движение.Материал = ТекСтрокаМатериалы.Материал;

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

    Движеиие.Количество = ТекСтрокаМатериалы.Количество; КонецЦикла; Для Каждого ТекСтрокаМатериалы Из Материалы Цикл

    // регистр СтоимостьМатериалов

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

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

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

    Движение.Материал = ТекСтрокаМатериалы.Материал;

    Движение.Стоимость = ТекСтрокаМатериалы.Сумма; КонецЦикла;

    // записываем движения регистров

    Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); //}}_КОНСТРУКТОРДВИЖЕНИЙ_РЕГИСТРОВ

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

     

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

    В нашем случае табличная часть всего одна, поэтому можно объединить эти два цикла в один следующим образом (изменения выделены жирным):

     

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

    //{{—КОНСТРУКТОРДВИЖЕНИЙ.РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора.

    //внесенные вручную изменения будут утеряны!!!

    Для Каждого ТекСтрокаМатериалы Из Материалы Цикл

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

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

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

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

    Движение.Материал = ТекСтрокаМатериалы.Материал;

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

    Движение.Количество = ТекСтрокаМатериалы.Количество; //КонецЦикла; //Для Каждого ТекСтрокаМатериалы Из Материалы Цикл

    // регистр СтоимостьМатериалов

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

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

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

    Движение.Материал = ТекСтрокаМатериалы.Материал;

    Движение.Стоимость = ТекСтрокаМатериалы.Сумма; КонецЦикла;

    // записываем движения регистров Движения.ОстаткиМатериалов.ЗаписатьО; Движения.СтоимостьМатериалов.Записать(); //}}_КОНСТРУКТОРЛВИЖЕНИЙ_РЕГИСТРОВ

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

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

    Затем откроем его и убедимся, что документ создает желаемые записи в регистрах накопления:

     

     

     







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