Переход с конфигурации 1С:Бухгалтерия предприятия ПРОФ на версию 1С:Бухгалтерия КОРП — распространенный шаг при расширении бизнеса и появлении обособленных подразделений. Однако при обновлении базы разработчики и бухгалтеры часто сталкиваются с неожиданной ситуацией: в документах и регистрах появляется новый обязательный разрез учета — ПодразделениеОрганизации.
Если в ранее проведенных документах заполнить реквизит шапки, но не обновить проводки в регистрах, в Оборотной-сальдовой ведомости (ОСВ) сформируются пустые строки по субконто подразделений. Массовое перепроведение документов за прошлые периоды может привести к пересчету и искажению уже сданной отчетности. Проанализируем, почему возникает эта проблема и как корректно проставить подразделение в регистрах без вызова стандартной процедуры проведения.
При включении функциональности учета по обособленным подразделениям в версии КОРП программа активирует дополнительную аналитику на счетах бухгалтерского учета. В результате возникают следующие особенности:
РегистрБухгалтерии.Хозрасчетный и регистрах накопления остаются со значениями Null или пустой ссылкой.Наиболее технологичный и безопасный метод — программная запись нужного значения непосредственно в движения документов через механизм НаборЗаписей. Этот подход позволяет обновить данные в регистрах бухгалтерии и накопления без вызова обработчиков проведения самого документа (таких как ОбработкаПроведения).
Рассмотрим пример алгоритма на внешней обработке, который находит проведенные документы и заполняет пустое подразделение в проводках:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
| ПоступлениеТоваровУслуг.Проведен = ИСТИНА
| И ПоступлениеТоваровУслуг.Дата МЕНЬШЕ &ДатаПерехода";
Запрос.УстановитьПараметр("ДатаПерехода", ДатаЗакрытияПериода);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ОсновноеПодразделение = Справочники.ПодразделенияОрганизаций.ОсновноеПодразделение;
Пока Выборка.Следующий() Цикл
// 1. Обновляем реквизит шапки документа без перепроведения
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
ДокОбъект.ПодразделениеОрганизации = ОсновноеПодразделение;
ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
// 2. Корректируем движения в регистре бухгалтерии
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка);
НаборЗаписей.Прочитать();
Модифицирован = Ложь;
Для Каждого Запись Из НаборЗаписей Цикл
// Проверяем и заполняем подразделение по Дт
Если Запись.СчетДт.УчетПоПодразделениям И НЕ ЗначениеЗаполнено(Запись.ПодразделениеДт) Тогда
Запись.ПодразделениеДт = ОсновноеПодразделение;
Модифицирован = ИСТИНА;
КонецЕсли;
// Проверяем и заполняем подразделение по Кт
Если Запись.СчетКт.УчетПоПодразделениям И НЕ ЗначениеЗаполнено(Запись.ПодразделениеКт) Тогда
Запись.ПодразделениеКт = ОсновноеПодразделение;
Модифицирован = ИСТИНА;
КонецЕсли;
КонецЦикла;
Если Модифицирован Тогда
НаборЗаписей.ОбменДанными.Загрузка = ИСТИНА; // Отключаем стандартные проверки
НаборЗаписей.Записать();
КонецЕсли;
КонецЦикла;
Использование свойства ОбменДанными.Загрузка = ИСТИНА является критически важным: оно гарантирует, что система запишет движения «как есть», не заново пересчитывая связанные механизмы и не блокируя запись проверками заполнения.
Если правка тысяч прошлых документов нецелесообразна или рискованна, разберем альтернативный вариант — перенос остатков на дату начала учета в версии КОРП.
ОперацияБух (Операция, введенная вручную).При таком подходе вся история до даты перехода остается неизменной, а с новой даты все обороты и сальдо учитываются строго в разрезе созданных подразделений.
Перед выполнением любых манипуляций с движениями в рабочей базе проанализируем следующие обязательные шаги:
Создание резервной копии. Любые групповые записи в регистры бухгалтерии должны выполняться строго после создания копии информационной базы.
Сверка ОСВ до и после обработки. Сформируйте Оборотную-сальдовую ведомость за закрытый период без группировки по подразделениям и сохраните ее. После выполнения скрипта или проведения операций повторно сформируйте отчет: общие итоги по дебету, кредиту и конечным остаткам всех счетов должны полностью совпасть до копейки.
Проверка регистров накопления. Помните, что помимо бухгалтерских проводок, в конфигурациях КОРП заполнение подразделений требуется в регистрах НДС и налогового учета. При программной корректировке учитывайте необходимость синхронного обновления смежных регистров накопления.