Создание движений документа Приходная накладная

 

Движения документа – это записи в регистрах, которые создаются в процессе проведения документа и отражают изменения, производимые документом.

 

Открываем окно редактирования ОК Документ ПриходнаяНакладная.

На закладке Движения в списке регистров конфигурации отметьте регистр накопления ОстаткиМатериалов.

 

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

Нажимаем кнопку «Конструктор движений»

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

В нашем случае там один регистр ОстаткиМатериалов.

В списке Реквизиты документа должны находиться исходные данные для создания движений.

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

 

Обратите внимание, что по умолчанию конструктор предлагает нам создавать движения прихода (Тип движения регистра – Приход, символ рядом с названием регистра) по регистру ОстаткиМатериалов. Это нас вполне устраивает, т.к. документ ПриходнаяНакладная и должен приходовать материалы.

В поле выбора Табличная часть выберем табличную часть нашего документа – Материалы. Список реквизитов документа автоматически заполнится реквизитами нашей табличной части. Теперь нажмите кнопку Заполнить выражения.

Как видите, конструктор движений установил соответствия подходящим образом: в качестве материала в регистр будет записан материал из табличной части документа, в качестве склада – склад, указанный в шапке документа, а в качестве количество – количество из табличной части документа.

 

Нажмите ОК.

 

Конструктор создал обработчик события ОбработкаПроведения объекта конфигурации Документ и поместил его в модуль объекта.

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

Объект встроенного языка ДокументОбъект имеет свойство Движения. Оно возвращает коллекцию наборов записей регистров, которые принадлежат этому документу. К набору записей докумен­та, принадлежащему конкретному регистру, можно обратиться, ука­зав через точку имя этого регистра.

Таким образом, в первой строке тела цикла мы добавляем к набору записей, который создает наш документ в регистре, новую запись и сохраняем ее в переменной Движение.

Затем мы присваиваем нужные значения всем полям этой запи­си и после перебора всех строк документа (после завершения цикла) «одним махом» записываем в регистр ОстаткиМатериалов весь на­бор записей движений документа.

 

 

Посмотрим, как это работает. Запустим 1С:Предприятие в режиме отладки и откроем одновременно два окна: список документов ПриходнаяНакладная и список регистра накопления ОстаткиМатериалов(Операции → Регистр накопления).

Откроем Приходную накладную № 1 и нажмем ОК. Обратите внимание, что при проведении приходной накладной появляются соответствующие записи в регистрах накопления (рис.).

 

Аналогичные действия проделаем и с документом Приходная накладная №2.