логотип
баннер
логотип
Главная
Услуги
О компании
1C:Предприятие 7.7


Поиск по сайту:


Задолженность по срокам возникновения долга в программе "1С: Управление торговлей 8" и "1С:Управление производственным предприятием 8"

Насколько пригоден отчет "Дебиторская задолженность по срокам долга" и насколько вообще применим подход построения такого отчета на базе регистра "Взаиморасчеты с контрагентами по документам расчетов" в программе "1С:Управление торговлей 8" и "1С:УПП 8". Об этом пойдет речь. Ну и конечно будет предложено решение этой проблемы.

Воспользуемся для анализа демонстрационной базой типовой конфигурации "1С: Управление торговлей 8" редакции 10.3. Сформируем отчет  (см. рис.1) по организации "Торговый дом "Комплексный" и контрагенту "Монолит" на 21.05.2007 (позже операций нет).

Рис. 1 Дебиторская задолженность по срокам долга

Затем, наложив тот же фильтр, т.е. сделав отбор по организации "Торговый дом "Комплексный" и контрагенту "Монолит", сформируем на ту же дату 21.05.2007 отчет  "Ведомость по взаиморасчетам с контрагентами" (см. рис.2). Первое что бросается в глаза: конечный остаток, т.е. остаток долга в этих двух отчетах разный.

Рис. 2 Ведомость по взаиморасчетам с контрагентами

Для того, чтобы понять почему это произошло, воспользуемся универсальным отчетом по регистру "Взаиморасчеты с контрагентами по документам расчетов" (см. рис.3). Как видите здесь конечный остаток в целом по контрагенту и по договору совпадает с "Ведомостью по взаиморасчетам с контрагентами". Более того он отрицательный, что означает, что задолженности контрагента (дебиторской задолженности) как таковой нет. Т.е. задолженность кредиторская, не нам должны, а мы. А отчет "Дебиторская задолженность по срокам долга" показывает, что должны нам и давно должны. Почему?

Рис. 3 Регистр "Взаиморасчеты с контрагентами по документам расчетов"

Обратим внимание на то, что остатки в регистре "Взаиморасчеты с контрагентами по документам расчетов" хранятся не по контрагенту и не по договору, а по документам расчетов с контрагентом. Если просуммировать только положительные остатки по документам расчетов, то и получим сумму, показанную в отчете "Дебиторская задолженность по срокам долга". Именно так упомянутый выше отчет и работает. Казалось бы, чего проще, исправить отчет, убрать в запросе условие "ГДЕ ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток > 0", и проблема решена. Но не все так просто. И дело даже не в том, что конечная сумма долга не соответствует действительности.

Исправить отчет можно, можно ли в принципе получить достоверные данные?

Вернемся к рис.1, обратите внимание на даты документов, образующих, порождающих долг. Это документы февраля и апреля. Ну соответственно документам и сроки возникновения долга. А между тем есть и более поздние документы, создающие дебиторскую задолженность. Для того чтобы понять, почему оказались не погашенными более ранние долги, сделаем расшифровку универсального отчета (см. рис.4) по регистру "Взаиморасчеты с контрагентами по документам расчетов" по документам движения (регистраторам) или добавим еще одно измерение (группировку) строки - документ движения.

Рис.4 Расшифровки универсального отчета по регистру "Взаиморасчеты с контрагентами по документам расчетов".

Мы видим, что документ "Реализация товаров и услуг" от 20.05.2007 является регистратором движений по приходу регистра "Взаиморасчеты с контрагентами по документам расчетов" для документов расчетов "Платежный ордер" и "Оплата от покупателя". Другими словами этот документ произвел зачет оплаты от покупателя по двум документам расчетов и таким образом долг, им созданный, оказался погашенным. С тремя другими более ранними документами "Реализация товаров и услуг" в феврале и апреле этого не произошло. Их долги остались не погашенными. В результате имеем искаженную по срокам долга картину. Т.е. даже если бы конечная сумма долга в отчете "Дебиторская задолженность по срокам долга" была верна, по срокам информация в любом случае непригодна.

Понятно, что это произошло из-за ошибок в учете, понятно что такие ошибки исправимы без изменений в программе. Но то, что таких ошибок огромное количество даже в демонстрационной базе от фирмы "1С", на мой взгляд о многом говорит.

