gifts2017

Валовая прибыль по оплате для УТ, УТП, УПП (Продолжение)

Опубликовал script Мальчинко (script) в раздел Отчеты - Управленческие

Продолжение истории разработки отчета валовая прибыль по оплате.

 Начало истории  здесь: Продажи по оплате или в поисках истины


Цель задачи:получить данные о тех отгрузках, которые были оплачены.  

  На первый взгляд вопрос о получении данных об оплаченных отгрузках может показаться простым, но на самом деле это очень не однозначный вопрос, требующий четкого понимания того, с какой целью или для чего, подобные данные нужно получить. 

  Нужно начать с того, что в конфигурациях УТ10 УПП, КА, УТП уже присутствует отчет «Продажи по оплате за период». Ну и, как говорится, обязательно есть «НО». Оно заключается в том, что разрабатывая этот отчет, фирма 1С преследовала определенную цель или правильнее будет сказать - автоматизировала определенную бизнес-задачу, которую можно решить с помощью этого отчета. Суть задачи заключается в том, что бы дать руководителю или ответственному менеджеру информацию для расчета премий, которые начисляются менеджерам отдела сбыта, зате продажи, которые были отгружены и оплачены в одном периоде. Для наглядности приведу пример; предположим,что: 

  1) учетной политикой предприятия по управленческому учету установлено, что менеджерам отдела сбыта, назначается премия 5% от суммы продажи или валовой прибыли, за истекший месяц или квартал, но с условием, что эти продажи (которые были произведены в истекшем месяце или квартале) были оплачены в том, же периоде. 

  2) Дано: 

     - менеджер Иванов

     - 01.01.2014 –Продажа 1 – Сумма = 2000.00

     - 10.01.2014 –Оплата 1    – Сумма = 2000.00

     - 20.01.2014 –Продажа 2 – Сумма = 3000.00

     - 25.01.2014 –Оплата 2   – Сумма = 2000.00

     - 27.01.2014 –Продажа 3 – Сумма = 1000.00

     - 01.02.2014 –Оплата 3    – Сумма = 1000.00

  3) Как работает решение, реализованное в отчете «Продажи по оплате за период»? 

  Руководитель, по итогам Января 2014 г. готовит данные, о тех сумма продажи, на основании которых нужно начислить премии. Таким образом, отчет формируется за период 01.01.2014 по 31.01.2014 по менеджеру Иванов. 

4) В отчет попадут:

       - Только, Продажа 1 на сумму 2000.00; поскольку была и отгружена и оплачена в периоде отчета - в январе 2014 г. 

5) В отчет не попадут:

       - Продажа 2 на сумму 3000.00; поскольку была оплачена частично. 

       - Продажа 3 на сумму 1000.00; поскольку была оплачена в феврале, а так как отчет формируется по 31.01.2014г., то данные по оплате за более поздний период в этом отчете не учитываются. 

   Вывод можно сделать следующий. В отчет выводиться только те продажи, которые полностью оплачены и отгружены в том периоде, за который формируется отчет. Данное утверждение подтверждается официальной справкой к этому отчету. 

Это так же означает то, что если пользователь формирует отчет за Февраль 2014 г., Продажа 3 тоже не попадет в этот отчет, потому что была отгружена в Январе 2014 г. Если же пользователь формирует отчет за 1 квартал 2014 г. тогда в отчет попадут все 3 продажи, потому что и оплаты и отгрузки попали в период формирования отчета. 

  Это самый важный нюанс этого отчета. Он заключается в том, что фирма 1С автоматизировала этим отчетом только один случай из множества. Этот отчет применим, когда руководство предприятия, установило такие правила, что для получения премии необходимо, что бы и оплата и отгрузка произошли в одном месяце или квартале и т.д. Если же оплата или отгрузка не попала в, указанныйв отчете, период, в котором была вторая операция, то такие продажи неучитываются вообще. 

  Если у вас возникла подобная задача, или у вас есть другая задача, но с похожими условиями, тогда этот отчет можно смело применять. Но используя этот отчет нужно всегда помнить, что, указывая период формирования, вы говорите программе, что она должна выбрать не только отгрузки за этот период, но и оплаты. Все, что было до или будет после - не учитывается. 

