Быстрый бинарный перенос регистров между клонами

10.07.26

Интеграция - Перенос данных 1C

Быстрый бинарный перенос регистров между базами 1С: чанки + манифест, многопоток, RabbitMQ 🐇. Расширение, MIT.

Быстрый перенос регистров между базами 1С: своё расширение вместо XML-обмена

 

Штатный обмен 1С (планы обмена, выгрузка через XML/XDTO) универсален и потому медленный: построчная сериализация в текст, оверхед на разбор схемы, одна нитка. Когда базы разные — это оправдано. Но когда нужно перелить миллионы строк регистров между базами с идентичной конфигурацией (клон-синк, наполнение тестового контура с боевого, перенос архива движений), платить за эту универсальность гигабайтами XML и минутами ожидания незачем.

Инструмент делает проще: раз конфигурации совпадают — наборы записей пишутся во внутренний бинарный формат платформы (ЗначениеВФайл) порциями-чанками, рядом кладётся manifest.json, и на приёмнике всё грузится замещением по регистратору. Никакой построчной сериализации в текст. Поставка — расширение конфигурации (AddOn, 6 объектов метаданных, ноль зависимостей от базовой конфы): дропается в любую конфигурацию, включая БСП-релизы, без правки основной.

 

Что умеет

  • Бинарные чанки + manifest.json. Набор режется на порции, каждая пишется одним ЗначениеВФайл; манифест хранит состав, версию, формат, сжатие и отбор — загрузка самодостаточна по манифесту.
  • Параллельная выгрузка и загрузка фоновыми заданиями. Запуск адаптивный: есть БСП — через ОбщегоНазначения.ВыполнитьМетодКонфигурации, нет — через собственный тонкий шим; отдельное ветвление для файловой и клиент-серверной ИБ.
  • Портативный JSON-формат чанков (СериализаторXDTO с явным назначением типов) — переживает смену версии платформы, когда .bin уже нельзя.
  • Опциональное сжатие deflate — ~15% исходного размера ценой ~×1,3 по времени; для передачи по сети выгодно, для локального клон-синка — нет.
  • Отбор по периоду для РН/РБ и периодических РС (с защитой от смешивания периодических и непериодических регистров в одной выгрузке).
  • Живой прогресс с отменой и докачкой после обрыва (уже загруженные чанки пропускаются по sidecar-файлу).
  • Профили СУБД (файловая / MS SQL / PostgreSQL) сами подбирают размер чанка и число потоков под приёмник.
  • Метрики OpenMetrics (.prom) рядом с отчётами — подключается к Grafana через node_exporter.
  • Транспорт через RabbitMQ (PoC): «папка → очередь → папка», ack после записи файла, валидация имени файла из очереди (защита от path traversal).
  • Встроенный самотест — план прогона с пресетами: сборочные тесты корректности (в т.ч. потеря данных в подчинённых регистрах, path traversal, отмена/зомби-воркеры) и бенчмарки со сводным HTML-отчётом.

 

Сколько это в цифрах

Регистр сведений, синтетика ~160 байт/строку. Два стенда — файловая ИБ на NVMe и MS SQL Server на SSD.

Сценарий Результат
Round-trip 5 млн строк (bin / deflate / json) 1:1, сверка байт-в-байт
Выгрузка, MS SQL, 8 потоков 241 000 строк/с (×4,72 к одному потоку)
Загрузка, MS SQL, 8 потоков 72 800 строк/с (×4,24) — на серверной СУБД параллелится и запись
Выгрузка, файловая ИБ, 8 потоков 208 000 строк/с (×2,2; плато после ~4 потоков — упор в СУБД)
Сжатие deflate=9 14,8% исходного размера (151,5 → 22,4 МБ на 1 млн строк)

На файловой ИБ запись упирается в монопольную блокировку .1CD (загрузка масштабируется лишь до ×1,25) — серверная СУБД снимает этот потолок. Дефолты (размер чанка, число потоков, режим сжатия) подобраны по замерам, не по наитию: «теоретически правильная» балансировка через полную сортировку однажды уронила параллелизм с ×1,70 до ×1,06 — с тех пор любая перф-правка только с бенчмарком до/после.

 

Как пользоваться

  1. Подключить .cfe к обеим базам и снять «Безопасный режим» / «Защиту от опасных действий» (движку нужен файловый I/O).
  2. В источнике: выбрать регистры чек-листом, указать папку обмена, при необходимости — формат/сжатие/потоки/период → «Выгрузить».
  3. Перенести папку на приёмник (или указать общую) → в приёмнике «Загрузить».

