Как нам быть с упрощенкой... или партионный учет для всех...
fixin
http://koenigsoft.boom.ru/
Из всех пагтий нам важнее
всего пагтия большевиков, товагищи!
В нашей стране как в Зазеркалье и упрощенная
система налогообложения (упрощенка) -
это завуалированное название Усложненки.
Давайте же попробуем укротить этого монстра и
нарисовать Книгу Доходов/Расходов:
Под продажной стоимостью товаров
понимается стоимость оплаченного покупателями
товара; под покупной стоимостью товара
понимается стоимость оплаченного поставщику
товара
С доходами просто - это
выручка. А вот как быть с расходами? Расходы - это
стоимость той части отпущенного товара, которая
оплачена поставщику. Т.е. не вся себестоимость
проданного товара, а только оплаченная его часть?
Ну и как ее определить?
У нас большой розничный магазин и точно ведется
только учет остатков товаров, суммы долга
поставщиков на 60.1 (общей суммой, не в разрезе
накладных). Себестоимость мы всегда прикидывали
по последней закупочной цене. Проблема...
Возможно такое решение. Оно требует много процессорного времени, запускается в конце отчетного периода (на ночь например, или в копии базы), но тем не менее, довольно эффективный алгоритм. В суть метода положена идея о том, что зная остаток долга/товара на дату, можно поднять приход от этой даты вглубь истории и определить, с каких накладных набрался этот остаток...
С начала ведения учета по всем приходным накладным составляется две таблицы:
По товару (ПриходТоваров):
Товар | Дата_Время | Документ | Количество | Сумма |
НДС |
Таблица отсортирована по Товар (по
возрастанию), затем по Дата_Время (по убыванию).
По поставщикам (ПриходПоставщиков):
Контрагент | Дата | Документ | Сумма | НДС |
Таблица отсортирована по контрагенту
(по возрастанию), затем по дате (по убыванию).
По расходу (продаже) товара формируется таблица:
По проданному товару (РасходТоваров):
Товар | Дата_Время | Документ | Баланс | Количество |
Таблица отсортирована по по Дата_Время
(по возрастанию). Баланс - это остаток товара
на момент перед движением. Количество - это
количество проданного товара.
По остатку долга на конец периода (КонецПериода) формируется таблица:
По оплатам поставщикам (ОстаткиПоставщиков):
Контрагент | Баланс |
Баланс - это остаток долга поставщика на
конец периода.
Определение оплаченных накладных:
Используем метод обратного счета.:
В таблице ПриходПоставщиков добавляем
колонку "ДоляОплаты".
для всех накладных в
ПриходПоставщиков ДоляОплаты=0%
по каждой строке таблицы
ОстаткиПоставщиков делать:
в таблице
ПриходПоставщиков находим первую
строку по данному Контрагенту, в которой
Дата<=КонецПериода;
спускаясь по строчкам таблицы ПриходПоставщиков в пределах данного Контрагента
пока (Набрано<ОстаткиПоставщиков.Баланс):
НеОплачено=min(Сумма, Баланс-Набрано); //какая сумма накладной неоплачена
Оплачено=Сумма-НеОплачено //какая сумма накладной оплачена
ДоляОплаты=Оплачено/Сумма*100%;
Набрано=Набрано+НеОплачено; //накапливаем набранную сумму
Таким образом, по каждой накладной в ПриходПоставщиков получили, насколько она оплачена на КонецПериода (ДоляОплаты, %). Можно сформировать два таких отчета на начало и конец периода и увидеть, по каким накладным изменилась оплата и насколько за период...
Определение накладной, с которой списан товар (FIFO):
Используем метод обратного счета (аналогично
долгам):
В таблице РасходТоваров добавляем
колонку "Партия" - она будет указывать
накладную, с которой списался
товар. В каждой ячейке колонки "Партия"
содержится таблица вида:
Накладная | Количество |
по каждой строке
таблицы РасходТоваров делать:
в таблице ПриходТоваров находим
первую строку по данному Товару, в которой
Набрано=0; (пробуем набрать остаток Баланс)
спускаясь по строчкам таблицы ПриходТоваров в пределах данного Товара
пока (Набрано<РасходТоваров.Баланс): //пока еще не набрали всего товара из прихода
Списано=min(ПриходТоваров.Количество, РасходТоваров.Баланс-Набрано);
добавить строку в таблицу Партия
установить в текущей строчке таблицы Партия Партия. Накладная=ПриходТоваров.Документ;
установить в текущей строчке таблицы Партия Партия.Количество=Списано;
Набрано=Набрано+Списано; //накапливаем набранное количество
Таким образом по каждому движению мы имеем табличку, в которой расписано, с какой партии списалось какое количество товара из данного движения.
Определение расходов:
Для определения того, что можно отнести в расходы из таблицы расхода товара нужно отобрать только те движения товаров, которые были по оплаченным накладным. Они идут в расходы.
Неоплаченные накладные по товару нужно запомнить - они пойдут в расходы в следующие периоды.
Т.е. по каждой неоплаченной накладной нужно запомнить сумму, на которую она неоплачена.
Если есть неоплаченные накладные из прошлых периодов, которые оплатились в этом, они идут в расходы текущего периода.
Неоплаченные накладные можно запоминать в таблице вида:
Контрагент | Накладная | Сумма |
Где обсчитывать:
Вручную все это просчитать нереально. EXCEL тоже не
годится, т.к. если принять в одной приходной
накладной в среднем 10 строк, то он позволяет
проанализировать только 6000 накладных (количество
строк в листе). Возможно ACCESS. Или же писать это все
прямо в 1С, что лишает отчет универсальности.
Придумаю - скажу... Конечно, вам придется
выкручиваться сейчас в период сдачи книги самим,
но может быть следующее поколение упростителей
жизни будет жить при коммунизме.
Еще одно применение данного метода - можно иметь
партионный учет (и себестоимость :) без
использования навороченных методов. Правда
получать ее можно только путем больших
вычислений, но все же, все же.
Можно брать не весь период, а только 3-6 месяцев, а
себестоимость предыдущих периодов брать по
последней закупочной цене на начало анализа.
Короче, вариантов много. Есть куда приложить руку
творческой личности...
P.S.: Прошу прощения за неточности в алгоритмах,
если они есть. Ошибки в программах есть всегда,
даже в самых гениальных (ну скромный я, пардон).
Хотелось побыстрее поделиться идеей.
Комментарии
2это азбука - придраться не к чиму.
теперь и сравнить валовую оплату поставщикам с себестоимостью оплаченных покупателями товаров. если валовая оплата больше или равна себестоимости, тогда всё - в расход, если валовая оплата больше себестоимости - тогда в расходы сумму только в пределах себестоимости.
и не надо учета по наименованиям и накладным :)