Как заполнить основное подразделение в остатках и проводках при переходе с 1С:Бухгалтерии ПРОФ на КОРП?

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

При обновлении конфигурации 1С:Бухгалтерия предприятия с версии ПРОФ на КОРП пользователи и разработчики часто сталкиваются с ситуацией, когда все исторические сальдо и обороты по счетам (01, 10, 41, 60, 62 и др.) оказываются без указания подразделения — в оборотно-сальдовых ведомостях отображается пустое значение <...>. Проанализируем, почему возникает такое поведение платформы, и разберем проверенные способы решения этой задачи.

Выясним причину: почему подразделения становятся пустыми

В конфигурации версии ПРОФ учет по подразделениям ведется только как аналитика (субконто) на отдельных счетах затрат (20, 23, 25, 26, 44). В версии КОРП после включения функционала обособленных подразделений измерение Подразделение в регистре бухгалтерии Хозрасчетный становится сквозным балансовым измерением для абсолютно всех счетов плана счетов.

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

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

  1. Ошибки контроля остатков: при попытке списать ТМЦ или зачесть аванс с указанием конкретного подразделения программа выдает ошибку отсутствия остатка, так как исторический остаток числится на пустом значении.
  2. Разрывы в отчетах: обороты и остатки разделяются на две параллельные ветки — с заполненным подразделением и с пустым <...>, что искажает аналитику и мешает корректному закрытию месяца.

Техническое ограничение: почему не подходит «Поиск и замена значений»

Попытка использовать типовую обработку поиска и замены дублирующихся ссылок в данном случае не сработает. В незаполненном измерении регистра бухгалтерии хранится не битая или пустая ссылка конкретного справочника, а незаполненное системное значение. Механизм поиска и замены предназначен исключительно для замены одного существующего элемента справочника на другой.

Рассмотрим рабочие способы исправления ситуации.

Способ 1. Межпериодный перенос сальдо (рекомендуемый для закрытых периодов)

Если учет велся несколько лет, а отчетность за прошлые периоды уже сдана, оптимальным решением является перенос остатков на дату начала ведения раздельного учета (например, на 31 декабря или 01 января).

Разберем по шагам, как выполнить перенос:

  1. Создаем документ Операция, введенная вручную на дату перехода.
  2. По каждому сальдовому счету делаем корректировочную техническую проводку:

    Дт (Счет учета, Подразделение «Основное», Субконто) — Кт (Счет учета, Пустое подразделение, Субконто).

  3. Для учета основных средств (счета 01, 02) дополнительно вводим документы Перемещение ОС, чтобы новое местонахождение объектов зафиксировалось в специализированных периодических регистрах сведений по учету ОС.

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

Способ 2. Программное заполнение проводок без перепроведения документов

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

Посмотрим на пример программного кода для пакетной обработки движений:


Выборка = Документы.РеализацияТоваровУслуг.Выбрать(НачалоПериода, КонецПериода);
Пока Выборка.Следующий() Цикл
    ДокументОбъект = Выборка.ПолучитьОбъект();
    
    // Получаем набор записей регистра бухгалтерии
    НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(ДокументОбъект.Ссылка);
    НаборЗаписей.Прочитать();
    
    БылиИзменения = Ложь;
    Для Каждого Проводка Из НаборЗаписей Цикл
        Если Не ЗначениеЗаполнено(Проводка.ПодразделениеДт) Тогда
            Проводка.ПодразделениеДт = ОсновноеПодразделение;
            БылиИзменения = Истина;
        КонецЕсли;
        
        Если Не ЗначениеЗаполнено(Проводка.ПодразделениеКт) Тогда
            Проводка.ПодразделениеКт = ОсновноеПодразделение;
            БылиИзменения = Истина;
        КонецЕсли;
    КонецЦикла;
    
    Если БылиИзменения Тогда
        // Отключаем проверки и обработчики при записи
        НаборЗаписей.ОбменДанными.Загрузка = Истина;
        НаборЗаписей.Записать();
    КонецЕсли;
КонецЦикла;

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

Способ 3. Пакетная корректировка и перепроведение документов

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

  1. Открываем раздел Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов.
  2. Выбираем необходимые виды документов за период.
  3. Указываем реквизит Подразделение и устанавливаем значение «Основное подразделение».
  4. Выполняем перепроведение документов за выбранный период.

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

← На главную