Помощь в написании студенческих работ
Антистрессовый сервис

Реализация учета стоимости товаров по методам FIFO и LIFO

РефератПомощь в написанииУзнать стоимостьмоей работы

Рисунок 3.49 — Окно списка констант Откроем журнал «Учет материалов» и сделаем Расходные накладные № 2 и № 6 не проведенной, а после перепроведем все приходные накладные и с помощью отчета «Универсальная таблица итогов» посмотрим состояние таблицы итогов регистра «Партии материалов» (рисунок 3.50): Рисунок 3.48 — Модуль документа «Приходная накладная ТМЦ» с методом списания Метод «ДвижениеПриход… Читать ещё >

Реализация учета стоимости товаров по методам FIFO и LIFO (реферат, курсовая, диплом, контрольная)

Создадим новый регистр (рисунок 3.47) «Партии материалов». Структура регистра должна быть следующей: Измерения — Материалы, Партия (тип значения — документ Приходная накладная); Ресурсы — Количество, Стоимость.

Кроме регистра необходимо создать перечисление, которое будет хранить информацию о методе ведения суммового учета. Перечисление должно содержать три значения: По среднему (в нашей конфигурации уже реализовано), FIFO, LIFO.

Регистр «Партии материалов».

Рисунок 3.47 — Регистр «Партии материалов».

В модуле документа «Приходная накладная ТМЦ» опишем движения по новому регистру (рисунок 3.48):

Модуль документа «Приходная накладная ТМЦ» с методом списания.

Рисунок 3.48 — Модуль документа «Приходная накладная ТМЦ» с методом списания Метод «ДвижениеПриход ()» позволяет и описать движение, и выполнить его что называется «одной строкой», однако порядок аргументов метода жестко зависит от структуры регистра.

Теперь запустим 1С: Предприятие в пользовательском режиме и проверим движения документов.

Для начала установим значение константы «Метод списания» — FIFO (рисунок 3.49):

Окно списка констант.

Рисунок 3.49 — Окно списка констант Откроем журнал «Учет материалов» и сделаем Расходные накладные № 2 и № 6 не проведенной, а после перепроведем все приходные накладные и с помощью отчета «Универсальная таблица итогов» посмотрим состояние таблицы итогов регистра «Партии материалов» (рисунок 3.50):

Окно отчета «Универсальная таблица итогов» партии материалов.

Рисунок 3.50 -Окно отчета «Универсальная таблица итогов» партии материалов В расходной накладной опишем процедуру списания партий, в процедуре воспользуемся механизмом выгрузки таблицы итогов регистра в таблицу значений:

Процедура СписатьПартии ().

РегПартии=СоздатьОбъект («Регистр.ПартииМатериалов»);

СЗ=СоздатьОбъект («СписокЗначений»);

//Получим список материалов из документа.

ВыгрузитьТабличнуюЧасть (СЗ," Материалы");

//Ограничим выгрузку итогов только теми материалами, которые присутствуют в док-те.

РегПартии.УстановитьЗначениеФильтра («Материалы», СЗ, 2);

//Выгрузим итоги в таблицу значений.

ТЗ=СоздатьОбъект («ТаблицаЗначений»);

РегПартии.ВыгрузитьИтоги (ТЗ, 1);

//Отсортируем таблицу по материалам и партии.

Если Константа. МетодСписания=Перечисление.МетодыСписания.FIFO Тогда.

Направление="+" ;

Иначе.

Направление="-" ;

КонецЕсли;

ТЗ.Сортировать («+Материалы,» +Направление+" Партия", 1);

//Переберем строки документа.

ВыбратьСтроки ();

Пока ПолучитьСтроку ()=1 Цикл.

//Запомним количество материала, которое надо списать.

ОсталосьСписать=Количество;

//Найдем в ТЗ первую строку, в которой присутствует нужный материал.

ТЗСтрока=0;

ТЗ.НайтиЗначение (Материалы, ТЗСтрока," Материалы");

//Переберем таблицу значений с найденной строки.

Для Ном=ТЗСтрока По ТЗ. КоличествоСтрок () Цикл.

ТЗ.ПолучитьСтрокуПоНомеру (Ном);

//Получим остаток по партии.

ОстКол=ТЗ.Количество;

ОстСум=ТЗ.Сумма;

//Проверим, можно ли списать всю партию или только часть.

Списать=МИН (ОстКол, ОсталосьСписать);

//Рассчитаем себестоимость.

СебестоимостьСписания=Списать/ОстКол*ОстСум;

//Спишем партию.

Регистр.ПартииМатериалов.Материалы=Материалы;

Регистр.ПартииМатериалов.Партия.=ТЗ.Партия;

Регистр.ПартииМатериалов.Количество=Списать;

Регистр.ПартииМатериалов.Сумма=СебестоимостьСписания;

Регистр.ПартииМатериалов.ПривязыватьСтроку (НомерСтроки);

Регистр.ПартииМатериалов.ДвижениеРасходВыполнить ();

//Посчитаем, сколько осталось списать.

ОсталосьСписать=ОсталосьСписать-Списать;

//Проверим нужно ли списывать следующую партию.

Если ОсталосьСписать=0 Тогда.

Прервать;

КонецЕсли;

КонецЦикла;

КонецЦикла;

КонецПроцедуры В процедуре никаких проверок на остаток материала мы не делаем, так как они все уже произведены в процедуре «ОбработкаПроведения ()».

Осталось только вызвать процедуру из «Обработки проведения»: изменим условие в самом конце процедуры «ОбработкаПроведения ()».

Если СтатусВозврата ()1 Тогда.

Сообщить («Документ» +ТекущийДокумент ()+" не проведен!");

Иначе Если Константа.МетодСписанияПеречисление.МетодыСписания.ПоСреднему Тогда.

СписатьПартии ();

КонецЕсли;

КонецЕсли;

Проверим работоспособность модуля. Проведем расходную накладную № 2 и посмотрим, как изменилась таблица итогов (рисунок 3.51).

Окно отчета «Универсальная таблица итогов» после проведения.

Рисунок 3.51 — Окно отчета «Универсальная таблица итогов» после проведения.

Видим, что в строках с материалами: «Арматура А3 д.12», «Болт 12*70» и «А/лампа 12−21−3» изменилось количество, т. е. материалы расходовались.

Показать весь текст
Заполнить форму текущей работой