gifts2017

График - календарь платежей

Опубликовал Андрей Пушкин (Akela) в раздел Отчеты - Финансовые

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

Спасибо  Сhe Burashka за идею и "шкуру": http://infostart.ru/projects/2443/index.php?p=1&id=2443%2F

Переписал под свои нужды, дополнил, ускорил за счёт 1С++ (прилагается). Писалась для комплексной, в ТиС тоже должна работать.  Может кому будет актуально. Все вопросы в этом топике или на мыло: akelahacker@mail.ru

 

ОБЩИЕ СВЕДЕНИЯ И ОПИСАНИЕ ИНТЕРФЕЙСА.

 
Глубина отчёта зависит от самой поздней даты планирования, присутствующей в базе данных. По умолчанию выводится календарь текущего месяца, если запланированы более поздние платежи, то есть возможность их просмотра, а также возврата к текущему месяцу, нажатием кнопок '<<' '>>'.
В случае установки фильтра по контрагенту или группе контрагентов, данные выводятся только по наложенному условию, иначе по всем.
Плановые платежи поставщикам и покупателям рассчитываются на основании созданных документов "Заявка покупателя" и "Заказ поставщику", однако может возникнуть ситуация, что на текущий день мы имеем авансовые платежи по этим контрагентам. Тогда логично заметить, что планировать такой платёж или поступление неверно и он должен быть уменьшен на сумму аванса. Для этого на форме имеется флаг "План - Аванс". Если этот флаг установлен, то от планируемых поступлений и платежей будет отниматься сумма уже выданных и полученных авансов.
При нажатии на кнопку "Обновить" происходит повторный анализ, это может быть полезно при динамичном изменении первичных документов в базе.
В нижней левой части отчёта расположена "легенда" по значению цифр в ячейках отчёта.
В нижней правой части выводится справка об остатках денежных средств и текущему состоянию взаиморасчётов.
Остатки за текущую дату являются фактическими, на все последующие - прогнозируемыми (расчётными) при условии неизменности текущей картины просроченных платежей и поступлений, а также полном соблюдении плана последующих запланированных поступлений и платежей. Особо хочу заметить, что при планировании будущих платежей и поступлений никоим образом не учитывается просроченная задолженность, которая показывается только на текущую дату де-факто (как есть...).


ОПИСАНИЕ ИСХОДНЫХ ДАННЫХ

Остатки денежных средств на начало дня.
Этот показатель получается путём сложения текущего (полученного на ТА) остатка средств на расчётных счетах и в кассах предприятия.

Просроченный долг поставщикам.
Долг поставщикам, срок оплаты которого ранее текущего дня.

Авансы выданные поставщикам.
Все остатки авансов поставщикам (полученные на ТА).

Текущий долг поставщикам.
Долг поставщикам, срок оплаты которого равен дате в календаре.

Планируемый аванс поставщикам.
Остаток сумм, получаемых из регистра "Заказы", срок оплаты (из документа "Заказ поставщику") по которым равен дате в календаре. В случае установки флага "План - Аванс" от этой суммы отнимается аванс поставщику, если он имеет место.

Просроченный долг покупателей.
Долг покупателей, срок оплаты которого ранее текущего дня.
 
Авансы полученные от покупателей.
Все остатки авансов от покупателей (полученные на ТА).
 
Текущий долг покупателей.
Долг покупателей, срок оплаты которого равен дате в календаре.

Планируемый аванс от покупателей.
Остаток сумм, получаемых из регистра "Заявки", срок оплаты (из документа "Заявка покупателя") по которым равен дате в календаре. В случае установки флага "План - Аванс" от этой суммы отнимается аванс от покупателя, если он имеет место.


ДОПОЛНИТЕЛЬНЫЕ ОТЧЁТЫ И ДЕТАЛИЗАЦИИ

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

Отчёты по текущему дню:
 - при клике по ячейке с номером дня: Развёрнутый отчёт по просроченным и авансовым платежам по поставщикам  и покупателям на текущую дату;
 - при клике по ячейке начального остатка: Развёрнутый отчёт по остаткам на банковских счетах и в кассах  предприятия на текущую дату;
 - при клике по ячейкам текущих или плановых платежей или поступлений: Развёрнутый отчёт по текущим или  плановым платежам или поступлениям на текущую дату.
 
Отчёты по последующим дням:
 - при клике по ячейкам текущих или плановых платежей или поступлений: Развёрнутый отчёт по текущим или  плановым платежам или поступлениям на соответствующую дату.


