Готовое решение по постановке управленческого учета дебиторской и кредиторской задолженности:
- отсроченная и просроченная задолженность;
- платежный календарь (поставщики и покупатели);
- структура задолженности по интервалам;
- структура задолженности по срокам.
В настоящее время достаточно распространенной формой отгрузки товаров является отсрочка оплаты. Компания получает отсрочку оплаты от поставщика и предоставляет отсрочку покупателям. Таким образом у компании возникает необходимость организовать учет отсроченной кредиторской и дебиторской задолженностей. Типовые конфигурации 1С: ПРЕДПРИЯТИЕ 8 предоставляют возможность вести такой учет только при условии, что в договоре контрагента установлено «Вести по документам расчетов с контрагентами». Такая детализация ведения взаиморасчетов удобна далеко не всем компаниям.
(2) Нет. На бухгалтерии работать не будет. Теоретически можно переписать часть запроса на получение не из регистра взаиморасчетов данных, а из регистра бухгалтерии. Но пока такой необходимости не было.
Подскажите пожалуйста какие параметры нужно вводит в основном договоре, для того что бы кол. во дней просрочки отображалось, я в этом новичек. Заранее спасибо
(3) В типовых конфигурациях надо немного пропатчить код формы договора чтобы количество дней отсрочки можно было устанавливать для договора с любой детализацией ведения взаиморасчетов:
Недавно обнаружил что в выложеных файлах при конвертации в 8.2 "слетела" типизация настройки интервалов на формах отчетов. Не выбираются интервалы на форме отчета.
Исправлю и выложу исправленные как будет время. Сейчас совсем нет времени :-(
Все как то повода не было написать "статическое" распределение отгрузок и оплат, а тут вот клиент попался который хочет анализировать только оплаченные реализации. Сделал регистр и обработку распределения. Где то около 30 секунд генерит 100 тыс.записей соответствия что чем было оплачено.
(8) Теперь на основе этого регистра сведений соответствия отгрузок и оплат можно будет написать отчет по платежной дисциплине.
Меня несколько раз про него спрашивали, но безвозмездно было лень писать :-)
(11) Именно так - будет видно что чем оплачено и когда. Я пошел еще дальше - сделал копию регистра продаж и его тоже заполняю исходя из того как разнеслись оплаты чтобы посчитать пономенклатурно оплаченную реализацию. Кто то скажет что это бред - соглашусь :-), но такова воля заказчика. Правда в регистр накопления продаж идет запись гораздо медленнее, чем в регистр сведений распределения оплат.
В регистр сведений 100 тыс записей распределения документов отгрузок и оплат рассчитываются и пишутся секунд 30-40.
Когда уже есть готовое распределение отгрузок и оплат, то можно посчитать много чего. Например, я написал отчет по сумме просроченной задолженности на каждый день месяца чтобы пеню начислять за просрочку. Можно анализировать с какими отсрочками были оплаты и т.д.
Метод по сути прост - создаем регистр сведений и алгоритм, который его рассчитывает. Правда несмотря на кажущуюся простоту алгоритм у меня долго не получался (часов 10 писал:-(). Но может просто не нашел оптимальное решение. Главное что работает достаточно быстро. Я опасался что медленно будет на десятках тысяч документов работать (каждый раз перераспределяется все чтобы не заморачиваться с отслеживанием последовательности).
(12)
Метод по сути прост - создаем регистр сведений и алгоритм С увиличением документов увеличится расчет рег.сведений, так? если да то другой путь искать надо, хотя этот метод интересный.
(13) А ничего что каждый из этих документов пишет в десяток регистров накопления ? От этого база не пухнет ? :-)
Как вариант оптимизации - можно перерасчитывать только по тем контрагентам, по которым были изменения.
В данном случае имеем порядка десяти тысяч отгрузок и десяти тысяч оплат в месяц. Данные в базе за год.
30 секунд на перерасчет регистра - это быстрее чем отчет строится в котором по фифо распределяется.
Но дело тут не в скорости, а в том что хотим видеть "платежную дисциплину клиента". При этом вручную распределять что чем оплачивается никто не будет.
В валовую прибыль в модуль прописал обработку, которая очищает и заполняет рег.сведений(только просроченными доками) отталкиваясь от настроек отчета + пеню считает за просрочку
(16) volga1, Делюсь идеей к просрочке(мож кому понадобиться). А сам алгоритм где-то мелькнул? может проглядел :)
Как я понял из постов, автор данной публикации сам перешел на такую схему. А как дела у тебя, уважаемый volga1? вы каждый свой алгоритм писали?
(29) С одной стороны меня и моих клиентов эти отчеты вполне устраивают. С другой стороны - конкретному клиенту потребовалось "статически" распределять взаиморасчеты и это оказалось более функциональным вариантом, но требующим гораздо большее вмешательство в конфигурацию. Так что оба способа имеют право на жизнь.
Большое спасибо, работа действительно проделана хорошая, отчет понравился, избавил меня от гемора... Самое приятное, что бесплатный) а так бы самому пришлось делать... Вообщем однозначно плюс!!!
(18) Спасибо :-)
А то куча народу качает - ни плюсов ни комментариев.
Отчет то реально хороший - я это точно знаю :-)
Правда я все же перешел на хранение взаимосвязей между документами в регистре.
Скорость расчета регистра сравнима со скоростью построения этого отчета,
зато потом можно и больше разных отчетов построить и строятся они быстро.
(19) Можно еще вопросик? У меня в вашем отчете попадают далеко не все документы (регистраторы). Т.е. сумма правильная а вот регистратор, как правило последний, может быть два.. Например обычная ведомость по взаиморасчетам показывает все документы, но если в договоре проставлена галочка "Вести по документам расчетов с контрагентами", у вас нет этой привязки, но и документы не показываются все...
Если поняли о чем я, может подскажите в чем проблема, а то неохота разбирать весь ваш запрос...
Заранние благодарен!
(21) В моих отчетах возникающая задолженность (документы реализации) погашается (документы оплаты) в порядке дат ее возникновения (по FIFO). Поэтому показывается несколько последних документов, которые не оплачены. В стандартных конфигурациях при использовании документов расчетов пользователь сам указывает (при помощи документов расчетов) что чем оплачивается и оплачиваться могут совсем не те документы, которые должны быть оплачены. Поэтому для правильного учета просроченной задолженности в компаниях с существенным документооборотом типовой механизм учета в разрезе документов расчетов применять проблематично.
(26) К сожалению интервалы пока не исправил :-( Там на самом деле просто надо реквизиту отчета назначить тип, т.к. типизация "слетела" при конвертации на 8.2
Отличная разработка
но выдает ошибку отчет по интервалам
{ВнешнийОтчет.ОтчетЗадолженностьПоИнтервалам_Z_v4_0.МодульОбъекта(1388)}: Ошибка при установке значения атрибута контекста (Текст)
УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
по причине:
{(41, 61)}: Поле не найдено "ВзаиморасчетыОстаткиИОбороты.Регистратор.ДатаДоставки"
ИНАЧЕ ВзаиморасчетыОстаткиИОбороты.Регистратор.<<?>>ДатаДоставки
подскажите куда копать?
И еще вопрос: добавил кнопку из Листинга 2, отчет всегда выводит как по договору с покупателем, как на постоянной основе закрепить чтобы по нажатию кнопки выдавал отчет по всем видам договора?
(28) Там в запросе надо закомментировать часть кода и раскомментировать другую. Это я для кого то менял чтобы считалось от даты документа. Случайно попала сюда эта версия этого отчета, а не оригинальная. Вот тут:
// #Изменено
//
| НАЧАЛОПЕРИОДА(МИНИМУМ(
| ВЫБОР КОГДА ВзаиморасчетыОстаткиИОбороты.Регистратор Ссылка Документ.ПоступлениеТоваровУслуг
| ТОГДА ВзаиморасчетыОстаткиИОбороты.Регистратор.Дата
| КОГДА ВзаиморасчетыОстаткиИОбороты.Регистратор Ссылка Документ.РеализацияТоваровУслуг
| ТОГДА ВЫБОР
| КОГДА ВзаиморасчетыОстаткиИОбороты.Регистратор.ДатаДоставки = &ПустаяДата
// //не указана дата документа поставщика - считаем отсрочку от даты документа
| ТОГДА ВзаиморасчетыОстаткиИОбороты.Регистратор.Дата
| ИНАЧЕ ВзаиморасчетыОстаткиИОбороты.Регистратор.ДатаДоставки
| КОНЕЦ
| ИНАЧЕ ВзаиморасчетыОстаткиИОбороты.Регистратор.Дата
| КОНЕЦ), День) КАК Дата
//
//| НАЧАЛОПЕРИОДА(МИНИМУМ(ВзаиморасчетыОстаткиИОбороты.Регистратор.Дата), День) КАК Дата
//
// #Изменено
Подскажите, а какой тип нужно дать реквизиту Интервал? И еще вопрос - сейчас отчет по интервалам формируется в таком виде http://pix.am/kJ88/ т.е. просрочен/не просрочен. А что нужно сделать чтобы выводилось именно по интервалам?
(33) MAXXL, Нашел сам. У реквизита Интервал нужно выставить тип СправочникСсылка.НастройкаИнтервалов ; Далее создать в этом справочнике новый элемент , и в нем прописать нужные периоды. после этого отчет формируется именно в том виде что и был задуман автором
Не подумайте что я искатель халявы. Жаль что раньше не попалась данная публикация на глаза. Я пошел по другому пути - автоматическое заполнение документов расчетов, т.е. обработка заполняла расчетные документы и перепроводила. Немало головняков схватил. За основу взял одну из публикаций с сайта, но допиливать так пришлось, что потом пожалел что сам с нуля не написал. Баги месяц отлавливал.
Далее дало о себе знать постоянное перезаполнение документов, очень "задним" числом. Что само собой не по нраву партионке и последовательностям. Обошел, сделал чтоб перезаполнение затрагивало только нужный регистр.
Ну и текущее неудобство, суть: заполнять каждый день взаиморасчеты по документам за весь период не комильфо - ибо долго. Делаю за последние несколько дней. Но тут проблема, если бухи меняют какие либо старые документы? До недавнего времени обходились топорно: они выписывали на листочек контрагентов и период, которые затронули. И по ним в индивидуальном порядке перезаполнял. Автоматизация конечно не ахти.
Делать отдельную границу последовательности? какую то хитромудрую, в разрезе контрагентов? а как быть если у старого документам поменяли одного контрагента на другого? И тут в голову пришел простой до безумия алгоритм. Накидал в консоле запросов - всё верно. Щас реализую в обработке, и она сама сможет будет знать по какому контрагенту и с какого числа необходимо выравнять взаиморасчеты, без всяких самодельных последовательностей.
(35) AlexKoso, Если документы расчетов писать не в регистр накопления а в регистр сведений, то перезаполняет весьма шустро. Ну а чтобы знать по какому клиенту пересчитывать (а не по всем) надо создать план обмена и в обработчики событий документов добавить регистрацию в плане обмена "старого" (до изменения) и "нового" (после изменения) контрагента в документе.
(47) ZLENKO.PRO, Шикарная идея :) но всё таки мне теперь это побоку. Перешел на отчет, аналогичный отчету из данной публикации. Кусок запроса из отчета прекрасно вписался контроль по дням просрочки в регистре взаиморасчетов. Теперь показывает все что нужно, в любое время, без всяких батников, обработок перезаполнения и проч. Регистр взаиморасчетов по документам расчетов очистил за ненадобностью и в договорах галки поснимал.
(49) К сожалению одним запросом не все задачи решаемы. Например, недавно попросили показать как менялась просроченная задолженность за последний месяц (т.е. фактически 30 отчетов таких надо построить). Или еще попросили показать в отчете о продажах только оплаченную реализацию (по документам расчетов не ведут). В таких случая заранее расчитанный регистр - как раз то что нужно.
(52)Если нет необходимости более сложных вычислений чем просроченная задолженность на дату в разрезе документов, то отчета вполне достаточно. Если же надо, например, сделать отчет по оплаченным продажам или отчет по платежной дисциплине, то тут уже без заранее рассчитанного регистра не обойтись.
Интересно есть ли потребность в подобном отчете для УТ 11 ?
У меня что-то ошибки лезут
{ВнешнийОтчет.ОтчетЗадолженность_Z_v4_0.МодульОбъекта(1549)}: Преобразование значения к типу Число не может быть выполнено
УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("ДатаДетализации", НачалоДня(УниверсальныйОтчет.ДатаКон - ДетализацияДней*24*60*60));
{ВнешнийОтчет.ОтчетЗадолженностьПоИнтервалам_Z_v4_0.МодульОбъекта(1388)}: Ошибка при установке значения атрибута контекста (Текст)
УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
по причине:
{(41, 61)}: Поле не найдено "ВзаиморасчетыОстаткиИОбороты.Регистратор.ДатаДоставки"
ИНАЧЕ ВзаиморасчетыОстаткиИОбороты.Регистратор.<<?>>ДатаДоставки
Есть замечания.
1. Не все документы должны попадать в отчет. Например, корректировка долга.
2. Кроме того, заданный интервал документов распространяется не на все документы. Например, на ту же корректировку.
3. Не понятно назначение "интервал" - где менять, из чего выбирать.
(41) 1) Вы считаете что корректировка долга не должна корректировать долг ?
2) Период отчета используется для отображения дополнительных полей оборотов за период. Чтобы иметь возможность сравнить задолженность с оборотом. Задолженность считается на конец периода отчета.
3) У поля Интервал "слетела" типизация при конвертации на 8.2. Должен быть тип реквизита отчета Справочник Интервалы. Исправлю.
(38) Вот это я не пойму почему у Вас ошибку выдает.
(39) Случайно попала версия одного отчета адаптированная под одного из заказчиков. Там отсрочка считается от поля ДатаДоставки в реализации. Два других отчета (запрос там везде одинаковый) правильные.
В "оригинальной" версии Отсрочка от чего пляшет? (если не от Дата Доставки)
Про Корректировку долга. Если это ввод остатков на начало работы (а других, не нарушающих отчетность, применений этому документу я не вижу. За перенос долга с клиента на клиента таким методом или корректировки типа "покупали носки, вернем кроссовки" надо увольнять) - накой они в оборотах?
(42) В двух других отчетах отсрочка считается от даты документа реализации (часть запроса закомментировано чтобы можно было быстро переделать под нужное поле документа). Просто у разных компаний разные договора с клиентом - отсрочка считается либо от даты отгрузки (даты реализации) либо от даты доставки клиенту (дополнительное поле в реализации - его нет в стандартных конфигурациях, поэтому выдает ошибку третий отчет).
Корректировка долга это документ позволяющий корректировать долг. Причины корректировки могут быть самые разные от ввода начальных остатков до списания безнадежной задолженности.
Если это ввод начальных остатков - тем более они должны попадать в задолженность, т.к. реально эта задолженность возникла раньше чем дата ввода начальных остатков. Но как правило не заморачиваются с точным переносом начальных остатков по датам (хотя ничего не мешает сделать вводы начальных остатков нужными датами) и клиенты получают "бонус" в виде большей чем положено отсрочки (либо составляют план входящих платежей по старой системе и потом отслеживают по нему платежи за прошлый период, который в новой базе одной суммой).
Вобщем однозначного рецепта для всех клиентов тут нет. Как я уже писал сейчас есть клиент, который отслеживает оплату "потоварно", а не по документам в целом. Хотя я лично не понимаю смысла в этом.
(44) 1с-программы.com,
Может быть важно для скоропортящегося товара в супермаркете. Если ты заплатил за молоко, а потом пытаешься его же вернуть, только в виде кефира ...
У меня есть знакомые канцтоварщики. Им возврат от просрочивших оплату (безнадежного долга) идет чем попало и необязательно тем, что бралось у них - абы вернули...
Корректировка долг не есть операция движения ТМЦ/денег. А только их перевод из одного состояния в другое. Ядля себя уже фильтрами настроил список документов-участников.
Спасибо за отчет, + поставил ). Интересно, почему в отчет не вывели (не сгруппировали) по Сделке (Заказу), очень часто бывает, что Договор с видом взаиморасчетов "по заказам" и есть заполненное поле "Сделка" во "Взаиморасчетах". Если сделать еще группировку по "Регистратор.Сделка", то в случае, если разрешено использование заказов в табличных частях данный реквизит будет не заполнен (документ может быть по нескольким заказам + "неправильно" считается сумма задолженности, так как если есть группировка по Сделке, то задолженность придется считать по методу FIFO, но с учетом указанных Сделок в документах.
P.S. По аналогии уже можно и акт сверки формировать, добавив в него поле "Сделка"... Пока не нашел здесь Акта с разбивкой по договорам и по сделкам для Договоров с видом взаиморасчетов "по заказам";
(57) Первоначальная версия отчета закрывала задолженность в разрезе сделок, но практика показала что если хотят видеть взаиморасчеты по сделке, то тогда указывают и документы расчетов и необходимости в распределении по FIFO не возникает - можно использовать штатный механизм расчетов по документам расчетов. Поэтому текущая версия закрывает взаиморасчеты по FIFO в пределах договора на основании плановых дат оплаты документов (рассчитываются на основании даты документа отгрузки и отсрочки по договору) и не требует указания сделки.
(61) Если буду делать новую версию отчета на СКД, то уже под УТ 11.1
Я пришел к выводу, что гораздо функциональнее использовать фоновое задание с алгоритмом расчета задолженности по документам и записи распределения оплат по отгрузкам в регистр сведений. Потом по этому регистру можно построить множество разнообразных отчетов :-) Поэтому развитие этого отчета не планируется. Тем более что в нем уже и так реализовано много всего :-)
Протестил отчет по интервалам.. сделал две реализации, одну из них потом закрыл Платежкой.
Покупатель выпадает в должники, причем с полной суммой реализации..
В архиве демо версии отчетов или рабочие варианты?
На скриншотах третий релиз отчета, возможно его получить для проверки?
На СКД для 10.3 удобнее поддерживать, на универсальном не так гибко настраивается..
УПП (1.3.42.1)
{ВнешнийОтчет.ОтчетЗадолженностьПоИнтервалам_Z_v4_0.МодульОбъекта(1388)}: Ошибка при установке значения атрибута контекста (Текст)
УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
по причине:
{(41, 61)}: Поле не найдено "ВзаиморасчетыОстаткиИОбороты.Регистратор.ДатаДоставки"
ИНАЧЕ ВзаиморасчетыОстаткиИОбороты.Регистратор.<<?>>ДатаДоставки
В УПП (1.3.42.1) РеализацияТоваровУслуг нет реквизита ДатаДоставки
При открытии отчета в Управление торговым предприятием для Украины 1.2 поле Интервал принимает тип значения "Строка". соответственно в пользовательском режиме выбрать в это поле ничего не получается. После того как я принудительно назначил этому реквизиту тип "СправочникСсылка.НастройкиИнтервалов", в пользовательском режиме поле начало отрабатывать выбор, но при формировании отчета интервалы не появляются.
В чем проблема?
Кроме того даже без интервалов суммы долга отображаются не те что выводят родные отчеты.
(68) script, "При открытии отчета в Управление торговым предприятием для Украины 1.2 поле Интервал принимает тип значения "Строка". соответственно в пользовательском режиме выбрать в это поле ничего не получается. После того как я принудительно назначил этому реквизиту тип "СправочникСсылка.НастройкиИнтервалов", в пользовательском режиме поле начало отрабатывать выбор, но при формировании отчета интервалы не появляются. "
При конвертации на 8.2 тип данных "слетел" у реквизита.
(69) kwl, "Хороший отчет и главное своевременный!!!"
После появления тут десятков "велосипедов" на эту тему интерес к развитию данного отчета пропал, но и в текущем виде он превосходит по функционалу все что я тут видел на эту тему :-)
Набор отчетов отличный. Однозначно +.
Только почему то не совсем понятно почему отчет ОтчетЗадолженностьПоСрокам_Z_v4.0 не делает группировку строк по "Контрагент.Основной менеджер покупателя". Такое ощущение, что он совсем не видит это поле.
Мы стали использовать вашу предпоследнюю версию отчета (скачанную 30/01/13)
и недавно в отчете "Отчет платежный календарь v.4.0" обнаружили проблему:
в некоторых случаях ссылка на документ не верна именно на который "вешаются" остатки, но дата и сумма правильные.
- это те случаи когда выбор долгов по документам контрагента без сортировки результатов запроса возвращают первой строчкой старый документ (2013 год например)
Вы знаете об этой проблеме? в последней версии она исправлена?
(78) serg1974, "в некоторых случаях ссылка на документ не верна именно на который "вешаются" остатки, но дата и сумма правильные. - это те случаи когда выбор долгов по документам контрагента без сортировки результатов запроса возвращают первой строчкой старый документ (2013 год например)"
Не сталкивался с подобной проблемой. Без базы на которой можно диагностировать проблему я не смогу ее устранить.
Неверно вычисляет прогнозируемую дату оплаты при включенной Считать отсрочку по банковским дням. Ставит дату оплаты, такую же как у документа, из-за этого практически у всех пишет просрочено.
Число допустимых дней задолженности в договорах проставлены.
Спасибо за отчет. Плюсую.
Скажите, а если накладную часть оплатили...они исчезла из таблицы..
почему не подскажите? И можно как то настроить чтоб отображалось сколько оплатили по накладной и дату(когда оплатили)(саму платежку).
Добрый день! Я правильно понимаю, что отчёт "ЗадолженностьПоИнтервалам" работает некорректно, если по контрагенту были возвраты/поступления ?
У меня возвраты минусуют колонку "непросроченно", и более поздние периоды не закрываются.
(86) ZLENKO,
например
Однако, последние движения были следующие:
Реализация товаров и услуг УТ000015763 от 06.10.2015 - 2 592,00руб.;
Реализация товаров и услуг УТ000015764 от 06.10.2015 - 14 614,32руб.;
Реализация товаров и услуг УТ000015913 от 08.10.2015 - 15 805,44руб.;
Возврат товаров от покупателя УТ000002208 от 23.11.2015 - -5 662,15руб. (с минусом);
+ приходные кассовые ордера.
В итоге: 1. почему-то реализация на сумму 15805,44 закрыта, хотя имеются более ранние реализации.
2. приходный кассовый ордер попадает в колонку "непросрочено" отрицательной суммой -4 506,97руб. (сам приходный ордер на сумму 10 311,60).
Подскажите пожалуйста, у Вас выложено 4 обработки. Первая обработка включает в себя весь функционал или нужно приобретать все 4 для получения всего описанного функционала?
(93) День добрый хотел приобрести отчет для целей отслеживания кредиторки перед поставщиками, с днями просрочки. 3тья картинка соответствует отчету "Задолженность по срокам"? если формировать по виду документа с поставщиками, он вытряхнет туда "Поступления товаров"?
(95) Обрабатывается весь регистр, но для оптимизации производительности можно ограничивать период детализации с точностью до документа "глубиной" в днях.