Компания переходит с одной облачной базы 1С:УНФ на другую. В новой базе изменен план счетов, другая аналитика по проектам, отключены некоторые старые механизмы. Обе базы работают в 1С:Фреш: прямого доступа к файлам или конфигуратору нет, доступен только программный интерфейс.
Стандартный сценарий миграции в такой ситуации опасен:
- выгрузка остатков на дату отсечки делается разово и вручную. Если дата отсечки сдвигнается, процесс начинается заново
- все текущие операции до момента переключения бухгалтерам приходится вводить в новую базу второй раз
- любое изменение в старой базе в процессе перехода требует повторой сверки
- если часть данных не перенеслась, искать причину и недостающие документы нужно вручную
Решение
Мы разработали инструмент, который читает данные из одну базу 1С и записывает их в другую напрямую через API, без выгрузок в Excel и ручного ввода. У решения четыре ключевых свойства:
- Многократный безопасный запуск. Инструмент можно запускать сколько угодно раз до финального переключения. Он понимает, что уже перенесено, а что нет. Тестовый прогон показал результат заказчику.Следующий прогон через неделю перенес только новые данные, старые не задвоились. Финальный запуск в день переключения занимает минимум времени
- Защита от перезаписи. Если документ уже создали в новой базе вручную (или его перенес кто-то другой), инструмент его не трогает. Если документ изменили в старой базе после первого переноса — система его обновит. Если правки внесли с обеих сторон, программа пометит документ как требующее внимания, а не будет принимать решение за пользователя
- Детальная отчетность. После каждого прогона формируется таблица: сколько документов было в старой базе, сколько создано в новой, расхождения по суммам, битые ссылки. Отдельно выгружается список данных, которые не удалось перенести, с указанием причины для ручного разбора
- Безопасность исходной базы. В старой базе продолжают работать люди, поэтому инструмент настроен только на чтение: в архитектуре решения нет канала для записи в старую базу
Результаты внедрения
| Перенесено документов за полтора месяца | 1 384 |
| Расхождений после сверки | 0 |
| Объектов справочников создано автоматически (номенклатура, контрагенты, счета, сотрудники и т. п.) | 460 |
| Время полного прогона вместе со сверкой | ~15 минут |
В процессе работы заказчик попросил добавить еще один тип документов, которого не было в изначальном плане. Настройка заняла несколько часов по тому же принципу «прогнать — сверить»
Что мы обнаружили по ходу миграции
- Инструмент зафиксировал, что кто-то параллельно переносил данные в новую базу. Вместо задвоения система сверила эти документы с исходной базой, убедилась в их корректности и приняла как уже перенесенные
- Нашлись документы, которые ссылались на отсутствующие в новой базе объекты (их создали вручную без учета связей). Инструмент не проигнорировал это, а вынес в отчет для проверки
- Часть решений мы сознательно оставили за заказчиком. Например, новые позиции номенклатуры не стали автоматически раскладывать по старым учетным категориям. Слепой перенос сломал бы проводки в новой структуре учета. Мы подготовили заготовку с подсказками, а финальное решение принял человек
Почему это не просто скрипт-выгрузка
Три принципа, которые превращают перенос их лотереи в управляемый процесс:
- Каскадное сопоставление объектов. Сопоставлять контрагентов или склады только по названию опасно: одинаковые названия могут означать разные объекты, а разные названия — один и тот же. Мы используем каскад: точное совпадение → решение человека, зафиксированное один раз → служебные признаки → и только в последнюю очередь название с проверкой уникальности кандидата
- Проверка ссылок до записи. Платформа 1С позволяет записать документ со ссылкой на несуществующий объект, создавая «пустое место». Наш инструмент ловит такие ошибки до записи в базу, а не через месяц при закрытии периода
- Полная обратимость. Любой прогон можно откатить, не затрагивая чужие документы и уже принятые как перенесенные данные. Это позволяет тестировать перенос на реальной базе без страха ее повредить
Когда применять этот подход
Решение работает не только при переезде между двумя базами 1С:Фреш. Тот же подход применим при:
- слиянии или разделения компаний (сведение двух баз в одну или разделение одной на две)
- смены типовой конфигурации с изменением структуры учета
- переносе между разными способами размещения (облако → сервер, сервер → облако)
- любых ситуациях, где перенос данных — это не разовая операция, а процесс, требующий контроля в течение нескольих недель