Для каких задач этот отчет точно не подходит?

  Этот отчет точно не подходит для выявления и решения проблем дебиторки. Т.е. он решает именно эту задачу, но подходит с другой стороны. Он показывает проблему по факту, потому что проблема дебиторки проявляется в выполненных отгрузках и долгом ожидании оплаты. Так вот, одним из решений этой проблемы, является мотивация персонала, менеджеров по продажам, что бы они закрывали сделки в, установленный руководством, срок: месяц, квартал и т.д. Именно с учетом этого нюанса фирма 1С разрабатывала этот отчет. Если на предприятии решают проблему дебиторки этим путем, тогда этот отчет будет востребован. Он облегчит работу менеджеру, который рассчитывает премии от продаж, а так же будет «держать в курсе» менеджера по продажам, относительно выполнения своего плана. Но этот отчет не покажет суть проблемы дебиторки в начале или середине периода. Потому что для этого нужно анализировать не сумму оплаченных продаж, а сумму долга по периодам, т.е по количеству дней задолженности.  

 Я так подробно описываю этот нюанс, потому что чаще всего, именно с этим отчетом, у пользователей, возникают проблемы из-за непонимание принципа его работы, и его назначения. Очень часто пользователи пытаются этим отчетом получить что-то наподобие акта сверки взаиморасчетов, что бы увидеть какие продажи оплатили, вычесть из суммы оплаченных продаж общую сумму оплаты и получить приблизительную сумму долга. Такую информацию из этого отчета получить нельзя, потому что он разрабатывался для другой цели, не для выявления проблем дебиторки, а для получения итоговых данных по факту продаж и оплат. 

Какие могут быть еще задачи и решения в этом вопросе? 

  В моей личной практике, чаще я сталкиваюсь с другой постановкой и реализацией этой задачи. 

Во-первых: очень часто необходимо выводить в отчет продажи, основываясь не на дате расходной накладной, а на дате когда эта продажа была полностью оплачена. Это может означать, как пример, что в прошлом году была сделана предоплата, а в январе этого года была произведена отгрузка. Тогда сформировав отчет за январь этого года, мы должны увидеть данную продажу. Т.е. основным моментом для принятия решения программой, выводить продажу в отчет или нет, служит полное закрытие сделки (оплата = отгрузка). Но и это не все. Еще важным моментов является дата, когда это событие было совершено. Еще пример: 

- 01.01.2014 –Продажа 1 – Сумма = 2000.00

- 02.01.2014 –Продажа 2 – Сумма = 1000.00

- 03.01.2014 – Оплата1    - Сумма = 1500.00

- 01.02.2014 – Оплата2    - Сумма = 1500.00  

  Таким образом, распределяя оплату по методу ФИФО, Продажа 1 и Продажа 2 были полностью оплачены в феврале 2014 г. Т.е. дата закрытия обеих сделок = 01.02.2014г. И нужно, что бы, сформировав отчет за февраль 2014, пользователь увидел эти продажи, хотя на самом деле отгрузка производилась в январе 2014г.   

  Вот именно этого решения и нет в стандартном встроенном отчете «продажи по оплате за период» от 1С.   

Во-вторых: иногда бывает необходимым иметь возможность отображать суммы в отчете в любой, выбранной пользователем, валюте. Здесь сразу же возникает вопрос с переоценкой. Т.е. накакую дату переоценивать суммы, на дату продажи-отгрузки или на дату оплаты, или на дату закрытия сделки или на дату окончания формирования отчета…? Вариантов много, но есть один, который встречается чаще всего и он, же самыйточный. Суть его сводится к следующим правилам: сумма продажи должна переоцениваться на дату каждой оплаты, которая погашала отгрузку. Для наглядности нужен пример – берем предыдущий: 

  Предположим, что суммы нужно пересчитать из руб. в usd. 

- 01.01.2014 –Продажа 1 – Сумма = 2000.00

- 02.01.2014 –Продажа 2 – Сумма = 1000.00

- 03.01.2014 – Оплата1    - Сумма = 1500.00 – курс 8

- 01.02.2014 – Оплата2    - Сумма = 1500.00 – курс 10