АЛГОРИТМ ВЕДЕНИЯ УЧЁТА

 Для достижения результата отчёта, близкого к реальному состоянию финансовой деятельности предприятия, необходимо придерживаться определённого алгоритма создания и заполнения первичных документов.
 Для правильной классификации долгов и своевременного осуществления платежей необходимо правильно заполнять реквизит "Дата оплаты" во всех документах поступления ТМЦ, Услуг, Доп. расходов и т.д., а также документах отгрузки покупателям. Напомню, что данный реквизит заполняется автоматически, если в договоре у контрагента установлено количество дней отсрочки платежа (Алгоритм заполнения: Дата оплаты =  Дата документа + Количество дней отсрочки.)
 Чуть сложнее обстоит вопрос формирования плановых поступлений и платежей. В данном отчёте учитываются только те "Заявки покупателей" и "Заказы поставщику", дата оплаты по которым попадает в интервал формирования отчёта, т.е. >= текущей дате. Причём более ранние из них могут быть либо исключены полностью, либо уменьшены на сумму выданных и полученных авансов (при установке флага "План - Аванс"). Таким образом, для того, чтобы запланировать авансовый платёж поставщику или предоплату от покупателя, необходимо создать документ "Заказ поставщику" или "Заявка покупателя", правильно указать дату оплаты и сумму в табличной части (Содержание табличной части при этом, для данного действия, не имеет никакого значения. Например, для фирм занимающихся торговлей запасными частями, можно в табличной части указать всего одну строку, выбрав в поле Номенклатура - "Запчасти в ассортименте"). Таким же образом можно планировать авансовую оплату услуг и т.д. Однако, ещё раз хочу подчеркнуть, данный отчёт только выводит информацию о планируемом платеже, контроль же за исполнением данного платежа полностью ложиться на сторону пользователя (ответственного лица). Т.е. Если на текущую дату был запланирован авансовый платёж поставщику, но его не произвели, то сформировав отчёт завтра, информации об этом плановом платеже мы уже не отследим.
 Также нужно заметить. что в случае поступления от поставщика номенклатуры, либо услуг, не соответствующих указанным в табличной части, постоянно будут расти остатки по регистру "Заказы" и "Заявки". Для устранения данной ситуации необходимо своевременно и периодически производить сторнирование исполненных или утративших силу документов "Заказ поставщику" и формирование документа "Отмена заявок". В этих вопросах Вам помогут отчёты "Заказы поставщикам" и "Заявки покупателей".

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

Наименование Файл Версия Размер
ГрафикКалендарьПлатежей 502
.1236351574 585,21Kb
25.09.09
502
.1236351574 585,21Kb Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сhe Burashka (CheBurator) 06.03.09 18:17
2. Андрей Пушкин (Akela) 07.03.09 11:56
3. Андрей (Свой) 09.03.09 12:38
глDisconnect<<?>>(глODBCDatabase);
{D:\1CV77\1СV7_ОБРАБОТКИ\ОБРАБОТКИ_ТИС\ТИС_ГРАФИККАЛЕНДАРЬПЛАТЕ­ЖЕЙ.ERT(809)}: Процедура не обнаружена (глDisconnect)

+ есть ли в вашей обработке режим работы без 1С++ ?
в чем доработка помимо перевода на прямые запросы в сравнее с обработкой Че ?
4. Андрей Пушкин (Akela) 09.03.09 14:14
1. Нет, запросы к регистрам в принципе можно и переписать по родной 1С.
2. Изменений много, читайте описание.

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

... Планируемый аванс поставщикам.
Остаток сумм, получаемых из регистра "Заказы", срок оплаты (из документа "Заказ поставщику") по которым
равен дате в календаре. В случае установки флага "План - Аванс" от этой суммы отнимается аванс поставщику,
если он имеет место....

... Планируемый аванс от покупателей.
Остаток сумм, получаемых из регистра "Заявки", срок оплаты (из документа "Заявка покупателя") по которым
равен дате в календаре. В случае установки флага "План - Аванс" от этой суммы отнимается аванс от покупателя,
если он имеет место....

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


5. Андрей Пушкин (Akela) 09.03.09 14:19
глDisconnect<<?>>(глODBCDatabase);

Извинияюсь, просто я интенсивно использую в своих конфах 1С++ и многие процедуры у меня вынесены в глобальный модуль. Вот забыл в частности эту добавить в обработку. Приношу свои извинения и выкладываю функцию. Просто добавьте её в модуль обработки:

//******************************************************************************
Функция глDisconnect(ПеремОбъекта) Экспорт
Попытка
ПеремОбъекта.Закрыть();
Исключение
Error = ПеремОбъекта.ПолучитьОписаниеОшибки(); // свойство управляет выводом ошибкой
Сообщить(ОписаниеОшибки() + РазделительСтрок + Строка(Error), "!!!");
ПеремОбъекта = "";
КонецПопытки;
//Возврат ПеремОбъекта;
КонецФункции //Disconnect
//******************************************************************************

