Почему в РКО и ПКО не отображается подразделение организации в 1С:Бухгалтерия 3.0 и как это исправить?

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

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

Механизм платформы: почему поле скрывается даже при программном управлении видимостью

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

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

По этой причине:

  1. Приоритет функциональной опции выше, чем явная установка видимости через код формы. Платформа скрывает элемент уже после отработки процедур ПриСозданииНаСервере и ПриОткрытии.
  2. Добавление копии реквизита на форму не дает результата, так как новый элемент ссылается на тот же реквизит объекта, находящийся под действием выключенной опции.
  3. Пользовательские настройки формы («Еще» — «Изменить форму») не позволяют отобразить элемент, поскольку платформа исключает его из состава доступных полей формы.

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

Особенности архитектуры версий ПРОФ и КОРП

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

  1. Программный сброс константы: В версии ПРОФ константа принудительно сбрасывается в значение Ложь в общем модуле ОбновлениеИнформационнойБазыБП и функциях проверки версии конфигурации. При регламентном обновлении базы значение вернется в исходное состояние.
  2. Формирование проводок: В регистре бухгалтерии «Хозрасчетный» учет по подразделениям реализован через системное измерение Подразделение. В версии ПРОФ алгоритмы проведения кассовых документов ветвятся или не заполняют данное измерение для счета 50, так как на самом счете 50.01 признак учета по подразделениям выключен.
  3. Кассовая книга и кассовая дисциплина: Формирование кассовой книги по подразделениям в типовом коде жестко завязано на признак «Обособленное подразделение» в справочнике ПодразделенияОрганизаций. В версии ПРОФ такой аналитический разрез не поддерживается, что приводит к ошибкам при заполнении отчетов и документов «Авансовый отчет».

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

Вариант 1. Использование механизма дополнительных реквизитов (без изменения конфигурации)

Если подразделение требуется указывать в документах для печати, фильтрации журналов или построения управленческих отчетов, воспользуемся штатным функционалом БСП («Библиотека стандартных подсистем»):

  1. Перейдем в раздел «Администрирование» — «Общие настройки» — «Дополнительные реквизиты и сведения».
  2. В списке объектов выберем документы «Расходный кассовый ордер» и «Приходный кассовый ордер».
  3. Добавим дополнительный реквизит «Подразделение» с типом значения СправочникСсылка.ПодразделенияОрганизаций.
  4. Выведем данный реквизит в списки документов через меню «Еще» — «Изменить форму».

Этот способ гарантирует сохранение типовой конфигурации на полной поддержке и не создает конфликтов при регулярных обновлениях.

Вариант 2. Разделение касс через субсчета счета 50.01

Если аналитика по подразделениям или точкам выдачи наличных необходима непосредственно в бухгалтерских проводках и отчетах (ОСВ, «Карточка счета»), наиболее безопасным способом в версии ПРОФ является детализация плана счетов:

  1. Откроем «План счетов бухгалтерского учета».
  2. Создадим подчиненные субсчета к счету 50.01 (например, 50.01.1 «Касса центрального офиса», 50.01.2 «Касса подразделения 1»).
  3. При оформлении кассовых ордеров выберем соответствующий субсчет в реквизите «Счет учета».

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

Вариант 3. Реализация реквизита через расширение конфигурации

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

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

&После("ОбработкаПроведения")
Процедура рк_ОбработкаПроведения(Отказ, РежимПроведения)
    // Проверим необходимость заполнения дополнительных движений
    Если Отказ Тогда
        Возврат;
    КонецЕсли;
    
    // Алгоритм записи движений в дополнительный регистр сведений или накопления
    // на основании значения реквизита ЭтотОбъект.ркПодразделение
КонецПроцедуры

Выводы и рекомендации

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

← На главную