Как перенести забалансовый счет с 5 субконто из 1С 7.7 в 1С:Бухгалтерию 3.0 без снятия с поддержки?

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

Переход с устаревшей платформы «1С:Предприятие 7.7» на современную «1С:Бухгалтерия предприятия 3.0» (БП 3.0) часто преподносит сюрпризы технического характера. Один из классических вызовов, с которым сталкиваются разработчики и бухгалтеры, — это перенос забалансовых счетов с избыточной аналитикой. В системе «1С 7.7» на забалансовом счете (например, на счете 005 «Оборудование, принятое для монтажа») могло быть настроено 4, 5 или даже больше субконто. В современных же типовых решениях на платформе «1С 8.3» План счетов «Хозрасчетный» жестко ограничен максимум тремя субконто на одном счете.

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

Почему увеличение количества субконто в Конфигураторе — это плохой путь?

На первый взгляд кажется, что проблема решается очень просто. Достаточно открыть Конфигуратор, зайти в свойства Плана счетов Хозрасчетный, найти свойство Максимальное количество видов субконто и изменить значение с 3 на 5. Однако делать это категорически не рекомендуется по следующим техническим причинам:

  1. Падение производительности СУБД. В платформе «1С:Предприятие 8» данные субконто хранятся в специальной вспомогательной таблице значений субконто регистра бухгалтерии (обычно это таблица формата _AccRgED в MS SQL или PostgreSQL). Для быстрого извлечения остатков и оборотов СУБД строит сложные составные индексы. Каждое дополнительное субконто — это составной тип данных (содержит идентификатор типа и ссылку на объект). Добавление 4-го и 5-го субконто приводит к тому, что индекс СУБД раздувается, превышает допустимые лимиты по размеру ключа индекса (например, 900 байт в старых версиях MS SQL) или вовсе перестает быть эффективным. Проведение любых документов по регистру бухгалтерии начинает критически тормозить.
  2. Проблемы при обновлении конфигурации. Если вы измените свойства плана счетов в Конфигураторе, база автоматически снимется с поддержки. При каждом последующем обновлении БП 3.0 вам придется вручную контролировать этот объект. Более того, при реорганизации таблиц базы данных в процессе обновления могут возникать критические ошибки СУБД, блокирующие процесс обновления.
  3. Несовместимость с типовыми механизмами БП 3.0. Все встроенные алгоритмы закрытия месяца, регламентированной отчетности, экспресс-проверок и распределения затрат написаны в расчете на то, что субконто на счетах не может быть больше 3. Программа просто не «увидит» ваши дополнительные аналитики в проводках, что приведет к зависшим остаткам и ошибкам в отчетах.

Давайте вместе разберем наиболее правильные и безопасные способы переноса пяти аналитик (Контрагенты, Договоры, Оборудование, Склад, НоменклатурнаяГруппа) в типовую конфигурацию БП 3.0.

Способ 1. Логическая свертка аналитики (Сокращение до 3-х субконто)

Давайте внимательно проанализируем структуру данных в «1С:Предприятии 8.3». Архитектура справочников здесь гораздо более развита, чем в старой «семерке». Нам не требуется хранить все 5 аналитик в виде отдельных субконто на счете, поскольку между ними существуют жесткие логические связи:

  1. Контрагенты и Договоры. Справочник ДоговорыКонтрагентов в БП 3.0 является подчиненным справочнику Контрагенты. Это значит, что каждый договор жестко связан со своим владельцем (контрагентом). Хранить на счете одновременно и Контрагента, и Договор в качестве двух разных субконто — это грубое дублирование данных. Нам достаточно оставить на счете только субконто Договоры. Если нам потребуется вывести Контрагента в Оборотно-сальдовой ведомости (ОСВ) или в любом другом отчете, мы легко сможем сделать это через точку: Договор.Владелец.
  2. Оборудование и Номенклатурные группы. Элемент справочника Номенклатура (который выступает в роли оборудования) сам по себе может быть связан с определенной номенклатурной группой. Если эта связь однозначная, то держать Номенклатурную группу в качестве отдельного субконто на счете также нет никакого практического смысла. Ее можно получить напрямую из свойств самого оборудования.

Таким образом, мы без потери информативности можем сократить наши 5 субконто до стандартных 3-х:

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

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

Способ 2. Использование дополнительных реквизитов и сведений (БСП)

Что делать, если Номенклатурная группа или какое-то иное свойство оборудования не имеет жесткой связи в справочнике или нам требуется фиксировать уникальные свойства непосредственно для конкретной операции? В БП 3.0 интегрирована Библиотека Стандартных Подсистем (БСП), которая содержит мощный инструмент — дополнительные реквизиты и сведения.

