В процессе освоения программирования в 1С:Предприятие 7.7, особенно при работе с бухгалтерскими регистрами и планом счетов, начинающие специалисты часто сталкиваются с феноменом «красного» (отрицательного) сальдо. Рассмотрим ситуацию, когда при выполнении проводок по реализации товаров (дебет 62 — кредит 90.1) система вместо ожидаемого дебетового остатка показывает отрицательное число по кредиту. Разберем по шагам, почему это происходит и как правильно настроить систему для корректного учета.
Представим типичный алгоритм проведения документа «Расходная накладная» в конфигурации, создаваемой по учебным материалам. Программист использует объект Операция для фиксации задолженности покупателя. Проанализируем фрагмент кода, который отвечает за формирование записи в журнале проводок:
ПривязыватьСтроку(НС);
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("62",ПланыСчетов.Наш);
Операция.Кредит.Счет = СчетПоКоду("90.1",ПланыСчетов.Наш);
Операция.Дебет.Контрагент = Покупатель;
Операция.Дебет.РасходнаяНакладная = ТекущийДокумент();
Операция.Кредит.Изделие = Тов;
Операция.Фирма = ФирмаДокумента;
Операция.Комментарий = "долг на покупателя";
Операция.НомерЖурнала = "11";
Операция.Сумма = Окр((КолП*ЦенаСНДС)*Коэфф,2,1);
После проведения документа бухгалтерские итоги должны зафиксировать возникновение дебиторской задолженности. Однако при программном получении остатков через объект БухгалтерскиеИтоги мы можем увидеть странный результат.
Для проверки состояния счетов в 1С 7.7 часто используется следующий код:
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ВыполнитьЗапрос('10.09.2019','30.09.2019');
БИ.ВыбратьСчета();
Пока БИ.ПолучитьСчет()=1 Цикл
Сообщить(БИ.Счет);
Сообщить("Сальдо кон по дебету" + БИ.СКД("С") + " по кредиту" + БИ.СКК("С"));
КонецЦикла;
Если в результате выполнения этого кода по 62 счету выводится сообщение «Сальдо кон по дебету 0 по кредиту -168», это явный признак методологической ошибки в настройках плана счетов. В нормальной ситуации задолженность покупателя должна отображаться как положительное число в дебете (СКД).
Разберем подробнее, как платформа 1С 7.7 вычисляет остатки. Алгоритм напрямую зависит от того, какой Вид счета установлен в метаданных плана счетов:
Дебет - Кредит. Если результат положительный, он пишется в дебет. Если отрицательный — в дебет со знаком минус.Кредит - Дебет. Если дебетовый оборот (реализация) превышает кредитовый, система получает отрицательное значение и выводит его в колонку кредита. Именно это мы и видим в учебном примере: реализация на 168 рублей при нулевом начальном остатке на пассивном счете дает «-168» по кредиту.Важный момент: В бухгалтерском учете счет 62 («Расчеты с покупателями») является именно активно-пассивным. Покупатель может быть как нашим должником (актив), так и мы можем быть ему должны, если он внес предоплату-аванс (пассив).
Выясним, почему в учебных примерах (например, у Митичкина) иногда возникают такие сложности. Зачастую в целях упрощения алгоритмов авторы создают облегченные планы счетов, где не учитывается сложная логика зачета авансов. Если вы просто скопировали настройки и установили для 62 счета тип «Пассивный», это и приведет к появлению минусов.
Рассмотрим шаги по исправлению:
Планы счетов -> [Ваш план счетов].Пассивный на Активно-пассивный (или А/П).После этих действий метод БИ.СКД("С") начнет возвращать положительное число 168, а БИ.СКК("С") будет равен нулю, что полностью соответствует логике учета дебиторской задолженности.
Проанализируем ситуацию глубже. В профессиональных конфигурациях 1С 7.7 (например, в «1С:Бухгалтерия 7.7») проблема «красноты» решается еще более элегантно — через использование субсчетов:
62.1 — «Расчеты с покупателями» (Активный). Здесь живет только долг за отгруженные товары.62.2 — «Расчеты по авансам полученным» (Пассивный). Здесь фиксируются предоплаты.Когда вы ведете учет на одном активно-пассивном счете 62 без разделения, важно помнить про аналитический разрез. Если у вас десять покупателей, и пятеро должны вам, а пятерым должны вы, то простое «свернутое» сальдо по счету в целом будет вводить в заблуждение. Программисту при использовании объекта БухгалтерскиеИтоги необходимо использовать метод ВыбратьСубконто(), чтобы получить корректную картину по каждому контрагенту отдельно.
Использование типа счета А/П заставляет платформу автоматически «перекидывать» итог в нужную колонку в зависимости от того, кто кому должен в данный момент. Это критически важно для формирования «Бухгалтерского баланса», где активы и пассивы не должны искусственно занижаться из-за отрицательных чисел в отчетности.
Мы выяснили, что появление отрицательных чисел в бухгалтерских отчетах 1С 7.7 чаще всего связано не с ошибкой в коде Операция.НоваяПроводка(), а с неверным определением свойств счета в Плане счетов. Работа с активно-пассивными счетами требует внимательности к настройкам метаданных и понимания того, как платформа интерпретирует дебетовые и кредитовые обороты. Исправление типа счета на А/П — это первый и самый важный шаг к получению корректной финансовой отчетности.