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

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

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

В данной статье мы разберем, как технически реализовать эту задачу, проанализируем причины очистки полей и рассмотрим способы обхода системных ограничений, сохраняя при этом работоспособность базы.

Предварительная настройка системы

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

  1. Перейдем в План счетов и найдем счет 50.01 (Касса организации).
  2. Проверим наличие флажка в колонке Подразделения. Если он отсутствует, необходимо разрешить редактирование счета и установить признак УчетПоПодразделениям.
  3. Включим использование функциональной опции. В некоторых релизах для этого требуется программно установить константу ВестиУчетПоПодразделениям в значение Истина через консоль кода или обработку.
  4. В справочнике Подразделения создадим структуру необходимых нам обособленных офисов или торговых точек.

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

Почему затирается подразделение: поиск "виновника" в коде

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

Главным "блокировщиком" выступает проверка типа конфигурации. Программа на программном уровне проверяет, является ли текущая версия КОРП-версией. Если функция возвращает Ложь, система считает использование подразделений в кассе недопустимым и очищает реквизит ПодразделениеОрганизации.

Рассмотрим основной модуль, отвечающий за эту проверку. В типовых конфигурациях это общий модуль ВариантыПриложений (или в некоторых версиях ОбщегоНазначенияБП). В нем расположена функция, которая определяет возможности текущей версии программы.


Функция ЭтоВерсияКОРП() Экспорт
    // В версии ПРОФ здесь возвращается Ложь
    Возврат СтандартныеПодсистемыСервер.РазделениеДанныхВключено() ИЛИ ...; 
КонецФункции

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

Использование расширений для модификации логики

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


&Вместо("ЭтоВерсияКОРП")
Функция Мой_ЭтоВерсияКОРП()
    // Принудительно возвращаем Истина, чтобы разрешить функционал подразделений
    Возврат Истина;
КонецФункции

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

Если данные продолжают затираться, следует обратить внимание на процедуру ЗаполнитьРеквизитыПоУмолчанию. В ней часто встречается условие, проверяющее функциональную опцию ИспользоватьОбособленныеПодразделения. В ПРОФ-версии эта опция может быть заблокирована на уровне метаданных, и даже при установке константы в Истина, программный интерфейс будет видеть Ложь.

Работа с отчетами: Кассовая книга по подразделениям

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

Рассмотрим, как решить эту проблему:

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

Риски и последствия использования КОРП-функционала в ПРОФ

Проанализируем ситуацию с точки зрения методологии учета. Включение учета по подразделениям в кассе влечет за собой необходимость контроля и в других разделах:

1. Налоговый учет и НДФЛ: Если ваши подразделения являются обособленными с точки зрения налоговой (имеют разные КПП), имейте в виду, что версия ПРОФ не поддерживает автоматическое распределение НДФЛ по разным регистрациям в ИФНС в той мере, в которой это делает КОРП. Вам придется контролировать это вручную или дорабатывать соответствующие регистры накопления.

2. Закрытие месяца: Некоторые регламентные операции (например, распределение косвенных расходов) могут начать вести себя иначе, обнаружив заполненную аналитику подразделений там, где система ее не ожидала. Рекомендуется тщательно протестировать закрытие периода на копии базы после внесения изменений.

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

Резюме

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

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

← На главную