Как добавить четвертое субконто в БГУ 2.0 через расширение и почему не формируются проводки

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

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

Почему нельзя менять План счетов и Регистр бухгалтерии в расширении

Разберем фундаментальную ошибку, с которой сталкиваются многие разработчики при попытке «перенести» структуру из БГУ 1.0. Платформа 1С:Предприятие накладывает жесткие ограничения на использование расширений для объектов бухгалтерского учета. Проанализируем ситуацию: когда мы заимствуем РегистрБухгалтерии в расширение, он остается жестко связанным с ПланомСчетов основной конфигурации. Попытка создать в расширении новый ПланСчетов и новый ПланВидовХарактеристик (ПВХ), а затем «подключить» их к заимствованному регистру, программно неосуществима для типовых механизмов проведения.

Основные причины неудачи такого подхода:

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

Разбор архитектурных различий БГУ 1.0 и 2.0

Прежде чем приступать к кодингу, проанализируем, почему в БГУ 2.0 субконто стало меньше. На самом деле глубина аналитики в новой редакции выше, но она реализована иначе. Выясним основные отличия:

Таким образом, то, что в БГУ 1.0 требовало «четвертого субконто», в БГУ 2.0 зачастую уже реализовано через механизмы измерений. Проверьте, не дублируете ли вы уже существующий функционал.

Почему проводки «исчезают» в расширении

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


// В расширении в обработчике ПослеПроведения
Процедура Расш1_ПослеПроведения(Отказ)
    ДвиженияРегистра = Движения.ЕПСБУ;
    НоваяПроводка = ДвиженияРегистра.Добавить();
    НоваяПроводка.Период = Дата;
    НоваяПроводка.СчетДт = ПланыСчетов.ЕПСБУ.ПрочиеМатериалы;
    // ... заполнение остальных полей
    ДвиженияРегистра.Записать();
КонецПроцедуры

Проанализируем, почему этот код может не работать:

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

Правильная стратегия реализации доработок

Если вам все же критически необходимо добавить аналитику, которую невозможно уложить в три субконто и типовые измерения, воспользуйтесь следующими рекомендациями:

Вариант 1. Использование «Дополнительных сведений»

Для отчетности часто достаточно механизма дополнительных сведений. Они не меняют структуру БД, не мешают обновлению и позволяют хранить любую информацию в привязке к документам или справочникам. В отчетах на СКД (Система компоновки данных) эти сведения легко вытягиваются через левое соединение.

Вариант 2. Создание параллельного регистра накопления

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

Вариант 3. Использование субконто с типом «Справочник»

Если вам нужно два разных разреза аналитики, подумайте: нельзя ли их объединить в один справочник? Например, вместо двух субконто «Договоры» и «Этапы проектов», можно использовать справочник «Этапы», где владельцем является «Договор». Таким образом, выбрав этап, вы автоматически получаете информацию о договоре, используя всего одно субконто.

Выясним причину ошибки при работе с формами

Если в расширении вы добавили колонку для субконто на форму, но она не отображается, убедитесь, что вы правильно заимствовали ТабличнуюЧасть или НаборЗаписей. В БГУ 2.0 формы очень динамичны. Проверьте программный код формы (процедуры ПриСозданииНаСервере) — типовые механизмы могут принудительно скрывать колонки, которые не соответствуют настройкам конкретного счета в Плане счетов.

Важное резюме: Не пытайтесь сделать из 1С «черный ящик». Регистр бухгалтерии — это самый консервативный объект системы. Всегда стремитесь привести учет к типовому виду, используя измерения КЭК и ИФО, а специфические требования реализуйте через дополнительные регистры или механизмы характеристик.

← На главную