Часто при работе в 1С:Управление торговлей (редакция 11) пользователи и бухгалтеры сталкиваются с тем, что типовой отчет «Задолженность клиентов» показывает данные только на текущий момент. Попытки изменить дату в шапке или найти нужный параметр «период» в простых настройках часто не приносят результата. Разберем подробно, почему так происходит, и какими способами можно вывести задолженность на любую интересующую нас дату в прошлом.
Прежде чем переходить к настройкам, нам необходимо понять важный технический нюанс. В современных версиях 1С:УТ 11 существует два режима ведения взаиморасчетов: «Онлайн» и «Офлайн». Проверим эту настройку в разделе НСИ и администрирование — Настройка НСИ и разделов — Казначейство и взаиморасчеты.
Если в системе включен режим «Офлайн», то распределение оплат по накладным происходит не в момент проведения документа, а позже — при выполнении регламентного задания «Расчет взаиморасчетов». Если вы пытаетесь сформировать отчет на конкретную дату в прошлом, а регламентное задание не было выполнено на ту дату или итоги не рассчитаны, цифры могут быть некорректными (например, будет виден и долг по накладной, и аванс по платежке одновременно). Поэтому перед формированием отчетов за прошлые периоды всегда проверяйте актуальность расчета взаиморасчетов.
Разработчики 1С часто скрывают параметр Дата отчета из стандартной панели, чтобы не перегружать интерфейс. Однако функционал Системы компоновки данных (СКД) позволяет нам вернуть этот параметр самостоятельно без использования конфигуратора. Проанализируем последовательность действий:
Дата отчета. Обратите внимание: даже если он есть в списке, он может быть не виден в шапке отчета.После этих манипуляций поле для выбора даты появится непосредственно в интерфейсе отчета, и вы сможете сформировать данные на любой день.
Рассмотрим альтернативный, зачастую более надежный вариант. Вместо отчета «Задолженность клиентов», который ориентирован на срез остатков, воспользуемся отчетом «Ведомость расчетов с клиентами». Этот отчет строится не на конкретную точку времени, а за период.
В чем преимущество этого метода? Выясним причину: ведомость обращается не только к виртуальным таблицам остатков, но и к оборотам. Чтобы получить задолженность на конкретную дату, например, на 31.05.2023, мы устанавливаем период отчета «Начало времен — 31.05.2023». Конечный остаток в этой ведомости и будет являться вашей задолженностью на указанную дату.
Если типовой отчет по каким-то причинам не поддается настройке в пользовательском режиме или вам требуется специфическая структура, можно пойти по пути создания внешнего отчета на базе типового. Разберем, как это реализовать технически. Нам потребуется внести изменения в запрос схемы компоновки данных.
В запросе СКД типового отчета используются виртуальные таблицы остатков регистра накопления РасчетыСКлиентами. По умолчанию параметры этих таблиц могут быть жестко заданы программно. Нам нужно явно указать параметр &ДатаОтчета в каждой виртуальной таблице. Посмотрим на пример модификации запроса:
ВЫБРАТЬ
РасчетыСКлиентами.АналитикаУчетаПоПартнерам,
РасчетыСКлиентами.ЗаказКлиента,
РасчетыСКлиентами.СуммаОстаток КАК Долг
ИЗ
РегистрНакопления.РасчетыСКлиентами.Остатки(&ДатаОтчета, ) КАК РасчетыСКлиентами
Важно помнить о нюансе Границы времени. Если вы передадите в параметр &ДатаОтчета просто дату, например, 31.05.2023, 1С интерпретирует это как 31.05.2023 00:00:00. Все документы, проведенные в течение этого дня, не попадут в отчет. Чтобы отчет включал документы всего дня, необходимо использовать объект Граница с включением момента времени или передавать дату в формате конца дня (23:59:59).
В типовых решениях для этого часто используется внутренний параметр &ДатаОтчетаГраница. Проанализируем фрагмент типового кода запроса:
| ИЗ
| РегистрНакопления.РасчетыСКлиентами.Остатки(&ДатаОтчетаГраница) КАК РасчетыСКлиентами
Посмотрим на ситуацию, когда пользователь видит два одинаковых названия «Задолженность клиентов». В системе 1С:УТ 11 реализован механизм вариантов отчетов. Один пункт в списке — это сам Объект конфигурации (метаданные), а второй — Предопределенный вариант отчета, настроенный разработчиками.
Для настройки даты лучше всего использовать основной объект, так как в нем доступны все заложенные возможности СКД. Если вы используете «Задолженность клиентов по срокам», помните, что этот отчет значительно сложнее: он не просто берет остаток, но и анализирует даты оплаты в графиках платежей, чтобы распределить долг по интервалам (просрочено, в срок и т.д.). Для простого получения суммы долга на дату он может быть избыточен.
Если при формировании отчета на прошлую дату вы видите «странные» суммы (например, пустые строки с суммами или развернутое сальдо, которого быть не должно), выполните следующие действия:
РасчетыСКлиентами и РасчетыСКлиентамиПоДокументам рассчитаны по текущую дату.Таким образом, настройка отчета по задолженности на дату в УТ 11 сводится либо к выводу скрытого параметра Дата отчета в расширенных настройках СКД, либо к использованию ведомости расчетов, которая по своей сути является более гибким инструментом для анализа исторических данных.