Давайте подробнее рассмотрим суть ошибок, допущенных при ведении учета. Для этого откроем в отдельном окне "правильный" документ "Реализация товаров и услуг" от 20.05.2007 (см. рис.5) и перейдем на закладку "Предоплата".  Вот здесь следует заполнить (можно по одноименной кнопке "Заполнить") табличную часть документа, отражающую оплаты покупателя, которые пойдут в зачет возникающего долга. Если открыть "неправильные" документы "Реализация товаров и услуг" февраля и апреля, то можно убедиться в том, что подобная информация в них отсутствует, хотя, как видно из рис. 5, оплата от покупателя была уже в феврале.

Рис.5 Документ "Реализация товаров и услуг".

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

Дело в том, что в типовой конфигурации "1С: Управление торговлей 8" редакции 10.3 нет алгоритмов автоматического зачета авансов покупателя при возникновении дебиторской задолженности, как нет и автоматического погашения долга при оплате. Эти действия совершает пользователь программы, а не документ им созданный. Самое печальное, что результат действий пользователя хранится внутри документа и не корректируется автоматически в случае необходимости. А необходимость такая периодически возникает, например при внесении изменений задним числом, когда изменяются входные данные для тех или иных последующих по времени документов. Проиллюстрируем это на примере уже рассмотренном. Предположим, что пользователь захотел исправить ошибки, т.е. отредактировать уже рассмотренные "неправильные" документы "Реализация товаров и услуг". Что он для этого делает: открывает документ, заполняет табличную часть предоплаты. Но не тут то было. Проведенный более поздний документ от 20.05.2007 будет мешать, ведь он уже "использовал" часть оплат. Это хорошо видно на рис. 3: документ "Платежный ордер" использован полностью, документ "Оплата от покупателя" частично. В нашем конкретном случае "неиспользованной оплаты" достаточно, ведь в итоге имеем переплату, аванс от покупателя, а если бы была в итоге дебиторская задолженность, значит оплатить более ранние документы отгрузки, не убрав оплату более позднего, не удалось бы. И даже в нашем случае возможны ошибки, если предварительно не сделать документ "Реализация товаров и услуг" от 20.05.2007 непроведенным. Ведь оплатить документ можно только неиспользованными оплатами, поэтому например попытка заполнения табличной части предоплаты у документа "Реализация товаров и услуг" от 15.02.2007 закончится неудачей, хотя предоплата для него казалось бы есть - это платежный ордер от 11.02.2007. Но этот платежный ордер уже "занят" документом "Реализация товаров и услуг" от 20.05.2007. Поэтому только если сделать непроведенным документ "Реализация товаров и услуг" от 20.05.2007, можно заполнить предоплату у документа "Реализация товаров и услуг" от 15.02.2007. Об этом я писал еще в феврале 2007 года в статье "1С: Бухгалтерия 8. Ошибки в учете НДС", повторюсь: "причиной ошибки в учете могут быть неправильно заполненные документы, сколь угодно далеко расположенные на оси времени от рассматриваемого периода (как впереди так и сзади). В условиях ввода информации не в хронологической последовательности вероятность получения такой проблемы достаточно высока. Можно рекомендовать при поиске ошибки делать не проведенными более поздние документы".

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

Скажу лишь, что в той же демонстрационной базе "1С: Управление торговлей 8" редакции 10.3 мне не удалось найти ни одного контрагента, у которого данные отчетов  "Дебиторская задолженность по срокам долга" и "Ведомость по взаиморасчетам с контрагентами" совпадали бы.

Вывод прост: пока не решена проблема правильного заполнения на практике регистра "Взаиморасчеты с контрагентами по документам расчетов" строить на базе этого регистра отчеты не имеет смысла. Подчеркну еще раз - проблема не в построении отчета, а в содержании регистра. В том, как этот регистр заполняется в процессе ведения учета. Можно ли получить достоверную информацию по срокам долга иным путем, даже с учетом существующих ошибок? Да, можно.

Для этого нужно взять из регистра "Взаиморасчеты с контрагентами по документам расчетов" общую задолженность по контрагенту, а документы расчетов с контрагентом, создавшие задолженность, определить по методу ФИФО, никак не учитывая остатки регистра по этим документам. Точнее нужно использовать два регистра, помимо упомянутого еще и "Взаиморасчеты с контрагентами". По договорам, у которых установлен флажок "Вести по документам расчетов с контрагентом", информация берется из регистра "Взаиморасчеты с контрагентами по документам расчетов", по остальным из регистра "Взаиморасчеты с контрагентами".

Посмотрим, что получилось для рассмотренного выше примера (см. рис.6). Здесь на нижнем снимке - типовой отчет, выше переработанный.

Рис. 6 Сравнение двух отчетов нового и типового

