В процессе разработки и адаптации типовых решений на базе 1С:Предприятие 8.3 программисты часто сталкиваются с запросами бизнеса на «упрощение» структуры учета. Одним из таких запросов является отказ от привязки подразделений к конкретным юридическим лицам (организациям) для ведения сквозного управленческого учета. Однако в конфигурации 1С:Бухгалтерия предприятия 3.0 (БП 3.0) такая доработка может привести к фатальным последствиям для системы. В этой статье мы подробно разберем, почему эта связь критически важна, и проанализируем ошибки, возникающие при попытке её разорвать.
Прежде всего, нам необходимо понять архитектурную разницу между различными программными продуктами 1С. В таких системах, как 1С:ERP или 1С:Комплексная автоматизация, реализовано два типа справочников:
В конфигурации 1С:Бухгалтерия предприятия 3.0 существует только второй вариант. Справочник ПодразделенияОрганизаций является иерархическим и подчиненным справочнику Организации. Это сделано намеренно, так как БП 3.0 предназначена в первую очередь для регламентированного учета, где каждое подразделение рассматривается в контексте конкретного налогоплательщика.
Рассмотрим ситуацию, когда разработчик решает «освободить» справочник подразделений от привязки к организации, удалив поле Владелец в свойствах объекта метаданных. Проанализируем, к чему это приводит на практике. Как только связь разрывается, платформа перестает считать поле Owner системным, и начинаются проблемы в интерфейсной части.
Типичная ошибка, с которой сталкивается пользователь после такой «доработки», выглядит следующим образом:
Не удалось перейти по ссылке "e1cib/list/Справочник.ПодразделенияОрганизаций" по причине:
Ошибка при выполнении запроса.
{(15, 37)}: Поле не найдено "СправочникПодразделенияОрганизаций.Владелец"
СправочникПодразделенияОрганизаций.<<?>>Владелец
Разберем причину этого поведения. В управляемом приложении 1С списки данных отображаются с помощью механизма Динамических списков. В типовых формах БП 3.0 запрос динамического списка для подразделений часто содержит явное или неявное обращение к полю Владелец. Даже если вы удалили владельца в свойствах справочника, текст запроса в форме списка (или программная настройка отбора в модуле формы) может продолжать ссылаться на это поле. Поиск ошибки в динамическом списке — это первый шаг, но далеко не последний.
Выясним причины, по которым архитекторы 1С настояли на жесткой связи подразделения и организации. Если мы разорвем эту связь, в системе перестанут корректно работать следующие блоки:
Закрытие месяца всегда работают в разрезе организаций. Система распределяет затраты подразделения только внутри той организации, к которой оно относится. При отсутствии связи затраты «зависнут» на остатках, и финансовый результат не будет сформирован.Владелец ломает эту логику доступа, что может привести к тому, что данные либо станут невидимы для всех, либо откроются тем, кому они не положены.Если перед нами стоит задача видеть данные в разрезе управленческих подразделений, не привязанных к юрлицам, рассмотрим более безопасные и эффективные методы вместо изменения структуры метаданных.
Вариант 1: Использование механизма Дополнительных сведений и реквизитов.
Это штатный механизм, не требующий изменения конфигурации. Мы можем создать общий дополнительный реквизит «Управленческое подразделение» и назначить его справочнику подразделений. В этом случае у подразделений разных организаций (например, «Отдел продаж ООО А» и «Отдел продаж ООО Б») будет выбрано одно и то же значение управленческого признака. В отчетах можно будет делать группировку по этому реквизиту.
Вариант 2: Использование Универсального отчета.
Вместо написания сложных доработок, мы можем воспользоваться Универсальным отчетом, который позволяет выводить данные с учетом дополнительных реквизитов, описанных в первом варианте. Это сохранит типовую логику проведения документов и избавит от ошибок при обновлении конфигурации.
Вариант 3: Создание отдельного управленческого справочника.
Если управленческий учет требует сложной иерархии, не совпадающей с регламентированной, создайте новый независимый справочник (например, УпрПодразделения) и добавьте ссылку на него в нужные документы. Это потребует доработки форм документов, но зато вы не сломаете системное поле Владелец и сохраните работоспособность Закрытия месяца.
Попытка сделать подразделение независимым от организации в 1С:Бухгалтерии 3.0 через изменение метаданных — это путь к дестабилизации системы. Ошибки в динамических списках, на которые жалуются разработчики, — лишь «верхушка айсберга». Настоящие проблемы проявятся при расчете налогов и закрытии периода. Рекомендуется использовать механизмы дополнительных свойств или параллельных справочников для решения задач управленческого учета, сохраняя типовую архитектуру 1С в неприкосновенности.