Как разделить кассовую книгу по нескольким организациям в 1С:Бухгалтерии 7.7?

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При ведении учета по нескольким фирмам в единой информационной базе 1С:Бухгалтерии 7.7 типовой отчет Кассовая книга может работать некорректно. Даже если в модуль отчета добавлен отбор документов по организации, табличная часть корректно выводит приходные и расходные ордера, но остатки на начало и конец дня продолжают суммироваться по всей базе целиком. Разберем причины такого поведения и рассмотрим технические способы разделения кассового учета.

Почему в кассовой книге отображается общий остаток по всем фирмам

Проанализируем структуру типового отчета Кассовая книга. Отчет формируется на основании двух независимых механизмов:

  1. Выборка кассовых документов за день: осуществляется через объект Запрос или метод ВыбратьДокументы(). Если разработчик добавляет фильтр по реквизиту организации в запрос, список документов ПКО и РКО отбирается правильно.
  2. Расчет входящего и исходящего сальдо по счету 50: выполняется через объект БухгалтерскиеИтоги либо системные бухгалтерские функции (СНД(), СКД()). Если при расчете итогов не задан отбор по разделителю или аналитике организации, система возвращает суммарный остаток денег по всей кассе предприятия.

Способ 1. Использование штатного механизма «Разделитель учета»

В платформе 1С:Предприятие 7.7 предусмотрен встроенный механизм разделения бухгалтерских итогов. Для его задействования выполним следующие шаги:

  1. В Конфигураторе откроем План счетов и в его свойствах выберем разделитель учета (например, справочник Фирмы или Организации).
  2. На форму отчета КассоваяКнига добавим элемент диалога для выбора конкретной организации (реквизит диалога ВыбФирма).
  3. В модуле отчета найдем фрагмент инициализации и расчета объекта БухгалтерскиеИтоги и перед вызовом метода ВыполнитьЗапрос() или Рассчитать() установим фильтрацию по разделителю.

Посмотрим на пример установки отбора в коде отчета:


БИ = СоздатьОбъект("БухгалтерскиеИтоги");
// Устанавливаем фильтрацию по выбранной организации
Если ПустоеЗначение(ВыбФирма) = 0 Тогда
    БИ.ИспользоватьРазделительУчета(ВыбФирма);
КонецЕсли;

БИ.ВыполнитьЗапрос(НачДня(ВыбДата), КонДня(ВыбДата), "50.1",,,,, "С");
СальдоНач = БИ.СНД("50.1");
СальдоКон = БИ.СКД("50.1");

Обратите внимание: использование разделителя учета разделяет только бухгалтерские итоги и проводки. Документы, справочники и константы остаются общими.

Способ 2. Добавление субконто «Организации» на счет 50

Если разделитель учета в конфигурации не используется или задействован под другие задачи, можно разделить кассу через дополнительную аналитику:

  1. В плане счетов на счет 50 (и субсчета 50.1, 50.2) добавим вид субконто Организации.
  2. В модулях проведения документов ПриходныйКассовыйОрдер и РасходныйКассовыйОрдер обеспечим запись выбранной организации в соответствующее субконто проводки.
  3. В модуле отчета Кассовая книга скорректируем расчет бухгалтерских итогов, задействовав метод ИспользоватьСубконто():

БИ = СоздатьОбъект("БухгалтерскиеИтоги");
Если ПустоеЗначение(ВыбОрганизация) = 0 Тогда
    // Второй параметр 2 означает жесткий фильтр по конкретному значению
    БИ.ИспользоватьСубконто(ВидыСубконто.Организации, ВыбОрганизация, 2);
КонецЕсли;

БИ.ВыполнитьЗапрос(НачДня(ВыбДата), КонДня(ВыбДата), "50.1");
СальдоНач = БИ.СНД("50.1");
СальдоКон = БИ.СКД("50.1");

Раздельная нумерация документов ПКО и РКО

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

Разберем по шагам настройку автонумерации:

  1. В справочнике Организации добавим текстовый реквизит ПрефиксНомера (длиной 2–3 символа, например, «А-», «Б-»).
  2. В модулях форм или модулях документов ПКО и РКО переопределим процедуру ПриУстановкеНовогоНомера():

Процедура ПриУстановкеНовогоНомера()
    Если ПустоеЗначение(Организация) = 0 Тогда
        Если ПустоеЗначение(Организация.ПрефиксНомера) = 0 Тогда
            Префикс = СокрЛП(Организация.ПрефиксНомера);
            УстановитьНовыйНомер(Префикс);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Нумерация листов кассовой книги

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

Реквизиты шапки и подписи

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

← На главную