На примере той же демонстрационной базы программы "1С: Управление торговлей 8" рассмотрим подробнее случай с положительной дебиторской задолженностью (см. рис.7). Опять же данные совершенно не совпадают. Подчеркну еще раз, что примеры я беру из демонстрационной базы программы "1С: Управление торговлей 8", т.е. ничего не выдумываю. Любой желающий может легко повторить описанные действия и убедиться в справедливости изложенного материала. Остаток долга контрагента, показанный на верхнем рисунке, т.е. в измененном отчете, совпадает с данными отчета "Ведомость по взаиморасчетам с контрагентами". Но этот отчет, как известно, не дает информации  по срокам задолженности, да и "дебиторские" документы в нем не очень то разглядишь.

Рис. 7 Сравнение двух отчетов нового и типового для случая дебиторской задолженности

Еще раз остановлюсь на том, почему так происходит, почему отчет "Дебиторская задолженность по срокам долга" из типовой конфигурации программы "1С: Управление торговлей 8" становится фактически не применим. С помощью отчета "Универсальный отчет" еще раз рассмотрим регистр "Взаиморасчеты с контрагентами по документам расчетов", на этот раз применительно к контрагенту "Белявский" (см. рис.8). Как видно, в отчет "Дебиторская задолженность по срокам долга" из регистра попадает как бы только один документ "Расходный кассовый ордер"  от 17.02.2007 (на рисунке выделен). Дело в том, что только этот документ имеет положительный конечный остаток. Обратите внимание, что сальдо по контрагенту в целом опять верное. Вы спросите, а где же в регистре отгрузочные накладные. Посмотрите на последнюю строку отчета: документ "Реализация товаров и услуг" от 20.04.2007 является регистратором, но не является при этом измерением, хотя именно этот документ является самым последним по времени документом, создающим дебиторскую задолженность, так что его и универсальным отчетом разглядеть не так просто.

Рис. 8 Регистр "Взаиморасчеты с контрагентами по документам расчетов"

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

А теперь о некоторых изюминках отчета, разработанного в ООО "Профи-центр". Есть возможность увидеть не только остаток долга но также сумму отгрузки и сумму просроченного долга (см. рис.9). Например, на рис.9 сумма документа "Расходный кассовый ордер"  от 17.02.2007 составляет 1780,64 руб., но только 356,61 руб. из них - это непогашенный долг. А долг по документу "Реализация товаров и услуг" от 24.04.2007 по состоянию на 30.04.2007 не является просроченным.

Рис.9 В отчете отражается просроченный долг и сумма отгрузки

При этом просроченный ли это долг определяется одним из двух способов (см. рис. 10): либо по допустимому числу дней отсрочки платежа, установленному в параметрах отчета, единому для всех контрагентов, либо по допустимому числу дней задолженности, установленному в договоре. Ну разумеется в обоих случаях отсчет допустимого срока задолженности ведется от даты документа, породившего задолженность (см. рис.9).

Рис. 10 Установка параметров отчета

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

Рис. 11 Отчет с группировкой по холдингу

При этом в список контрагентов, включаемых в отчет при отборах по менеджерам, попадают все контрагенты, у которых выбранный (выбранные) менеджер, указан в качестве основного менеджера покупателя. Кроме того все контрагенты, у которых выбранный (выбранные) менеджер, указан в списке менеджеров покупателя, и при этом основной менеджер покупателя не указан. И кроме того все контрагенты, которые являются покупателями и у которых нет менеджеров покупателя.

Рекомендации для пользователей больших информационных баз. Если в Вашей базе есть контрагенты, которым Вы часто отгружаете свои товары или продукцию, т.е. в информационной базе присутствует много расходных документов по одному контрагенту и одному договору, то в таком случае отчет будет формироваться долго. Что можно сделать в такой ситуации: ограничить просмотр расходных документов временным интервалом. Эта опция в отчете включена по умолчанию. Граница временного интервала просмотра расходных документов устанавливается по границе выбранного в отчете интервала определения возникновения долга. Например, если определяем сроки возникновения долга в пределах 120 дней, как в демо-базе и соответственно на рисунках в этой статье, то и расходные документы подбираются в пределах 120 дней. Это позволит сравнительно быстро получить общую информацию о задолженности по всем или по группе контрагентов. А затем можно получать более детальные отчеты (расшифровки) по каждому отдельно взятому контрагенту. Для этого нужно дважды щелкнуть мышью в соответствующей ячейке и выбрать вариант расшифровки (см. рис. 12), например по документам отгрузки. В отдельном окне откроется отчет по выбранному контрагенту с детализацией по документам (см. рис.9), при этом все необходимые параметры отчета будут установлены автоматически, граница просмотра расходных документов также автоматически очищается. Если же размер информационной базы позволяет, то границу просмотра документов можно не устанавливать (см. параметры отчета).

