При работе с документами Авансовый отчет в конфигурации 1С:Бухгалтерия 3.0 пользователи нередко сталкиваются с ситуацией, когда по данным бухгалтерского учета (ОСВ) сальдо по 71 счету закрыто верно (равно нулю), однако в печатной форме документа программа упорно отображает «Перерасход». Давайте разберемся, почему это происходит и как устранить причину ошибки, не прибегая к неоправданному изменению типового кода.
Прежде всего, важно уяснить, как именно 1С формирует печатную форму. Исторически сложилось, что заполнение титульного листа Авансового отчета происходит не просто путем вывода остатков по 71 счету на дату документа. Алгоритм опирается на данные о предыдущих авансах и расчетах с подотчетным лицом. Основная логика заложена в модуле менеджера документа и предполагает последовательный расчет суммы, полученной сотрудником до момента формирования отчета.
Рассмотрим, как система вычисляет СуммаДоДокумента. В типовой реализации выполняется запрос к регистру бухгалтерии, где на момент времени документа анализируются остатки по счету 71. Если в настройках учетной политики организации включен «Учет по подразделениям», то аналитика подразделения становится ключевым фильтром для получения точных данных.
Ситуация, при которой возникает «чудесный» перерасход, чаще всего выглядит следующим образом:
Списание с расчетного счета, который является основанием для выдачи денежных средств, не заполнено поле Подразделение.Авансовый отчет поле Подразделение заполнено (автоматически или вручную).NULL), запрос не находит выдачу суммы, считая, что подотчетному лицу выдано 0 рублей.Чтобы решить проблему системно и правильно, рекомендуем выполнить следующие действия:
1. Проверка заполнения аналитики
Откройте документ Списание с расчетного счета, на основании которого был выдан аванс. Убедитесь, что в нем корректно заполнено поле Подразделение. Даже если бухгалтерии этот разрез кажется избыточным, для корректной работы алгоритмов 1С наличие подразделения при включенном учете по подразделениям является обязательным.
2. Использование отладчика
Если проверка реквизитов не выявила проблем, воспользуйтесь отладчиком. Установите точку останова в функции ПечатьАвансовогоОтчета в модуле менеджера документа. Обратите внимание на запрос, который получает СуммаДоДокумента. Проанализируйте значения параметров &ПодразделениеОрганизации и &ПодотчетноеЛицо. Часто именно здесь становится очевидно, что фильтрация запроса возвращает пустые данные из-за несовпадения аналитики в регистрах.
3. Отказ от правки типового кода
Важно предостеречь от попыток «вырезать топором» проверку перерасхода в коде печатной формы. Подобные действия приводят к тому, что отчет начинает работать некорректно для всех остальных сотрудников, у которых учет ведется правильно. Если вы измените формулу расчета СуммаДоДокумента, вы нарушите логику учета, которая отлаживалась разработчиками годами. Всегда стремитесь к тому, чтобы данные в базе соответствовали настройкам учетной политики.
Типовой алгоритм выглядит следующим образом:
ИтогоПолучено = ПолученоИзКассы + ПолученоИзКассыПоКартам;
СуммаДоДокумента = СуммаДоДокумента - ИтогоПолучено;
Если СуммаДоДокумента >= 0 Тогда
ОбластьМакета.Параметры.НачальныйОстаток = СуммаДоДокумента;
Иначе
ОбластьМакета.Параметры.НачальныйПерерасход = -СуммаДоДокумента;
КонецЕсли;
Если СуммаДоДокумента (остаток по счету) верно рассчитана с учетом подразделений, она будет равна сумме выданных средств, и результат вычитания ИтогоПолучено даст 0. Это подтверждает, что расчеты с подотчетным лицом верны. Таким образом, устранение ошибки сводится исключительно к приведению первичных документов в соответствие с требованиями аналитического учета вашей конфигурации.