Как перенести данные между конфигурациями 1С 8.3 и не потерять остатки
Содержание
Конвертация данных в 1С проходит в четыре шага: копия обеих баз → выбор инструмента под пару конфигураций → пробная загрузка в тестовую базу → сверка оборотно-сальдовой ведомости. Если переход типовой (например, ЗУП 2.5 → ЗУП 3.1 или БП 2.0 → БП 3.0), берите встроенный механизм переноса. Если конфигурации доработаны или нетиповые — пишите правила в «1С:Конвертации данных».
Главная ошибка новичка — сразу грузить в рабочую базу. Правильная последовательность: сначала тестовая копия приёмника, несколько прогонов, и только потом финальный перенос в выходные, когда никто не работает .
Что сделать до начала переноса
Подготовка занимает больше времени, чем сама загрузка. Зато она снимает половину сюрпризов.
Привести источник в порядок
- 🧹 Удалите помеченные на удаление объекты. Иначе они уедут в новую базу вместе с мусором.
- 🔍 Найдите дубли в справочниках «Контрагенты», «Номенклатура», «Физические лица». Дубль в источнике превратится в два элемента в приёмнике, и остатки разъедутся.
- 🔗 Проверьте битые ссылки — поля со значением
<Объект не найден>. Их выявляет тестирование и исправление базы в Конфигураторе с флажком проверки логической целостности. - 📅 Закройте период: проведённые документы, закрытый месяц, сверенные остатки. Переносить «полуоткрытый» месяц — значит потом разбираться, где ошибка: в старой базе или в переносе.
Зафиксировать релизы
Запишите точные версии обеих конфигураций и платформы: Справка → О программе. Правила конвертации строятся под конкретную структуру метаданных. Если приёмник обновили после написания правил, часть объектов может не загрузиться.
Решить, что именно переносить
Не всегда нужна вся история. Частый вариант — перенести справочники и начальные остатки на дату перехода, а старую базу оставить в архиве для справок.
| Что переносим | Когда подходит | Объём работы |
|---|---|---|
| Только справочники | Новая база, учёт с чистого листа | Минимальный |
| Справочники + остатки на дату | Переход с начала года или квартала | Средний |
| Полная история документов | Нужны отчёты за прошлые периоды в новой базе | Большой, долгая сверка |
Перед любым переносом сделайте выгрузку обеих баз в .dt (Конфигуратор → Администрирование → Выгрузить информационную базу). Выгрузка .dt требует монопольного доступа — попросите пользователей выйти заранее.
Чем конвертировать: выбор инструмента под вашу пару баз
Инструмент зависит от того, между какими конфигурациями идёт перенос и насколько они доработаны.
Администрирование → Синхронизация данных. Под капотом формат EnterpriseData и готовые правила.Чем отличаются КД 2 и КД 3
| Признак | КД 2 | КД 3 |
|---|---|---|
| Где живут правила | Внешний XML-файл | Модуль менеджера обмена в конфигурации |
| Формат обмена | Внутренний формат правил | EnterpriseData |
| Нужна ли правка приёмника | Нет | Да (или расширение) |
| Типичное применение | Разовые переносы, старые конфигурации | Регулярный обмен на БСП |
Для разовой конвертации новичку проще КД 2: результат — один файл правил, а вся работа идёт через внешнюю обработку.
Настройка правил конвертации данных в КД 2
Логика КД 2: вы описываете, какой объект источника превращается в какой объект приёмника и как заполнить каждое поле.
Загрузите структуру метаданных
- В источнике откройте обработку выгрузки структуры метаданных (
MD83Exp.epf, она идёт в поставке «Конвертации данных») черезФайл → Открыть. - Сохраните структуру в XML-файл.
- Повторите для приёмника.
- В базе «Конвертация данных» создайте конвертацию и укажите эти два файла как конфигурацию-источник и конфигурацию-приёмник.
Виды правил
- 📦 ПКО — правила конвертации объектов. Сопоставляют типы: справочник «Контрагенты» → справочник «Контрагенты».
- 🔧 ПКС — правила конвертации свойств. Сопоставляют реквизиты внутри объекта: ИНН → ИНН, «Наименование полное» → «Полное наименование».
- 📤 ПВД — правила выгрузки данных. Определяют, что выгружать: все документы реализации за период, только непомеченные элементы и т. п.
- 🗑 ПОД — правила очистки данных. Удаляют объекты в приёмнике перед загрузкой. Пользуйтесь редко и только на тестовой базе.
Кнопка автоматического сопоставления создаёт ПКО и ПКС для объектов и реквизитов с одинаковыми именами. После неё остаются красные строки — несопоставленные поля. Их разбирают вручную.
Поиск объектов в приёмнике
Это самое важное решение в правилах. Оно определяет, создаст загрузка новый элемент или найдёт существующий.
| Способ поиска | Когда использовать | Риск |
|---|---|---|
| По внутреннему идентификатору (GUID) | Приёмник пустой или заполнен прошлой загрузкой из этого же источника | При ручном вводе элементов в приёмник — дубли |
| По ИНН + КПП | Контрагенты, если приёмник уже заполнен | Пустой ИНН у физлиц и иностранцев |
| По коду или артикулу | Номенклатура с уникальными артикулами | Разная нумерация в базах |
| По наименованию | Последний вариант | Опечатки и пробелы создают дубли |
💡 Комбинируйте: сначала GUID, затем ИНН, затем наименование. В КД 2 для этого задают несколько полей поиска и обработчик поиска.
Обработчики событий
Где не хватает простого сопоставления, пишут код на встроенном языке: «Перед выгрузкой», «При выгрузке», «После загрузки» и другие. Пример — разделить одно поле адреса источника на составляющие или пересчитать сумму в другую валюту.
// Обработчик ПКС «После выгрузки»: обрезаем пробелы в наименовании
Если ТипЗнч(Значение) = Тип("Строка") Тогда
Значение = СокрЛП(Значение);
КонецЕсли;
После настройки выгрузите правила в XML-файл: его загружает универсальная обработка.
Запуск конвертации: порядок действий
Запускайте на копиях. Источник можно не копировать, если выгрузка только читает данные, но приёмник — обязательно тестовый.
- Откройте обработку в источнике. Запустите «Универсальный обмен данными в формате XML» через
Файл → Открыть. Режим — выгрузка. - Загрузите правила. Укажите файл правил, сохранённый из КД 2. Обработка покажет список правил выгрузки данных.
- Задайте период и отбор. Отметьте нужные правила и укажите период документов. Для первого прогона возьмите один месяц — так быстрее найти ошибки.
- Выгрузите данные. Укажите путь к файлу данных и нажмите кнопку выгрузки. Получится XML с данными.
- Откройте обработку в приёмнике. Та же обработка, режим — загрузка. Укажите файл данных.
- Настройте режим загрузки. Включите загрузку в режиме обмена данными: при записи объектов отключаются проверки заполнения и бизнес-логика модулей. Так загрузка идёт быстрее и не спотыкается о недостающие реквизиты.
- Загрузите и прочитайте протокол. Каждая строка с ошибкой — сигнал вернуться к правилам. Повторяйте цикл, пока протокол не станет чистым.
В режиме обмена проверки при проведении не выполняются, поэтому движения документов после загрузки ненадёжны. Перепроведите перенесённые документы групповой обработкой за весь период — и только потом сверяйте отчёты.
Отладка обработчиков
Если ошибка возникает внутри обработчика, в универсальной обработке включите режим отладки обработчиков. Она сформирует внешнюю обработку с кодом всех обработчиков, и вы сможете поставить точку останова в Конфигураторе. Это быстрее, чем гадать по тексту ошибки в протоколе.
Сверка результатов после конвертации
Протокол без ошибок ещё не значит, что данные перенесены верно. Сверяйте цифрами.
- Оборотно-сальдовая ведомость. Сформируйте ОСВ на дату переноса в обеих базах. Сальдо по каждому счёту должно совпасть до копейки.
- Расшифровка расхождений. Если не совпал счёт 60 или 62, откройте ОСВ по счёту с разворотом по контрагентам. Обычно виноват дубль контрагента или договор, привязанный не к тому элементу.
- Количество элементов справочников. Сравните число контрагентов и номенклатуры в обеих базах. Разница больше количества удалённых — ищите задвоение или пропуск.
- Дубли. В БСП-конфигурациях есть обработка «Поиск и удаление дублей» в разделе
Администрирование → Обслуживание. - Выборочная проверка. Откройте 10–15 случайных документов и сравните реквизиты с источником.
Конвертация больших баз: как ускорить
На базе в десятки гигабайт полная конвертация может идти сутки. Несколько приёмов сокращают время в разы.
- ✂️ Делите по периодам. Выгружайте документы помесячно или поквартально. Ошибка в одном файле не заставит перезапускать всё.
- 📚 Сначала справочники, потом документы. Отдельный прогон справочников даёт стабильную базу, к которой привязываются документы.
- ⏸ Не проводите при загрузке. Загрузить документы без проведения и потом перепровести их групповой обработкой быстрее, чем проводить каждый документ в момент загрузки.
- 🧾 Используйте транзакции порциями. В универсальной обработке можно задать загрузку в транзакции с ограничением числа объектов. Порция в несколько сотен объектов — компромисс между скоростью и откатом при сбое.
- 🖥 Грузите на сервере. В клиент-серверном варианте обработка, запущенная на стороне сервера, не гоняет данные по сети. Отключите лишние подписки и регламентные задания в приёмнике на время загрузки.
- 🧮 Оставьте историю в архиве. Если старые документы нужны только для справок, переносите остатки, а не обороты за пять лет.
💡 Засеките время пробного прогона за один месяц и умножьте на число месяцев. Так вы поймёте, хватит ли выходных на финальный перенос.
Другие способы перенести данные
Не всё стоит гнать через правила.
- 📄 Ввод начальных остатков. В БП 3.0 есть помощник ввода остатков. Для небольшой организации проще перенести справочники, а остатки ввести вручную по ОСВ.
- 📊 Загрузка из табличного документа. Номенклатуру, контрагентов и цены можно загрузить из Excel: в списках справочников БП 3.0 и УТ 11 есть команда загрузки из файла. Подходит, когда источник — не 1С.
- 🔄 Синхронизация данных. Для пар типовых конфигураций (УТ ↔ БП, Розница ↔ УТ) правила уже готовы, нужно только настроить узел обмена.
- 💾 Выгрузка .dt. Переносит базу целиком, но только в такую же конфигурацию. Это копирование, а не конвертация.
- 🧑💻 Прямые запросы или COM-соединение. Для программиста — разовая обработка, которая читает источник через COM и пишет в приёмник. Гибко, но без протокола и без защиты от дублей, которые даёт КД.
Ошибки при конвертации и как их не допустить
Ещё три ошибки, которые не видны в протоколе:
- ⛔ Пользователи работали в источнике после выгрузки. Новые документы не попадут в приёмник. Перед финальным прогоном закройте источник на запись.
- ⛔ Не совпала учётная политика. Если в приёмнике другой способ оценки запасов или другой режим НДС, после перепроведения суммы разойдутся. Настройте учётную политику до загрузки документов.
- ⛔ Перенос в базу, где уже ведётся учёт. Без продуманного поиска объектов новые данные смешаются со старыми. Безопаснее грузить в пустую базу.