Тогда Продажа 1 будет переоценена в два этапа таким образом:

Продажа 1 на сумму 1500.00 будет переоценена на дату03.01.2014 = 1500.00/8 = 187,50

Продажа 1 на сумму 500.00 будет переоценена на дату01.02.2014   = 500.00/10 = 50.00

Продажа 2 на сумму 1000.00 будет переоценена на дату01.02.2014

  После манипуляций с данными, программа должна сложить полученные суммы по «Продажа 1» в одну строку 187.5 + 50 = 237.5 и вывести ее в отчет. 

В-третьих: Как правило, анализируя продажи, возникает необходимость видеть сами товары. 

  Здесь возникает проблема распределения оплаты по товарам. Давайте вспомним, что в платежном поручении нет указания на то, какой товар оплачен. А если произошла частичная оплата, как в нашем примере, да еще и с пересчетом в другую валюту? 

  И у этой задачи тоже есть решение. Нужно условиться о том, что одним платежом оплачивается весь товар из накладной, но не на все количество. И снова нужен пример:   

- 01.01.2014 – Продажа 1 – Товар1 – Кол-во 5 – Сумма =1000.00

- 01.01.2014 – Продажа 1 – Товар2 – Кол-во 4 – Сумма =1000.00

  Вторую продажу описывать нет смысла - главное понять принцип. 

  - 03.01.2014 – Оплата1    - Сумма = 1500.00 

  - 01.02.2014 – Оплата2    - Сумма = 1500.00 

  Как распределить первый платеж на всю номенклатуру, при частичной оплате? Очень просто. Нужно рассчитать коэффициент оплаты этой накладной как отношение суммы всей накладной 2000, к суме платежа 1500, получим 1500/2000 = 0.75. А потом умножим количество товара и сумму продажи этого товара, в каждой строке накладной, на этот коэффициент, и получим значение, которое можно выразить следующим предложением: «на сколько оплачена каждая строка накладной». В нашем случае этобудет : 

- 03.01.2014 – Оплата 1 - Сумма = 1500.00 | Продажа 1 –Товар1 – Кол-во 3.75 (5*0.75) – Сумма 750 (1000.00*0.75)

- 03.01.2014 – Оплата 1 - Сумма = 1500.00 | Продажа 1 –Товар2 – Кол-во 3.00 (4*0.75) – Сумма 750 (1000.00*0.75)

  Соответственно второй платеж Оплата 2, рассчитает коэффициент и получит значение 0.25. 

И проделает те же манипуляции со строками накладной Продажа1.

В итоге получится таблица из четырех строк:

- 03.01.2014 – Оплата 1 -Сумма = 1500.00 | Продажа 1 – Товар1 – Кол-во 3.75 (5*0.75) – Сумма 750(1000.00*0.75)

- 03.01.2014 – Оплата 1 -Сумма = 1500.00 | Продажа 1 – Товар2 – Кол-во 3.00 (4*0.75) – Сумма 750 (1000.00*0.75)

- 01.02.2014 – Оплата 2 -Сумма =   500.00 | Продажа 1 – Товар1 –Кол-во 1.25 (5*0.25) – Сумма 250 (1000.00*0.25)

- 01.02.2014 – Оплата 2 -Сумма =   500.00 | Продажа 1 – Товар2 –Кол-во 1.00 (4*0.25) – Сумма 250 (1000.00*0.25)

 После таких манипуляций задача переоценки решается тоже просто. Нужно полученные суммы пересчитать в другую валюту на дату оплаты. 

И В-четвертых: Если в отчете появилась номенклатура, то было бы полезно увидеть себестоимость этой номенклатуры, а так же валовую прибыль, как разницу между стоимостью продажи и себестоимостью, а так же рентабельность и эффективность. Последние показатели нужны в процентах.   

  Подведя итоги, можно сказать что, реализовав, описанных выше, четыре пункта можно получить отчет, который будет похож на стандартный отчет «Валовая прибыль», но будет отображать только оплаченные продажи. Причем только те, которые были оплачены в том периоде, который указал пользователь, поэтому его можно смело назвать «Валовая прибыль по оплате»   

  Если у вас хватило сил дочитать статью до конца тогда, хочу вам сообщить, что такой отчет уже мною разработан.

 22.10.2014 - Обновлены файлы.

