Пример выполнения работы



Создание регистра накопления «ОстаткиМатериалов»

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

Создадим измерения регистра:

· «Материал», тип «СправочникСсылка.Номенклатура»;

· «Склад», тип «СправочникСсылка.Склады».

Затем создадим ресурс «Количество», тип «Число» с длиной 15 и точностью 3.

В результате этих действий регистр «ОстаткиМатериалов» должен иметь следующий вид:

 

Если сейчас попытаться запустить 1С:Предприятие в режиме отладки, то система выдаст сообщение об ошибке: «РегистрНакопления.ОстаткиМатериалов: Ни один из документов не является регистратором для регистра».

 

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

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

Откроем окно редактирования объекта конфигурации Документ «ПриходнаяНакладная».

Перейдем на закладку «Движения» и в списке регистров конфигурации отметим регистр накопления «ОстаткиМатериалов»:

Сразу после отметки выбранного регистра становится доступной кнопка «Конструктор движений». В этом конструкторе в списке «Регистры» перечислены регистры, в которых документ может создавать движения. В нашем случае там пока один регистр «ОстаткиМатериалов». В списке «Реквизиты документа» должны находиться исходные данные для создания движений. А в таблице «Поле-Выражение»должны быть заданы формулы, по которым будут вычисляться значения измерений и реквизитов регистра при записи движений.

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

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

Теперь нажмем «Заполнить выражения». В нижнем окне сформируется соответствие полей и выражений.

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

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

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

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

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

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

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

 

Запустим 1С:Предприятие в режиме отладки и откроем одновременно два окна: список документов «ПриходнаяНакладная» и список регистра накопления «ОстаткиМатериалов».

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

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

 

Создание движений документа «ОказаниеУслуги»

Теперь аналогичным образом следует создать движение документа «ОказаниеУслуги».

При использовании конструктора следует обратить внимание на то. Что документ должен расходовать материалы. Поэтому тип движения регистров должен быть выбран – «Расход».

Запустим отладку и создадим документ оказания услуги, который будет расходовать один транзистор Philips за 3 рубля.

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

 

Внимание! Сформированные таким образом движения этого документа будут не совсем правильны. Так как в документе «ОказаниеУслуги» в отличие от документа «ПриходнаяНакладная» могут содержаться не только расходуемые материалы, но и услуги. Поэтому в регистр «ОстаткиМатериалов» будут попадать записи и о расходуемых услугах, что не правильно. Эту ошибку мы исправим в одной из следующих лабораторных работ, когда изучим объект «Перечисления».

Оформить отчет по лабораторной работе и ответить на контрольные вопросы.

Отчет оформляется стандартно, с обязательным указанием номера лабораторной работы, ее темы, сведений о лице, выполнившем лабораторную работу (ФИО, № группы), должен быть указан порядок выполнения работы (последовательность действий, какие объекты были созданы, их роль и обоснование необходимости создания), который должен подтверждаться необходимыми скриншотами и/или алгоритмами.

 

Контрольные вопросы к защите

1. Для чего предназначен объект конфигурации «Регистр накопления»?

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

3. Для чего нужны измерения регистра, ресурсы и реквизиты?

4. Что такое движения регистра и что такое регистратор?

5. Как создать новый регистр накопления и описать его структуру?

6. Как создать движения документа с помощью конструктора движений?

7. Как средствами встроенного языка обойти табличную часть документа и обратиться к ее данным?

8. Как средствами встроенного языка сформировать и записать движения документа в регистр накопления?

 


Дата добавления: 2015-12-20; просмотров: 20; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!