В конфигурации 1С:Бухгалтерия предприятия 2.0 (БП 2.0) пользователи часто сталкиваются с ситуацией, когда стандартный отчет «Задолженность покупателей по срокам долга» выдает некорректные показатели. Например, по данным бухгалтерского учета долг контрагента существует, а отчет показывает нулевые значения или относит суммы не к тем периодам. Разберем детально, почему это происходит, как настроить правильный учет и автоматизировать исправление ошибок.
Проанализируем механику работы отчета. Данный отчет крайне чувствителен к корректности ведения взаиморасчетов в разрезе документов. В системе 1С задолженность и авансы учитываются на разных субсчетах: 62.01 (Расчеты с покупателями) и 62.02 (Расчеты по авансам полученным). Если в базе возникла ситуация, когда по одному и тому же договору одновременно висит дебетовый остаток на 62.01 и кредитовый на 62.02, отчет может «запутаться».
Рассмотрим, почему это происходит. В документах реализации и поступления оплаты есть реквизит «Способ погашения задолженности». Если установлено значение «Автоматически», система сама ищет долги и закрывает их. Однако при вводе документов «задним числом» или при ручном выборе конкретных документов расчетов последовательность нарушается. В итоге отчет, который строит данные по методу FIFO (первым пришел — первым ушел), перестает видеть реальную картину, так как видит «незакрытые» авансы, которые фактически должны были перекрыть долг.
Выясним причину, по которой бухгалтерам приходится постоянно выполнять перепроведение. Отчет «Задолженность покупателей по срокам долга» математически высчитывает остаток на конец каждого интервала. Если документы проведены не в хронологическом порядке, то распределение оплат по документам отгрузки в регистре бухгалтерского учета может быть неверным. Хотя общее сальдо по контрагенту будет правильным, аналитика в разрезе ДокументРасчетовСКонтрагентом (третье субконто на счетах 60/62) окажется нарушенной.
Для того чтобы руководитель получал достоверные данные, необходимо организовать регулярный контроль «гигиены» учета. Рассмотрим перечень обязательных мероприятий:
Посмотрим на способы автоматизации процесса. В БП 2.0 восстановление последовательности можно запускать программно. Для клиент-серверных версий рекомендуется настроить регламентное задание, которое будет выполнять перепроведение документов в ночное время. Это позволит отчету всегда показывать актуальные данные на начало рабочего дня.
Разберем, как можно упростить жизнь пользователю, добавив возможность вызова групповой обработки прямо из отчета. Часто возникает запрос: «Можно ли по двойному клику на контрагенте в отчете запустить его перепроведение?».
Проанализируем ситуацию с точки зрения разработчика. Отчет «Задолженность покупателей по срокам долга» построен на системе компоновки данных (СКД). В обычных формах (БП 2.0) обработка нажатия на ячейку происходит в модуле формы отчета.
Рассмотрим по шагам, как добавить свою обработку клика:
Результат (это поле табличного документа).РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка).Пример кода для программного вызова обработки с отбором по контрагенту:
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
// Получаем данные расшифровки
Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
Поля = Данные.Элементы[Расшифровка].ПолучитьПоля();
// Ищем поле "Контрагент"
ПолеКонтрагент = Поля.Найти("Контрагент");
Если ПолеКонтрагент <> Неопределено Тогда
СтандартнаяОбработка = Ложь; // Отключаем стандартное открытие карточки
// Открываем форму групповой обработки документов
ОбработкаОбъект = Обработки.ГрупповаяОбработкаСправочниковИДокументов.Создать();
Форма = ОбработкаОбъект.ПолучитьФорму();
// Здесь можно программно заполнить настройки фильтра по контрагенту
// Для примера просто выведем оповещение о готовности к работе
Сообщить("Запуск перепроведения для: " + ПолеКонтрагент.Значение);
Форма.Открыть();
КонецЕсли;
КонецПроцедуры
Важный момент: в СКД для поля «Контрагент» в схеме компоновки данных (вкладка «Наборы данных») должно быть указано выражение расшифровки. Если вы хотите передавать конкретное значение, убедитесь, что оно доступно в текущем контексте расшифровки.
Если стандартный отчет по срокам долга кажется слишком сложным или часто дает сбои из-за специфики учета, разберем альтернативы:
Подведем итог: «волшебного» отчета, который будет показывать правду при хаотичном ведении учета, не существует. Основное решение проблемы в БП 2.0 — это жесткий контроль за последовательностью документов и использование даты запрета редактирования, чтобы старые периоды не «плыли» после случайных правок.