Исправлены обнаруженные ошибки.

19.09.2016 - Обновлен файл для УТ 10.

Исправлены обнаруженные ошибки.

22.09.2016 - Обновлен файл для УТ 10.

Исправлены обнаруженные ошибки.

Проверка работоспоосбности проводилась на релизе УТ 10.3.37.3

29.09.2016 - Обновлен файл для УТ 10.

1. Исправлена ошибка расчета суммы продажи с НДС.

Ошибка приводила к тому, что программа, к сумме продажи с НДС еще раз добавляла НДС, а колонка "сумма продажи без ндс" выводила сумму с ндс.

2. Теперь, при нажатии на кнопку сформировать, отчет всегда обращается к базе и не использует собственный буфер.

Скачать файлы

Наименование Файл Версия Размер
Валовая прибыль по оплате для УТ 10, УПП. 157
.erf 83,34Kb
22.10.14
157
.erf 1 83,34Kb Скачать
Валовая прибыль по оплате для УТП. 12
.erf 81,02Kb
22.10.14
12
.erf 1 81,02Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сергей м (SergAn) 23.07.14 11:49
Отчет в момент формирования сводной таблицы выдает ошибку: "Не достаточно памяти".
2. script Мальчинко (script) 23.07.14 12:13
Какой объем Вашей базы и за какой период делаете отчет? У меня на файловой в 4,5 Гб отчет работает.
3. Сергей м (SergAn) 23.07.14 12:34
Файловая 3,8 Гига, Комп i5 4 Гб оперативки Win 8.1 x 64. Изменение числа группировок дает туже проблему
4. Сергей м (SergAn) 23.07.14 12:36
5. script Мальчинко (script) 23.07.14 14:28
Какая конфигурация? Файл качали из этого поста или предыдущего?
6. Сергей м (SergAn) 23.07.14 15:44
УТ 10.3. Файл из этого поста
7. script Мальчинко (script) 23.07.14 16:56
8. Сергей Лаврик (crashwork) 22.10.14 16:38
Здравствуйте. Скачал файл для УТП. Подскажите пожалуйста при построении отчета:

Иванов
ТоварХ Количество ед. хранения 1 Стоимость 378,37
ТоварХ Количество ед. хранения 0,34 Стоимость 127,57

Откуда берутся нецелые цифры единиц товара? Такое впечатление, что как будто клиент оплатил "кусочек" товара - 0,34. Мелькают цифры и в большую сторону например:
ТоварХ Количество ед. хранения 1,34 Стоимость 507,05

Смотрю реализацию, оплату, отгрузку, все ок. Была продана 1 позиция товара, отгрузка и оплата есть с сохранением оси времени. Почему в отчете 0,34 не могу понять?
9. script Мальчинко (script) 22.10.14 20:31
Расчитывается коэф. оплаты. Без данных сказать очень трудно но принцип следующий:

