Skip to content

Что такое "Турбо КД"

Турбо КД - набор инструментов для реализации простого и быстрого обмена данными в среде 1С:Предприятие.

Cкорость, простота, и универсальность обменов данными достигается за счет использования бинарного формата Apache Parquet, широко используемого в системах Big Data.

Решение может использоваться в ЛЮБЫХ конфигурациях 1С:Предприятие на платформе 8.3.

Решение работает как в управляемых так и в ОБЫЧНЫХ формах.

Не требуется использование специальных конфигураций для написания правил обмена.

Возможен обмен данными вообще БЕЗ ПРАВИЛ.

Архитектура решения позволяет значительно УПРОСТИТЬ и УСКОРИТЬ процессы разработки и отладки обменов.

Решение полностью АВТОНОМНО:

  • Не используется БСП
  • Не вносятся изменения в конфигурацию
  • Не используются никакие модули типовых конфигураций

Не XML, не JSON, не XDTO.
Пример реализации загрузки данных в 1С Бухгалтерия 3.0

Принцип работы

Обмен через Parquet

Работа Турбо КД основана на идее сериализации (десериализации) табличных данных 1С (таблиц значений) в формат Apache Parquet.

Данные подход позволил:

  • Существенно упростить и ускорить процедуры выгрузки, загрузки и трансформации данных при обменах внутри систем 1С Предприятие.
  • Максимально просто и универсально реализовывать синхронизацию со сторонними приложениями

Типы значений

При сериализации (десериализации) полностью сохраняются типы значений, в том числе и ссылочные.
Функционал решения позволяет изменять типы ссылочных значений при загрузке данных.

Схема реализации

Структура пакета Apache Parquet

Так как Турбо КД реализует сериализацию и десериализацию данных - блок Турбо КД должен быть установлен как в базе источнике так и в базе получателе.

Выгрузка

Из базы источника выгружается "Пакет данных" (ПД), содержащий набор таблиц и служебную информацию. Полезные данные пакета представляют собой произвольный набор таблиц, полученных любым способом из базы 1С:Предприятие.

Данные для выгрузки могут быть сформированы:

вручную (программно созданные и заполненные таблицы значений) получены из результата запроса (одна таблица) получены в результатов запроса (несколько таблиц) Пакет представляет собой двоичные данные в формате Parquet.

Доставка

Пакет передается в базу источник любым, доступным в текущей обстановке, способом:

  • файл
  • email
  • ftp
  • HTTP
  • Rabbit
  • Kafka
  • и даже 1С:Шина

В стандартном варианте поставки реализованы способы обмена через файл и HTTP

Загрузка

Пакет читается в базе приенмике таким-же блоком Турбо КД как и в базе источнике. Код модулей Турбо КД абсолютно идентичен в базе источнике и в базе приемнике.

Прочитанные данные далее могут быть обработаны в базе приемнике произвольным образом.

Состав пакета

Формат Apache Parquet представляет собой бинарный формат специально разработанный для передачи и хранения табличных данных. Ближайшей аналогией могут выступать файлы dBase.

Формат предусматривает хранение в одном пакете (файле) произвольной дополнительной информации в двоичных и текстовых форматах. Таким образом в одном пакете можно хранить как основные данные (Основные данные), так и произвольное количество "вложенных" данных (в том числе строк, таблиц или целых пакетов Parquet).

Структура пакета Apache Parquet

Правила обмена

При разработке Турбо КД был полностью пересмотрен подход к разработке и использованию правил обмена.

  • Правила обмена не являются обязательными
  • Правила обмена используются только при разборе (десериализации) полученных пакетов данных
  • Для разработки правил обмена не требуется использование специальных конфигураций
  • Правила описывают только соответствия ссылочных типов и фиксированных значений (перечисления, предопределенные элементы)
  • Правила описывают только расхождения в типах и предопределенных элементах
  • Правила хранятся в формате JSON
  • Правила не содержат исполяемого кода

Функционал

Базовые функции

  • Конвертация таблиц значений в формат Apache Parquet
  • Конвертация данных Parquet в таблицу (таблицы) значений
  • Выполнение запросов к базе источнику через HTTP
  • Выгрузка результатов запроса (пакета запросов) в формат Apache Parquet

Функции конвертации данных 1С

  • Замена типов загружаемых ссылок при загрузке
  • Замена значений загружаемых ссылок при загрузке
  • Выгрузка вторичных ссылок (автоматическая)
  • Создание объектов вторичных ссылок при загрузке (автоматическое)
  • Конвертация типов ссылок (автоматическая)
  • Конвертация значений перечислений (автоматическая)
  • Конвертация ссылок на предопределенные значения (автоматическая)

Сервисные обработки

  • Универсальная "Выгрузка-загрузка данных Parquet"
  • Консоль запросов, с возможностью выполнение запросов в сторонней базе
  • Универсальный загрузчик в 1С Бухгалтерия 3.0
  • Выгрузка (загрузка) данных в ClickHouse
  • Выгрузка (загрузка) данных в Laravel
  • Выгрузка (загрузка) данных в Django

Варианты использования

Обмены 1С-1С

Загрузка в 1С Бухгалтерия 3.0

Базы источники
Возможные источники
КА 1.1
УТ 10.3
УПП 1.3
УТ 11.5

Переходы на новые версии

Варианты переходов
Старая верияНовая версия
Бух 2.0Бух 3.0
УППБух 3.0
УППERP
УТ 10.3УТ 11.5

Обмены между произвольными конфигурациями

Примеры
ИсточникПолучатель
ЗуП 3.1УТ 11.5
УППДО 3.0
УТ 10.3УПП 1.3
УТ 11.5УНФ 3.0

Разовые переносы

Применение
  • Загрузка битых ссылок
  • Копирование объектов из рабочих баз в тестовые
  • Слияние ИБ
  • Разделение ИБ

Обмены с другими программами

Турбо КД использует Apache Parquet в качестве формата обмена данными.

Apache Parquet — это формат файлов данных с открытым исходным кодом, ориентированный на столбцы, разработанный для эффективного хранения и извлечения данных. Он обеспечивает высокопроизводительные схемы сжатия и кодирования для обработки сложных данных в больших объемах и поддерживается многими языками программирования и аналитическими инструментами.

Использование, по настоящему, универсального формата позволяет легко организовать обмен данными с различными классами систем и СУБД. Формат поддерживается:

ЯзыкиPython, JS, Java, C++, C#, PHP, GO
БраузерыApache Parquet может использоваться непосредственно в браузере (через WASM пакеты)
СУБДClicHouse, DuckDB
BI системыMS PowerBI, Apache Superset, Yandex DataLens
DWH системы​Hadoop, Spark, DeltaLake

см. Примеры реализации...