Откуда брать данные для отчетов по кредитам и аренде в 1С:ERP: ГрафикПлатежей или ГрафикОплат?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Финансы и профессиональные услуги
← На главную

При разработке отчетов в конфигурации 1С:ERP Управление предприятием (а также в "Комплексной автоматизации") программисты часто сталкиваются с нетривиальной архитектурой подсистемы "Казначейство" и "Финансовые инструменты". Задача построить простой отчет по плановым платежам по кредитам или аренде может завести в тупик из-за наличия нескольких похожих регистров сведений.

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

Постановка проблемы: почему данных не хватает?

Рассмотрим типичную ситуацию. Нам необходимо разработать отчет, показывающий график предстоящих выплат по кредитным договорам и договорам аренды/лизинга. Логично предположить, что нужно обратиться к справочникам ДоговорыКредитовИДепозитов и ДоговорыАренды.

При анализе движений мы видим, что система делает записи в регистр сведений ГрафикПлатежей. Однако при попытке построить отчет на базе этого регистра выясняется следующее:

  1. Данные по некоторым договорам отсутствуют.
  2. Суммы могут быть не детализированы (нет разбивки на "тело" и "проценты").
  3. Записи появляются и исчезают в зависимости от статусов.

В то же время в конфигурации существуют специализированные регистры:

Давайте разберемся, почему так происходит, и какая логика заложена разработчиками 1С в эту архитектуру.

Архитектура финансовых инструментов в ERP

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

Это связано с механизмом версионирования графиков. У одного договора (элемент справочника) может быть несколько вариантов графика платежей (черновик, утвержденный, история изменений допсоглашений). Эти варианты хранятся в подчиненном справочнике ВариантыГрафиковКредитовИДепозитов.

Когда пользователь редактирует график в карточке договора и нажимает "Записать", система сохраняет данные табличной части именно в регистры сведений, привязанные к конкретной версии графика.

Сравнение источников данных

Чтобы понять, откуда делать выборку, необходимо четко разделить регистры по их назначению. В 1С:ERP существует разделение на "Оперативный план" (Казначейство) и "Финансовые условия" (Учет кредитов).

1. Регистр сведений ГрафикПлатежей

Этот регистр является инструментом оперативного планирования денежных средств.

Вывод: Данный регистр не подходит для отчетов по структуре кредитного портфеля или план-фактного анализа условий договора, так как он слишком динамичен и зависит от настроек казначейства.

2. Регистры ГрафикОплатКредитовИДепозитов и ГрафикОплатУслугПоАренде

Это регистры условий договоров.

Вывод: Именно эти регистры должны стать источником данных для вашего отчета.

Как правильно построить выборку

Теперь, когда мы определились с источником, давайте разберем, как правильно написать запрос. Самая частая ошибка — просто выбрать все записи из регистра ГрафикОплатКредитовИДепозитов. Это приведет к задвоению или затроению сумм.

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

Рассмотрим алгоритм соединения таблиц:

  1. Выбираем справочник договоров (ДоговорыКредитовИДепозитов или ДоговорыАренды).
  2. В реквизитах договора находим ссылку на актуальный вариант графика. Обычно это реквизит ВариантГрафика.
  3. Делаем соединение (Left Join) с регистром сведений по условию: Договор = Договор И ВариантГрафика = ВариантГрафика.

Пример структуры запроса

Давайте посмотрим на пример кода запроса, который корректно соберет данные по кредитам, исключая черновики и старые версии графиков.


ВЫБРАТЬ
	Договоры.Ссылка КАК Договор,
	Договоры.Контрагент КАК Контрагент,
	Договоры.Организация КАК Организация,
	ГрафикОплат.ДатаГрафика КАК ДатаПлатежа,
	ГрафикОплат.СуммаОсновнойДолг КАК СуммаДолга,
	ГрафикОплат.СуммаПроценты КАК СуммаПроцентов,
	ГрафикОплат.СуммаКомиссия КАК СуммаКомиссии
ИЗ
	Справочник.ДоговорыКредитовИДепозитов КАК Договоры
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикОплатКредитовИДепозитов КАК ГрафикОплат
		ПО Договоры.ВариантГрафика = ГрафикОплат.ВариантГрафика
ГДЕ
	Договоры.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКредитовИДепозитов.Закрыт)
	И НЕ Договоры.ПометкаУдаления

Обратите внимание на ключевое условие соединения:

ПО Договоры.ВариантГрафика = ГрафикОплат.ВариантГрафика

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

Особенности для договоров аренды

Для договоров аренды (лизинга) логика абсолютно идентична, меняются только имена объектов метаданных. В 1С:ERP это реализовано через справочник ДоговорыАренды.

В этом случае вам понадобятся:

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

Если ваша задача — построить график платежей (Cash Flow), вам нужно суммировать поле СуммаОплаты и СуммаОбеспечительногоПлатежа. Если же задача — построить план начисления затрат (P&L), то нужно смотреть на СуммаУслуги.

Почему нельзя использовать регистр накопления "РасчетыПо..."?

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

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

Итоговый алгоритм решения

Подведем итог. Чтобы разработать корректный отчет по плановым платежам кредитов и аренды в ERP, выполните следующие шаги:

  1. Откажитесь от использования регистра ГрафикПлатежей. Он предназначен для платежного календаря, зависит от оперативных статусов и не дает нужной детализации.
  2. В качестве источника данных используйте пару: Справочник Договора + Регистр ГрафикОплат... (соответствующий типу договора).
  3. В запросе обязательно соединяйте таблицы по измерению ВариантГрафика. Это отсечет историю изменений и черновики.
  4. Для проверки данных используйте отчет "План-фактный анализ оплат и начислений" (или "График оплат и начислений"), встроенный в ERP, а не "Платежный календарь".

Использование этого подхода обеспечит совпадение данных вашего отчета с печатной формой графика платежей в карточке договора.

← На главную