Каждый практикующий бухгалтер или специалист по сопровождению программных продуктов «1С» сталкивался с ситуацией, когда в Оборотно-сальдовой ведомости (ОСВ) по счету 41 «Товары» (или любому другому материальному счету) внезапно появляется «краснота» — отрицательное количество товара. Первое естественное действие пользователя в такой ситуации — открыть карточку счета двойным кликом, чтобы найти документ-виновник. Однако карточка счета оказывается абсолютно пустой, а при распроведении всех возможных приходов и расходов по этой номенклатуре фантомный минус все равно продолжает висеть в отчете.
В этой статье мы подробно разберем, почему возникает подобная техническая коллизия, проанализируем внутреннее устройство таблиц базы данных «1С:Предприятие 8», изучим классический метод исправления проблемы через Конфигуратор, а также рассмотрим альтернативные и более быстрые способы восстановления корректности учета без прерывания работы пользователей.
Для того чтобы понять природу этой ошибки, заглянем «под капот» платформы «1С:Предприятие 8». База данных любой конфигурации, включая «1С:Бухгалтерия предприятия 3.0», хранит учетную информацию в таблицах двух принципиально разных типов:
Хозрасчетный. Когда мы открываем «Карточку счета», система обращается именно к таблице движений и собирает из нее детальный отчет за указанный период.В штатном режиме работы системы запись в таблицу движений и обновление таблицы итогов происходят одновременно в рамках одной транзакции СУБД. Однако под воздействием внешних негативных факторов может произойти сбой. К таким факторам относятся:
В результате такого сбоя транзакция прерывается: записи в таблице движений успешно удаляются (документ становится распроведенным), но шаг обновления таблицы итогов пропускается. С этого момента возникает рассинхронизация: в таблице движений товара больше нет, а в таблице итогов на конец месяца продолжает числиться отрицательный остаток. При формировании ОСВ берет данные из итогов и показывает минус, а при расшифровке (двойной клик) открывается пустая карточка счета, так как в движениях записей нет.
Самый надежный и радикальный способ устранения расхождений между движениями и итогами — запуск штатной утилиты тестирования базы данных через режим «Конфигуратор».
Важное предупреждение: Перед выполнением любых административных процедур обязательно создайте резервную копию вашей информационной базы! Для файловых баз достаточно скопировать файл 1Cv8.1CD в безопасное место. Для клиент-серверных баз выполните выгрузку резервной копии средствами СУБД (MS SQL, PostgreSQL) или через Конфигуратор (меню Администрирование — Выгрузить информационную базу).
Разберем процесс по шагам:
В процессе выполнения операции платформа полностью очистит таблицы итогов и заново пересчитает их на основе реальных записей из таблиц движений документов. По завершении процесса сформируйте ОСВ по 41 счету заново — «фантомный» минус исчезнет.
Запуск тестирования и исправления требует монопольного режима работы, что крайне неудобно для крупных предприятий, где работа ведется круглосуточно. К счастью, исправить итоги можно и без выгона пользователей непосредственно из режима «1С:Предприятие».
Рассмотрим подробнее, как это сделать:
ЖурналПроводокБухгалтерскийУчет или просто Регистр бухгалтерии).Этот метод принудительно заставит систему пересчитать итоги по проводкам без необходимости перезагрузки всей информационной базы.
Для высоконагруженных систем разработчики 1С используют механизм разделения итогов. Он позволяет минимизировать взаимные блокировки СУБД при одновременном проведении документов разными пользователями. Однако в некоторых случаях именно этот механизм может сбоить, выдавая неверные суммарные остатки.
Чтобы сбросить кэш разделенных итогов, выполним следующие шаги:
Если пересчет итогов выполнен, а отрицательное количество по 41 счету все равно отображается, и карточка счета пуста — дело не в техническом сбое базы данных, а в логических особенностях настройки учета и прав доступа. Проанализируем эти ситуации:
Если в вашей базе включен механизм RLS, пользователи видят только те документы, которые соответствуют их правам (например, по определенной организации или складу). Представим ситуацию: документ поступления оформлен по организации «Альфа» (к которой у текущего пользователя нет доступа), а документ реализации — по организации «Бета» (доступ есть). В итоге в ОСВ пользователь видит отрицательный остаток (так как приход для него скрыт системой), а при попытке открыть карточку счета он видит пустоту, поскольку документы реализации также могут не выводиться из-за сложных перекрестных ограничений прав доступа. Для проверки сформируйте этот же отчет под пользователем с полными правами (Администратор).
Очень часто остаток кажется «фантомным» из-за того, что в настройках ОСВ отключено отображение субконто (Склады, Партии). Например, на складе «Основной» у вас числится +5 шт. товара, а на складе «Оптовый» завис остаток -5 шт.. В свернутом виде (без детализации по складам) ОСВ покажет нулевой остаток. Но если в документах списания аналитика была указана неверно, при определенных настройках группировки вы можете видеть «красноту». Всегда проверяйте настройки отчета: нажимайте кнопку Показать настройки, переходите на вкладку Группировка и устанавливайте флаги для всех доступных субконто счета 41 (Номенклатура, Склады, Партии).
Выясним еще одну банальную, но частую причину. В базе могут быть созданы два абсолютно одинаковых по названию элемента номенклатуры «Товар А» (с разными внутренними уникальными идентификаторами GUID). По одному из них документы распроведены, а по второму — проведены с ошибками. В ОСВ они выводятся друг за другом, создавая иллюзию пустой карточки. Для исправления ситуации используйте типовую обработку Поиск и удаление дублей (раздел Администрирование — Обслуживание — Корректировка данных).
Корректировки ручными операциями часто выполняются некорректно. Если бухгалтер сделал проводку по дебету или кредиту 41 счета вручную, указав только количество, но забыв заполнить аналитику (склад или партию), стандартная карточка счета при жестком отборе по аналитике может не выводить эту операцию, в то время как общий итог по счету сместится в минус. Проанализируйте наличие ручных операций за отчетный период.
Чтобы больше никогда не сталкиваться с проблемой «красного» количества на складах, необходимо настроить систему так, чтобы она физически блокировала проведение документов списания при отсутствии фактического остатка товара.
Выполните следующие настройки в программе:
Систематический контроль проведения документов и своевременное обслуживание итогов базы данных гарантируют стабильную работу и отсутствие неприятных сюрпризов при закрытии месяца!