1С Предприятие. Практика программирования на платформе v7

Запись движений по документу


Упражнение 24. В документе «Приход» сформирйте записи движений по приходу в регистр «Амортизация» по каждой строке документа, привязывая НомерСтроки документа к каждому движению.

Программирование записей движений регистров производится в модуле Документов оперативного учета в предопределенной процедуре ОбработкаПроведения().

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

128______________________ 1С:Предприятие. Практика программирования на платформе V7

В модуле документа «Приход» алгоритм записи движений регистров можно создать с помощью конструктора движений регистров.

Выберем в конструкторе регистр, по которому будем создавать движения и тип движений по регистру остатков. Чтобы можно было из движения регистра спозиционироваться на строку документа, по значениям реквизитов документа которой были сделаны эти движения, установим признак «Привязывать строку».

IX Основы построения «Оперативного учёта» в системе 1С:Предприятие__________ 129

Определим выражения для значений атрибутов регистра.



130______________________ 1С:Предприятие. Практика программирования на платформе V7

Конструктор создал в модуле документа цикл записи движений по строкам документа. В нашем случае это уже второй цикл по строкам, поэтому целесообразно отредактировать модуль документа после работы конструктора.

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку() =1 Цикл

//}}ДВИЖЕНИЯ_РЕГИСТРОВ

Регистр.Амортизация.Оборудование - Оборудование;

Регистр.Амортизация.Партия = ТекущийДокумент();

IX. Основы построения «Оперативного учёта» в системе 1С:Предприятие_________ 131

Регистр.Амортизация.Количество = Количество * Единица.Коэффициент;

Регистр.Амортизация.Стоимость = Сумма; Регистр.Амортизация.ПривязыватьСтроку(НомерСтроки); Регистр.Амортизация.ДвижениеПриходВыполнить () ;

//}}ДВИЖЕНИЯ_РЕГИСТРОВ

// Запись истории периодического реквизита  справочника

Если НовЦенаоОборудование.Цена.Получить(ТекущийДокумент()) Тогда

ПривязыватьСтроку(НомерСтроки);

УстановитьРеквизитСправочника(Оборудование,"Цена", НовЦена);

КонецЕсли;

// Запись истории периодического реквизита  справочника

КонецЦикла;

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

В Предприятии посмотреть движения регистров можно в журнале документов через контекстное меню документа или меню Действия — пункт Движения документа.



Содержание раздела