Мы можем настроить это прямо в режиме «1С:Предприятие» без изменения конфигурации. Давайте разберем этот процесс по шагам:

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

Теперь пользователи смогут заполнять этот реквизит непосредственно в карточке номенклатуры (оборудования). Чтобы использовать этот доп. реквизит в отчетах (например, в ОСВ по счету 005), выполним следующие действия:

  1. Откроем Оборотно-сальдовую ведомость по счету 005.
  2. Нажмем кнопку Показать настройки.
  3. На вкладке Группировка нажмем кнопку Добавить.
  4. В появившемся окне выбора полей найдем наше субконто (например, Номенклатура), раскроем его и выберем созданный нами дополнительный реквизит «Номенклатурная группа оборудования».

Мы получили гибкую систему аналитики без изменения программного кода и без перегрузки таблиц итогов регистра бухгалтерии!

Способ 3. Использование расширения конфигурации и регистра накопления

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

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

Давайте детально рассмотрим этот способ:

  1. В Конфигураторе создадим новое Расширение конфигурации с назначением «Адаптация».
  2. Добавим в расширение новый объект — Регистр накопления (например, Расш1_ОстаткиОборудованияНаУстановке) с видом регистра Остатки.
  3. В созданном регистре мы можем определить столько измерений (аналитик), сколько нам действительно необходимо. Создадим измерения:
    - Контрагент (тип СправочникСсылка.Контрагенты)
    - Договор (тип СправочникСсылка.ДоговорыКонтрагентов)
    - Оборудование (тип СправочникСсылка.Номенклатура)
    - Склад (тип СправочникСсылка.Склады)
    - НоменклатурнаяГруппа (тип СправочникСсылка.НоменклатурныеГруппы)
  4. Создадим ресурс: Количество (тип Число).
  5. Добавим в расширение документ, который должен делать движения по этому забалансовому учету (например, ОперацияБух или специализированный документ поступления оборудования). Переопределим его модуль проведения с помощью аннотации &После.

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


&После("ОбработкаПроведения")
Процедура Расш1_ОбработкаПроведенияПосле(Отказ, РежимПроведения)
    
    // Создаем набор записей нашего регистра накопления в расширении
    НаборЗаписей = РегистрыНакопления.Расш1_ОстаткиОборудованияНаУстановке.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка);
    
    // Перебираем табличную часть документа и формируем движения
    Для Каждого СтрокаТЧ Из ЭтотОбъект.Товары Цикл
        
        Движение = НаборЗаписей.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = ЭтотОбъект.Дата;
        
        // Заполняем все необходимые нам 5 аналитик напрямую
        Движение.Контрагент = СтрокаТЧ.ДоговорКонтрагента.Владелец;
        Движение.Договор = СтрокаТЧ.ДоговорКонтрагента;
        Движение.Оборудование = СтрокаТЧ.Номенклатура;
        Движение.Склад = ЭтотОбъект.Склад;
        Движение.НоменклатурнаяГруппа = СтрокаТЧ.НоменклатурнаяГруппа;
        
        Движение.Количество = СтрокаТЧ.Количество;
        
    КонецЦикла;
    
    // Записываем сформированные движения в базу данных
    НаборЗаписей.Записать();
    
КонецПроцедуры

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

Способ 4. Создание нескольких забалансовых субсчетов (Для малого количества складов)

Существует еще один простой практический прием, упомянутый участниками форума. Если одна из ваших аналитик имеет фиксированное и очень небольшое количество значений (например, у вас всего 2 или 3 склада, на которых может храниться оборудование по 005 счету), вы можете вынести эту аналитику на уровень самого плана счетов.

Для этого в режиме «1С:Предприятие» (без использования Конфигуратора) мы можем создать несколько забалансовых субсчетов:

  1. 005.01 «Оборудование на Основном складе»
  2. 005.02 «Оборудование на Оптовом складе»

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

Резюме и рекомендации

При переносе остатков и проектировании учета в «1С:Бухгалтерии 3.0» всегда старайтесь избегать механического наращивания количества субконто на счетах. Платформа 1С 8.3 предоставляет гораздо более изящные и производительные инструменты.

Для решения вашей задачи мы рекомендуем использовать Способ 1 (Свертка аналитики) как наиболее естественный и простой. Избавьтесь от дублирования связок «Контрагент-Договор» и перенесите аналитику по номенклатурным группам в свойства самой номенклатуры. Это позволит вам уложиться в стандартное ограничение из 3-х субконто и гарантирует стабильную, быструю и бесперебойную работу вашей системы учета на долгие годы.

← На главную