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