Если одну расходную, в которой была одна строка в табл. "товары" на колич. 1 и сумму 378,37, погашали 3 платежа равными частями, тогда каждый платеж погасил 0,333333333333 количества товара и 378,73 / 3 = сумма.
10. script Мальчинко (script) 22.10.14 20:32
Добаввьте последнюю группировку "Дата закрытия" и увидите даты оплат, когда погашалась данная расходная.
Но вообще то сумма продажи должна быть равна сумме расх. накл. Может быть вы установили какието отборы, которые приводят к ошибочному результату, который я не учел - это может быть.
11. script Мальчинко (script) 22.10.14 20:54
Перекачайте файлы. Я только что обнаружил что на инфостарте лежат не самые свежие.
12. Сергей Лаврик (crashwork) 22.10.14 23:30
Скачал файлы обновленные, все стало на свои места, пока очень нравится отчет. Особенно то, что после первого построения я вдруг вспоминаю, что мне нужна еще какая-то группировка в отчете или данные, повторный просчет делается налету. В отличии от громоздкого стандартного отчета.
13. Владимир Иванов (ogre2007) 20.03.15 17:16
Есть управленческий учет в рублях, ходим видеть отчет в USD.
Какой курс пересчета себестоимости партии: на момент поступления или реализации?
И вообще, корректно вести учет в рублях, а прибыль считать в USD?
14. script Мальчинко (script) 20.03.15 23:47
(13) ogre2007,
1. На дату партии
2. Для отчета это не важно.
Читайте комменты и описанияе там все есть.
15. Алексей Антонюк (Bozhevilnoe) 26.03.15 14:39
Все хорошо, но формируется он ну оооочень долго. Тот который для УТП.
И при изменении валюты не формирует по новому, только при первом формировании.
16. Sesh Ren (Deroswent) 06.05.15 16:11
А есть ли аналоги этого отчета для управляемого приложения. Нужно для 1С:Предприятие 8,3 Конфигурации УТ для Украины 3,0
17. script Мальчинко (script) 06.05.15 21:46
(16) Deroswent,
Поищите здесь на сайте "Продажи по оплате" для УТ 11. Украинская УТ 3.0 является локализированным аналогом российской УТ 11 и по этому отчеты для УТ 11 должны работать и на УТ 3.0
18. Игорь М. (Helper) 04.03.16 12:35
Попробовали отчёт на "Управление торговым предприятием для Украины" (1.2.35.1) и так и не выводятся в отчёт продажи, например, оформленные в декабре, оплаченные в январе и при этом, если период отчёта выставлен - январь. Кажется по описанию, отчёт должен был отобразить продажу декабря. Или я ошибаюсь?

И ещё момент, если сформировать отчёт в валюте USD, а потом выбрать, например, валюту EUR и снова сформировать отчёт, то данные так и остаются в USD. Только если выйти из отчёта, снова запустить, выбрать валюту EUR, сформировать - в таком случае дынные оказываются сформированы в EUR.
19. Юрий Б (YurokB) 11.08.16 07:35
Добрый день. Скачал отчет запускаю за месяц через 3 часа ожидания темпдб достиг 50гб место на винте кончилось база сломалась. Делал в УПП
20. script Мальчинко (script) 11.08.16 13:03
На больших базах есть проблема. Запрос распределения оплаты на продажи не оптимальный.
У моих клиентов проблем с ним нет - там файловые базы 6-7 ГБ.
А переделывать сейчас нет времени.
21. script Мальчинко (script) 11.08.16 18:05
(18) Helper,
Попробовали отчёт на "Управление торговым предприятием для Украины" (1.2.35.1) и так и не выводятся в отчёт продажи, например, оформленные в декабре, оплаченные в январе и при этом, если период отчёта выставлен - январь. Кажется по описанию, отчёт должен был отобразить продажу декабря. Или я ошибаюсь?

Именно так и должен работать.

И ещё момент, если сформировать отчёт в валюте USD, а потом выбрать, например, валюту EUR и снова сформировать отчёт, то данные так и остаются в USD. Только если выйти из отчёта, снова запустить, выбрать валюту EUR, сформировать - в таком случае дынные оказываются сформированы в EUR.

Это я проверю.
22. Юрий Б (YurokB) 11.08.16 20:57
(20) script, Отчет не то что не оптимальный это мало сказано. в запросах по регистрам нет дат начала запроса. Один и тот же запрос выполняется миллион раз, хотя вроде запрос мог получить всю информацию сразу. В общем извините, но отчет туфта полная, не советую не кому его качать.
23. script Мальчинко (script) 12.08.16 09:38
(22) YurokB,
"Один и тот же запрос выполняется миллион раз"
Это Вы, как говорится гоните. В отчете нет выполнения запросов в циклах, с этим все нормально.

"в запросах по регистрам нет дат начала запроса"
А вот то, что есть обращение запросом к регистру "взаиморасчеты с контрагентами" без ограничения по периоду - это да - есть.
В этом и есть вся проблема.
Нужно это переделать но пока не знаю как.
Не понятно, как ограничить период. Если по периоду отчета, то мы не получим реальных оплаченных продаж.
Иными словами, получим продажи по которым были оплаты в указанный период.
Такой отчет в программе уже есть - это продажи по оплате.

В общем если реально решать такую задачу, то получения данных об оплатах решается не просто.
Может кто подскажет решение - буду благодарен.

