В программах класса ERP (1С:ERP Управление предприятием, 1С:Комплексная автоматизация версий 2.4 и 2.5) пользователи часто сталкиваются с классическим конфликтом интересов между требованиями отдела продаж (менеджеров) и требованиями финансового отдела (бухгалтерии). Менеджерам жизненно необходим детальный учет взаиморасчетов в разрезе каждого конкретного заказа, чтобы контролировать отгрузки, оплаты и резервы. Бухгалтеры же, открывая оборотно-сальдовую ведомость (ОСВ) по счетам 60 или 62, приходят в ужас от развернутого сальдо: по одному контрагенту и договору висит одновременно и дебетовый остаток (аванс по Заказу №1), и кредитовый остаток (долг по Заказу №2).
Давайте подробно проанализируем, почему возникает такая ситуация, законна ли она с точки зрения регламентированного учета и как решить эту проблему в программе безболезненно для обеих сторон.
---
Чтобы понять, почему программа ведет себя именно так, разберем по шагам логику оперативного учета в 1С:КА 2 и 1С:ERP. В системе существует ключевое понятие — «Объект расчетов». Именно в разрезе объектов расчетов хранятся остатки в оперативных регистрах накопления (таких как РасчетыСКлиентами, РасчетыСПоставщиками, РасчетыСКлиентамиПоДокументам и т. д.).
Когда в настройках договора или соглашения с контрагентом мы устанавливаем детализацию расчетов «По заказам», система назначает объектом расчетов каждый конкретный документ Заказ клиента или Заказ поставщика.
Для программы это означает следующее:
В результате на счетах регламентированного учета (60.01/60.02 или 62.01/62.02), которые транслируют данные из оперативного контура взаиморасчетов, формируется развернутое сальдо. На аналитику счетов бухгалтерского учета субконто «Заказы» напрямую не выводится, но проводки формируются на основании движений по регистрам накопления, где эта аналитика присутствует.
---
Часто главным инициатором спора выступает бухгалтерия, утверждающая, что «у одного контрагента по одному договору не может быть одновременно долга и аванса». Но так ли это на самом деле?
С точки зрения законодательства РФ и методологии бухгалтерского учета:
Поэтому позиция «схлопнуть всё любой ценой, чтобы ОСВ была красивой» методологически неверна. Тем не менее, если зачет произвести необходимо, это нужно делать корректно.
---
Рассмотрим подробнее три основных способа решения этой задачи: от стандартных ручных механизмов до автоматизации процесса.
В конфигурациях 1С:КА 2 и 1С:ERP встроен мощный и удобный инструмент для ручного связывания платежей и накладных. Если у вас возникла ситуация, когда по одному заказу висит долг, а по другому аванс, вы можете перенести этот аванс.
Разберем по шагам, как это сделать:
Реализация товаров и услуг) или документ оплаты.Взаимозачет задолженности.Преимущества: Полное соответствие методологии 1С, корректное отражение в НДС и регистрах расчетов.
Недостатки: Требует ручных действий от пользователей (что вызывает недовольство менеджеров при больших объемах документов).
Если документов очень много и ручной зачет парализует работу отдела продаж, процесс можно автоматизировать силами программиста 1С.
Важное предупреждение: Категорически запрещено использовать ручные операции (документ Операция (регламентированный учет)) для корректировки счетов 60 и 62. Проводки вы скорректируете, но оперативные регистры расчетов останутся нетронутыми. В результате возникнет критическое расхождение между регламентированным и оперативным учетом, а процедура закрытия месяца в программе завершится с ошибками.
Правильный путь — автоматическое создание типовых документов Взаимозачет задолженности через регламентное задание. Рассмотрим пример алгоритма, который может быть реализован в коде:
// Примерная схема автоматического создания документа взаимозачета
Процедура АвтоматическийВзаимозачетПоДоговору(Организация, Контрагент, Договор)
// 1. Получаем остатки авансов и долгов в разрезе заказов из регистра "РасчетыСКлиентами"
// (в реальной обработке используется запрос к виртуальной таблице Остатки)
ТаблицаАвансов = ПолучитьОстаткиАвансовПоЗаказам(Организация, Контрагент, Договор);
ТаблицаДолгов = ПолучитьОстаткиДолговПоЗаказам(Организация, Контрагент, Договор);
Если ТаблицаАвансов.Количество() > 0 И ТаблицаДолгов.Количество() > 0 Тогда
// 2. Создаем новый документ "Взаимозачет задолженности"
ДокВзаимозачет = Документы.ВзаимозачетЗадолженности.СоздатьДокумент();
ДокВзаимозачет.Дата = ТекущаяДата();
ДокВзаимозачет.Организация = Организация;
ДокВзаимозачет.Контрагент = Контрагент;
ДокВзаимозачет.ВариантОформления = Перечисления.ВариантыВзаимозачетаЗадолженности.ПроизвольныйВзаимозачет;
// Заполняем дебиторскую и кредиторскую стороны расчетов
// Используем встроенные процедуры конфигурации для автоматического распределения сумм
// Например, заполняем ТЧ "DebeToCredit" или "Расчеты" в зависимости от версии КА
// 3. Записываем и проводим документ
Попытка
ДокВзаимозачет.Записать(РежимЗаписиДокумента.Проведение);
Исключение
ЗаписьЖурналаРегистрации("Автоматический взаимозачет",
УровеньЖурналаРегистрации.Ошибка, , , КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Такую обработку можно запускать в фоне раз в неделю или непосредственно перед закрытием отчетного периода. Она проанализирует остатки, найдет встречные долги/авансы по заказам одного договора и аккуратно «схлопнет» их стандартными документами системы.
Если бизнес-процессы вашей компании позволяют, рассмотрите возможность изменения настроек детализации расчетов в договорах. В линейке конфигураций 2.5 появились гибкие возможности компромиссного учета:
---
Проанализировав ситуацию, мы пришли к следующим выводам:
Взаимозачет задолженности по расписанию.