Начисление процентов по выданным займам в 1С:Бухгалтерии 3.0 без снятия с поддержки
В типовой 1С:Бухгалтерии предприятия 3.0 закрытие месяца начисляет проценты только по полученным займам. По выданным займам есть касса и банк, а автоматического начисления нет. Расширение закрывает этот разрыв: те же типы ставок, та же регламентная операция, проводка Дт 76.09 Кт 91.01 по остатку на счёте 58.03. Основная конфигурация остаётся на поддержке.
Зачем это нужно
Организация выдала заём контрагенту. Деньги ушли документом «Списание с расчетного счета» с видом операции «Выдача займа контрагенту», долг висит на счёте 58.03. По договору начисляются проценты.
Дальше бухгалтер либо каждый месяц считает проценты вручную операцией, либо делает отдельную обработку. При этом в той же базе уже есть готовый контур:
• вид договора «Заем полученный»;
• история ставок и ставка ЦБ;
• регламентная операция «Начисление процентов по кредитам и займам»;
• справка-расчёт.
Запрос заказчика обычно такой: сделать то же самое для выданных займов и считать проценты при закрытии месяца. Снимать конфигурацию с поддержки ради этого невыгодно: обновления выходят часто, а типовой модуль учёта кредитов и займов содержит больше тысячи строк запросов.
Что есть в типовой и чего нет
Типовое начисление работает только с полученными займами.
|
Показатель |
Полученные займы |
Выданные займы |
|
Вид договора |
Заем полученный |
Прочее |
|
Счета долга |
66.03, 67.03 |
58.03 |
|
Счета процентов |
66.04, 67.04 |
отдельного счёта нет |
|
Проводка |
Дт 91.02 Кт 66.04 |
нет |
|
Статья прочих доходов и расходов |
Проценты к уплате |
Проценты к получению есть, начисления нет |
|
Закрытие месяца |
операция есть |
операция смотрит только на счета 66 и 67 |
Типовая не начисляет проценты и по полученным кредитам банка на счетах 66.01 и 67.01, только по займам на 66.03 и 67.03. Название операции шире, чем фактический охват.
Документы выдачи и возврата займа контрагенту в типовой есть. Отбор договора в них — вид «Прочее». Новый вид договора заводить невыгодно: придётся дорабатывать кассу, банк и платёжные поручения.
У справочника договоров уже есть тип процентной ставки, процентная ставка и табличная часть истории процентных ставок. Показать их на форме для вида «Прочее» недостаточно: перед записью типовая обнуляет эти реквизиты у любого договора, кроме «Заем полученный». Перехватывать всю процедуру аннотацией Вместо дорого и хрупко при обновлениях. Поэтому расширение хранит свои реквизиты с отдельным префиксом.
Идея решения
Вторую регламентную операцию не создаём и огромные типовые формы не заимствуем.
1. Договор остаётся видом «Прочее», банк и касса не ломаются.
2. На договоре свои реквизиты расширения: признак начисления, тип ставки, ставка, история и счёт процентов.
3. Расчёт подключается к уже существующей операции закрытия месяца.
4. Результат пишется в типовой регистр расчёта начисления процентов. Справка-расчёт открывается штатной кнопкой.
Проводка:
Дт 76.09, субконто контрагент и договор.
Кт 91.01, субконто «Проценты к получению».
База расчёта — дебетовый остаток на счёте 58.03. Если счёт процентов в договоре не указан, берётся константа расширения, иначе 76.09.
Формула как в типовой:
Сумма = Окр(ОстатокДолга * Ставка / 100 * КоличествоДней / ДнейВГоду, 2)
Число дней в году — фактическое: ДеньГода(КонецГода(Период)), то есть 365 или 366.
Как пользоваться
Настройка договора
Откройте договор контрагента, по которому выдавали заём, вид договора «Прочее». В командной панели появится команда «Проценты по выданному займу».
В форме:
• включите «Начислять проценты по выданному займу»;
• выберите тип ставки: фиксированная, ставка ЦБ или без начисления;
• укажите процент, для ставки ЦБ — надбавку к ключевой ставке;
• при необходимости заполните историю ставок и счёт учёта процентов.
Команда добавлена на типовую форму договора без заимствования формы.
Закрытие месяца
Дальше работаете как обычно: раздел «Операции», пункт «Закрытие месяца».
Операция «Начисление процентов по кредитам и займам» выполняет два контура:
1. типовой — полученные займы на счетах 66 и 67;
2. расширение — выданные займы на счёте 58.03.
Если в базе есть только выданные займы, операция всё равно появится в помощнике: типовое условие дополнено запросом по счёту 58.03.
Проверка
После проведения откройте движения регламентной операции. Должна быть проводка Дт 76.09 Кт 91.01 по статье «Проценты к получению».
Справка-расчёт той же операции покажет строки и по полученным, и по выданным договорам: остаток долга, дни, ставка, начисленная сумма.
В оборотно-сальдовой ведомости по счёту 76.09 будут проценты к получению, по счёту 91.01 — доход.
Как устроено расширение
Назначение расширения — доработка. Основную конфигурацию с поддержки не снимаем.
|
Объект |
Назначение |
|
Реквизиты справочника договоров |
признак начисления, ставка, тип ставки, счёт, табличная часть истории |
|
Команда и форма договора |
ввод параметров без заимствования типовой формы |
|
Константа счёта учёта процентов |
счёт процентов по умолчанию |
|
Общий модуль учёта выданных займов |
расчёт, проводки, условие закрытия месяца |
|
Документ «Регламентная операция» |
аннотация После типового начисления |
|
Общий модуль закрытия месяца |
аннотация Вместо условия выполнения операции |
Проведение регламентной операции
Типовая процедура начисления процентов по кредитам и займам в модуле объекта не экспортная, но расширение её видит. После типового расчёта вызывается свой:
&После("НачислениеПроцентовПоКредитамИЗаймам")
Процедура пав_НачислениеПроцентовПоКредитамИЗаймам(СтруктураШапкиДокумента, Отказ, Ошибки)
Если Отказ Тогда
Возврат;
КонецЕсли;
пав_УчетВыданныхЗаймов.НачислитьПроцентыПоВыданнымЗаймам(
Движения, СтруктураШапкиДокумента, Отказ, Ошибки);
КонецПроцедуры
Если типовая часть завершилась с ошибкой по полученным займам, выданные не считаем: период и так нельзя закрывать. Если полученных займов нет, типовая формирует пустые таблицы, отказ остаётся ложью, и отрабатывает только контур расширения.
Движения дописываются в тот же набор бухгалтерских проводок и в тот же регистр расчёта. Отдельную операцию заводить не нужно.
Видимость операции в помощнике
Типовое условие смотрит на остатки счетов 66 и 67 по договорам вида «Заем полученный». Если у организации только выданные займы, пункт в закрытии месяца не появится.
Функция условия выполнения регламентной операции большая, переписывать её целиком нельзя. Ставим аннотацию Вместо, вызываем ПродолжитьВызов и для одной операции дописываем ОБЪЕДИНИТЬ:
&Вместо("УсловиеВыполненияРегламентнойОперации")
Функция пав_УсловиеВыполненияРегламентнойОперации(ВидОперации, Организация, Период, ОднаОрганизация, КешНастроек)
Результат = ПродолжитьВызов(ВидОперации, Организация, Период, ОднаОрганизация, КешНастроек);
Если ВидОперации <> Перечисления.ВидыРегламентныхОпераций.НачислениеПроцентовПоКредитамЗаймам Тогда
Возврат Результат;
КонецЕсли;
Возврат пав_УчетВыданныхЗаймов.ДополнитьУсловиеВыполненияОперации(Результат, ОднаОрганизация);
КонецФункции
Запрос расширения отбирает договоры с включённым признаком и остатками или оборотами на счёте 58.03. Имя параметра начинается со слова Счета: типовая процедура сама развернёт его до субсчетов, если они появятся.
Расчёт
Алгоритм проще типового: без реклассификации между счетами 66 и 67 и без валюты. Счёт 58.03 в плане счетов не валютный и без подразделений.
По каждому договору:
1. берём дебетовый остаток 58.03 на начало месяца;
2. собираем значимые даты: начало месяца, дни выдачи и погашения, смена ставки или ставки ЦБ, последний день месяца;
3. между датами считаем дни и проценты на остаток на начало интервала;
4. в день выдачи, как в типовой, начисляется один день;
5. оплату процентов снимаем с оборота по кредиту счёта 76.09 или счёта из договора.
Ставка на дату:
• фиксированная — из реквизита или из истории, берётся последняя запись с периодом не позже даты расчёта;
• ставка ЦБ — ключевая ставка из регистра сведений ставок рефинансирования плюс надбавка договора.
Историю читаем одним запросом по табличной части, без чтения реквизита объекта по каждому договору.
Проводки:
Проводка.СчетДт = СтрокаТаблицы.СчетУчетаПроцентов;
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Контрагенты", СтрокаТаблицы.Контрагент);
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Договоры", СтрокаТаблицы.ДоговорКонтрагента);
Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеДоходы;
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "ПрочиеДоходыИРасходы", СтатьяДоходов);
Проводка.Сумма = СтрокаТаблицы.СуммаПроцентов;
Проводка.СуммаНУДт = СтрокаТаблицы.СуммаПроцентов;
Проводка.СуммаНУКт = СтрокаТаблицы.СуммаПроцентов;
Содержание проводки повторяет типовой шаблон: период, число дней, ставка, сумма долга. Бухгалтеру проще сверять с договором.
Почему не обработка и не новая регламентная операция
Отдельную обработку начисления процентов не делали: заказчик указал закрытие месяца. Обработку забывают запустить, границы периода разъезжаются, повторное закрытие месяца её не перепроводит.
Новую регламентную операцию тоже не заводили:
• нужен элемент перечисления видов регламентных операций;
• его надо вписать в порядок групп закрытия месяца;
• на форме регламентной операции нужна кнопка справки-расчёта;
• при каждом обновлении набор операций в типовой может измениться.
Встраивание в существующую операцию проще в поддержке и понятнее пользователю: один пункт, одна справка.
Ограничения
• Только рублёвые займы контрагентам на счёте 58.03. У счёта нет признака «валютный».
• Займы сотрудникам на счёте 73.01 не считаются: там аналитика «работник», а не договор.
• Нет графика платежей, капитализации процентов и штрафных процентов.
• Нет отдельной операции и своего отчёта.
• Если конкретный релиз базовой бухгалтерии не принимает расширения, нужен ПРОФ. Снимать основную конфигурацию с поддержки всё равно не требуется.
Этого обычно достаточно торговой или производственной организации. Кредитной организации с портфелем валютных ссуд такое расширение не заменяет.
Что проверить на внедрении
1. Договор вида «Прочее», признак включён, ставка 12 процентов, выдача 15-го числа. В справке-расчёте один день на дату выдачи и остаток дней до конца месяца.
2. Погашение тела займа в середине месяца. Проценты после этой даты считаются на меньший остаток.
3. Смена ставки в истории. Два интервала с разными процентами.
4. Тип «ставка ЦБ». Сумма меняется в день публикации ставки в регистре.
5. Повторное закрытие месяца. Старые проводки расширения перезаписываются вместе с типовыми, дублей нет.
6. Организация без полученных займов. Операция в помощнике есть, если есть остаток 58.03 по отмеченным договорам.
Заключение
Типовая бухгалтерия закрывает полученные займы и оставляет выданные бухгалтеру. Расширение не копирует типовой модуль учёта кредитов и займов и не трогает поддержку. Оно добавляет параметры на договоре, расчёт по счёту 58.03 и две аннотации в типовые модули.
Для заказчика это выглядит как штатное закрытие месяца. Для разработчика — короткий контур, который переживает обновления лучше, чем правка типовых объектов.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.206.19, 3.0.205.22
Вступайте в нашу телеграмм-группу Инфостарт