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

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

При переходе с редакции «1С:Бухгалтерия предприятия 2.0» на «1С:Бухгалтерия предприятия 3.0» пользователи нередко сталкиваются с ситуацией, когда в оборотно-сальдовой ведомости по счетам учета денежных средств или расчетов с контрагентами (например, по счетам 50.01 или 76.05) исчезает заполнение по подразделениям. При этом в самом плане счетов строка субконто может отображаться, однако в проводках документов поле остается пустым, а в формах документов возможность выбора подразделения отсутствует вовсе.

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

Анализ проблемы: как устроен учет по подразделениям в типовых конфигурациях

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

  1. Отсутствие субконто «Подразделения». В типовом плане видов характеристик ВидыСубконтоХозрасчетные вида субконто Подразделения нет и никогда не было. Попытка добавить подразделение на счет как вид аналитики всегда является признаком нетиповой доработки базы данных.
  2. Признак учета, а не субконто. Учет по подразделениям в типовой конфигурации редакции 2.0 и 3.0 реализован через специальный признак учета счета (флаг ПоПодразделениям) и ограничен исключительно производственными и затратными счетами (20, 23, 25, 26, 97.21). На счетах 50, 60, 62 или 76 в версии ПРОФ такой учет функционалом не предусмотрен.
  3. Специфика обновления до редакции 3.0. Переход с редакции 2.0 на 3.0 представляет собой не обычное накатывание обновления, а масштабную конвертацию данных. Типовые алгоритмы переноса и типовые модули проведения документов редакции 3.0 ПРОФ не знают о пользовательских субконто. Если в исходной базе 2.0 кто-то вручную добавил аналитику на счета 50 или 76, при конвертации структура плана счетов могла перенестись, но типовой программный код проведения документов 3.0 просто игнорирует добавленные поля.

Почему очищаются данные на уровне платформы

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

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

Способ 1. Переход на «1С:Бухгалтерию КОРП» с конвертацией данных (рекомендуемый)

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

  1. Развернем резервную копию базы данных «1С:Бухгалтерия 2.0», созданную до выполнения первого обновления.
  2. Выполним штатный переход с версии «БП 2.0 ПРОФ» на «БП 2.0 КОРП» с помощью специального файла обновления перехода. Напрямую обновить конфигурацию ПРОФ на КОРП другой редакции невозможно.
  3. Разработаем внешнюю обработку, которая перенесет данные из пользовательского субконто в типовое измерение регистра бухгалтерии Подразделение. Чтобы не нарушать последовательность документов и исключить искажение исторических проводок, запись движений необходимо выполнять с отключением бизнес-логики:
    
    НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка);
    НаборЗаписей.Прочитать();
    
    Для Каждого Запись Из НаборЗаписей Цикл
        // Переносим значение из нетипового субконто в типовое измерение
        Если Запись.СчетДт = ПланСчетов.Хозрасчетный.Касса Тогда
            Запись.ПодразделениеДт = Запись.СубконтоДт[ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения];
        КонецЕсли;
    КонецЦикла;
    
    НаборЗаписей.ОбменДанными.Загрузка = Истина;
    НаборЗаписей.Записать();
    
  4. После успешного заполнения балансового измерения по историческим данным выполним штатное обновление с конфигурации «БП 2.0 КОРП» на актуальную версию «БП 3.0 КОРП». В этом случае все экранные формы документов и модули проведения изначально будут поддерживать сквозной учет по подразделениям.

Способ 2. Сохранение субконто в версии ПРОФ через расширение конфигурации

Если покупка и переход на версию КОРП не планируются, но компании требуется сохранить аналитику по подразделениям на счетах 50 и 76, решим задачу с помощью механизма расширений, не снимая конфигурацию с поддержки:

  1. Подключим к информационной базе расширение конфигурации в режиме адаптации.
  2. Добавим в расширение необходимые реквизиты в документы (например, реквизит Подразделение в документ ПриходныйКассовыйОрдер).
  3. В расширении выведем добавленные реквизиты на управляемые формы документов.
  4. Перехватим событие ОбработкаПроведения нужных документов с помощью директивы &После:
    
    &После("ОбработкаПроведения")
    Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения)
        // Дополняем движения сформированного набора проводок
        Движения.Хозрасчетный.Прочитать();
        Для Каждого Проводка Из Движения.Хозрасчетный Цикл
            Если Проводка.СчетДт = ПланСчетов.Хозрасчетный.Касса Тогда
                Проводка.СубконтоДт[ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения] = ЭтотОбъект.Подразделение;
            КонецЕсли;
        КонецЦикла;
        Движения.Хозрасчетный.Записать();
    КонецПроцедуры
    
  5. Восстановим исторические данные за прошлые периоды из архивной копии базы редакции 2.0 с помощью внешней обработки, записывающей наборы движений в режиме ОбменДанными.Загрузка = Истина.

Типовые альтернативы без доработки конфигурации

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

  1. Разделение касс через субсчета. Для раздельного учета наличных денежных средств по разным торговым точкам в плане счетов создают подчиненные субсчета (например, 50.01.1 «Центральная касса» и 50.01.2 «Операционная касса филиала»). Документы кассы позволяют свободно выбирать необходимый субсчет учета.
  2. Разделение расчетов через договоры контрагентов. Для счета 76.05 разграничение по подразделениям реализуют через справочник Договоры контрагентов. В наименовании договора указывается конкретное подразделение или объект (например, «Договор поставки (Транспортный цех)»), что позволяет строить детальные отчеты по аналитике субконто Договоры.
  3. Использование дополнительных реквизитов. В разделе Администрирование — Общие настройки — Дополнительные реквизиты и сведения можно включить дополнительную аналитику для документов расчетов и кассовых ордеров. Это позволит классифицировать первичные документы по подразделениям и строить по ним универсальные отчеты без изменения регистра бухгалтерии.
← На главную