Skip to content

Преимущества Турбо КД

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

Скорость

В типовых сценариях обмена данными между 1С достигается скорость сериализации-десериализации от 35 000 до 100 000 стандартных строк в секунду (под стандартной строкой здесь и далее понимается строка с 8 колонками).

В реальности - это выгрузка-загрузка 3 000 накладных по 10 строк товара в секунду.

Обмен со сторонними программами

Скорость загрузки-выгрузки в системы на других языках выше еще на порядок.

Простота

Простой код

При разработке Турбо КД большое внимание уделялось тому чтобы сделать код сериализации(десериализации) и передачи данных максимально простым и понятным.

  • Используется небольшое количество общих модулей.
  • Минимизировано количество клиент-серверных вызовов, обработок оповещения и т.д.
  • Сокращено количество параметров функций до 2...3.

Примеры кода ...

Простая отладка

  • Весь код обменов сосредоточен в обработке загрузки данных (конвертере) - не нужно вносить изменения в 3 базах (источнике, получателе, конвертации данных).
  • Все процедуры выгрузки сводятся к написанию пакета запросов по получению данных.
  • Процедуры загрузки - это просто заполнение и запись объектов получателя готовыми данными - т.к. автоматически переносятся и конвертируются ссылочные значения.
  • При составлении пакета запросов может сразу выполняться и мапинг полей источника-приемника.
  • Отладка ведется в автоматически перезагружаемой внешней обработке - что позволяет значительно уменьшить паразитные нажатия на кнопки и движения мышью.
  • Не требуется сохранение конфигураций и. соответственно перезапуск баз.

Простая модификация

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

Типизация

Одной из самых востребованых задач при обмене данными является корректный перенос информации о типах значений.

Текстовые форматы обмена, как правило, не в состоянии обеспечить перенос данной информации:

  • csv - информация о типах отсутствует.
  • json - различные числа и строки, все остальное костыли или ручное кодирование процедур загрузки выгрузки (с костылями).
  • xml - формально поддерживает произволные наборы типов (xsd) - но реализация крайне сложна и не очень удобна.

Турбо КД использует бинарный формат обмена Apache Parquet который изначально разрабатывался с учетом требований типизации данных. Использование данного формата позволяет переносить данные о следующих типах:

Ссылки

Решение автоматически включает в состав передаваемых данных информацию о типах ссылок, что позволяет:

  • Выгружать-загружать ссылки различных типов в одной колонке данных.
  • Игнорировать отсутствующие в базе получателе типы ссылок (неопознанные типы автоматически приводятся к типу "Уникальный идентификатор").
  • Заменять типы ссылок при загрузке.
  • Сопоставлять значения ссылок при загрузке (заменять одни ссылки на другие).

Примитивные значения

Поддерживаются все основные примитивные типы данных 1С:

  • Булево
  • Время
  • Дата
  • Двоичные данные
  • Строка
  • Числа целые
  • Числа десятичные
  • Уникальные идентификаторы

Перенос типов

Все поддерживаемые типы переносятся в пакетах данных абсолютно прозрачно. Это означанет что выгруженный тип полностью соответствует принимаемому - без всяких "танцев с бубнами" и не требует ни строчки кода.

Сжатие данных

Формат Apache Parquet поддерживает сжатие данных "из коробки".

Т.е. не требуется никаких дополнительных процедур по упаковке распаковке данных. Сравнительные объемы пакетов данных можно посмотреть в разделе "Производительность"

Универсальность

Формат Apache Parquet применяется не только в Турбо КД (1С) но и во множестве систем на других языках программирования. Это позволяет достаточно просто наладить двусторонний обмен данными с другими программами.

Доп. функции для 1С

Замена типов

Довольно часто встречается ситуация когда одинаковые, по сути, объекты имеют разные наименования в различных информационных базах.
Например:

Объект ИБУТ 10.3УТ 11.5БУХ 3.0
Заказ покупателяЗаказПокупателяЗаказКлиентаСчетНаОплатуПокупателю
Заказ поставщикуЗаказПоставщикуЗаказПоставщикуСчетНаОплатуПоставщика
Поступление на РСПлатежноеПоручениеВходящееПоступлениеБезналичныхДенежныхСредствПоступлениеНаРасчетныйСчет
И т.д. ...

Не будем предъявлять претензии художникам.....они так видят.....
Но с этим приходится как то жить.
В системе Турбо КД реализован простой механизм замены типов ссылок. Типы ссылок автоматически заменяются во входящем пакете в соответствии с правилами конвертации.
Например:

  1. Выгрузим документ "Заказ покупателя" из бызы УТ 10.3: Выгрузка заказа покупателя из УТ 10.3
  2. Прочитаем данные файла в той-же базе УТ 10.3: Загрузка заказа покупателя из УТ 10.3 В базе УТ 10.3 ссылка на документ "Заказ покупателя" прочиталась корректно - именно как "Заказ покупателя".
  3. Прочитаем тот же файл в базе БУХ 3.0 Загрузка заказа покупателя в БУХ 3.0 Так как при загрузке не использовались правила обмена ссылка на объект источника "Документ.ЗаказПокупателя" загрузилась как "Уникальный идентификатор".
    В БУХ 3.0 нет документа "ЗаказПокупателя" поэтому ссылка автоматически конвертировалась в тип "УникальныйИдентификатор".
  4. Добавим в загрузку правила конвертации Правила конвертации
  5. Прочитаем файл с заказами еще раз Загрузка заказа покупателя в БУХ 3.0 Ссылка на заказ была конвертирована в ссылку на "СчетНаОплатуПокупателю".

Содержимое файла правил конвертации

json
{
	"СоответствиеТипов_Ист_Тек": {		
		"Документ.ЗаказПокупателя":	"Документ.СчетНаОплатуПокупателю",		
	},
	"СоответствиеПеречислений_Ист_Тек": {
	},
	"СоответствиеРеквизитов_Ист_Тек": {		
	}
}

Подробнее см. Правила конвертации.

Правила по умолчанию

В файле конвертации указаны правила только для типа "Документ.ЗаказПокупателя".
Ссылка типа "Справочник.Контрагенты" была конвертирована АВТОМАТИЧЕСКИ, так как данный тип присутсвует в базе источнике и базе получателе.
Таким образом НЕ ТРЕБУЕТСЯ писать правила для объектов совпадающих типов, в правилах фиксируется только сопоставление для отличающихся типов, что позволяет значительно упростить правила для баз с "похожей" структурой или баз "почти УРБД".

Замена ссылок

Ручная

Автоматическая