Рис. 12 Выбор варианта расшифровки

В редакции 2.0 появился новый алгоритм формирования списка расходных документов, совмещающий извлечение данных запросом и использование встроенного языка платформы "1С:Предприятие". Это позволило сократить время формирования отчета в целом. Выбор варианта алгоритма подготовки списка расходных документов осуществляется в окне установки параметров на закладке "Сроки". При этом отчет по-прежнему основан на платформе Универсального отчета и сохраняет все его преимущества. Какую дополнительную информацию позволяет получить Универсальный отчет: для примера на рис. 13 показано как можно управлять дополнительными настройками.

Рис. 13 Дополнительные настройки отчета

А на рис. 14 Вы можете увидеть результат этих дополнительных настроек: в графе "контрагент" выведен телефон юр.лица, в графе "договор контрагента" отражается валюта договора, допустимая сумма дебиторской задолженности, допустимое число дней дебиторской задолженности и процент предоплаты, в графе "документ отгрузки" - реквизит документа "отпуск товара разрешил". В общем случае можно вывести в отчет в качестве дополнительной информации любой реквизит измерения (группировки) отчета, а также контактную информацию по контрагенту (телефоны, адреса и т.д.) и его контактное лицо. Еще одна интересная возможность - условное оформление. На рис. 14 для примера показано как можно изменить цвет фона ячейки "договор контрагента", если допустимое число дней дебиторской задолженности, установленное для этого договора, больше пяти. Понятно, что можно изменить цвет, начертание, размер шрифта и т.д. и т.п. Можно изменить даже текст ячейки, написать в этом случае что-нибудь типа: "Внимание! Допустимое число дней дебиторской задолженности больше нормы".

Рис. 14 Отчет с дополнительной информацией

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

Начиная с версии 3.1 в отчете реализована экспортная функция ПолучитьСуммыЗадолженности(СтруктураПараметров).

Она возвращает Структура("ОстатокДолга, ОстатокДолгаПросрочен, СамыйРаннийСрокОплаты").

СтруктураПараметров при вызове = Новый Структура("СтруктураОтбора, ДатаАктуальности, ОтсрочкаПлатежа, ВариантПросрочки").
Здесь СтруктураОтбора = Новый Структура("Организация, Контрагент, Договор, Сделка").
По этим четырем параметрам производится отбор. Следующий параметр ДатаАктуальности задает на какую дату определяется задолженность. Если ВариантПросрочки = 2, то просрочка определяется по договору с учетом значения реквизита ДопустимоеЧислоДнейЗадолженности, если ВариантПросрочки = 1  то просрочка определяется по отсрочке платежа, единой для всех контрагентов, с учетом значения ОтсрочкаПлатежа, т.е. также как при интерактивном задании параметров отчета.

Функция ПолучитьСуммыЗадолженности() предназначена прежде всего для реализации оперативного контроля задолженности, например в момент отгрузки товара (продукции). Для этого нужно в модуль документа "Реализация товаров и услуг" (в процедуру ОбработкаПроведения) включить такой текст:

//bb
Если Не Отказ Тогда
ОтчетПоЗадолженности = Отчеты.ДебиторскаяЗадолженностьПоСрокамДолгаПрофи_.Создать();

СтруктураОтбора = Новый Структура("Организация, Контрагент, Договор, Сделка");
СтруктураОтбора.Организация = Организация;
СтруктураОтбора.Контрагент = Контрагент;
СтруктураОтбора.Договор = ДоговорКонтрагента;

СтруктураПараметров = Новый Структура("СтруктураОтбора, ДатаАктуальности, ОтсрочкаПлатежа, ВариантПросрочки");
СтруктураПараметров.СтруктураОтбора = СтруктураОтбора;
СтруктураПараметров.ДатаАктуальности = Дата;
СтруктураПараметров.ОтсрочкаПлатежа = 0;
СтруктураПараметров.ВариантПросрочки = 2;

СтруктураЗадолженности = ОтчетПоЗадолженности.ПолучитьСуммыЗадолженности(СтруктураПараметров);
Если СтруктураЗадолженности.ОстатокДолгаПросрочен > 0 Тогда
ЗаписьЖурналаРегистрации("Данные.Проведение", УровеньЖурналаРегистрации.Предупреждение, ЭтотОбъект.Метаданные(), ЭтотОбъект.Ссылка,
"Продажа с просроченной задолженностью " + СтруктураЗадолженности.ОстатокДолгаПросрочен, РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);