Для переноса между разными версиями платформы — переключить формат на JSON. Профиль СУБД приёмника подберёт остальное.

 

Ограничения

  • Только идентичные конфигурации: GUID-ссылки между разными базами не транслируются (клон, копия, синхронизированные справочники). Маппинг ссылок — отдельная задача, инструмент её не решает.
  • .bin — внутренний формат платформы: чувствителен к версии платформы и метаданным. Для устойчивости — JSON.
  • Загрузка по умолчанию однопоточная (параллелится в первую очередь выгрузка); на файловой ИБ параллелизм выгрузки выходит на плато после ~4 потоков.
  • Расширение исполняется доверенным кодом от rphost — встроена валидация пути папки обмена.

 

Где взять

Исходники, собранный .cfe, документация и бенчмарки — в открытом репозитории (MIT): https://github.com/ohmyfcingod/fast-register-transfer-1c


P.S. Присмотритесь к скриншотам вкладки «Тесты». В типовых 1С-формах такое обычно не водится; что именно — оставим сюрпризом. 🙂

Вступайте в нашу телеграмм-группу Инфостарт

Расширение перенос данных регистры

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Перенос данных 1C Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

58000 руб.

04.08.2015    191403    460    308    

461

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    190314    370    294    

427

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

58000 руб.

15.04.2019    85790    231    181    

168

SALE! 20%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    162778    988    329    

486

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам.

50200 руб.

24.04.2015    209110    178    253    

296

Перенос данных 1C Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Перенос данных из УПП 1.3 в УНФ | из КА 1.1 в УНФ | из УТ 10.3 в УНФ | Перенос разработан в формате КД 2 (правила конвертации объектов) | Выгружаются все возможные виды документов, начальных остатков и вся нормативно-справочная информация | Есть фильтр по организациям при выгрузке данных | Есть несколько алгоритмов выгрузки начальных остатков товаров на выбор | Можно проверить перед покупкой на своем сервере!

58000 руб.

17.10.2019    45394    60    118    

62

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Системный администратор Программист Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Платные (руб)

Обработка не только формирует начальные остатки по всем счетам на нужную дату (экономя время на свёртке базы БП 3), но и полностью переносит справочные данные и документы за заданный период. Гибкая настройка включает фильтр по организациям и множество параметров выгрузки. Работайте в удобном формате: выполните однократный полный переход или настройте регулярную догрузку только новых документов из БП 3 в БП 3.0. Интеграция правил конвертации в план обмена гарантирует точную выгрузку исключительно зарегистрированных объектов.

70760 руб.

10.04.2026    870    3    8    

1

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 37800 руб.

15.12.2021    35410    261    68    

199
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1105 10.07.26 14:42 Сейчас в теме
Почему бы не лить напрямую между скулями ?
2. Baronello 36 10.07.26 14:46 Сейчас в теме
(1) Можно и скриптом SQL закинуть, но каждый сам решает когда ему начать нарушать лицензионное соглашение 1С.)

Я недавно снес пароль пользователю обмена, закинул его строчку из ночной копии в прод через SQL. SQL с ночной копией полезная штука.
3. SerVer1C 1105 10.07.26 15:41 Сейчас в теме
(2) Да просто на больших базах (от ТБ и выше) всякие эсные обмены по времени будут стремиться к бесконечности. Скажу по секрету, что все хайлоады нарушают обходят правила лиц соглашения )
5. Baronello 36 10.07.26 16:10 Сейчас в теме
(3) Знаю, админил ДО на 5Тб, думаю можно придумать куда эту обработку применить. А так я тут в том числе и интерфейсы 8.5 изучал, красивости с анимациями наводил, в коде всё описано почему именно так. Проект больше 6+, а не DBA+, он про плотный код и решения от безопасности до разделения ядра и тестовых шлейфов, замеры снимать с системы, сравнивать как разные конфиги ведут себя при передаче данных.

Да и сама тема переноса регистра через бинарники раскрыта.

Если хочется DBA+, то ткни в репо в следующий проект.
4. gybson 13 10.07.26 15:45 Сейчас в теме
а почему обычный обмен то не использовать c Fast InfoSet?
6. Baronello 36 10.07.26 16:11 Сейчас в теме
(4) Используйте, я разве запрещаю.
Для отправки сообщения требуется регистрация/авторизация