6. Сhe Burashka (CheBurator) 09.03.09 15:05
7. Андрей Пушкин (Akela) 10.03.09 10:23
Скорее всего да, это ограничение из-за использования прямых запросов 1С++. Я уже говорил, что функции получения данных из регистров можно переписать на родном 1С, главное чтобы структура выходных ТЗ, была аналогичной...

Правда разработчики 1С++ что-то писали о поддержке дбф версий, но утверждать и проверить не могу, да и скорее не хочу. (нет у меня ни одной дбф базы...)
8. Андрей Пушкин (Akela) 10.03.09 10:32
но у меня выдается ошибка
>
> ODBCRecordSet.УстТипыКолонок1С("Справочник.Фирмы,Справочник.БанковскиеСчета,Число");
> {C:\PROGRAM FILES\DATA77\ЦРБ ТОРГОВЛИ
> ОНИЛА\EXTFORMS\ГРАФИККАЛЕНДАРЬПЛАТЕЖЕЙ.ERT(252)}: Данный метод возможно
> вызывать только после подготовки запроса или открытия курсо


Такой "отлуп" обычно возвращается компонентой, если в запросе происходит обращение к несуществующим реквизитам. В частности в Вашем случае необходимо проверить наличие в конфигурации справочников: Фирмы, БанковскиеСчета. А также наличие регистра Банк с измерениями: Фирма, БанковскийСчет".

Перед каждым оператором выполнения запроса в обработке есть закомментированая строка: //ODBCRecordSet.Отладка();

Раскомментируйте её, и тогда в момент ваполнения запроса Вы сможете увидеть в окне сообщений текст SQL-запроса в "чистом" виде. Его можно скопировать и выполнить в Enterprise менеждере, чтобы увидеть ошибки на стороне SQL.
9. Сhe Burashka (CheBurator) 10.03.09 12:38
(7) вот ак всегда...
у мну есть в конфиге парочку прямых запросов, так у меня отрабатывает схема - попытка выполнить SQL,если плохо - попытка выполнить DBFи только потом если плохо - попытка выполнить родной черный запрос...
10. Андрей Пушкин (Akela) 10.03.09 13:03
уууууу, я обработки не для продажи пишу, потому и универсальности нет. А у мну всё на SQL, так спрашивается: зачем козе баян? Я написал для сэбэ, поделился с народом, как говориться "из народа пришло в народ и вышло", кому надо пусть под себя затачивает, я ж не супротив...
11. Андрей Пушкин (Akela) 10.03.09 13:08
(9) так опять же "парочка...", а у меня торговля на 7.7 - 70% всё переписано вдоль и поперёк на SQL, даже от одной мысли, что туда запихнуть возможность работы с dbf или родной 1С придётся, мороз по коже...
12. Сhe Burashka (CheBurator) 10.03.09 13:19
(11) ага! теперь понятно у кого консультироваться можно будет....
13. Андрей Пушкин (Akela) 10.03.09 13:34
Пишите, чем могу как говориться...

Кстати хучу проспамить один ресурс, участником которого являюсь, под ником AkelaSQL:
http://forum.vingrad.ru/forum/sap-erp-1c-mrp-drp-rop-cr-qr-abap.html

а также обругать за жлобство и присваивание чужих разработок с целью наживы:
http://1c.proclub.ru/
14. Шипицын Андрей (АнВаш) 12.03.09 14:24
Ругается
Error = глODBCRecordSet.ПолучитьОписаниеОшибки();
{C:\USERS\ANDREW\DESKTOP\ГРАФИККАЛЕНДАРЬПЛАТЕЖЕЙ.ERT(839)}: Значение не представляет агрегатный объект (ПолучитьОписаниеОшибки)\
15. Андрей Пушкин (Akela) 12.03.09 14:39
16. Шипицын Андрей (АнВаш) 13.03.09 09:08
Прошу прощения за беспокойство. Разобрался.
17. Сергей (Che) Коцюра (CheBurator) 11.05.10 17:45
Рекомендация автору выложить содержательные скриншоты!
18. Андрей Пушкин (Akela) 11.05.10 18:25
19. Андрей Пушкин (Akela) 11.05.10 18:26
А может и будет...
не проверял...
скорее всего нет.
код открыт - велком
20. ehoo ehoo (ehoo) 24.05.10 13:43
Ага, в dbf работать не будет. Жалько.
21. sveta210180 06.10.11 12:02
Спасибо, работает хорошо. А нельзя ли встроить возможность стоп-отгрузки для неплательщиков?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа