Как запретить списание денежных средств в минус по кассе в 1С:Комплексная автоматизация 2.4?

Бухгалтер 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При ведении учета в программе 1С:Комплексная автоматизация 2.4 (а также в 1С:ERP) пользователи часто сталкиваются с ситуацией, когда система позволяет провести документ РасходныйКассовыйОрдер (РКО) на сумму, превышающую фактический остаток наличных денег в кассе организации. В результате в учете возникают некорректные отрицательные остатки, что напрямую нарушает кассовую дисциплину и создает проблемы при формировании кассовой книги.

Многие бухгалтеры и казначеи ищут заветную «галочку» в настройках системы, аналогичную контролю остатков товаров на складах. В этой статье мы подробно разберем, почему разработчики фирмы «1С» отказались от жесткого оперативного контроля кассы в конфигурациях крупного класса, как устроен альтернативный механизм предотвращения кассовых разрывов и какими техническими способами можно решить эту задачу, если жесткий запрет вашей организации все-таки необходим.

Почему в ERP-системах нет прямого запрета на списание кассы в минус?

Выясним причину, по которой привычный по «младшим» конфигурациям (таким как 1С:УНФ или 1С:Розница) флаг контроля остатков денежных средств отсутствует в 1С:Комплексная автоматизация. Дело в разнице методологических подходов к учету на предприятиях малого и крупного бизнеса.

Проанализируем ключевые причины:

  1. Разрыв во времени между операциями и их отражением в системе. В средних и крупных компаниях физический расход денег из кассы и проведение документа в программе могут происходить в разное время. Например, кассир выдал наличные сотруднику под отчет утром, а бухгалтер провел РКО только в конце дня. Если бы в программе стоял жесткий оперативный запрет, кассир не смог бы выдать деньги до тех пор, пока в систему не введут все приходные документы. Это могло бы полностью парализовать оперативную работу кассы.
  2. Пост-контроль вместо оперативного контроля. Методология систем класса ERP предполагает, что корректность ведения кассы проверяется постфактум — в процессе закрытия операционного дня, формирования кассовой книги или при проведении регламентных процедур. Корректность остатков на счетах бухгалтерского учета (в частности, по счету 50 «Касса») контролируется главбухом в рамках закрытия периода.
  3. Планирование как основной инструмент управления. В системах крупного класса контроль движения денежных средств смещен с этапа «проведения документа» на этап «планирования расхода». Программа предлагает предотвращать кассовые разрывы до того, как бухгалтер нажмет кнопку «Провести» в расходном ордере.

Стандартные механизмы контроля ДС в 1С:Комплексная автоматизация 2.4

Проанализируем ситуацию: если жесткого запрета на проведение РКО нет, как защитить кассу от ухода в минус штатными средствами? Для этого разработчики предусмотрели развитый блок казначейства. Разберем по шагам ключевые инструменты, которые позволяют эффективно контролировать кассовые расходы.

1. Использование заявок на расходование денежных средств

Это самый надежный способ ограничить несанкционированные выплаты из кассы. Когда этот механизм включен, кассир физически не может создать и провести РасходныйКассовыйОрдер без предварительно согласованной и утвержденной руководством заявки.

Для включения этого механизма выполним следующие настройки:

  1. Перейдем в раздел НСИ и администрирование — Настройка НСИ и разделов — Казначейство и взаиморасчеты.
  2. Установим флаг напротив опции Заявки на расходование денежных средств.
  3. В карточке конкретной кассы организации (в справочнике Кассы) укажем вариант использования заявок. Мы можем выбрать режим «Разрешено без заявок» или установить жесткое требование обязательного использования заявок для всех расходов.

При такой схеме работы цепочка выглядит так: инициатор создает документ ЗаявкаНаРасходованиеДенежныхСредств, финансовый контроллер согласовывает её (проверяя наличие лимитов и плановых остатков), руководитель утверждает, и только после этого бухгалтер по кассе может на основании заявки сформировать РКО. Сумма РКО будет жестко ограничена суммой заявки.

2. Лимиты расходования денежных средств

Чтобы автоматизировать процесс согласования заявок и не допускать перерасхода, мы можем настроить лимиты. Лимитирование настраивается в привязке к статьям движения денежных средств (ДДС) или подразделениям.

Посмотрим на пример настройки:

3. Использование Платежного календаря

Платежный календарь — это главный рабочий инструмент казначея. Он позволяет спрогнозировать остатки денежных средств на расчетных счетах и в кассах на несколько дней или недель вперед. Календарь автоматически сопоставляет планируемые поступления (ожидаемые оплаты от клиентов) и планируемые расходы (утвержденные заявки на оплату).

Если система видит, что на определенную дату планируемый расход по кассе превышает остаток, в платежном календаре эта дата подсвечивается красным цветом. Это сигнализирует о возникновении «кассового разрыва». Казначей может оперативно перенести выплату по заявке на другой день или запланировать внутреннее перемещение наличных денег из другой кассы.

Реализация жесткого запрета с помощью расширения конфигурации

Что делать, если специфика вашего бизнеса все же требует жесткого автоматического запрета на проведение РКО при отсутствии денег в кассе, а внедрять сложную систему заявок и платежных календарей компания пока не готова? В этом случае оптимальным решением будет доработка программы с использованием механизма расширений.

Преимущество расширений заключается в том, что конфигурация вашей базы данных остается на стандартной поддержке, что существенно облегчает процесс последующих обновлений 1С.

Рассмотрим пример программного кода, который можно внедрить в расширение конфигурации. Наша задача — перехватить проведение документа РасходныйКассовыйОрдер, рассчитать текущий остаток денег в кассе организации по регистру накопления ДенежныеСредстваНаличные и заблокировать проведение, если остатка не хватает.

Разберем по шагам пример реализации обработчика в расширении перед записью документа:


&После("ПередЗаписью")
Процедура Расш_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    // Нас интересует только непосредственное проведение документа пользователем
    Если РежимЗаписи <> РежимЗаписиДокумента.Проведение Тогда
        Возврат;
    КонецЕсли;
    
    // Отключим проверку для документов, проводимых в режиме обмена данными
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    
    // Выполним запрос к остаткам регистра "Денежные средства (наличные)"
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	ЕСТЬNULL(ДенежныеСредстваНаличныеОстатки.СуммаОстаток, 0) КАК Остаток
        |ИЗ
        |	РегистрНакопления.ДенежныеСредстваНаличные.Остатки(
        |		&МоментВремени,
        |		Касса = &Касса
        |			И Организация = &Организация) КАК ДенежныеСредстваНаличныеОстатки";
    
    // Передаем границу времени ДО проведения текущего документа
    Запрос.УстановитьПараметр("МоментВремени", Новый Граница(МоментВремени(), ВидГраницы.Исключая));
    Запрос.УстановитьПараметр("Касса", Касса);
    Запрос.УстановитьПараметр("Организация", Организация);
    
    РезультатЗапроса = Запрос.Выполнить();
    ТекущийОстаток = 0;
    
    Если Не РезультатЗапроса.Пустой() Тогда
        Выборка = РезультатЗапроса.Выбрать();
        Выборка.Следующий();
        ТекущийОстаток = Выборка.Остаток;
    КонецЕсли;
    
    // Сравниваем сумму документа с доступным остатком
    Если ТекущийОстаток < СуммаДокумента Тогда
        Отказ = Истина;
        
        // Выводим понятное сообщение об ошибке пользователю
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = Шаблон(
            "Ошибка проведения! Недостаточно наличных денежных средств в кассе ""%1"". " +
            "Требуется: %2, Доступно в кассе: %3 (Дефицит: %4)",
            Касса, СуммаДокумента, ТекущийОстаток, (СуммаДокумента - ТекущийОстаток)
        );
        Сообщение.Поле = "СуммаДокумента";
        Сообщение.УстановитьДанные(ЭтотОбъект);
        Сообщение.Сообщить();
    КонецЕсли;
    
КонецПроцедуры

Этот код надежно предотвратит проведение расходного ордера, если физически в кассе по данным программы числится меньшая сумма. Обратите внимание, что мы используем объект Граница с видом Исключая, чтобы получить остаток строго на момент времени непосредственно перед проведением текущего документа РКО.

Административные методы контроля

Если вы не хотите вносить изменения в программный код и использовать расширения, можно прибегнуть к регулярному административному аудиту. Настройте регламент работы бухгалтерии следующим образом:

  1. Запрет редактирования задним числом. Установите жесткую дату запрета изменения данных. Кассиры должны отражать операции день в день. Это минимизирует ситуации, когда документы проводятся хаотично и «задним числом».
  2. Ежедневный оперативный отчет. Ответственный бухгалтер в конце каждого рабочего дня должен формировать отчет Ведомость по денежным средствам. В настройках отчета следует установить детализацию по дням и кассам. Любые отрицательные показатели в колонке конечного остатка за любой из дней периода должны оперативно расследоваться.
  3. Контроль по счету 50. Регулярно формируйте стандартный отчет Оборотно-сальдовая ведомость по счету 50 с периодичностью «По дням». В бухгалтерском учете красное (отрицательное) сальдо по счету 50 недопустимо в принципе, поэтому данный отчет является отличным инструментом экспресс-проверки кассовой дисциплины.

Таким образом, хотя в 1С:Комплексная автоматизация 2.4 нет простой настройки для запрета списания денег по кассе в минус, система предлагает мощные инструменты планирования и лимитирования, которые гораздо эффективнее борются с кассовыми разрывами. В случаях, когда необходим именно технический запрет, задача легко решается созданием небольшого расширения конфигурации.

← На главную