Рассмотрим распространенную ситуацию на практике: в организации ведется учет в программе 1С:Бухгалтерия предприятия версии ПРОФ. У компании появилось несколько удаленных офисов, торговых точек или розничных магазинов. Перед бухгалтером или системным администратором ставится задача: необходимо видеть движение наличных денежных средств на счете 50.01 («Касса организации») в разрезе этих торговых точек (подразделений).
Бухгалтер заходит в настройки плана счетов, находит счет 50.01 и включает для него признак «Учет по подразделениям». Однако при попытке настроить документы поступления и списания наличных (ПКО и РКО) начинаются проблемы: поле «Подразделение» отсутствует на форме. Если же с помощью механизмов изменения формы или программных доработок это поле удается вывести, то при первой попытке записать или провести документ значение в поле «Подразделение» бесследно исчезает. Проанализируем ситуацию, выясним технические и методологические причины этого поведения и подробно разберем, как решить задачу.
Для того чтобы понять суть проблемы, нам необходимо заглянуть во внутреннюю архитектуру программных продуктов фирмы «1С». Конфигурация 1С:Бухгалтерия предприятия (БП) выпускается в нескольких технологических версиях, основными из которых являются ПРОФ и КОРП. При этом разработчики используют единую метабазу данных для обеих конфигураций. Это означает, что в версии ПРОФ физически присутствуют реквизиты, формы и логика версии КОРП, но их использование заблокировано.
Выясним причину, по которой поле «Подразделение» очищается в документах ПоступлениеНаличных (ПКО) и РасходНаличных (РКО) при попытке записи:
ПередЗаписью документов кассы). Если константа учета по подразделениям для всей базы не активна или система определяет, что запущена версия ПРОФ, подписка программно очищает реквизит «Подразделение» во всех документах, переводя его в значение ПустаяСсылка().20, 23, 25, 26, 44). В общих модулях проведения кассовых документов встроены проверки. Даже если вы запишете подразделение в документ, в проводки по счету 50.01 эта аналитика не попадет, поскольку алгоритмы проведения в ПРОФ игнорируют подразделения на денежных счетах. Пример типового кода из общего модуля КОРП, который заблокирован или вырезан в ПРОФ:
Если СвойстваСчетаДт.УчетПоПодразделениям Тогда
Проводка.ПодразделениеДт = СтрокаДокумента.Подразделение;
КонецЕсли;
Разработчики фирмы «1С» ограничили данный функционал не просто так. Ведение учета по подразделениям на денежных и расчетных счетах тесно связано с требованиями законодательства Российской Федерации к обособленным подразделениям (ОП):
Рассмотрим три практических пути решения данной проблемы в зависимости от потребностей и бюджета вашего бизнеса.
Если перед вами стоит задача исключительно управленческого учета (например, руководство хочет видеть в отчете Оборотно-сальдовая ведомость, сколько наличных денег находится в кассе каждого магазина или офиса), то изменять код программы нет никакой необходимости. В типовой конфигурации 1С:Бухгалтерия ПРОФ уже предусмотрен стандартный механизм — субконто Кассы.
Разберем по шагам, как настроить этот функционал:
50.01 («Касса организации»).Кассы. В актуальных релизах БП 3.0 это субконто присутствует по умолчанию.Кассы (его можно найти через меню «Настройки» или через функции для технического специалиста).ПоступлениеНаличных и РасходНаличных обязательно заполняем реквизит «Касса», выбирая соответствующую торговую точку.Теперь мы можем сформировать отчет Оборотно-сальдовая ведомость по счету 50.01. В настройках отчета на вкладке «Группировка» добавим группировку по субконто Кассы. Система сформирует детальный и корректный отчет в разрезе всех ваших торговых точек. Это абсолютно типовое решение, которое не вызовет проблем при последующих обновлениях конфигурации.
Проанализируем ситуацию, при которой вашей организации действительно необходимо полноценное ведение обособленных подразделений (сдача деклараций по налогу на прибыль по ОП, раздельные кассовые книги по торговым точкам, автоматическое распределение НДФЛ). В таком случае попытка «дописать» версию ПРОФ силами сторонних программистов является грубой методологической ошибкой.
Выясним преимущества официального перехода (апгрейда) на версию КОРП:
Если переход на версию КОРП по каким-то причинам категорически невозможен, а аналитику по подразделениям на счете 50.01 нужно запустить в рамках управленческого учета, мы можем создать специальное расширение конфигурации. Использование расширения позволит оставить основную конфигурацию на полной поддержке.
Посмотрим на пример реализации задачи через расширение:
ПоступлениеНаличных, РасходНаличных и план счетов.Видимость в значение Истина программно при создании формы.ПередЗаписью в модуле документа через расширение:
&Перед("ПередЗаписью")
Процедура Расш_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
// Передаем в дополнительные свойства признак, отключающий очистку
ЭтотОбъект.ДополнительныеСвойства.Вставить("НеОчищатьПодразделениеПриЗаписи", Истина);
КонецПроцедуры
УчетДенежныхСредствБП или аналогичный обработчик движений) и добавим в него логику заполнения измерения «Подразделение» в проводках по счету 50.01. Нам потребуется использовать аннотацию &Вместо или &После для изменения алгоритма формирования движений по регистру бухгалтерии.Важное предупреждение для разработчиков: помните, что при таком подходе ответственность за корректность закрытия месяца и составление регламентированной отчетности ложится на вас. При каждом обновлении типовой конфигурации обязательно проверяйте работоспособность расширения и соответствие его кода новым алгоритмам проведения документов от фирмы «1С».