ОбщегоНазначения.СообщитьОбОшибке("Превышено допустимое число дней задолженности по договору " + ДоговорКонтрагента +
Символы.ПС + Символы.Таб +
" Допустимое число дней задолженности: " + ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности +
", дата самой старой задолженности: " + СтруктураЗадолженности.СамыйРаннийСрокОплаты +
", превышение: " +
Цел((СтруктураПараметров.ДатаАктуальности-СтруктураЗадолженности.СамыйРаннийСрокОплаты)/60/60/24) + " дней",
, Заголовок);

КонецЕсли;
КонецЕсли;
//bb\
В данном случае контроль задолженности сводится к выводу сообщения (при просроченном долге) при проведении документа "Реализация товаров и услуг" и записи в журнал регистрации. Если нужно запретить проведение документа, то в вызове ОбщегоНазначения.СообщитьОбОшибке() следует указать параметр Отказ.

Можно и иначе организовать контроль задолженности, например в процедуре ВыполнитьДвиженияПоРегистрамУпрВзаиморасчетов() в модуле УправлениеВзаиморасчетами, или непосредственно в НаборДвиженийВзаиморасчеты.КонтрольОстатков (но не забывайте, что такой контроль будет только при оперативном проведении). Все определяется фантазией программиста. В любом случае использование функции ПолучитьСуммыЗадолженности() позволяет определить задолженность по новому алгоритму (по документам методом ФИФО).

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

 Кратко перечислим функциональные возможности отчета:

 - Величина остатка долга берется из регистра "Взаиморасчеты с контрагентами" по одному из двух вариантов: либо как сумма взаиморасчетов, либо как сумма управленческого учета. В обоих случаях срок долга (срок возникновения или срок просроченности) определяется по документам, создающим дебиторскую задолженность методом ФИФО, т.е. незакрытыми считаются последние по времени долги.
  - Существует два показателя по остаткам долга: "Остаток долга всего" и "Остаток долга по документам". Значение первого показателя не зависит от границы просмотра документов. Значение показателя "Остаток долга по документам" зависит от границы просмотра документов, т.е. если в интервал просмотра документов попали не все документы, формирующие дебиторскую задолженность, то значения показателей "Остаток долга всего" и "Остаток долга по документам" будут различны.
  - Есть возможность увидеть не только остаток долга, но также сумму отгрузки и сумму просроченного долга. При этом просроченный ли это долг определяется одним из двух способов: либо по допустимому числу дней отсрочки платежа, установленному в параметрах отчета, единому для всех контрагентов, либо по допустимому числу дней задолженности, установленному в договоре.
  - Можно осуществить отбор по менеджерам, т.е. каждый менеджер имеет возможность просматривать только своих контрагентов.
  - Интервалы по срокам долга рассчитываются либо по срокам возникновения долга, либо по срокам просрочки долга в зависимости от установки параметра.
  - В отчет попадают сведения и по контрагентам, имеющим только установленный признак "поставщик" (признак "покупатель" не установлен). Есть возможность исключить таких контрагентов из отчета, установив соответствующий параметр отчета.
  - Два варианта алгоритма формирования списка расходных документов: второй - совмещающий извлечение данных запросом и использование встроенного языка платформы "1С:Предприятие 8". Это позволило сократить время формирования отчета в целом. Выбор варианта алгоритма подготовки списка расходных документов осуществляется в окне установки параметров на закладке "Сроки".
  - Существует параметр для ограничения временного интервала просмотра расходных документов
  - Существует экспортная функция ПолучитьСуммыЗадолженности() для реализации оперативного контроля

Полный перечень релизов отчета "Дебиторская задолженность по срокам долга" для программ "1С:Управление торговлей 8, ред. 10.3" и "1С:Управление производственным предприятием 8".

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

 Наименование проекта

 Цена

 Валюта

 Покупка

Отчет "Дебиторская задолженность по срокам долга для программы "1С: Управление торговлей 8" ред.10.3

 2500

 руб


 Наименование проекта

 Цена

 Валюта

 Покупка

Отчет "Дебиторская задолженность по срокам долга для программы "1С:УПП 8"

 2500

 руб

© Борис Балясников, август 2010г., последние изменения февраль 2012г.

© ООО "Профи-центр", г.Бирск: тел. (34784) 4-25-50, факс: (34784) 4-25-50, icq: 565351574, 591661865, mail@profiufa.ru +18