logo search
АСБУ / Методические ук Авт

2. Создание документов

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

У любого документа в системе 1С:Предприятие 8.0 есть встроенные реквизиты Дата и Номер. Мы создадим дополнительные реквизиты Поставщик и Склад, а также табличную часть Товары с реквизитами Товар и Количество.

Экранную форму документа, в принципе, можно не создавать, она будет сгенерирована автоматически, когда в ней возникнет необходимость. Но иногда такие формы не вполне удобны для ввода и просмотра данных, тогда следует создать экранную форму самостоятельно.

Ниже показано окно для редактирования экранной формы документа

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

В правой части отображаются реквизиты документа и его табличных частей, в нижней части измерения и ресурсы регистра. По нажатии кнопки «Заполнить выражения» соответствие между ними будет установлено автоматически. После нажатия на кнопку «ОК» конструктор движений сгенерирует текст программы на

встроенном языке.

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

Алгоритм проведения документа формируется автоматически конструктором, который мы уже использовали выше, но на этот раз покажем, как выглядит программа на встроенном языке:

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

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

// регистр Остатки Расход

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

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

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

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

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

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

КонецЦикла;

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

// регистр Продажи

Движение = Движения.Продажи.Добавить();

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

Движение.Контрагент = Контрагент;

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

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

КонецЦикла;

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

Движения.Остатки.Записать();

Движения.Продажи.Записать();

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

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