В одному з попередніх уроків ми проводили документ по регістру накопичення ЗалишкиДисків. Уявіть що наша відеотека розвивається і ми вже хочемо обліковувати диски не тільки по кількості а й по сумі. Криза як не як і диски які ми купили навесні і влітку вже сильно відрізняються по ціні. Та і взагалі варто обліковувати нашу власність в грошовому еквіваленті. Для цього створюємо новий регістр накопичення ВартістьМатеріалів. Вкажемо вимір – матеріал (складний тип даних: диски і номенклатура). Та ресурс – вартість (число 15 знаків 2 після коми).
Потім переходимо на закладку «Реєстратори» і вказуємо два наших документи як реєстратори рухів даного регістру.
Тепер переходимо до документу «ПрихіднаНакладна» і виберемо закладку «Інше»
Там натиснувши на кнопку «Модуль об’єкту»
Відредагуємо процедуру рухів документу. Наступним чином:
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Даний фрагмент побудований конструктором.
// При повторному використанні конструктора, внесені вручну зміни будуть втрачені!!!
Для Каждого ТекСтрокаТовар Из Товар Цикл
// регістр ЗалишкиДисків Приход
Движение = Движения.ЗалишкиДисків.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Диски = ТекСтрокаТовар.Товар;
Движение.Кількість = ТекСтрокаТовар.Кть;
// регістр ВартістьНоменклатури Приход
Движение1 = Движения.ВартістьМатеріалів.Добавить();
Движение1.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение1.Период = Дата;
Движение1.Матеріал = ТекСтрокаТовар.Товар;
Движение1.Вартість = ТекСтрокаТовар.Сума;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Як бачимо ми написали майже аналогічний код до рухів по регістру «ЗалишкиДисків». Тому подальше пояснення непотрібне.
Тепер може відредагувати аналогічним чином і документ «ПозичивПодивитись». Там код буде виглядати так:
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Даний фрагмент побудований конструктором.
// При повторному використанні конструктора, внесені вручну зміни будуть втрачені!!!
Для Каждого ТекСтрокаДиски Из Диски Цикл
// регістр ЗалишкиДисків Расход
если ТекСтрокаДиски.Диск.Метаданные().Имя = "Номенклатура" тогда
если ТекСтрокаДиски.Диск.Вид <> перечисления.ВидТовару.Послуга тогда
Движение = Движения.ЗалишкиДисків.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Диски = ТекСтрокаДиски.Диск;
Движение.Кількість = ТекСтрокаДиски.кть;
конецесли;
иначе
Движение = Движения.ЗалишкиДисків.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Диски = ТекСтрокаДиски.Диск;
Движение.Кількість = ТекСтрокаДиски.кть;
// регістр ВартістьНоменклатури Приход
Движение1 = Движения.ВартістьМатеріалів.Добавить();
Движение1.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение1.Период = Дата;
Движение1.Матеріал = ТекСтрокаДиски.Диск;
Движение1.Вартість = ТекСтрокаДиски.Сума;
конецесли;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Таким чином ми вивчили в даному уроці наступне: При проведенні одного документу ми можемо формувати рухи по потрібній кількості регістрів.
Подпишитесь на RSS канал сайта. Это дает Вам преимущество в скорости получения обновлений и свежей информации.
oemcash.com