При работе в конфигурации «Бухгалтерия предприятия 2.0» (включая локализации для Украины) бухгалтеры и программисты часто сталкиваются с ситуацией, когда данные в общей «Оборотно-сальдовой ведомости» (ОСВ) не совпадают с данными отчета «ОСВ по счету» при включении режима развернутого сальдо. Особенно остро эта проблема проявляется на активно-пассивных счетах расчетов, таких как 361 (Расчеты с отечественными покупателями) или 631 (Расчеты с отечественными поставщиками). Проанализируем причины возникновения этой проблемы и разберем по шагам методы её решения.
Для начала выясним причину, почему сальдо вообще может «разворачиваться». Активно-пассивные счета могут одновременно иметь и дебетовый остаток (долг контрагента перед нами), и кредитовый (наш долг перед контрагентом или аванс). В свернутом виде программа просто вычитает одно из другого. Однако для целей учета нам важно видеть детальную картину в разрезе аналитики: контрагентов, договоров и документов расчетов. Если в общей ОСВ развернутое сальдо не совпадает с детальным отчетом по счету, значит, в учетных данных или механизмах формирования итогов возникла коллизия.
Рассмотрим ситуацию, с которой столкнулся автор темы. Одной из неочевидных причин расхождения являются ошибки в заполнении измерения Валюта. В системе 1С:Предприятие 8 регистр бухгалтерии может содержать измерения, которые не являются балансовыми. Если при формировании проводки по дебету валюта была указана, а при формировании проводки по кредиту (закрывающей задолженность) — нет, или была указана другая валюта, то в системных таблицах итогов возникают «фантомные» остатки.
В этом случае свернутое сальдо будет выглядеть корректно (так как рублевая/гривневая сумма схлопывается), но при попытке развернуть итоги СКД (система компоновки данных) увидит разные комбинации измерений и выведет их отдельными строками, увеличивая общие обороты дебета и кредита в отчете.
Разберем наиболее распространенный случай среди пользователей. Часто документ, делающий движение по дебету (например, «Реализация товаров и услуг»), использует одно значение субконто (например, Договор №1), а документ, закрывающий эту задолженность по кредиту (например, «Платежное поручение входящее»), использует другое значение или вовсе не содержит заполненной аналитики. Проанализируем ситуацию подробнее:
361 три субконто (Контрагент, Договор, Документ расчетов), то отсутствие любого из них в одном из документов приведет к тому, что сальдо не свернется.Подразделение или Организация. Если в базе ведется многофирменный учет или учет по подразделениям, отсутствие заполненного реквизита Организация в ручной операции или корректировке записей регистров приведет к тому, что итоги «повиснут» на пустом значении.Иногда причина кроется не в документах, а в физическом состоянии таблиц базы данных. Выясним причину через механизмы платформы. Бывает, что таблицы итогов, которые используются для быстрого получения данных в ОСВ, рассинхронизируются с таблицей движений (записями регистра бухгалтерии). Для исправления этой ситуации выполним следующие действия:
Если это не помогло, попробуйте полностью отключить итоги через обработку «Управление итогами», а затем включить их заново. Это инициирует полную пересборку всех таблиц остатков.
Если визуальный анализ карточки счета не помогает, воспользуемся мощным инструментом — консолью запросов. Проанализируем ситуацию, выявив регистраторы, которые создают «перекос» по счету 361. Рассмотрим пример кода запроса, который поможет найти документы с некорректным заполнением аналитики по конкретному контрагенту:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ХозрасчетныйОборотыДтКт.Регистратор,
ХозрасчетныйОборотыДтКт.СчетДт,
ХозрасчетныйОборотыДтКт.СчетКт,
ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК КонтрагентДт,
ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорДт,
ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК КонтрагентКт,
ХозрасчетныйОборотыДтКт.СубконтоКт2 КАК ДоговорКт,
ХозрасчетныйОборотыДтКт.СуммаОборот
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, Авто, , , , ,
СубконтоДт1 = &Субконто ИЛИ СубконтоКт1 = &Субконто) КАК ХозрасчетныйОборотыДтКт
ГДЕ
(ХозрасчетныйОборотыДтКт.СчетДт = &Счет ИЛИ ХозрасчетныйОборотыДтКт.СчетКт = &Счет)
УПОРЯДОЧИТЬ ПО
ХозрасчетныйОборотыДтКт.Регистратор.Дата
Этот запрос позволяет увидеть «вертолеты» — записи, где по одному плечу проводки аналитика заполнена, а по другому — нет или заполнена иначе. Именно такие записи не дают сальдо схлопнуться в виртуальных таблицах остатков, которые использует СКД при формировании ОСВ.
Выясним причину, почему при включении развернутого сальдо в ОСВ может пропадать аналитика. В типовых решениях на базе БП 2.0 отчет ОСВ строится на системе компоновки данных. Для корректной работы разворота недостаточно просто установить флаг в настройках. Рассмотрим правильный алгоритм настройки:
361.Контрагенты, Договоры). Если оставить это поле пустым, программа попытается развернуть сальдо по счету целиком, что приведет к визуальному отсутствию данных в группировках при ненулевых итогах.Проанализируем настройки плана счетов. Если для какого-то субконто (например, Документы расчетов) в плане счетов ошибочно установлен признак Только обороты, то остатки в разрезе этой аналитики храниться не будут. При попытке развернуть сальдо по такому субконто в отчете ОСВ, система не сможет получить данные из виртуальной таблицы остатков, и вы увидите либо пустые строки, либо свернутые данные, которые будут противоречить детальному отчету «ОСВ по счету» (который может брать данные из таблицы оборотов).
Важный совет: Если вы обнаружили ошибку в старых периодах (например, за прошлый год), не спешите перепроводить документы, если период закрыт. В таких случаях эффективнее воспользоваться документом Операция (бухгалтерский и налоговый учет) или Корректировка записей регистров, чтобы вручную «перебросить» сальдо с пустой или неверной аналитики на правильную. Это позволит «схлопнуть» развернутый остаток без изменения финансового результата прошлых периодов.