"В общем извините, но отчет туфта полная, не советую не кому его качать."
Ну это ваше мнение и оно не есть истиной. У меня этим отчетом пользуются клиенты с файловыми базами 6-7 ГБ.
На скулях -это были бы базы в десятки гигобайт. У моих клиентов, этот отчет на таких базах, и при нормальном железе формируется 2-3 мин.
Ну а если в целом, то этот момент обязательно нужно оптимизировать - но пока не знаю как.
24. Тимур (user605403_thetimour) 13.09.16 13:29
Добрый день, все все прочитал, что смог понял. Однако требует уточнения следующий вопрос по работе отчета: Попадут ли в отчет те оплаты по заказам, реализация которых прошла в другом периоде, раньше? Пример:

30.12.2015 - Продажа 1 (реализация товаров и услуг)
01.01.2016 - Оплата 1

Если период - январь 2016
25. Тимур (user605403_thetimour) 13.09.16 14:04
Скачал файл, попробовал запустить с параметрами по умолчанию и периодом за 2 недели. Выдает ошибку. Пробовал запускать несколько раз.

Текст ошибки: {ВнешнийОтчет.script_ВаловаяПрибыльПоОплате.МодульОбъекта(584)}: Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпановкиДанных, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
по причине:
Ошибка компоновки макета
по причине:
Ошибка генерации макета
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(65, 31)}: Поле не найдено "ПродажиСебестоимость.НДС"
ИНАЧЕ ПродажиСебестоимость.<<?>>НДС * (КурсыВалютУпр.Курс * КурсыВалютОтчета.Кратность) / (КурсыВалютОтчета.Курс * КурсыВалютУпр.Кратность)


1С:Предприятие 8.2 (8.2.19.130)
Конфигурация: "Управление торговлей", редакция 10.3 (10.3.23.3)

26. script Мальчинко (script) 13.09.16 17:36
(24) user605403_thetimour,

Попадут ли в отчет те оплаты по заказам, реализация которых прошла в другом периоде, раньше? Пример:


Да попадут. именно для это отчет и делался.

По поводу ошибки проверю
27. Тимур (user605403_thetimour) 16.09.16 14:28
Вот уже несколько дней прошло как я сижу с неработающей обработкой (текст ошибки выслал выше).
Сколько еще дней необходимо ждать?
28. Тимур (user605403_thetimour) 19.09.16 17:08
Короче, спустил деньги впустую. Высланная обработка не работает. Разработчик написал "посмотрю". Представитель support'a запросил выслать информацию, после чего вообще не реагирует. Развод чистой воды, рекомендую всем ничего здесь не брать.
29. script Мальчинко (script) 19.09.16 22:06
Обновил файл Валовая прибыль по оплате для УТ 10, УПП.

Исправил ошибку:
{(65, 31)}: Поле не найдено "ПродажиСебестоимость.НДС" 
ИНАЧЕ ПродажиСебестоимость.<<?>>НДС

Проверял на УТ 10.3.16
30. script Мальчинко (script) 22.09.16 22:09
Обновил файл Валовая прибыль по оплате для УТ 10, УПП.

Исправлены обнаруженные ошибки.

Проверка работоспоособности проводилась на релизе УТ 10.3.37.3
31. Игорь М. (Helper) 27.09.16 17:46
(21) script,
Именно так и должен работать.

Но не работало.
(29) script,
Обновил файл Валовая прибыль по оплате для УТ 10, УПП.

Для УТП файл не обновляли случайно?
32. script Мальчинко (script) 30.09.16 22:54
29.09.2016 - Обновлен файл для УТ 10.

1. Исправлена ошибка расчета суммы продажи с НДС.

Ошибка приводила к тому, что программа, к сумме продажи с НДС еще раз добавляла НДС, а колонка "сумма продажи без ндс" выводила сумму с ндс.

2. Теперь, при нажатии на кнопку сформировать, отчет всегда обращается к базе и не использует собственный буфер.
33. script Мальчинко (script) 03.10.16 14:04
(31) Helper,

Все работает именно так. У Вас, скорее всего, в договоре выставлено: "Вести взаиморасчеты" = "По договору в целом". Поставьте "по заказам"