Частина восьма «Проведення документу по кількох регістрах відомостей»

Автор: admin · Рубрика Блог починаючого програміста · Есть 1 комментарий

В одному з попередніх уроків ми проводили документ по регістру накопичення ЗалишкиДисків. Уявіть що наша відеотека розвивається і ми вже хочемо обліковувати диски не тільки по кількості а й по сумі. Криза як не як і диски які ми купили навесні і влітку вже сильно відрізняються по ціні. Та і взагалі варто обліковувати нашу власність в грошовому еквіваленті. Для цього створюємо новий регістр накопичення ВартістьМатеріалів. Вкажемо вимір – матеріал (складний тип даних: диски і номенклатура). Та ресурс – вартість (число 15 знаків 2 після коми).

clip_image002

Потім переходимо на закладку «Реєстратори» і вказуємо два наших документи як реєстратори рухів даного регістру.

clip_image004

Тепер переходимо до документу «ПрихіднаНакладна» і виберемо закладку «Інше»

Там натиснувши на кнопку «Модуль об’єкту»

clip_image006

Відредагуємо процедуру рухів документу. Наступним чином:

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

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

// Даний фрагмент побудований конструктором.

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

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

// регістр ЗалишкиДисків Приход

Движение = Движения.ЗалишкиДисків.Добавить();

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

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

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

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

// регістр ВартістьНоменклатури Приход

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

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

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

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

Движение1.Вартість = ТекСтрокаТовар.Сума;

КонецЦикла;

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

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

Як бачимо ми написали майже аналогічний код до рухів по регістру «ЗалишкиДисків». Тому подальше пояснення непотрібне.

Тепер може відредагувати аналогічним чином і документ «ПозичивПодивитись». Там код буде виглядати так:

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

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

// Даний фрагмент побудований конструктором.

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

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

// регістр ЗалишкиДисків Расход

если ТекСтрокаДиски.Диск.Метаданные().Имя = "Номенклатура" тогда

если ТекСтрокаДиски.Диск.Вид <> перечисления.ВидТовару.Послуга тогда

Движение = Движения.ЗалишкиДисків.Добавить();

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

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

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

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

конецесли;

иначе

Движение = Движения.ЗалишкиДисків.Добавить();

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

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

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

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

// регістр ВартістьНоменклатури Приход

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

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

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

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

Движение1.Вартість = ТекСтрокаДиски.Сума;

конецесли;

КонецЦикла;

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

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

Таким чином ми вивчили в даному уроці наступне: При проведенні одного документу ми можемо формувати рухи по потрібній кількості регістрів.

Комментарии

  1. admin каже:

    oemcash.com



Оставить комментарий или два