Объединение двух информационных баз 1С:УПП (Управление производственным предприятием) — это сложная техническая и методическая задача. Особенно часто вопросы возникают, когда одна организация вела учет в режиме расширенной аналитики затрат (РАУЗ), а в целевой базе используется партионный учет. Разберем пошагово, как выполнить этот процесс, избежать типичных ошибок с «пустыми документами» и правильно сформировать остатки.
Прежде чем приступать к любым манипуляциям, мы должны гарантировать уникальность кодов справочников и номеров документов. Если в обеих базах есть документы с номером «00001», при загрузке они могут перезаписать друг друга или создать коллизии.
Рассмотрим алгоритм подготовки:
Контрагенты и Номенклатура. Если одни и те же контрагенты заведены в обеих базах, после переноса появятся дубли. Рекомендуем заранее определить уникальные идентификаторы для синхронизации (например, ИНН/КПП для контрагентов и Артикул для номенклатуры).Для переноса чистых остатков логично использовать механизм свертки. Свертка в УПП на определенную дату (например, 31.12.2023) удаляет детальные документы прошлых периодов и создает документы КорректировкаЗаписейРегистров и ОперацияБух, в которых фиксируются входящие сальдо.
Выясним причину, по которой многие сталкиваются с проблемой «пустых документов» после свертки. Свертка базы в УПП зачастую не создает документы ВводНачальныхОстатков, а формирует именно технические корректировки. Эти документы не имеют табличных частей в привычном понимании — их данные хранятся непосредственно в наборах записей регистров накопления и регистров бухгалтерии.
Посмотрим на типичную ошибку: использование обработки «Универсальный обмен данными XML» со стандартными настройками часто приводит к тому, что переносятся «шапки» документов КорректировкаЗаписейРегистров, но без самих движений. В результате в базе-приемнике мы видим пустой документ.
Чтобы этого избежать, проанализируем настройки выгрузки:
ВыгрузкаЗагрузкаДанныхXML (которая работает через сравнение метаданных) важно убедиться, что базы идентичны по релизу. Если базы разные, используем УниверсальныйОбменДаннымиXML.КорректировкаЗаписейРегистров необходимо в обработчике ПередВыгрузкой или в настройках правила указать необходимость выгрузки движений.Это самый критичный момент переноса. В режиме РАУЗ система не фиксирует конкретные партии (документы оприходования) для списания. Если мы просто перенесем остатки в базу, где включен партионный учет, при первой же реализации мы получим ошибку: «Не списано по партиям».
Рассмотрим, как решить эту ситуацию:
Поскольку в исходных данных нет информации о партиях, нам придется «создать» их в целевой базе. При загрузке корректировок регистров в качестве значения измерения ДокументОприходования (или аналогичных в зависимости от регистра) должен выступать либо сам документ ввода остатков, либо специально созданный технический документ Партия. Без заполнения этого поля партионный учет работать не будет.
Проанализируем список регистров, данные по которым обязательны для корректного продолжения учета в одной базе:
ВзаиморасчетыСКонтрагентами и ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов. Очень важно соблюсти аналитику по договорам и заказам.ТоварыНаСкладах и ПартииТоваровНаСкладах (последний заполняем техническими данными о партиях, как указано выше).НДСПредъявленный, НДСПоПартиямТоваров и НДСНачисленный. Без этого невозможно будет сформировать книгу покупок и продаж по перенесенной организации.ПараметрыАмортизацииОСБухгалтерскийУчет, СостоянияОС, МестонахождениеОС.НезавершенноеПроизводство, Затраты и ЗатратыНаВыпускПродукции с сохранением всей аналитики затрат (номенклатурные группы, статьи затрат).Вместо того чтобы бороться с «грязными» корректировками регистров после свертки, мы можем пойти более правильным путем — использовать типовой ПомощникВводаНачальныхОстатков. Разберем этот метод по шагам:
ОтражениеПоступленияТоваровИУслугНДС или специализированные документы ввода остатков.Пример кода для программного создания документа (условно):
НовыйДок = Документы.ОприходованиеТоваров.СоздатьДокумент();
НовыйДок.Дата = '20231231235959';
НовыйДок.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "1234567890");
// Заполнение табличной части из структуры данных Excel
Для Каждого СтрокаДанных Из ТаблицаОстатков Цикл
НоваяСтрока = НовыйДок.Товары.Добавить();
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаДанных.Наименование);
НоваяСтрока.Количество = СтрокаДанных.Количество;
НоваяСтрока.Цена = СтрокаДанных.Сумма / СтрокаДанных.Количество;
КонецЦикла;
НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
После завершения загрузки нам необходимо выполнить следующие действия:
ПоискИЗаменаДублей. Особое внимание уделим справочникам СтатьиЗатрат, НоменклатурныеГруппы и Подразделения.УчетнаяПолитика для новой организации, в точности повторив параметры из исходной базы (кроме метода учета затрат, если он меняется на партионный).Таким образом, объединение баз УПП требует не просто механического переноса файлов, а глубокого понимания структуры регистров. Использование метода с перепрефиксацией и контролем выгрузки движений регистров позволит вам собрать учет нескольких организаций в едином контуре без потери важных данных.