Как настроить учет по подразделениям на счете 50 в 1С:Бухгалтерия ПРОФ и почему очищается поле при записи?

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

Рассмотрим распространенную ситуацию на практике: в организации ведется учет в программе 1С:Бухгалтерия предприятия версии ПРОФ. У компании появилось несколько удаленных офисов, торговых точек или розничных магазинов. Перед бухгалтером или системным администратором ставится задача: необходимо видеть движение наличных денежных средств на счете 50.01 («Касса организации») в разрезе этих торговых точек (подразделений).

Бухгалтер заходит в настройки плана счетов, находит счет 50.01 и включает для него признак «Учет по подразделениям». Однако при попытке настроить документы поступления и списания наличных (ПКО и РКО) начинаются проблемы: поле «Подразделение» отсутствует на форме. Если же с помощью механизмов изменения формы или программных доработок это поле удается вывести, то при первой попытке записать или провести документ значение в поле «Подразделение» бесследно исчезает. Проанализируем ситуацию, выясним технические и методологические причины этого поведения и подробно разберем, как решить задачу.

Почему учет по подразделениям на денежных счетах не работает в версии ПРОФ?

Для того чтобы понять суть проблемы, нам необходимо заглянуть во внутреннюю архитектуру программных продуктов фирмы «1С». Конфигурация 1С:Бухгалтерия предприятия (БП) выпускается в нескольких технологических версиях, основными из которых являются ПРОФ и КОРП. При этом разработчики используют единую метабазу данных для обеих конфигураций. Это означает, что в версии ПРОФ физически присутствуют реквизиты, формы и логика версии КОРП, но их использование заблокировано.

Выясним причину, по которой поле «Подразделение» очищается в документах ПоступлениеНаличных (ПКО) и РасходНаличных (РКО) при попытке записи:

  1. Механизм подписок на события. В типовой конфигурации ПРОФ внедрены системные подписки на события (например, связанные с событием ПередЗаписью документов кассы). Если константа учета по подразделениям для всей базы не активна или система определяет, что запущена версия ПРОФ, подписка программно очищает реквизит «Подразделение» во всех документах, переводя его в значение ПустаяСсылка().
  2. Условия в общих модулях проведения. В версии КОРП учет по подразделениям является сквозным балансовым измерением регистра бухгалтерии. В версии ПРОФ аналитика по подразделениям жестко ограничена счетами учета затрат (такими как 20, 23, 25, 26, 44). В общих модулях проведения кассовых документов встроены проверки. Даже если вы запишете подразделение в документ, в проводки по счету 50.01 эта аналитика не попадет, поскольку алгоритмы проведения в ПРОФ игнорируют подразделения на денежных счетах. Пример типового кода из общего модуля КОРП, который заблокирован или вырезан в ПРОФ:

Если СвойстваСчетаДт.УчетПоПодразделениям Тогда
    Проводка.ПодразделениеДт = СтрокаДокумента.Подразделение;
КонецЕсли;

Методологические и законодательные ограничения

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

Рассмотрим три практических пути решения данной проблемы в зависимости от потребностей и бюджета вашего бизнеса.

Решение №1: Использование стандартного субконто «Кассы» (Рекомендуемый способ без изменения кода)

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

Разберем по шагам, как настроить этот функционал:

  1. Перейдем в план счетов бухгалтерского учета и найдем счет 50.01 («Касса организации»).
  2. Убедимся, что на этом счете добавлено предопределенное субконто с типом значения справочника Кассы. В актуальных релизах БП 3.0 это субконто присутствует по умолчанию.
  3. Откроем справочник Кассы (его можно найти через меню «Настройки» или через функции для технического специалиста).
  4. Создадим элементы справочника под каждый ваш объект. Например: «Касса Магазина №1», «Касса Офиса на Ленина», «Основная касса».
  5. При оформлении документов ПоступлениеНаличных и РасходНаличных обязательно заполняем реквизит «Касса», выбирая соответствующую торговую точку.

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

Решение №2: Переход на конфигурацию 1С:Бухгалтерия КОРП

Проанализируем ситуацию, при которой вашей организации действительно необходимо полноценное ведение обособленных подразделений (сдача деклараций по налогу на прибыль по ОП, раздельные кассовые книги по торговым точкам, автоматическое распределение НДФЛ). В таком случае попытка «дописать» версию ПРОФ силами сторонних программистов является грубой методологической ошибкой.

Выясним преимущества официального перехода (апгрейда) на версию КОРП:

Решение №3: Разработка расширения конфигурации (Для программистов)

Если переход на версию КОРП по каким-то причинам категорически невозможен, а аналитику по подразделениям на счете 50.01 нужно запустить в рамках управленческого учета, мы можем создать специальное расширение конфигурации. Использование расширения позволит оставить основную конфигурацию на полной поддержке.

Посмотрим на пример реализации задачи через расширение:

  1. В конфигураторе создадим новое расширение и добавим в него документы ПоступлениеНаличных, РасходНаличных и план счетов.
  2. Заимствуем формы кассовых документов в расширение. Снимем привязку отображения реквизита «Подразделение» от функциональных опций версии КОРП, установив свойство Видимость в значение Истина программно при создании формы.
  3. Нам необходимо обойти системную очистку реквизита при записи документа. Для этого перехватим событие ПередЗаписью в модуле документа через расширение:

&Перед("ПередЗаписью")
Процедура Расш_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    // Передаем в дополнительные свойства признак, отключающий очистку
    ЭтотОбъект.ДополнительныеСвойства.Вставить("НеОчищатьПодразделениеПриЗаписи", Истина);
КонецПроцедуры
  1. Далее заимствуем общий модуль проведения кассовых документов (например, УчетДенежныхСредствБП или аналогичный обработчик движений) и добавим в него логику заполнения измерения «Подразделение» в проводках по счету 50.01. Нам потребуется использовать аннотацию &Вместо или &После для изменения алгоритма формирования движений по регистру бухгалтерии.

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

← На главную