Как заполнить подразделение в документах и движениях без перепроведения при переходе на 1С:Бухгалтерию КОРП?

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

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

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

Причины возникновения проблемы и риски перепроведения

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

  1. Аналитика в плане счетов: На счетах учета затрат (20, 23, 25, 26, 44), ТМЦ, денежных средств и расчетов задействуется учет по подразделениям. Программа ожидает наличие заполненного субконто в каждой проводке.
  2. Рассогласование шапки и движений: Заполнение реквизита в документе через стандартную обработку изменяет только сам объект. Движения в регистре РегистрБухгалтерии.Хозрасчетный и регистрах накопления остаются со значениями Null или пустой ссылкой.
  3. Зависание остатков при закрытии месяца: Регламентная процедура закрытия месяца крайне чувствительна к аналитике затрат. Незаполненное подразделение в прошлых периодах приводит к некорректному распределению косвенных расходов и ошибкам при списании остатков.
  4. Опасность массового перепроведения: Если перезапустить проведение документов за несколько месяцев или лет, сработают встроенные механизмы пересчета партий, взаиморасчетов и временных разниц. Это гарантированно приведет к "расползанию" сальдо и расхождениям с ранее сданной налоговой отчетностью.

Способ 1. Обновление движений через наборы записей регистров

Наиболее технологичный и безопасный метод — программная запись нужного значения непосредственно в движения документов через механизм НаборЗаписей. Этот подход позволяет обновить данные в регистрах бухгалтерии и накопления без вызова обработчиков проведения самого документа (таких как ОбработкаПроведения).

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


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ПоступлениеТоваровУслуг.Ссылка КАК Ссылка
    |ИЗ
    |	Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    |	ПоступлениеТоваровУслуг.Проведен = ИСТИНА
    |	И ПоступлениеТоваровУслуг.Дата МЕНЬШЕ &ДатаПерехода";

Запрос.УстановитьПараметр("ДатаПерехода", ДатаЗакрытияПериода);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

ОсновноеПодразделение = Справочники.ПодразделенияОрганизаций.ОсновноеПодразделение;

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

КонецЦикла;

Использование свойства ОбменДанными.Загрузка = ИСТИНА является критически важным: оно гарантирует, что система запишет движения «как есть», не заново пересчитывая связанные механизмы и не блокируя запись проверками заполнения.

Способ 2. Ввод начальных остатков или межпериодный перенос

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

  1. Фиксация даты старта: Согласуйте с бухгалтерской службой дату, начиная с которой учет ведут по новым правилам (например, 1 января или начало текущего квартала).
  2. Схлопывание пустой аналитики: На дату перехода создается документ ОперацияБух (Операция, введенная вручную).
  3. Корректировка субконто: По каждому счету, где числятся остатки без подразделения, формируется проводка с переносом суммы с пустого подразделения на «Основное подразделение» (например, Дт 10.01 [Основное] — Кт 10.01 [Пустое]).

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

Рекомендации по проверке и контролю данных

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

Создание резервной копии. Любые групповые записи в регистры бухгалтерии должны выполняться строго после создания копии информационной базы.

Сверка ОСВ до и после обработки. Сформируйте Оборотную-сальдовую ведомость за закрытый период без группировки по подразделениям и сохраните ее. После выполнения скрипта или проведения операций повторно сформируйте отчет: общие итоги по дебету, кредиту и конечным остаткам всех счетов должны полностью совпасть до копейки.

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

← На главную