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