Отчеты по возрасту в 1С:Предприятие — один из самых востребованных инструментов для анализа дебиторской и кредиторской задолженности. Они помогают выявить просроченные платежи, оценить финансовую нагрузку на бизнес и спланировать работу с должниками. Однако стандартные отчеты не всегда покрывают все потребности пользователей, особенно когда требуется детализация по срокам или специфическим группам контрагентов.
В этой статье вы найдете пошаговые инструкции по созданию отчета по возрасту в различных конфигурациях 1С (Бухгалтерия, УТ, ERP, КА), включая ручную настройку через конструктор отчетов и написание пользовательских запросов. Мы разберем типичные ошибки, покажем, как автоматизировать процесс, и дадим рекомендации по оптимизации отчетов для крупных баз данных. Если вам нужно не только получить данные, но и визуализировать их для презентации руководству — здесь тоже найдутся полезные советы.
Особое внимание уделим настройке динамических периодов в отчетах по возрасту, что позволит анализировать задолженность в разрезе месяцев, кварталов или произвольных временных интервалов. Это актуально для компаний с сезонным бизнесом или длительными циклами оплаты.
Что такое отчет по возрасту в 1С и зачем он нужен
Отчет по возрасту (или отчет по срокам задолженности) — это аналитический инструмент, который группирует дебиторскую или кредиторскую задолженность по периодам просрочки. Например, он может показать, сколько денег должны вам клиенты со сроками оплаты:
- 📅 0–30 дней (текущая задолженность)
- ⏳ 31–90 дней (небольшая просрочка)
- ⚠️ 91–180 дней (критическая просрочка)
- 💀 Более 180 дней (безнадежная задолженность)
Такой отчет помогает:
- 📊 Оценивать финансовую устойчивость компании (соотношение текущих и просроченных платежей).
- 🔍 Выявлять проблемных контрагентов для работы с ними (напоминания, штрафы, судебные иски).
- 📈 Планировать денежные потоки на основе реальных сроков оплаты.
- 📑 Формировать резервы по сомнительным долгам в бухгалтерском учете.
В 1С:Бухгалтерии и 1С:ERP есть стандартные отчеты по возрасту, но они часто требуют доработки. Например, может отсутствовать детализация по менеджерам, видам договоров или валютам. В этом случае приходится создавать пользовательские отчеты через конструктор или писать запросы на языке 1С.
⚠️ Внимание: В конфигурациях до версии 1С:Предприятие 8.3.18 могут отсутствовать некоторые функции для гибкой настройки отчетов по возрасту. Проверьте актуальность вашей платформы в разделе Справка → О программе.
Стандартные отчеты по возрасту в 1С: где искать и как использовать
В большинстве типовых конфигураций 1С отчеты по возрасту уже встроены, но спрятаны в разных разделах. Вот где их найти:
| Конфигурация | Путь к отчету | Особенности |
|---|---|---|
| 1С:Бухгалтерия 8 | Отчеты → Дебиторская задолженность → Анализ задолженности по срокам |
Позволяет группировать по контрагентам, договорам и валютам. Есть настройка периодов просрочки. |
| 1С:Управление торговлей 11 | Отчеты → Продажи → Задолженность покупателей по срокам |
Интегрирован с CRM: можно увидеть ответственного менеджера и историю взаимодействий. |
| 1С:ERP 2 | Финансы → Отчеты → Анализ дебиторской задолженности |
Поддерживает многомерный анализ (по проектам, подразделениям, типам задолженности). |
| 1С:Комплексная автоматизация 2 | Отчеты → Финансы → Задолженность по срокам |
Есть возможность сравнить плановые и фактические сроки оплаты. |
Чтобы открыть стандартный отчет:
- Перейдите в указанный раздел меню.
- Укажите период анализа (например, текущий месяц или квартал).
- В настройках отчета (
Еще → Настройки) выберите группировки:- 📌 По контрагентам
- 📌 По договорам
- 📌 По валютам (если работаете с иностранными партнерами)
- Нажмите
Сформировать. - 🔧 Нажмите
Еще → Изменить форму(если доступно). - 🖥️ Используйте конструктор отчетов (
Еще → Конструктор отчетов). - 📝 Напишите пользовательский запрос (об этом подробнее в следующем разделе).
- Откройте
Отчеты → Все отчеты → Создать новый отчет. - Выберите
Конструктор отчетов. - Укажите источник данных:
- 📖 Для дебиторской задолженности: регистр бухгалтерии
ВзаиморасчетыСКонтрагентамиили регистр накопленияВзаиморасчетыСПокупателями(в УТ). - 📖 Для кредиторской задолженности: регистр
ВзаиморасчетыСПоставщиками.
- 📖 Для дебиторской задолженности: регистр бухгалтерии
- Добавьте поля для группировки:
Контрагент,
Договор,
ДатаДокумента,
СуммаДолга,
СрокПогашения
- Настройте вычисляемые поля для определения возраста задолженности. Например:
ВозрастДней = ТекущаяДата() - СрокПогашения
- Добавьте условное оформление для подсветки просроченных платежей (например, красным цветом для задолженности более 90 дней).
- Сохраните отчет под понятным именем, например,
Задолженность по срокам (детализированный). - 📅 0–30 дней:
ВозрастДней <= 30 - ⏳ 31–90 дней:
ВозрастДней > 30 И ВозрастДней <= 90 - ⚠️ Более 90 дней:
ВозрастДней > 90 - 🔹 Выбирает контрагентов с положительной суммой долга.
- 🔹 Группирует задолженность по трем возрастным категориям.
- 🔹 Игнорирует будущие платежи (где срок погашения еще не наступил).
- 🖥️ Использовать фоновое выполнение запроса.
- 📊 Сначала экспортировать данные в Excel, а затем анализировать их там.
- 🔧 Оптимизировать индексы в базе данных (требуются права администратора).
- 📅 Текущий месяц (0–30 дней).
- 📅 Прошлый месяц (31–60 дней).
- 📅 Более 6 месяцев (180+ дней).
- В конструкторе отчета добавьте параметр с именем
ТекущаяДатаи типомДата. - В запросе используйте этот параметр для расчета возрастных групп:
ВЫБОР
КОГДА ДниПросрочки <= 30 ТОГДА "0-30 дней"
КОГДА ДниПросрочки <= 60 ТОГДА "31-60 дней"
ИНАЧЕ "Более 60 дней"
КОНЕЦ КАК ВозрастнаяГруппа
где
ДниПросрочки = &ТекущаяДата - СрокПогашения. - При формировании отчета 1С запросит значение параметра — укажите текущую дату.
- 📌
ДатаНачала— для анализа задолженности на конкретную дату. - 📌
КоличествоПериодов— чтобы разбить задолженность на N интервалов. - 📌
ИсключитьКонтрагентов— список контрагентов, которых не нужно включать в отчет. - После формирования отчета нажмите
Еще → Выгрузить. - Выберите формат:
- 📄 Excel (XLSX) — для дальнейшей обработки данных.
- 📄 PDF — для печати или отправки по почте.
- 📄 HTML — для публикации на корпоративном портале.
- При экспорте в Excel можно выбрать:
- 📊 Сохранить форматирование (цвета, шрифты).
- 📊 Экспортировать только видимые данные (без скрытых столбцов).
- 📊 Разбить на несколько листов (если данных много).
- 📈 Диаграммы: в конструкторе отчета добавьте диаграмму типа "Круговая" или "Гистограмма" для наглядного сравнения возрастных групп.
- 📊 Условное оформление: настройте цветовую индикацию (например, зеленый для 0–30 дней, красный для более 90 дней).
- 📌 Сводные таблицы: если нужно сгруппировать данные по нескольким критериям (например, по менеджерам и возрастным группам).
- В конструкторе отчета перейдите на вкладку
Диаграммы. - Выберите тип диаграммы — например,
Круговая. - Укажите:
- 📌 Значения: поле
СуммаДолга. - 📌 Серии: поле
ВозрастнаяГруппа.
- 📌 Значения: поле
- Настройте подписи и легенду для удобства чтения.
- Перейдите в
Администрирование → Регламентные задания. - Создайте новое задание типа
Выполнение отчета. - Укажите расписание (например,
1-е число каждого месяца). - В настройках задания выберите ваш отчет и укажите получателей электронной почты.
- 🔹 Игнорирование валютных курсов: если у вас многовалютный учет, суммы долга нужно пересчитывать по курсу на дату погашения. Используйте функцию
ВалютныйКурс(). - 🔹 Неучет частичных оплат: если клиент внес часть суммы, стандартный отчет может показывать полный долг. Добавьте фильтр по остатку.
- 🔹 Пустые возрастные группы: если в отчете нет данных для какого-то периода, проверьте, не попадают ли все суммы в одну группу из-за ошибки в условии.
Если в отчете не хватает данных (например, нет разбивки по менеджерам), его можно доработать. Для этого:
Создание пользовательского отчета по возрасту через конструктор
Если стандартный отчет не подходит, вы можете создать свой с нуля. Для этого:
Пример настройки группировки по срокам:
☑️ Что проверить перед сохранением отчета
Если вам нужно добавить в отчет дополнительные данные (например, контактное лицо контрагента или комментарий менеджера), используйте соединение таблиц в запросе. Например:
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентами.Контрагент КАК Контрагент,
ВзаиморасчетыСКонтрагентами.Сумма КАК СуммаДолга,
Контрагенты.КонтактноеЛицо КАК КонтактноеЛицо
ИЗ
РегистрБухгалтерии.ВзаиморасчетыСКонтрагентами КАК ВзаиморасчетыСКонтрагентами
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
ПО ВзаиморасчетыСКонтрагентами.Контрагент = Контрагенты.Ссылка
⚠️ Внимание: При соединении большого количества таблиц отчет может тормозить. Для ускорения работы используйте индексы или ограничьте период анализа.
Написание запроса для отчета по возрасту: примеры и нюансы
Если конструктор отчетов не дает нужной гибкости, можно написать запрос вручную. Вот базовый пример для 1С:Бухгалтерии 8.3, который выводит дебиторскую задолженность с разбивкой по срокам:
ВЫБРАТЬ
Взаиморасчеты.Контрагент КАК Контрагент,
Взаиморасчеты.Договор КАК Договор,
СУММА(Взаиморасчеты.Сумма) КАК СуммаДолга,
МАКСИМУМ(ВЫБОР
КОГДА Взаиморасчеты.СрокПогашения <= ТЕКУЩАЯДАТА() + 30 ТОГДА "0-30 дней"
КОГДА Взаиморасчеты.СрокПогашения <= ТЕКУЩАЯДАТА() + 90 ТОГДА "31-90 дней"
ИНАЧЕ "Более 90 дней"
КОНЕЦ) КАК ВозрастнаяГруппа
ИЗ
РегистрБухгалтерии.ВзаиморасчетыСКонтрагентами КАК Взаиморасчеты
ГДЕ
Взаиморасчеты.Сумма > 0
И Взаиморасчеты.СрокПогашения <= ТЕКУЩАЯДАТА()
СГРУППИРОВАТЬ ПО
Взаиморасчеты.Контрагент,
Взаиморасчеты.Договор,
ВЫБОР
КОГДА Взаиморасчеты.СрокПогашения <= ТЕКУЩАЯДАТА() + 30 ТОГДА "0-30 дней"
КОГДА Взаиморасчеты.СрокПогашения <= ТЕКУЩАЯДАТА() + 90 ТОГДА "31-90 дней"
ИНАЧЕ "Более 90 дней"
КОНЕЦ
Этот запрос:
Для кредиторской задолженности замените регистр на ВзаиморасчетыСПоставщиками и добавьте фильтр по Сумма < 0 (если задолженность отображается со знаком "минус").
Чтобы добавить в отчет менеджера, ответственного за контрагента, модифицируйте запрос:
ВЫБРАТЬ
Взаиморасчеты.Контрагент КАК Контрагент,
Контрагенты.Ответственный КАК Менеджер,
// остальные поля
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
ПО Взаиморасчеты.Контрагент = Контрагенты.Ссылка
Если запрос выполняется слишком долго, разбейте его на части или используйте временные таблицы. Например, сначала выберите данные в временную таблицу, а затем сгруппируйте их.
Для анализа задолженности в разрезе месяцев (например, чтобы увидеть, как менялась просрочка в динамике), используйте функцию НАЧАЛОПЕРИОДА:
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(Взаиморасчеты.Дата, МЕСЯЦ) КАК Месяц,
// остальные поля
⚠️ Внимание: При работе с большими базами данных (более 100 000 записей) сложные запросы могут приводить к зависанию 1С. В этом случае рекомендуется:
Настройка динамических периодов в отчете по возрасту
Один из самых полезных приемов — сделать отчет динамическим, чтобы периоды просрочки настраивались автоматически. Например, можно задать:
Для этого:
Чтобы сделать отчет еще более гибким, добавьте несколько параметров:
Пример запроса с динамическими периодами:
ВЫБРАТЬ
Взаиморасчеты.Контрагент КАК Контрагент,
ВЫБОР
КОГДА ДниПросрочки <= 30 ТОГДА "0-30 дней"
КОГДА ДниПросрочки <= &КоличествоДней1 ТОГДА "31-" + СТРОКА(&КоличествоДней1) + " дней"
КОГДА ДниПросрочки <= &КоличествоДней2 ТОГДА СТРОКА(&КоличествоДней1+1) + "-" + СТРОКА(&КоличествоДней2) + " дней"
ИНАЧЕ "Более " + СТРОКА(&КоличествоДней2) + " дней"
КОНЕЦ КАК ВозрастнаяГруппа
ИЗ
РегистрБухгалтерии.ВзаиморасчетыСКонтрагентами КАК Взаиморасчеты
ГДЕ
НЕ Взаиморасчеты.Контрагент В (&ИсключитьКонтрагентов)
Динамические периоды позволяют адаптировать отчет под любые бизнес-задачи без изменения кода. Это особенно полезно для компаний с нестандартными циклами оплаты (например, 45 или 60 дней).
Экспорт и визуализация отчета по возрасту
Готовый отчет можно экспортировать в Excel, PDF или другие форматы для дальнейшего анализа. Вот как это сделать:
Для визуализации данных прямо в 1С используйте:
Пример настройки диаграммы:
Если вам нужно автоматически отправлять отчет по почте (например, ежемесячно), используйте регламентные задания:
Как автоматизировать отправку отчета по почте с помощью внешней обработки
Для автоматизации можно использовать внешнюю обработку, которая будет формировать отчет, сохранять его в PDF и отправлять на указанные адреса. Пример кода для обработки:
Процедура ОтправитьОтчетПоПочте()
Отчет = ПолучитьОтчет("ЗадолженностьПоСрокам");
ПутьКФайлу = КаталогВременныхФайлов() + "Отчет.pdf";
Отчет.Выгрузить(ПутьКФайлу, ТипФайлаPDF);
Почта = Новый Почта;
Сообщение = Новый СообщениеЭлектроннойПочты;
Сообщение.Тема = "Отчет по задолженности на " + ТекущаяДата();
Сообщение.Текст = "Во вложении отчет по возрасту задолженности.";
Сообщение.Вложения.Добавить(ПутьКФайлу);
Сообщение.Получатели.Добавить("director@company.ru");
Почта.Отправить(Сообщение);
КонецПроцедуры
Эту обработку можно запускать по расписанию или вручную.
Типичные ошибки при создании отчета по возрасту и как их избежать
При работе с отчетами по возрасту пользователи часто сталкиваются с следующими проблемами:
| Ошибка | Причина | Решение |
|---|---|---|
| Отчет не показывает просроченную задолженность | Неверно указан фильтр по дате или сумме. | Проверьте условие Сумма > 0 и СрокПогашения <= ТекущаяДата(). |
| Данные дублируются | В запросе не хватает группировки по ключевым полям. | Добавьте СГРУППИРОВАТЬ ПО по всем выводимым полям. |
| Отчет тормозит | Слишком большой период анализа или сложный запрос. | Ограничьте период или используйте временные таблицы. |
| Неверные возрастные группы | Ошибка в формуле расчета дней просрочки. | Проверьте выражение ТекущаяДата() - СрокПогашения. |
| Не хватает данных (например, нет менеджера) | Не все таблицы соединены в запросе. | Добавьте ЛЕВОЕ СОЕДИНЕНИЕ с нужными справочниками. |
Еще несколько неочевидных ошибок:
Чтобы избежать ошибок, всегда тестируйте отчет на небольшом наборе данных перед формированием полного отчета. Например:
- Выберите одного контрагента с известной задолженностью.
- Проверьте, что суммы и сроки отображаются корректно.
- Убедитесь, что группировка по возрасту работает как задумано.
- 🤖 Автоматическое формирование по расписанию:
- 📅 Настройте регламентное задание в 1С (см. раздел выше).
- 📅 Используйте Планировщик задач Windows для запуска внешней обработки.
- 📧 Отправка уведомлений контрагентам:
- 📧 Напишите обработку, которая будет отправлять письма с напоминанием об оплате.
- 📧 Интегрируйте с Email-маркетинговыми сервисами (например, UniSender).
- 📊 Интеграция с BI-системами:
- 📊 Экспортируйте данные в Power BI, Tableau или Qlik для глубокого анализа.
- 📊 Используйте 1С:Аналитика для создания дашбордов.
- 🔄 Обмен данными с CRM:
- 🔄 Синхронизируйте данные о задолженности с Bitrix24, AmoCRM или Salesforce.
- 🔄 Автоматически создавайте задачи для менеджеров по работе с должниками.
- Экспортируйте отчет в Excel или CSV.
- Загрузите данные в Power BI Desktop.
- Постройте интерактивный дашборд с фильтрами по:
- 📌 Контрагентам.
- 📌 Возрастным группам.
- 📌 Менеджерам.
- Опубликуйте дашборд на Power BI Service и настройте доступ для руководителей.
Если отчет выдает неожиданные результаты, сравните его данные с оборотно-сальдовой ведомостью по счету 62 (для дебиторки) или 60 (для кредиторки). Это поможет выявить расхождения.
Автоматизация и интеграция отчета по возрасту с другими системами
Отчет по возрасту можно автоматизировать и интегрировать с другими системами для более эффективного управления задолженностью. Вот несколько способов:
Пример интеграции с Power BI:
Для автоматизации уведомлений контрагентам можно использовать следующий алгоритм:
Процедура ОтправитьНапоминанияОПлате()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.ЭлектроннаяПочта КАК Почта,
| Контрагенты.Наименование КАК Наименование,
| СУММА(Взаиморасчеты.Сумма) КАК СуммаДолга
|ИЗ
| РегистрБ